[
https://issues.apache.org/jira/browse/IGNITE-18770?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Alexander Lapin updated IGNITE-18770:
-------------------------------------
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.
h3. 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:
{code:java}
@InjectConfiguration("mock {flushDelayMillis = 0, defaultRegion {size =
16777216, writeBufferSize = 16777216}}")
private RocksDbStorageEngineConfiguration engineConfig; {code}
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:
{code:java}
@InjectConfiguration("mock {flushDelayMillis = 0, defaultRegion {size =
16777216, writeBufferSize = 16777216}}") private
RocksDbStorageEngineConfiguration engineConfig; {code}
and
{code:java}
public RaftGroupListener createListener(ClusterService service, Path path, int
index) {
return paths.entrySet().stream()
...
RocksDbStorageEngine storageEngine = new RocksDbStorageEngine(engineConfig,
path);
storageEngine.start();
{code}
was: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.
> Create implementation of ItAbstractListenerSnapshotTest testing snapshots for
> B+Tree-based storage
> --------------------------------------------------------------------------------------------------
>
> Key: IGNITE-18770
> URL: https://issues.apache.org/jira/browse/IGNITE-18770
> Project: Ignite
> Issue Type: Improvement
> Reporter: Denis Chudov
> Priority: Major
> Labels: ignite-3
>
> 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.
> h3. 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:
> {code:java}
> @InjectConfiguration("mock {flushDelayMillis = 0, defaultRegion {size =
> 16777216, writeBufferSize = 16777216}}")
> private RocksDbStorageEngineConfiguration engineConfig; {code}
> 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:
> {code:java}
> @InjectConfiguration("mock {flushDelayMillis = 0, defaultRegion {size =
> 16777216, writeBufferSize = 16777216}}") private
> RocksDbStorageEngineConfiguration engineConfig; {code}
> and
> {code:java}
> public RaftGroupListener createListener(ClusterService service, Path path,
> int index) {
> return paths.entrySet().stream()
> ...
> RocksDbStorageEngine storageEngine = new RocksDbStorageEngine(engineConfig,
> path);
> storageEngine.start();
> {code}
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)