Bug 45190

GemStone/S 64 Bit

3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2, 2.4.8, 2.4.7, 2.4.6

3.2.7

findAllReferencePathsToObjects: and memory use

The Repository findAllReferencePathToObject: (and variants), return all paths to a given object or objects.  For a highly connected object, this can result in a very large return set and a high demand for memory in internal computations, and Gem OutOfMemory errors. The memory demands may be higher than can be accommodated even with increased temporary object memory.

Workaround

Increasing the Gem's GEM_TEMPOBJ_CACHE_SIZE may or may not allow your query to complete.

For highly connected objects, start by using findReferencePathToObject:. If you are trying to remove references to an object, disconnecting references close to the target object along the reference paths may significantly reduce the number of paths, depending on the graph.

You may be able to modify the limit set to reduce the number of paths.

Later versions include maxPaths: to allow control over the number of paths returned in one sweep.


Last updated: 7/22/15