diff --git a/conanfile.py b/conanfile.py index 950aa79d..e62837a3 100644 --- a/conanfile.py +++ b/conanfile.py @@ -9,7 +9,7 @@ class HomeObjectConan(ConanFile): name = "homeobject" - version = "2.0.11" + version = "2.0.12" homepage = "https://github.com/eBay/HomeObject" description = "Blob Store built on HomeReplication" diff --git a/src/lib/homestore_backend/CMakeLists.txt b/src/lib/homestore_backend/CMakeLists.txt index 2440929c..32ac26c7 100644 --- a/src/lib/homestore_backend/CMakeLists.txt +++ b/src/lib/homestore_backend/CMakeLists.txt @@ -40,6 +40,8 @@ settings_gen_cpp( ${CMAKE_CURRENT_BINARY_DIR}/generated/ "${PROJECT_NAME}_homestore" hs_backend_config.fbs + resync_pg_shard.fbs + resync_blob_data.fbs ) add_subdirectory(tests) diff --git a/src/lib/homestore_backend/resync_blob_data.fbs b/src/lib/homestore_backend/resync_blob_data.fbs new file mode 100644 index 00000000..49695629 --- /dev/null +++ b/src/lib/homestore_backend/resync_blob_data.fbs @@ -0,0 +1,19 @@ +native_include "sisl/utility/non_null_ptr.hpp"; + +namespace homeobject; + +table BlobData { + shard_id : uint64; + blob_id : uint64; + user_key_size : uint32; + data_size : uint32; + user_key : [ubyte]; + data : [ubyte]; +} + +table ResyncBlobDataBatch { + data_array : [BlobData]; + end_of_batch: ubyte; +} + +root_type ResyncBlobDataBatch; diff --git a/src/lib/homestore_backend/resync_pg_shard.fbs b/src/lib/homestore_backend/resync_pg_shard.fbs new file mode 100644 index 00000000..00a76dec --- /dev/null +++ b/src/lib/homestore_backend/resync_pg_shard.fbs @@ -0,0 +1,32 @@ +native_include "sisl/utility/non_null_ptr.hpp"; + +namespace homeobject; + +table Member { + uuid : [ubyte]; + name : [ubyte]; +} + +table PGInfoEntry { + pg_id : uint32; // only low 16 bit is used for pg_id; + priority : int32; // pg priority; + replica_set_uuid : [ubyte]; // uuid of replica set + members : [Member]; // peers; +} + +table ShardInfoEntry { + state : ubyte; // shard state; + pg_id : uint32; // pg id which this shard belongs to; + shard_id : uint64; // shard id to be created with; + shard_size : uint64; // shard size; + created_time : uint64; // shard creation time + last_modified_time : uint64; // shard last modify time + created_lsn : int64; // lsn on shard creation; +} + +table ResyncPGShardInfo { + pg : PGInfoEntry; + shards : [ShardInfoEntry]; +} + +root_type ResyncPGShardInfo;