unsigned n = 0;
size_t bound = 0;
- denc(struct_v, bound);
- denc_varint(0, bound);
bool must_reshard = false;
for (auto p = start;
p != extent_map.end() && p->logical_offset < end;
request_reshard(p->blob_start(), p->blob_end());
must_reshard = true;
}
- denc_varint(0, bound); // blobid
- denc_varint(0, bound); // logical_offset
- denc_varint(0, bound); // len
- denc_varint(0, bound); // blob_offset
+ if (!must_reshard) {
+ denc_varint(0, bound); // blobid
+ denc_varint(0, bound); // logical_offset
+ denc_varint(0, bound); // len
+ denc_varint(0, bound); // blob_offset
- p->blob->bound_encode(
- bound,
- struct_v,
- p->blob->shared_blob->get_sbid(),
- false);
+ p->blob->bound_encode(
+ bound,
+ struct_v,
+ p->blob->shared_blob->get_sbid(),
+ false);
+ }
}
if (must_reshard) {
return true;
}
+ denc(struct_v, bound);
+ denc_varint(0, bound); // number of extents
+
{
auto app = bl.get_contiguous_appender(bound);
denc(struct_v, app);