#include <CellStoreV2.h>
Classes | |
class | IndexBuilder |
Public Member Functions | |
CellStoreV2 (Filesystem *filesys) | |
virtual | ~CellStoreV2 () |
void | create (const char *fname, size_t max_entries, PropertiesPtr &props, const TableIdentifier *table_identifier=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 CellStoreV2.h.
|
protected |
Definition at line 133 of file CellStoreV2.h.
CellStoreV2::CellStoreV2 | ( | Filesystem * | filesys | ) |
Definition at line 58 of file CellStoreV2.cc.
|
virtual |
Definition at line 70 of file CellStoreV2.cc.
|
overridevirtual |
Inserts a key/value pair into the cell list.
key | key object |
value | ByteString representing value |
Implements Hypertable::CellStore.
Definition at line 308 of file CellStoreV2.cc.
|
overridevirtual |
Implements Hypertable::CellStore.
Definition at line 808 of file CellStoreV2.cc.
|
inlineoverridevirtual |
Returns the amount of memory consumed by the block index.
Implements Hypertable::CellStore.
Definition at line 107 of file CellStoreV2.h.
|
inlineoverridevirtual |
Returns the amount of memory consumed by the bloom filter.
Implements Hypertable::CellStore.
Definition at line 106 of file CellStoreV2.h.
|
inlineoverridevirtual |
Return Bloom filter size.
Implements Hypertable::CellStore.
Definition at line 105 of file CellStoreV2.h.
|
inlineoverridevirtual |
Returns block compression ratio of this cell store.
Implements Hypertable::CellStore.
Definition at line 97 of file CellStoreV2.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 110 of file CellStoreV2.cc.
|
overridevirtual |
Creates a block compression codec suitable for decompressing the cell store's blocks.
Implements Hypertable::CellStore.
Definition at line 88 of file CellStoreV2.cc.
|
protected |
Definition at line 193 of file CellStoreV2.cc.
|
overridevirtual |
Creates a scanner on this cell list.
scan_ctx | smart pointer to scan context |
Reimplemented from Hypertable::CellStore.
Definition at line 94 of file CellStoreV2.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 91 of file CellStoreV2.h.
|
overridevirtual |
Displays block information to stdout.
Implements Hypertable::CellStore.
Definition at line 799 of file CellStoreV2.cc.
|
inlineoverridevirtual |
Returns the offset of the end of the last block in the cell store.
Implements Hypertable::CellStore.
Definition at line 104 of file CellStoreV2.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 399 of file CellStoreV2.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 83 of file CellStoreV2.h.
|
inlineoverridevirtual |
Returns the open file descriptor for the CellStore file.
Implements Hypertable::CellStore.
Definition at line 111 of file CellStoreV2.h.
|
inlineoverridevirtual |
Returns a unique identifier which identifies the underlying file for caching purposes.
Implements Hypertable::CellStore.
Definition at line 100 of file CellStoreV2.h.
|
inlineoverridevirtual |
Pathname of cell store file.
Implements Hypertable::CellStore.
Definition at line 99 of file CellStoreV2.h.
|
inlineoverridevirtual |
Returns the number of key/value pairs in the cell store.
Implements Hypertable::CellStore.
Definition at line 98 of file CellStoreV2.h.
|
inlineoverridevirtual |
Return a pointer to the trailer object for this cell store.
Implements Hypertable::CellStore.
Definition at line 124 of file CellStoreV2.h.
|
protected |
Read index data
inflate fixed index
inflate variable index
Set up index
Definition at line 654 of file CellStoreV2.cc.
|
protected |
Definition at line 225 of file CellStoreV2.cc.
bool CellStoreV2::may_contain | ( | const void * | ptr, |
size_t | len | ||
) |
Definition at line 783 of file CellStoreV2.cc.
|
inline |
Definition at line 85 of file CellStoreV2.h.
|
overridevirtual |
Bloom filter lookup.
scan_ctx | Scan context |
scan_ctx
Implements Hypertable::CellStore.
Definition at line 746 of file CellStoreV2.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 623 of file CellStoreV2.cc.
|
overridevirtual |
Purges bloom filter and block indexes.
Implements Hypertable::CellStore.
Definition at line 282 of file CellStoreV2.cc.
|
inlineoverridevirtual |
Closes and reopens the underlying CellStore file.
Implements Hypertable::CellStore.
Definition at line 116 of file CellStoreV2.h.
|
inlineoverridevirtual |
Returns true if the cellstore was opened with a restricted range.
Implements Hypertable::CellStore.
Definition at line 109 of file CellStoreV2.h.
|
protected |
Definition at line 140 of file CellStoreV2.h.
|
protected |
Definition at line 162 of file CellStoreV2.h.
|
protected |
Definition at line 159 of file CellStoreV2.h.
|
protected |
Definition at line 160 of file CellStoreV2.h.
|
protected |
Definition at line 158 of file CellStoreV2.h.
|
protected |
Definition at line 143 of file CellStoreV2.h.
|
protected |
Definition at line 153 of file CellStoreV2.h.
|
protected |
Definition at line 142 of file CellStoreV2.h.
|
protected |
Definition at line 155 of file CellStoreV2.h.
|
protected |
Definition at line 150 of file CellStoreV2.h.
|
protected |
Definition at line 136 of file CellStoreV2.h.
|
protected |
Definition at line 151 of file CellStoreV2.h.
|
protected |
Definition at line 149 of file CellStoreV2.h.
|
protected |
Definition at line 137 of file CellStoreV2.h.
|
protected |
Definition at line 135 of file CellStoreV2.h.
|
protected |
Definition at line 163 of file CellStoreV2.h.
|
protected |
Definition at line 144 of file CellStoreV2.h.
|
protected |
Definition at line 138 of file CellStoreV2.h.
|
protected |
Definition at line 139 of file CellStoreV2.h.
|
protected |
Definition at line 148 of file CellStoreV2.h.
|
protected |
Definition at line 161 of file CellStoreV2.h.
|
protected |
Definition at line 156 of file CellStoreV2.h.
|
protected |
Definition at line 147 of file CellStoreV2.h.
|
protected |
Definition at line 146 of file CellStoreV2.h.
|
protected |
Definition at line 164 of file CellStoreV2.h.
|
protected |
Definition at line 145 of file CellStoreV2.h.
|
protected |
Definition at line 141 of file CellStoreV2.h.
|
protected |
Definition at line 154 of file CellStoreV2.h.
|
protected |
Definition at line 152 of file CellStoreV2.h.