Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
Description
In IGNITE-17817 implementation was done for RocksDB-based storage. We need to make the same for B+Tree-based storage when it gets ability to support snapshots.
Implementation Notes
Currently there are two extension points for an ItAbstractListenerSnapshotTest
- Listener type: Table, Metastorage.
- Storage type: Rocks, B+Tree, In-memory.
Please pay attention that some of combinations are forbidden, e.g. we don't support in-memory meta storage.
Thus we should either introduce new level of abstraction between ItAbstractListenerSnapshotTest and ItTablePersistenceTest/ItMetaStorageServicePersistenceTest in order to parametrize the implementations with specific storage along with corresponding configuration or use parametrize tests themselves. The latter might be non-trivial because of some tech details like resources injection:
@InjectConfiguration("mock {flushDelayMillis = 0, defaultRegion {size = 16777216, writeBufferSize = 16777216}}") private RocksDbStorageEngineConfiguration engineConfig;
so, we should check whether parametrized tests are possible and switch back to old-fashioned inheritance if not.
All in all we should parametrize following items:
@InjectConfiguration("mock {flushDelayMillis = 0, defaultRegion {size = 16777216, writeBufferSize = 16777216}}") private RocksDbStorageEngineConfiguration engineConfig;
and
public RaftGroupListener createListener(ClusterService service, Path path, int index) { return paths.entrySet().stream() ... RocksDbStorageEngine storageEngine = new RocksDbStorageEngine(engineConfig, path); storageEngine.start();
Attachments
Issue Links
- is blocked by
-
IGNITE-16644 [Native Persistence 3.0] Support snapshots for B+Tree-based storage
- Open
- is related to
-
IGNITE-17817 Update ItTablePersistenceTest to use Replica layer with new transaction protocol
- Resolved