Infinispanを初めて使用していて、基本的にMVCC HashMap for Javaを探している間に遭遇しました。ローカルMVCCのInfinispanを調整するHashMap
Infinispanは、私が必要とするものに対して多少重いか、Infinispanで必要なものを達成するためのより効果的な方法があるかもしれないと心配しています。クラスタリングやディストリビューションは必要ありません。単一のJVM内に組み込みのInfinispanが必要です。
私はセマンティクスを取引があり、反復可能読み取りMap実装を必要とする瞬間に、私は現在、次の初期化コードを持っている:
final ConfigurationBuilder builder = new ConfigurationBuilder();
builder.jmxStatistics().available(false);
builder.invocationBatching().enable();
builder.versioning().scheme(VersioningScheme.SIMPLE);
builder.versioning().enable();
builder.locking().concurrencyLevel(Runtime.getRuntime().availableProcessors() * 2);
builder.locking().writeSkewCheck(true);
builder.transaction().locking().isolationLevel(IsolationLevel.REPEATABLE_READ);
builder.transaction().lockingMode(LockingMode.OPTIMISTIC);
builder.transaction().transactionMode(TransactionMode.TRANSACTIONAL);
final DefaultCacheManager cacheManager = new DefaultCacheManager(builder.build());
final Cache<String, String> cache = cacheManager.getCache();
final TransactionManager transactionManager = cache.getAdvancedCache().getTransactionManager();
を私はそのようになど、さまざまなスレッドからcache
を使用します。
transactionManager.begin();
cache.put(KEY, VALUE);
...
transactionManager.commit();
これは私がこれを達成する最も効果的な方法ですか、別のクラスを検討すべきか、私が気づいていないチューニングオプションがありますか?