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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions