On Mon, 2012-05-14 at 19:20 +0200, Joel Reardon wrote: > The long long is divided as follows: > 32 bits for the (KSA-relative) LEB number, 32 bits for the offset in the > leb where the key is found. So its the same as the lnum/offs for the > current one. Theres substancial compression though, that is available, > since theres likely not more than 2^^32 LEBS for the KSA and the number of > bits needed for key offset is LEB_SHIFT - 4. > > Is 32 bits sufficient to address all keys: > one key per datanode means 4096 * 2^32 = 2^44, so only 16 TB available > for 32 bit key addresses. > > Though there is similar waste for lnum/offs as well. Perhaps zbranches can > be stored as a u8[] and demarshalled with bit-op macros when needed for > computations. OK, thanks for explanation. Why not to then store 2x32-bit fields instead, which is consistent with the current style? Why "long long"? -- Best Regards, Artem Bityutskiy