This design is about Volatile Parallel Random Access Memory server in Java Programming Language.
Stored data is lost when service goes down.
Memory can be represented in computer memory as an sequentially indexed array.
Communication can happen via standard socket interface with use of fast queues for each of cells & for infrastructure services such as returning memory size & cell size.
Size of a memory cell can be configured before service's start, and byte sequences can be stored or retrieved from a cell with given address.
Objects can be stored in memory, if there's space available for them, otherwise an error is reported.
First objects are marshalled (serialized) to a byte sequence, then stored in server's memory - including the data neccessary for unmarshalling. This happens as atomic operation, and can happen in more than one memory cell. Java Reflection API should be used. Marshalling / Unmarshalling of Objects should happen at Client, not on Server, but there should be also a server for 'stored objects map' and accessing stored objects should happen through it as atomic operation.
See also: Concurrent Algorithms & PRAM.