You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by am...@apache.org on 2022/01/27 15:08:33 UTC
[ignite-3] branch ignite-16115 updated (619f500 -> 9cb7bbf)
This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a change to branch ignite-16115
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.
from 619f500 Fix argument nullability checks. Add tests.
add 807c0ec IGNITE-16227 .NET: Thin 3.0: Add RecordView with POCO mapping (#577)
add f6cae43 IGNITE-16102 Store all partitions in a single column family (#562)
add eccf157 IGNITE-16257 Implement readUnshared()/writeUnshared() for User Object Serialization
add 1136501 IGNITE-16332 Replace Scalecube-based MessagingService
add 028b685 IGNITE-16322 Fix database objects names case inconsisten between SQL and KV API (#563)
add 7746d49 IGNITE-16381 Fix ItNoThreadsLeftTest (#586)
add 8db3c70 IGNITE-16244 - Updated examples based on latest changes (#588)
add 0e2cd84 IGNITE-16382 .NET: Speed up tests by reusing server node (#587)
add 8b342cb IGNITE-16358 Add storage revision listeners in configuration (#583)
add 6fb23bf IGNITE-16378 Fix stale TODOs
add 1eff57b IGNITE-16388 Fix stale TODOs in network module (#590)
add f51281b IGNITE-15705 Implemented election timeout auto-adjusting mechanism. Fixes #481
add e6ea8da IGNITE-16020 Added design doc for rebalance. Fixes #571
add de98821 IGNITE-16364 Sql. Adopt IGNITE-14991, IGNITE-15235, IGNITE-15526 - Fixes #581.
add a71adbd IGNITE-16311 Removed redundant mentions of closed tasks in code. (#561)
add bd86528 IGNITE-15945 Class inheritance and effectively final fields
add 74649e9 IGNITE-16408 Tests fail when building under specific locales (#595)
add 789df33 IGNITE-16404 Enable Unsafe for netty
add 9cb7bbf Merge branch 'main' into ignite-16115
No new revisions were added by this update.
Summary of changes:
.../ignite/example/rebalance/RebalanceExample.java | 181 +++---
.../ignite/example/sql/jdbc/SqlJdbcExample.java | 334 ++++------
.../ignite/example/table/KeyValueViewExample.java | 146 ++---
.../example/table/KeyValueViewPojoExample.java | 172 ++++++
.../ignite/example/table/RecordViewExample.java | 146 ++---
.../example/table/RecordViewPojoExample.java | 163 +++++
.../ignite/example/tx/TransactionsExample.java | 184 ++++++
.../ignite/example/table/TableExamplesTest.java | 28 +
.../TransactionsExamplesTest.java} | 33 +-
.../network/NetworkConfigurationSchema.java | 17 +
.../main/java/org/apache/ignite/table/Tuple.java | 62 +-
.../java/org/apache/ignite/table/TupleImpl.java | 11 +-
.../apache/ignite/table/manager/IgniteTables.java | 32 +-
.../apache/ignite/table/mapper/MapperBuilder.java | 40 +-
.../ignite/table/mapper/OneColumnMapperImpl.java | 3 +-
.../ignite/cli/builtins/node/NodeManager.java | 2 +
.../ignite/internal/client/table/ClientTuple.java | 9 +-
.../client/ClientKeyValueBinaryViewTest.java | 2 +-
.../ignite/client/ClientKeyValueViewTest.java | 4 +-
.../apache/ignite/client/ClientRecordViewTest.java | 4 +-
.../org/apache/ignite/client/ClientTableTest.java | 8 +-
.../org/apache/ignite/client/ClientTupleTest.java | 90 +--
.../org/apache/ignite/client/ConnectionTest.java | 9 +-
.../java/org/apache/ignite/client/CustomTuple.java | 17 +-
.../ignite/client/fakes/FakeIgniteTables.java | 54 +-
.../configuration/ConfigurationProperty.java | 4 +-
.../notifications/ConfigurationListener.java | 3 +-
.../ConfigurationNamedListListener.java | 17 +-
.../ConfigurationNotificationEvent.java | 7 -
.../configuration/ConfigurationChanger.java | 2 +-
.../configuration/ConfigurationRegistry.java | 51 ++
.../ConfigurationStorageRevisionListener.java} | 15 +-
.../notifications/ConfigurationListenerTest.java | 169 +++--
.../ConfigurationListenerTestUtils.java | 52 +-
.../org/apache/ignite/internal/util/ByteUtils.java | 14 +-
.../ignite/internal/util/IgniteObjectName.java | 137 ++++
.../internal/metastorage/MetaStorageManager.java | 8 -
.../apache/ignite/network/MessagingService.java | 10 +-
.../org/apache/ignite/network/NetworkAddress.java | 33 +-
.../ignite/network/NetworkMessageHandler.java | 7 +-
.../org/apache/ignite/network/TopologyService.java | 12 +-
.../network/netty/ItConnectionManagerTest.java | 8 +-
.../network/recovery/ItRecoveryHandshakeTest.java | 26 +-
.../network/scalecube/ItClusterServiceTest.java | 3 +-
.../scalecube/ItScaleCubeNetworkMessagingTest.java | 18 +-
.../internal/network/NetworkMessageTypes.java | 22 +-
.../network/handshake/HandshakeManager.java | 6 +-
.../network/handshake/HandshakeResult.java | 67 ++
.../network/message/FieldDescriptorMessage.java | 5 +
.../internal/network/message/InvokeRequest.java} | 22 +-
.../internal/network/message/InvokeResponse.java} | 22 +-
.../internal/network/netty/ConnectionManager.java | 29 +-
.../internal/network/netty/HandshakeHandler.java | 29 +-
.../internal/network/netty/MessageHandler.java | 13 +-
.../ignite/internal/network/netty/NettyClient.java | 7 +-
.../ignite/internal/network/netty/NettyServer.java | 8 +-
.../recovery/RecoveryClientHandshakeManager.java | 23 +-
.../recovery/RecoveryServerHandshakeManager.java | 21 +-
.../network/serialization/BuiltInType.java | 37 +-
.../network/serialization/ClassDescriptor.java | 120 +++-
.../serialization/ClassDescriptorFactory.java | 67 +-
.../serialization/ClassDescriptorRegistry.java | 32 +-
.../serialization/ClassIndexedDescriptors.java | 10 +
.../internal/network/serialization/Classes.java | 116 ++++
...ptors.java => CompositeDescriptorRegistry.java} | 33 +-
.../{Null.java => DescriptorRegistry.java} | 8 +-
.../network/serialization/FieldDescriptor.java | 36 +-
.../serialization/IdIndexedDescriptors.java | 18 +
....java => MapBackedClassIndexedDescriptors.java} | 14 +-
.../MapBackedIdIndexedDescriptors.java | 10 +-
.../PerSessionSerializationService.java | 35 +-
.../serialization/SerializationService.java | 6 +-
.../marshal/BuiltInContainerMarshallers.java | 70 ++-
.../serialization/marshal/BuiltInMarshalling.java | 60 +-
.../marshal/BuiltInNonContainerMarshallers.java | 31 +-
.../network/serialization/marshal/Classes.java | 48 --
.../marshal/DefaultFieldsReaderWriter.java | 9 +
.../marshal/DefaultUserObjectMarshaller.java | 351 ++++++-----
.../serialization/marshal/DescriptorResolver.java | 59 ++
.../marshal/ExternalizableMarshaller.java | 19 +-
.../serialization/marshal/FlaggedObjectIds.java | 51 ++
.../serialization/marshal/LocalDescriptors.java | 59 ++
.../serialization/marshal/MarshallingContext.java | 47 +-
.../marshal/MarshallingValidations.java | 67 ++
.../serialization/marshal/ProtocolMarshalling.java | 47 ++
.../serialization/marshal/ProxyMarshaller.java | 2 +-
.../marshal/SerializableInstantiation.java | 3 +-
.../marshal/StructuredObjectMarshaller.java | 101 ++-
.../{ValueReader.java => TypedValueReader.java} | 11 +-
.../serialization/marshal/TypedValueWriter.java | 9 +-
.../marshal/UnmarshallingContext.java | 53 +-
.../marshal/UosObjectInputStream.java | 74 ++-
.../marshal/UosObjectOutputStream.java | 73 ++-
.../marshal/UserObjectMarshaller.java | 16 +-
.../ignite/network/DefaultMessagingService.java | 348 +++++++++++
.../ignite/network/NettyBootstrapFactory.java | 12 +-
.../scalecube/DelegatingTransportFactory.java | 130 ----
.../scalecube/ScaleCubeClusterServiceFactory.java | 58 +-
.../ScaleCubeDirectMarshallerTransport.java | 4 +-
.../scalecube/ScaleCubeMessagingService.java | 160 -----
.../scalecube/ScaleCubeTopologyService.java | 21 +-
.../internal/network/netty/NettyClientTest.java | 14 +-
.../internal/network/netty/NettyServerTest.java | 9 +-
.../serialization/BuiltInDescriptorsTest.java | 36 +-
.../serialization/ClassDescriptorFactoryTest.java | 125 ++++
.../network/serialization/ClassesTest.java | 240 +++++++
...a => MapBackedClassIndexedDescriptorsTest.java} | 28 +-
.../MapBackedIdIndexedDescriptorsTest.java | 27 +-
.../network/serialization/MarshallableTest.java | 11 +-
.../network/serialization/marshal/ClassesTest.java | 101 ---
.../DefaultUserObjectMarshallerCommonTest.java | 4 +-
...rConcreteTypesKnownUpfrontOptimizationTest.java | 417 +++++++++++++
...erObjectMarshallerWithArbitraryObjectsTest.java | 16 +-
...efaultUserObjectMarshallerWithBuiltinsTest.java | 382 +++++++++---
...UserObjectMarshallerWithExternalizableTest.java | 10 +-
...shallerWithSerializableOverrideStreamsTest.java | 165 ++++-
...ltUserObjectMarshallerWithSerializableTest.java | 52 +-
.../marshal/FlaggedObjectIdsTest.java | 74 +++
.../marshal/MarshallingContextTest.java | 49 +-
.../marshal/ProtocolMarshallingTest.java | 121 ++++
...eNoArgConstructor.java => TestDescriptors.java} | 6 +-
.../network/serialization/marshal/Throwables.java | 8 +
.../MessageSerializationRegistryImplTest.java | 2 +-
.../Table/TupleGetBenchmarks.cs | 2 +-
.../dotnet/Apache.Ignite.Tests/IgniteTestsBase.cs | 34 +-
.../dotnet/Apache.Ignite.Tests/JavaServer.cs | 1 +
.../RawSocketConnectionTests.cs | 2 +-
.../Table/CustomTestIgniteTuple.cs | 6 +-
.../Apache.Ignite.Tests/Table/IgniteTupleTests.cs | 49 +-
.../Table/Poco.cs} | 19 +-
.../{TableTests.cs => RecordViewBinaryTests.cs} | 210 +++----
.../Table/RecordViewPocoTests.cs | 523 ++++++++++++++++
.../Apache.Ignite.Tests/Table/TablesTests.cs | 2 +-
.../Transactions/TransactionsTests.cs | 72 +--
.../Internal/Table/RecordBinaryView.cs | 688 ---------------------
.../Apache.Ignite/Internal/Table/RecordView.cs | 303 +++++++++
.../Serialization/IRecordSerializerHandler.cs | 57 ++
.../Table/Serialization/ObjectSerializerHandler.cs | 149 +++++
.../Table/Serialization/RecordSerializer.cs | 241 ++++++++
.../Table/Serialization/TupleSerializerHandler.cs | 118 ++++
.../dotnet/Apache.Ignite/Internal/Table/Table.cs | 227 ++++++-
.../dotnet/Apache.Ignite/Internal/Table/Tables.cs | 2 +-
.../TransactionExtensions.cs} | 35 +-
.../dotnet/Apache.Ignite/Table/IRecordView.cs | 2 +-
.../platforms/dotnet/Apache.Ignite/Table/ITable.cs | 12 +-
.../dotnet/Apache.Ignite/Table/IgniteTuple.cs | 21 +-
modules/platforms/dotnet/DEVNOTES.md | 3 +-
.../apache/ignite/raft/jraft/core/ItNodeTest.java | 141 +++--
.../java/org/apache/ignite/internal/raft/Loza.java | 16 +-
.../internal/raft/server/impl/JraftServerImpl.java | 17 +-
.../apache/ignite/raft/jraft/core/NodeImpl.java | 57 ++
.../ignite/raft/jraft/option/NodeOptions.java | 13 +
.../ignite/raft/jraft/rpc/RpcResponseFactory.java | 2 +-
.../raft/jraft/rpc/impl/IgniteRpcServer.java | 11 +-
.../raft/jraft/rpc/impl/RaftGroupServiceImpl.java | 26 +-
.../util/ExponentialBackoffTimeoutStrategy.java | 79 +++
.../raft/jraft/util/NoopTimeoutStrategy.java} | 13 +-
.../ignite/raft/jraft/util/TimeoutStrategy.java} | 16 +-
.../org/apache/ignite/raft/jraft/util/Utils.java | 2 +-
.../internal/raft/server/impl/RaftServerImpl.java | 10 +-
.../apache/ignite/raft/jraft/core/TestCluster.java | 3 +
.../ExponentialBackoffTimeoutStrategyTest.java | 54 ++
.../ignite/internal/rocksdb/ColumnFamily.java | 11 +
.../runner/app/AbstractSchemaChangeTest.java | 19 +-
.../internal/runner/app/ItNoThreadsLeftTest.java | 1 +
.../runner/app/ItTableApiContractTest.java | 10 +-
.../app/client/ItAbstractThinClientTest.java | 2 +-
.../runner/app/jdbc/ItJdbcConnectionSelfTest.java | 2 +-
.../internal/sql/engine/ItFunctionsTest.java | 53 +-
.../definition/builder/AbstractIndexBuilder.java | 3 +-
.../builder/ColumnDefinitionBuilderImpl.java | 3 +-
.../builder/HashIndexDefinitionBuilderImpl.java | 9 +-
.../builder/PrimaryKeyDefinitionBuilderImpl.java | 17 +-
.../builder/SortedIndexDefinitionBuilderImpl.java | 3 +-
.../builder/TableDefinitionBuilderImpl.java | 7 +-
.../marshaller/asm/AsmMarshallerGenerator.java | 2 +-
.../marshaller/asm/ColumnAccessCodeGenerator.java | 63 +-
.../asm/ObjectMarshallerCodeGenerator.java | 22 +-
.../internal/schema/ExpandableByteBufTest.java | 6 +-
.../builder/HashIndexDefinitionBuilderTest.java | 2 +-
.../SchemaConfigurationConverterTest.java | 2 +-
.../schema/marshaller/KvMarshallerTest.java | 126 ++--
.../internal/schema/marshaller/MapperTest.java | 115 ++--
.../schema/marshaller/RecordMarshallerTest.java | 94 +--
.../RecordMarshallerValidationsTest.java | 20 +-
modules/sql-engine/src/main/codegen/config.fmpp | 2 +-
.../src/main/codegen/includes/parserImpls.ftl | 6 +
.../sql/engine/exec/QueryTaskExecutorImpl.java | 2 +-
.../sql/engine/exec/ddl/DdlCommandHandler.java | 51 +-
.../internal/sql/engine/exec/exp/RexImpTable.java | 43 +-
.../sql/engine/exec/rel/HashAggregateNode.java | 12 +-
.../sql/engine/message/MessageServiceImpl.java | 3 +-
.../sql/engine/exec/rel/AbstractExecutionTest.java | 103 ++-
.../sql/engine/exec/rel/BaseAggregateTest.java | 12 +-
.../sql/engine/exec/rel/ExecutionTest.java | 18 +-
.../exec/rel/HashAggregateExecutionTest.java | 101 ++-
.../rel/HashAggregateSingleGroupExecutionTest.java | 2 +
.../exec/rel/HashIndexSpoolExecutionTest.java | 2 +-
.../engine/exec/rel/MergeJoinExecutionTest.java | 2 +-
.../exec/rel/NestedLoopJoinExecutionTest.java | 2 +-
.../engine/exec/rel/TableSpoolExecutionTest.java | 21 +-
.../sql/engine/planner/TableSpoolPlannerTest.java | 60 --
.../storage/AbstractPartitionStorageTest.java | 13 +-
.../storage/rocksdb/ColumnFamilyUtils.java | 34 +-
.../storage/rocksdb/RocksDbMetaStorage.java | 138 +++++
.../storage/rocksdb/RocksDbPartitionStorage.java | 174 ++++--
.../storage/rocksdb/RocksDbTableStorage.java | 105 ++--
...eTest.java => RocksDbPartitionStorageTest.java} | 10 +-
.../storage/rocksdb/RocksDbTableStorageTest.java | 202 ++++++
.../index/RocksDbSortedIndexStorageTest.java | 2 +-
.../distributed/ItInternalTableScanTest.java | 4 +-
.../ignite/distributed/ItTablePersistenceTest.java | 7 +-
.../distributed/ItTxDistributedTestSingleNode.java | 12 +-
.../internal/table/AbstractRowTupleAdapter.java | 7 +-
.../internal/table/distributed/TableManager.java | 32 +-
.../distributed/storage/InternalTableImpl.java | 23 +-
.../internal/table/InteropOperationsTest.java | 4 +-
.../table/KeyValueBinaryViewOperationsTest.java | 32 +-
.../KeyValueViewOperationsSimpleSchemaTest.java | 4 +-
.../internal/table/KeyValueViewOperationsTest.java | 56 +-
.../internal/table/MutableRowTupleAdapterTest.java | 48 +-
.../table/RecordBinaryViewOperationsTest.java | 48 +-
.../internal/table/RecordViewOperationsTest.java | 54 +-
.../ignite/internal/table/TxAbstractTest.java | 8 +-
.../table/impl/DummyInternalTableImpl.java | 5 +-
.../internal/table/impl/TestTupleBuilder.java | 7 +-
.../org/apache/ignite/table/TupleImplTest.java | 4 +-
modules/table/tech-notes/rebalance.md | 199 ++++++
.../ignite/internal/tx/impl/TxManagerImpl.java | 5 +-
parent/pom.xml | 12 +-
230 files changed, 8915 insertions(+), 3659 deletions(-)
create mode 100644 examples/src/main/java/org/apache/ignite/example/table/KeyValueViewPojoExample.java
create mode 100644 examples/src/main/java/org/apache/ignite/example/table/RecordViewPojoExample.java
create mode 100644 examples/src/main/java/org/apache/ignite/example/tx/TransactionsExample.java
copy examples/src/test/java/org/apache/ignite/example/{table/TableExamplesTest.java => tx/TransactionsExamplesTest.java} (69%)
copy modules/{configuration-api/src/main/java/org/apache/ignite/configuration/notifications/ConfigurationListener.java => configuration/src/main/java/org/apache/ignite/internal/configuration/notifications/ConfigurationStorageRevisionListener.java} (67%)
create mode 100644 modules/core/src/main/java/org/apache/ignite/internal/util/IgniteObjectName.java
create mode 100644 modules/network/src/main/java/org/apache/ignite/internal/network/handshake/HandshakeResult.java
copy modules/network/src/{test/java/org/apache/ignite/internal/network/processor/SerializationOrderMessage.java => main/java/org/apache/ignite/internal/network/message/InvokeRequest.java} (66%)
copy modules/network/src/{test/java/org/apache/ignite/internal/network/processor/SerializationOrderMessage.java => main/java/org/apache/ignite/internal/network/message/InvokeResponse.java} (66%)
create mode 100644 modules/network/src/main/java/org/apache/ignite/internal/network/serialization/Classes.java
rename modules/network/src/main/java/org/apache/ignite/internal/network/serialization/{CompositeIdIndexedDescriptors.java => CompositeDescriptorRegistry.java} (56%)
copy modules/network/src/main/java/org/apache/ignite/internal/network/serialization/{Null.java => DescriptorRegistry.java} (86%)
copy modules/network/src/main/java/org/apache/ignite/internal/network/serialization/{MapBackedIdIndexedDescriptors.java => MapBackedClassIndexedDescriptors.java} (67%)
delete mode 100644 modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/Classes.java
create mode 100644 modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/DescriptorResolver.java
create mode 100644 modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/FlaggedObjectIds.java
create mode 100644 modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/LocalDescriptors.java
create mode 100644 modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/MarshallingValidations.java
copy modules/network/src/main/java/org/apache/ignite/internal/network/serialization/marshal/{ValueReader.java => TypedValueReader.java} (69%)
create mode 100644 modules/network/src/main/java/org/apache/ignite/network/DefaultMessagingService.java
delete mode 100644 modules/network/src/main/java/org/apache/ignite/network/scalecube/DelegatingTransportFactory.java
delete mode 100644 modules/network/src/main/java/org/apache/ignite/network/scalecube/ScaleCubeMessagingService.java
create mode 100644 modules/network/src/test/java/org/apache/ignite/internal/network/serialization/ClassesTest.java
copy modules/network/src/test/java/org/apache/ignite/internal/network/serialization/{MapBackedIdIndexedDescriptorsTest.java => MapBackedClassIndexedDescriptorsTest.java} (55%)
delete mode 100644 modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/ClassesTest.java
create mode 100644 modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/DefaultUserObjectMarshallerConcreteTypesKnownUpfrontOptimizationTest.java
create mode 100644 modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/FlaggedObjectIdsTest.java
create mode 100644 modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/ProtocolMarshallingTest.java
copy modules/network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/{WithPrivateNoArgConstructor.java => TestDescriptors.java} (88%)
copy modules/platforms/dotnet/{Apache.Ignite/Internal/Proto/ProtoCommon.cs => Apache.Ignite.Tests/Table/Poco.cs} (75%)
rename modules/platforms/dotnet/Apache.Ignite.Tests/Table/{TableTests.cs => RecordViewBinaryTests.cs} (57%)
create mode 100644 modules/platforms/dotnet/Apache.Ignite.Tests/Table/RecordViewPocoTests.cs
delete mode 100644 modules/platforms/dotnet/Apache.Ignite/Internal/Table/RecordBinaryView.cs
create mode 100644 modules/platforms/dotnet/Apache.Ignite/Internal/Table/RecordView.cs
create mode 100644 modules/platforms/dotnet/Apache.Ignite/Internal/Table/Serialization/IRecordSerializerHandler.cs
create mode 100644 modules/platforms/dotnet/Apache.Ignite/Internal/Table/Serialization/ObjectSerializerHandler.cs
create mode 100644 modules/platforms/dotnet/Apache.Ignite/Internal/Table/Serialization/RecordSerializer.cs
create mode 100644 modules/platforms/dotnet/Apache.Ignite/Internal/Table/Serialization/TupleSerializerHandler.cs
copy modules/platforms/dotnet/Apache.Ignite/Internal/{Proto/MessagePackUtil.cs => Transactions/TransactionExtensions.cs} (53%)
create mode 100644 modules/raft/src/main/java/org/apache/ignite/raft/jraft/util/ExponentialBackoffTimeoutStrategy.java
copy modules/{network/src/test/java/org/apache/ignite/internal/network/serialization/marshal/EnumWithAnonClassesForMembers.java => raft/src/main/java/org/apache/ignite/raft/jraft/util/NoopTimeoutStrategy.java} (79%)
copy modules/{api/src/main/java/org/apache/ignite/binary/BinaryObject.java => raft/src/main/java/org/apache/ignite/raft/jraft/util/TimeoutStrategy.java} (72%)
create mode 100644 modules/raft/src/test/java/org/apache/ignite/raft/jraft/util/ExponentialBackoffTimeoutStrategyTest.java
create mode 100644 modules/storage-rocksdb/src/main/java/org/apache/ignite/internal/storage/rocksdb/RocksDbMetaStorage.java
rename modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/{RocksDbStorageTest.java => RocksDbPartitionStorageTest.java} (91%)
create mode 100644 modules/storage-rocksdb/src/test/java/org/apache/ignite/internal/storage/rocksdb/RocksDbTableStorageTest.java
create mode 100644 modules/table/tech-notes/rebalance.md