Am 01.07.2013 um 14:47 schrieb Stephan Eggermont <[email protected]>:

> Esteban wrote:
>> 512 GB is "reasonable" maximum for a single threaded app? Certainly it 
>> is "reasonable" high! :-) 
> 
> Engineering is about trade-offs. 10K euro's: ram, or engineering time.
> 
>> Altough I think 4GB might be small, for me it is better to think about 
>> scaling out, instead of up. 
> 
> Latency & bandwidth are no solved problems, AFAIK.
> As long as we connect images through HTTP, the amount of copying
> involved is going to seriously affect scalability. There is a reason
> Gemstone uses shared pages
> 
GemStone uses a shared page cache in order to avoid disk read/writes. It is 
only a cache and coordinator for everything read/write that needs to have 
access to disks. Well, it coordinates transactions as well to have a consistent 
set of pages in a concurrent environment. Each client in the shared memory 
situation still copies all of the data needed into its private memory section.

Apart from that I think the use case dictates the best approach. For a web 
application or any application that has low memory profile per process but 
highly concurrent usage horizontal scaling is much easier. A few bucks put into 
can give some good results. In your use case it is completely different because 
you operate with one application on a huge graph. In this scenario the copying 
would be my smallest problem. I first would like to find a reliable way to 
manage a graph over multiple images :) In this case scaling vertical is most of 
the time the only way to go.

Norbert

Reply via email to