Skip to content

Upgrade: HomeObject Meta Service Consumers should have version defined in its super block. #283

@yamingk

Description

@yamingk

Right now only Shard Meta Blk has version defined (in DataHeader), others seems don't have version defined yet.

Existing consumers:

231         HomeStore::instance()->meta_service().register_handler(
232             _pg_meta_name,
233             [this](homestore::meta_blk* mblk, sisl::byte_view buf, size_t size) {
234                 on_pg_meta_blk_found(std::move(buf), voidptr_cast(mblk));
235             },
236             [this](bool success) { on_pg_meta_blk_recover_completed(success); }, true);
237         HomeStore::instance()->meta_service().read_sub_sb(_pg_meta_name);
238
239         // recover shard
240         HomeStore::instance()->meta_service().register_handler(
241             _shard_meta_name,
242             [this](homestore::meta_blk* mblk, sisl::byte_view buf, size_t size) { on_shard_meta_blk_found(mblk, buf); },  // <<<< already have version defined in DataHeader
243             [this](bool success) { on_shard_meta_blk_recover_completed(success); }, true);
244         HomeStore::instance()->meta_service().read_sub_sb(_shard_meta_name);
245
246         // recover snapshot context
247         HomeStore::instance()->meta_service().register_handler(
248             _snp_ctx_meta_name,
249             [this](meta_blk* mblk, sisl::byte_view buf, size_t size) { on_snp_ctx_meta_blk_found(mblk, buf); },
250             [this](bool success) { on_snp_ctx_meta_blk_recover_completed(success); }, true);
251         HomeStore::instance()->meta_service().read_sub_sb(_snp_ctx_meta_name);
252
253         // recover snapshot transmission progress info
254         HomeStore::instance()->meta_service().register_handler(
255             _snp_rcvr_meta_name,
256             [this](meta_blk* mblk, sisl::byte_view buf, size_t size) { on_snp_rcvr_meta_blk_found(mblk, buf); },
257             [this](bool success) { on_snp_rcvr_meta_blk_recover_completed(success); }, true);
258         HomeStore::instance()->meta_service().read_sub_sb(_snp_rcvr_meta_name);
259
260         HomeStore::instance()->meta_service().register_handler(
261             _snp_rcvr_shard_list_meta_name,
262             [this](meta_blk* mblk, sisl::byte_view buf, size_t size) {
263                 on_snp_rcvr_shard_list_meta_blk_found(mblk, buf);
264             },
265             [this](bool success) { on_snp_rcvr_shard_list_meta_blk_recover_completed(success); }, true);
266         HomeStore::instance()->meta_service().read_sub_sb(_snp_rcvr_shard_list_meta_name);

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions