[erlang-questions] Caching server

Johan Wärlander <>
Mon Feb 21 17:55:21 CET 2011


I think it depends a lot on your circumstances, whether you'd need to worry
about that overhead or not. Sure, as an individual setting up a system to
run on a small PVS with some provider out there, maybe only having 256MB of
RAM to use, you definitely need to look carefully at things like these.

However, setting up a system in any kind of enterprise environment, RAM is
seldomly the bottleneck. Looking at the kind of infrastructure we run at
work, if we were to deploy such a system at a grander scale, we'd probably
just set up a blade enclosure with 16 nodes of 2x6-core CPUs, 192GB of RAM
each, and internal switches for interconnect.

Not that we actually run any system that requires more than a fraction of
that capacity.. But we could, for a roughly estimated cost of somewhere
around $150k maybe, which would be cheap in that context.

Regards,
Johan Wärlander
Den 21 feb 2011 15.42 skrev "Rapsey" <>:
> Erlang can handle a large number of processes, but I don't really think
> having a process for every k/v pair is that good of an idea unless the
> amount of k/v pairs is relatively small. Processes are lightweight, but
> they're not that lightweight, you're still adding quite a few bytes to
every
> k/v pair which adds up to quite a lot when you're in the hundreds of
> thousands or millions of k/v pairs.
>
>
> On Mon, Feb 21, 2011 at 3:26 PM, Eric Merritt <
>wrote:
>
>> Nicholas,
>>
>> The example in the book isn't production capable, and was designed for
>> teaching more then to be production. However, this approach should be
>> fine in Erlang. Erlang can handle extremely large numbers of processes
>> on commodity hardware. The big caveat to this is you need to figure
>> out what the number of processes that can live on the hardware you are
>> going to be using, then come up with a distribution mechanism if that
>> number is exceeded. Fortunately in erlang this isn't a big deal. This
>> number is probably very high, at the very least in the hundreds of
>> thousands and maybe into the millions depending on your hardware. As
>> always, the key is doing some testing and figuring out what your
>> limits are.
>>
>> Eric
>>
>> On Fri, Feb 18, 2011 at 9:19 PM, Nicholas Wieland <> wrote:
>> > Hi *, I'm reading the Manning book.
>> > My question is very simple: a full chapter of the book is devoted to
the
>> implementation of a simple caching server. The author, if I got it
>> correctly, at one point states that in Erlang, thanks to its lightweight
>> processes, it's ok to have a caching server that spawns a process for
every
>> key/value pair.
>> > Of course I don't expect that the example in the book is a production
>> ready implementation, but I would like to ask if it would be possible for
an
>> architecture like this to be production ready (say, something like
Redis),
>> or if I should take it with a pinch of salt, only as a demonstration.
>> > This thing made me curious because there's no language or technology
that
>> would permit something like this, hence my question :)
>> >
>> > TIA,
>> > --
>> > Nicholas Wieland
>> > 
>> > StyleJam BDFL
>> >
>> > The only "intuitive" interface is the nipple. After that it's all
>> learned. – Bruce Ediger
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > ________________________________________________________________
>> > erlang-questions (at) erlang.org mailing list.
>> > See http://www.erlang.org/faq.html
>> > To unsubscribe; mailto:
>> >
>> >
>>
>> ________________________________________________________________
>> erlang-questions (at) erlang.org mailing list.
>> See http://www.erlang.org/faq.html
>> To unsubscribe; mailto:
>>
>>


More information about the erlang-questions mailing list