krareT / pub-task

Terark public developing
MIT License
3 stars 6 forks source link

terark_zip_table: store GroupSize of Multi-Value pack in separated array #37

Open rockeet opened 5 years ago

rockeet commented 5 years ago

Priority: Low

Now terark_zip_table has zvType, but we don't know GroupSize of each MultiValue pack before unzip it. To get GroupSize before unzip with succinct:

  1. Needs 2-bit rank: rank0, rank1, rank2, rank3
  2. Build RankIndex for zvType
  3. Store GroupSize in a separated array

High level code:

size_t groupIndex = zvType.rank3(recId); // 3 == ZipValueType::kMulti
groupSize = groupSizeVec[groupIndex];
// ....