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.
