[ 
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)

Reply via email to