-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Description
Goals:
- We use 16 bits for mask space in a key/value pair, but use only 6 different flags exclusively on either values or keys. Reduce mask size to one byte (in key) and free up one byte in value
- maybe move all flags to value to remove one byte from expiry table key additionally
- Reduce code complexity
- Use different types for keys and values, inheriting both compact object, but hiding non-relevant functions and simiplifying logic
- Review old string management code and simplify it
- Review externally induced interface members (returning directly RObjWrapper, stream/sbf functions) that should be kept in familiy code and simplified
-> save ony byte per slot, have simpler object interface and hopefully a few hundred lines less code
Steps:
- Remove async delete flag usage (can be replaced by a function parameter...)
- Refactor small string
- Tidy up huffman code, encoding code_
- Remove GetFirstByte
- Remove raw access to RObjWrapper, remove unnecessary functions (InlineLen(), allows empty state, etc)
- Remove
OBJ_ENCODING_INTand similar, its never used - Move encoding to tagbyte_
- Change huffman_enc to is_key and rebase all other usage around it
- Use basic different types to catch sloppy type usage (there are cases), set is_key implicitily
- Move all flags to key object
- Review Free/SetMeta/Reset/etc functionality to be duplicate free
Metadata
Metadata
Assignees
Labels
No labels