Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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. Reviewed By: luqun Differential Revision: D24527543 fbshipit-source-id: 560bdea8cf3
- Loading branch information