Awesome info again @hplus0603 Thanks! More or less the same conclusion I came to regarding Riak. More than I need/want.
Redis so far has done nothing but make everything I've touched with it a little(or a lot) better.
I've disabled all of it's checkpoint and persistence capabilities, it's basically just a highly supercharged memcached(preliminary tests of memcached in the same environment agree). With pub/sub that works amazingly, well enough that I'm completely trashing all the inter-server netcode I WAS writing. It's really quite brilliant, and everything I was hoping it could be. I'm kicking myself hard for avoiding centralizing the data sooner. I'm currently using it entirely asynchronously to store short-term game-state data and for its phenomenal pub/sub capabilities to keep my servers in sync.
By shards that move with the players, I mean something more along the lines of (brace yourself) semi-authoritative clients. Everybody builds game servers like mainframes, and I know why that is. I'm not arguing the merits of a fully authoritative server architecture(I'm still building one, sort of), but I can't help but see most of it's faults too and think that there are ways to use the network/system resources more efficiently and more importantly, improve the quality and interactivity of the simulation by making all simulation dependent decisions as close to where the player makes theirs as possible.
I see it as a trust-but-verify type of scheme with a somewhat decentralized authority, and not one that cares exactly what's being rendered @xyz in every players sim at every single moment. More what is Feasible to have been(within the rules) or Should Have Been(because a server sent an NPC to get them) rendered near the position they said it was at the time they said it was... I really have no idea how it's going to work out, so far so good is all I can say.
Ultimately, I envision a game where a lot of the content is AI and/or otherwise dynamic and interactive,yet remains fully operational even if all the other real players have been lag-dropped from your game session. You can go about exploring the world and/or making changes as you like, even if your lag is so terrible you can't see any other real players. A system that can filter the game down to its most basic operational state for almost anybody, playing almost anywhere. Possibly replacing lag-inaccessible player characters with non-networked NPC analogs that derive behaviors from the actual players themselves. I got ideas...
But that's why I need all the super-fast yet temporary storage that is accessible from all of my various servers. It will act like a round-robin-database that only keeps a certain window of history ready to re-game cheats(verify/approve client decisions), and for other general behavior analysis and misc. uses by the games AI.
At all costs I'm trying to avoid writing code that plays with time. I'm not going to add time to time stamps so they look like they didn't happen in the past, so that my server simulation can allow a loot drop to happen in the future.. or some other bull.. haha I'm not even sending time stamps with my data. I'll simply check the immutable historical records to see if what the client said happened(within the tested client latency window of the claim's arrival) vibes well enough with the record, and if so, approve the loot drop that should still be waiting on other processes client side anyhow(like a more realistically elongated death/destruction sequence).
yeah, most of this I'm just putting into words right now, so if it seems a bit unpolished... haha