News for hackers. Stuff that matters.
Re:Fast key-value stores: An idea whose time has come and gone by zaroth on Monday June 24, 2019 @09:43AM (#20263429)
So for the canonical use case of session state in a load balanced server farm, is the session state being replicated across every single one of these in-process caches? Or, if a request is routed to a server without a copy of the session state, does the in-process cache have to go find a peer server with a copy of the session state?

This seems like an easy “solution” to show how it speeds up the happy path while not fully addressing the real-world tradeoffs.

Stateless application servers come and go without a care in the world. You can reason very simply about the cost and effects of bringing them up and down.

Add in a KV store with sharding, replication, a discovery protocol, a heartbeat protocol, a sync and recovery protocol, etc... and put it all in-process on every application server?

Have fun monitoring and debugging this.

I much prefer the 3-tier system of a local RAM cache, a Redis cache, and a persistence layer. As much state as possible is idempotent so you can cache it locally as well as in Redis. The load balancer can best-effort route back to the same app server, and your KV lookups automatically check local RAM first. But the central KV store handles replication and is easy to monitor and scale out if needed.

Re:Fast key-value stores: An idea whose time has come and gone by _mog1 on Monday June 24, 2019 @03:20PM (#20267388)
The paper assumes that you have a good amount of related context. I'd recommend at least reading the Slicer paper mentioned several times (https://www.usenix.org/system/files/conference/osdi16/osdi16...).
Re:Fast key-value stores: An idea whose time has come and gone by lallysingh on Monday June 24, 2019 @12:11PM (#20265049)
How's in-process issuing the same library much different than using a separate process? What's complicated there in monitoring/debugging that's different that's not otherwise?

I think that debugging with one less process is a good thing. And monitoring with one less process boundary to traverse is easier as well.