[erlang-questions] Help creating distributed server cache

Anthony Molinaro <>
Thu Dec 6 22:53:21 CET 2012


You might consider just using riak with the memory backend.  It already
has a REST API

http://docs.basho.com/riak/latest/tutorials/querying/Basic-Operations/

and with the memory backend you can set a ttl

http://docs.basho.com/riak/latest/tutorials/choosing-a-backend/Memory/

There's no need to keep processes running or do much of anything
other than install it on a few machines, configure it and go.

-Anthony

On Thu, Dec 06, 2012 at 03:43:22PM -0600, David Fox wrote:
> I'm currently developing a gaming server which stores player
> information that can be accessed from any of our games via a REST
> API.
> 
> So far I've thought of two ways to structure and cache player data:
> 
> 1. When a client requests data on a player, spawn 1 player process.
> This process handles: all subsequent requests from clients for this
> player, retrieving the player data from the DB when created and
> periodically updating the DB with any new data from clients. If the
> player is not requested by another client within... say 30 minutes,
> the player process will terminate.
> 
> 2. Just keep previously requested data in a distributed LRU cache
> (e.g., memcached, redis, mnesia)
> 
> Out of the two, I prefer #1 since it would allow me to separate the
> functionality of different "data types" (e.g., player data, game
> data).
> 
> There are just 2 problems with doing it this way that I'd like your
> thoughts and help with:
> I. I would have to implement some sort of "LRU process cache" so I
> could terminate processes to free memory for new ones.
> II. If a load balancer connects a client to node #1, but the process
> for the requested player is on node #2, how can the player process
> on node #2 send the data to the socket opened for the client on node
> #1. Is it possible to somehow send an socket across nodes? The
> reason I ask, is that I'd like to prevent sending big messages
> across nodes.
> 
> Thanks for the help!
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions

-- 
------------------------------------------------------------------------
Anthony Molinaro                           <>



More information about the erlang-questions mailing list