Igor Canadi 9ab5adfc59 New BlockBasedTable version -- better compressed block format
Summary:
This diff adds BlockBasedTable format_version = 2. New format version brings better compressed block format for these compressions:
1) Zlib -- encode decompressed size in compressed block header
2) BZip2 -- encode decompressed size in compressed block header
3) LZ4 and LZ4HC -- instead of doing memcpy of size_t encode size as varint32. memcpy is very bad because the DB is not portable accross big/little endian machines or even platforms where size_t might be 8 or 4 bytes.

It does not affect format for snappy.

If you write a new database with format_version = 2, it will not be readable by RocksDB versions before 3.10. DB::Open() will return corruption in that case.

Test Plan:
Added a new test in db_test.
I will also run db_bench and verify VSIZE when block_cache == 1GB

Reviewers: yhchiang, rven, MarkCallaghan, dhruba, sdong

Reviewed By: sdong

Subscribers: dhruba, leveldb

Differential Revision: https://reviews.facebook.net/D31461
2015-01-14 16:24:24 -08:00
..
2014-10-31 11:59:54 -07:00
2014-09-04 16:18:36 -07:00
2014-12-22 12:04:45 +01:00
2014-01-27 14:49:10 -08:00
2014-11-07 11:50:34 -08:00
2014-11-07 11:50:34 -08:00
2015-01-13 12:27:28 -08:00
2014-11-06 11:14:28 -08:00
2014-11-06 11:14:28 -08:00
2014-11-06 11:14:28 -08:00
2014-10-31 11:59:54 -07:00
2014-12-22 12:04:45 +01:00
2014-11-10 17:39:38 -05:00
2014-09-13 14:14:10 -07:00
2014-09-12 16:23:58 -07:00
2014-09-12 16:23:58 -07:00