Commit 078b9ea
Faster value decoding
Summary:
Similar to integer key decoding improvement, but for values:
* Remove dependency to field* and cache those information in Rdb_field_encoder
* No more Field::move_field - just write to buffer directly
We were originally planning to use Rdb_protocol_value_decoder for MySQL bypass project to eliminate overhead of decoding to integer then convert to string, but in practice it probably makes little difference and it is not going to be needed when we go with bypass RPC (which is thrift binary protocol). So this changes removes Rdb_protocol_value_decoder completely.
One thing that worth mentioning is I've unified pack_length and pack_length_in_rec because they are essentially identical in our scenarios and in the case they could be different (more packed BITS format that borrows bits from null byte when storage engine supports it) we don't really support it at all, so unifying it to avoid confusion and assert it.
With this MyRocks is now either faster or on par with InnoDB when it comes to SELECT integer columns stored in value.
NOTE:FDO data needs to be updated for this diff in order to take full advantage of this change.
Reference Patch: facebook@f4cefba
Reviewed By: Pushapgl
Differential Revision: D258805431 parent 311519b commit 078b9ea
File tree
4 files changed
+90
-331
lines changed- storage/rocksdb
4 files changed
+90
-331
lines changed
0 commit comments