EldoS | Feel safer!

Software components for data protection, secure storage and transfer

In memory storage and concurrency

Posted: 09/27/2011 01:15:14
by Xuesong Wu (Basic support level)
Joined: 09/27/2011
Posts: 3

Suppose I create an in-memory storage in a process, and there will be multiple worker threads in the process and the same number of external processes accessing the storage concurrently, how well will the performance be? Is it possible or a good idea to create an SolFSStorage instance for each worker thread?
Posted: 09/27/2011 01:56:31
by Eugene Mayevski (Team)

I assume that you are asking about OS Edition. In-memory storage requires requests to travel to kernel mode (as with any file requests) and then back to user-mode via callbacks. All these operations are performed asynchronously via own worker threads. So it doesn't matter how many threads and processes access the storage exposed as a virtual disk - requests will go the same way and having a storage per process won't give any benefit. The only exception is when you have many worker processes which create or open many small files. In this case global locking of single storage might cause certain slowdown. Yet even in this case you need to test both scenarios to ensure that you gain benefits from creating several storages.

If you are asking about Application Edition, there you can have one storage for multiple threads (and probably having a "personal" storage for each thread would give you certain speed benefit), but you technically can't access one storage from several processes so you will have at least one storage per each process.

Sincerely yours
Eugene Mayevski



Topic viewed 2138 times

Number of guests: 1, registered members: 0, in total hidden: 0


Back to top

As of July 15, 2016 EldoS business operates as a division of /n software, inc. For more information, please read the announcement.

Got it!