Menu

#59 Shared memory peaks when unregistering handlers that own persistent entities

Unplanned
new
nobody
None
enhancement
dose
2013-01-11
2013-01-11
No

When unregistering a handler that owns entities that have any kind of persistent property, the shared memory used for those entities will temporarily be about twice as big. This is due to the Dob internal design where each new version of an entity is implemented as a copy-change operation. This behaviour is accentuated when there is an unregistration of a handler. In this case, all entities owned by this handler, will within a short timespan be updated to ghosts. Both the ghost versions and the versions before that will be present in shared memory until the subscribers have been notified and made their dispatch call and this will in practice temporarily double the shared memory footprint used by these entities

This is indeed an issue for applications that have many persistent entities and at least there should be some kind of advice regarding memory budget calculations in the User's Guide.

Also, some kind of optimization in order to git rid of the copying when going from real to ghost might be someting that we should consider.

Discussion

MongoDB Logo MongoDB