RapidCMDB Persistence Operations

Table of Contents

We use Grails Searchable Plugin as RapidCMDB repository. RapidCMDB and applications that use RapidCMDB as the base platform can store data in the memory (fastest but no persistence), in index files (persistent but slower), and both memory and file (almost as fast as memory only with the added benefit of persistence). What is great about the persistence configuration is, you don't have to choose one or the other. You can configure any one for any modeled class. That is, all three options can be used at the same time.The persistence type for any modeled class is configured in the Model Configuration.xml by setting the optional attribute StorageType. When omitted, the default type is File. Other values are: Memory and FileAndMemory.

AsyncMemoryMirrorDirectoryWrapperProvider is used in order to enhance performance by writing the index data first to the memory and then scheduling it to be written to the corresponding index file. This corresponds to the FileAndMemory StorageType. When this storage type is used, data to be written to files will accumulate in the memory since writing to the memory is much faster than writing to a file. This can lead to memory problems. In order to eliminate this problem, data to be written to the file(s) will allowed to accumulate only to the level specified in the mirrorBufferUpperLimit. When this is reached, write operations will be suspended until the accumulated data size drops to teh size specified in mirrorBufferLowerLimit. These parameters for FileAndMemory storage type is configured in the RS_HOME/RapidSuite/grails-app/conf/SearchableConfiguration.groovy.

Compass uses AdaptiveOptimizer by default, which optimizes index management in file and in memory. Mergefactor, 10 by default, is used to determine when to start deleting the removed data. Index files will not be deleted from the file system and ram directory until the number of index files is larger than the mergefactor. This may increase the memory up to 16Mb due to the data waiting to be removed.

When multiple classes share one index, make sure that they use the same storage type.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.