A Network Virtual Store holds data in non-volatile secondary storage. Objects are cached by clients in the network and are mapped into the virtual memory space of the client programs. Transactional updates of these objects by clients must be reliable and coherent.

Coherency and reliability are managed through the propagation to the server and peer clients of deltas recording the changes made to objects. However, eager propagation of these updates can result in high and unnecessary overhead as many clients will not have cached that data. By propagating the deltas only with acquisition of locks, the overhead can be reduced. However, updates may now arrive out of order, and care must be taken to ensure that old updates are not applied to current data, and that current updates are not needlessly reapplied.

These techniques have been used in a different context in software distributed shared memory systems such as TreadMarks, but not in a transactional context. Transactions introduce difficulties and opportunities in efficient propagation and storage of the updates. We will discuss our design for the implementation of such a system.