A key/value store implementation that interacts with a Cassandra persistence resource is included within a Rhino installation.
An example configuration fragment for this key/value store, with the default values for each configurable parameter, is shown below:
<key-value-store name="cassandra" service-provider-class-name="com.opencloud.resource.kvstore.cassandra.CassandraKeyValueStoreServiceProvider"> <parameter name="keyspaceNamePrefix" type="java.lang.String" value="${KEY_VALUE_STORE_KEYSPACE_PREFIX}"/> <parameter name="keyspaceReplication" type="java.lang.String" value="{'class': 'SimpleStrategy', 'replication_factor': 3}"/> <parameter name="allowDataDefinitionUpdates" type="boolean" value="${KEY_VALUE_STORE_ALLOW_DDU}"/> <parameter name="durableWrites" type="boolean" value="true"/> <parameter name="sessionReconnectionPeriod" type="long" value="5000"/> <parameter name="dataVersion" type="java.lang.String" value="1"/> <parameter name="ttl" type="int" value="86400"/> <parameter name="tombstoneGCGracePeriod" type="int" value="900"/> <parameter name="writeThreadCount" type="int" value="10"/> <parameter name="writeDelay" type="long" value="900"/> <parameter name="minTransactionAge" type="long" value="250"/> <parameter name="maxTransactionAge" type="long" value="1500"/> <parameter name="maxPersistDeferredTransactionAge" type="long" value="10000"/> <parameter name="scanReschedulingDelay" type="long" value="100"/> <parameter name="insertDebugLoggingTruncationLength" type="int" value="100"/> <parameter name="maxBatchStatementSize" type="int" value="80000"/> <parameter name="readTimeout" type="long" value="2000"/> <parameter name="writeTimeout" type="long" value="2000"/> <parameter name="pendingSizeLimit" type="java.lang.String" value="-1"/> <parameter name="pendingSizeAlarmBounceSuppressionFilterPeriod" type="long" value="1000"/> <parameter name="maxScanTimeThreshold" type="long" value="500"/> <parameter name="maxPersistTimeThreshold" type="long" value="5000"/> <parameter name="overThresholdTriggerCount" type="int" value="5"/> <parameter name="gcScanPeriod" type="int" value="300"/> <parameter name="gcGracePeriod" type="int" value="7200"/> <persistence-resource-ref name="cassandra"/> </key-value-store>
This configuration is provided in the Rhino installation’s default rhino-config.xml
file but is disabled by default.
It can be automatically enabled during Rhino installation by requesting the KeyValueDatabase
be used as the replicated storage resource.
Documentation for the key/value store’s service provider class, which includes a full description of all the configurable parameters, is included in the Rhino installation within the doc/api/key-value-store
subdirectory.