#include <CellStoreV1.h>
Classes | |
class | IndexBuilder |
Public Member Functions | |
CellStoreV1 (Filesystem *filesys) | |
virtual | ~CellStoreV1 () |
void | create (const char *fname, size_t max_entries, PropertiesPtr &props, const TableIdentifier *table_id=0) override |
Creates a new cell store. More... | |
void | add (const Key &key, const ByteString value) override |
Inserts a key/value pair into the cell list. More... | |
void | finalize (TableIdentifier *table_identifier) override |
Finalizes the creation of a cell store, by writing block index and metadata trailer. More... | |
void | open (const String &fname, const String &start_row, const String &end_row, int32_t fd, int64_t file_length, CellStoreTrailer *trailer) override |
Opens a cell store with possibly a restricted view. More... | |
int64_t | get_blocksize () override |
Returns the block size used for this cell store. More... | |
bool | may_contain (const void *ptr, size_t len) |
bool | may_contain (const String &key) |
bool | may_contain (ScanContext *scan_ctx) override |
Bloom filter lookup. More... | |
uint64_t | disk_usage () override |
Returns the disk used by this cell store. More... | |
float | compression_ratio () override |
Returns block compression ratio of this cell store. More... | |
int64_t | get_total_entries () override |
Returns the number of key/value pairs in the cell store. More... | |
std::string & | get_filename () override |
Pathname of cell store file. More... | |
int | get_file_id () override |
Returns a unique identifier which identifies the underlying file for caching purposes. More... | |
CellListScannerPtr | create_scanner (ScanContext *scan_ctx) override |
Creates a scanner on this cell list. More... | |
BlockCompressionCodec * | create_block_compression_codec () override |
Creates a block compression codec suitable for decompressing the cell store's blocks. More... | |
void | display_block_info () override |
Displays block information to stdout. More... | |
int64_t | end_of_last_block () override |
Returns the offset of the end of the last block in the cell store. More... | |
size_t | bloom_filter_size () override |
Return Bloom filter size. More... | |
int64_t | bloom_filter_memory_used () override |
Returns the amount of memory consumed by the bloom filter. More... | |
int64_t | block_index_memory_used () override |
Returns the amount of memory consumed by the block index. More... | |
uint64_t | purge_indexes () override |
Purges bloom filter and block indexes. More... | |
bool | restricted_range () override |
Returns true if the cellstore was opened with a restricted range. More... | |
int32_t | get_fd () override |
Returns the open file descriptor for the CellStore file. More... | |
int32_t | reopen_fd () override |
Closes and reopens the underlying CellStore file. More... | |
CellStoreTrailer * | get_trailer () override |
Return a pointer to the trailer object for this cell store. More... | |
uint16_t | block_header_format () override |
Public Member Functions inherited from Hypertable::CellStore | |
CellStore () | |
virtual | ~CellStore () |
virtual void | split_row_estimate_data (SplitRowDataMapT &split_row_data) |
Populates split_row_data with unique row and count estimates from block index. More... | |
virtual void | populate_index_pseudo_table_scanner (CellListScannerBuffer *scanner) |
Populates scanner with key/value pairs generated from CellStore index. More... | |
virtual void | rescope (const String &start_row, const String &end_row) |
virtual size_t | block_count () |
Returns the number of CellStore blocks covered by this object. More... | |
virtual KeyDecompressor * | create_key_decompressor () |
Creates a key decompressor suitable for decompressing the keys stored in this cell store. More... | |
virtual void | set_replaced_files (const std::vector< String > &old_files) |
Sets the cell store files replaced by this CellStore. More... | |
virtual const std::vector < String > & | get_replaced_files () |
Returns all the cell store files replaced by this CellStore. More... | |
virtual void | get_index_memory_stats (IndexMemoryStats *statsp) |
Returns amount of purgeable index memory available. More... | |
uint64_t | bytes_read () |
Returns the number of "uncompressed" bytes read from the underlying filesystem. More... | |
void | decrement_index_refcount () |
Decrement index reference count. More... | |
Public Member Functions inherited from Hypertable::CellList | |
virtual | ~CellList () |
virtual const char * | get_start_row () |
Returns the start row of this cell list. More... | |
virtual const char * | get_end_row () |
Returns the end row of this cell list. More... | |
Protected Types | |
typedef BlobHashSet | BloomFilterItems |
Protected Member Functions | |
void | create_bloom_filter (bool is_approx=false) |
void | load_bloom_filter () |
void | load_block_index () |
Additional Inherited Members | |
Public Types inherited from Hypertable::CellList | |
typedef std::pair< const char *, int64_t > | SplitRowDataValue |
typedef StlAllocator < SplitRowDataValue > | SplitRowDataAlloc |
typedef std::map< const char *, int64_t, LtCstr, SplitRowDataAlloc > | SplitRowDataMapT |
Static Public Attributes inherited from Hypertable::CellStore | |
static const char | DATA_BLOCK_MAGIC [10] |
static const char | INDEX_FIXED_BLOCK_MAGIC [10] |
static const char | INDEX_VARIABLE_BLOCK_MAGIC [10] |
Definition at line 54 of file CellStoreV1.h.
|
protected |
Definition at line 132 of file CellStoreV1.h.
CellStoreV1::CellStoreV1 | ( | Filesystem * | filesys | ) |
Definition at line 58 of file CellStoreV1.cc.
|
virtual |
Definition at line 69 of file CellStoreV1.cc.
|
overridevirtual |
Inserts a key/value pair into the cell list.
key | key object |
value | ByteString representing value |
Implements Hypertable::CellStore.
Definition at line 281 of file CellStoreV1.cc.
|
overridevirtual |
Implements Hypertable::CellStore.
Definition at line 777 of file CellStoreV1.cc.
|
inlineoverridevirtual |
Returns the amount of memory consumed by the block index.
Implements Hypertable::CellStore.
Definition at line 106 of file CellStoreV1.h.
|
inlineoverridevirtual |
Returns the amount of memory consumed by the bloom filter.
Implements Hypertable::CellStore.
Definition at line 105 of file CellStoreV1.h.
|
inlineoverridevirtual |
Return Bloom filter size.
Implements Hypertable::CellStore.
Definition at line 104 of file CellStoreV1.h.
|
inlineoverridevirtual |
Returns block compression ratio of this cell store.
Implements Hypertable::CellStore.
Definition at line 96 of file CellStoreV1.h.
|
overridevirtual |
Creates a new cell store.
fname | name of file to contain the cell store |
max_entries | maximum number of entries the cell store is expected to have |
props | cellstore specific properties |
table_id | Table identifier |
Implements Hypertable::CellStore.
Definition at line 109 of file CellStoreV1.cc.
|
overridevirtual |
Creates a block compression codec suitable for decompressing the cell store's blocks.
Implements Hypertable::CellStore.
Definition at line 87 of file CellStoreV1.cc.
|
protected |
Definition at line 173 of file CellStoreV1.cc.
|
overridevirtual |
Creates a scanner on this cell list.
scan_ctx | smart pointer to scan context |
Reimplemented from Hypertable::CellStore.
Definition at line 93 of file CellStoreV1.cc.
|
inlineoverridevirtual |
Returns the disk used by this cell store.
If the cell store is opened with a restricted range, then it returns an estimate of the disk used by that range.
Implements Hypertable::CellStore.
Definition at line 90 of file CellStoreV1.h.
|
overridevirtual |
Displays block information to stdout.
Implements Hypertable::CellStore.
Definition at line 768 of file CellStoreV1.cc.
|
inlineoverridevirtual |
Returns the offset of the end of the last block in the cell store.
Implements Hypertable::CellStore.
Definition at line 103 of file CellStoreV1.h.
|
overridevirtual |
Finalizes the creation of a cell store, by writing block index and metadata trailer.
table_identifier | table identifier |
Chop the Index buffers down to the exact length
Write fixed index
Write variable index
Set up index
close file for writing
Set file length
Re-open file for reading
Implements Hypertable::CellStore.
Definition at line 372 of file CellStoreV1.cc.
|
inlineoverridevirtual |
Returns the block size used for this cell store.
The block size is the amount of uncompressed key/value pairs to collect before compressing and storing as a compressed block in the cell store.
Implements Hypertable::CellStore.
Definition at line 82 of file CellStoreV1.h.
|
inlineoverridevirtual |
Returns the open file descriptor for the CellStore file.
Implements Hypertable::CellStore.
Definition at line 110 of file CellStoreV1.h.
|
inlineoverridevirtual |
Returns a unique identifier which identifies the underlying file for caching purposes.
Implements Hypertable::CellStore.
Definition at line 99 of file CellStoreV1.h.
|
inlineoverridevirtual |
Pathname of cell store file.
Implements Hypertable::CellStore.
Definition at line 98 of file CellStoreV1.h.
|
inlineoverridevirtual |
Returns the number of key/value pairs in the cell store.
Implements Hypertable::CellStore.
Definition at line 97 of file CellStoreV1.h.
|
inlineoverridevirtual |
Return a pointer to the trailer object for this cell store.
Implements Hypertable::CellStore.
Definition at line 123 of file CellStoreV1.h.
|
protected |
Read index data
inflate fixed index
inflate variable index
Set up index
Definition at line 623 of file CellStoreV1.cc.
|
protected |
Definition at line 200 of file CellStoreV1.cc.
bool CellStoreV1::may_contain | ( | const void * | ptr, |
size_t | len | ||
) |
Definition at line 752 of file CellStoreV1.cc.
|
inline |
Definition at line 84 of file CellStoreV1.h.
|
overridevirtual |
Bloom filter lookup.
scan_ctx | Scan context |
scan_ctx
Implements Hypertable::CellStore.
Definition at line 715 of file CellStoreV1.cc.
|
overridevirtual |
Opens a cell store with possibly a restricted view.
When a range splits, the cell stores that comprise the range get shared between the two newly created ranges. This method allows each of the two ranges to open the same cell store but view different portions of it.
fname | pathname of file containing cell store |
start_row | restricts view of this store to key/value pairs that are greater than this value |
end_row | restricts view of this store to key/value pairs that are less than or equal to this value |
fd | cell store file descriptor |
file_length | length of cell store file |
trailer | pointer to trailer object |
Sanity check trailer
Implements Hypertable::CellStore.
Definition at line 591 of file CellStoreV1.cc.
|
overridevirtual |
Purges bloom filter and block indexes.
Implements Hypertable::CellStore.
Definition at line 255 of file CellStoreV1.cc.
|
inlineoverridevirtual |
Closes and reopens the underlying CellStore file.
Implements Hypertable::CellStore.
Definition at line 115 of file CellStoreV1.h.
|
inlineoverridevirtual |
Returns true if the cellstore was opened with a restricted range.
Implements Hypertable::CellStore.
Definition at line 108 of file CellStoreV1.h.
|
protected |
Definition at line 139 of file CellStoreV1.h.
|
protected |
Definition at line 158 of file CellStoreV1.h.
|
protected |
Definition at line 159 of file CellStoreV1.h.
|
protected |
Definition at line 157 of file CellStoreV1.h.
|
protected |
Definition at line 142 of file CellStoreV1.h.
|
protected |
Definition at line 152 of file CellStoreV1.h.
|
protected |
Definition at line 141 of file CellStoreV1.h.
|
protected |
Definition at line 154 of file CellStoreV1.h.
|
protected |
Definition at line 149 of file CellStoreV1.h.
|
protected |
Definition at line 135 of file CellStoreV1.h.
|
protected |
Definition at line 150 of file CellStoreV1.h.
|
protected |
Definition at line 148 of file CellStoreV1.h.
|
protected |
Definition at line 136 of file CellStoreV1.h.
|
protected |
Definition at line 134 of file CellStoreV1.h.
|
protected |
Definition at line 143 of file CellStoreV1.h.
|
protected |
Definition at line 137 of file CellStoreV1.h.
|
protected |
Definition at line 138 of file CellStoreV1.h.
|
protected |
Definition at line 147 of file CellStoreV1.h.
|
protected |
Definition at line 160 of file CellStoreV1.h.
|
protected |
Definition at line 155 of file CellStoreV1.h.
|
protected |
Definition at line 146 of file CellStoreV1.h.
|
protected |
Definition at line 145 of file CellStoreV1.h.
|
protected |
Definition at line 161 of file CellStoreV1.h.
|
protected |
Definition at line 144 of file CellStoreV1.h.
|
protected |
Definition at line 140 of file CellStoreV1.h.
|
protected |
Definition at line 153 of file CellStoreV1.h.
|
protected |
Definition at line 151 of file CellStoreV1.h.