#include <CellStoreV3.h>
Classes | |
class | IndexBuilder |
Public Member Functions | |
CellStoreV3 (Filesystem *filesys) | |
CellStoreV3 (Filesystem *filesys, SchemaPtr &schema) | |
virtual | ~CellStoreV3 () |
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... | |
KeyDecompressor * | create_key_decompressor () override |
Creates a key decompressor suitable for decompressing the keys stored in this cell store. 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 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 55 of file CellStoreV3.h.
|
protected |
Definition at line 136 of file CellStoreV3.h.
CellStoreV3::CellStoreV3 | ( | Filesystem * | filesys | ) |
Definition at line 60 of file CellStoreV3.cc.
CellStoreV3::CellStoreV3 | ( | Filesystem * | filesys, |
SchemaPtr & | schema | ||
) |
Definition at line 66 of file CellStoreV3.cc.
|
virtual |
Definition at line 72 of file CellStoreV3.cc.
|
overridevirtual |
Inserts a key/value pair into the cell list.
key | key object |
value | ByteString representing value |
Implements Hypertable::CellStore.
Definition at line 332 of file CellStoreV3.cc.
|
overridevirtual |
Implements Hypertable::CellStore.
Definition at line 854 of file CellStoreV3.cc.
|
inlineoverridevirtual |
Returns the amount of memory consumed by the block index.
Implements Hypertable::CellStore.
Definition at line 110 of file CellStoreV3.h.
|
inlineoverridevirtual |
Returns the amount of memory consumed by the bloom filter.
Implements Hypertable::CellStore.
Definition at line 109 of file CellStoreV3.h.
|
inlineoverridevirtual |
Return Bloom filter size.
Implements Hypertable::CellStore.
Definition at line 108 of file CellStoreV3.h.
|
inlineoverridevirtual |
Returns block compression ratio of this cell store.
Implements Hypertable::CellStore.
Definition at line 99 of file CellStoreV3.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 117 of file CellStoreV3.cc.
|
overridevirtual |
Creates a block compression codec suitable for decompressing the cell store's blocks.
Implements Hypertable::CellStore.
Definition at line 91 of file CellStoreV3.cc.
|
protected |
Definition at line 214 of file CellStoreV3.cc.
|
overridevirtual |
Creates a key decompressor suitable for decompressing the keys stored in this cell store.
Reimplemented from Hypertable::CellStore.
Definition at line 96 of file CellStoreV3.cc.
|
overridevirtual |
Creates a scanner on this cell list.
scan_ctx | smart pointer to scan context |
Reimplemented from Hypertable::CellStore.
Definition at line 101 of file CellStoreV3.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 93 of file CellStoreV3.h.
|
overridevirtual |
Displays block information to stdout.
Implements Hypertable::CellStore.
Definition at line 844 of file CellStoreV3.cc.
|
inlineoverridevirtual |
Returns the offset of the end of the last block in the cell store.
Implements Hypertable::CellStore.
Definition at line 107 of file CellStoreV3.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 435 of file CellStoreV3.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 85 of file CellStoreV3.h.
|
inlineoverridevirtual |
Returns the open file descriptor for the CellStore file.
Implements Hypertable::CellStore.
Definition at line 114 of file CellStoreV3.h.
|
inlineoverridevirtual |
Returns a unique identifier which identifies the underlying file for caching purposes.
Implements Hypertable::CellStore.
Definition at line 102 of file CellStoreV3.h.
|
inlineoverridevirtual |
Pathname of cell store file.
Implements Hypertable::CellStore.
Definition at line 101 of file CellStoreV3.h.
|
inlineoverridevirtual |
Returns the number of key/value pairs in the cell store.
Implements Hypertable::CellStore.
Definition at line 100 of file CellStoreV3.h.
|
inlineoverridevirtual |
Return a pointer to the trailer object for this cell store.
Implements Hypertable::CellStore.
Definition at line 127 of file CellStoreV3.h.
|
protected |
Read index data
inflate fixed index
inflate variable index
Set up index
Definition at line 695 of file CellStoreV3.cc.
|
protected |
Definition at line 246 of file CellStoreV3.cc.
bool CellStoreV3::may_contain | ( | const void * | ptr, |
size_t | len | ||
) |
Definition at line 828 of file CellStoreV3.cc.
|
inline |
Definition at line 87 of file CellStoreV3.h.
|
overridevirtual |
Bloom filter lookup.
scan_ctx | Scan context |
scan_ctx
Implements Hypertable::CellStore.
Definition at line 791 of file CellStoreV3.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 664 of file CellStoreV3.cc.
|
overridevirtual |
Purges bloom filter and block indexes.
Implements Hypertable::CellStore.
Definition at line 306 of file CellStoreV3.cc.
|
inlineoverridevirtual |
Closes and reopens the underlying CellStore file.
Implements Hypertable::CellStore.
Definition at line 119 of file CellStoreV3.h.
|
inlineoverridevirtual |
Returns true if the cellstore was opened with a restricted range.
Implements Hypertable::CellStore.
Definition at line 112 of file CellStoreV3.h.
|
protected |
Definition at line 144 of file CellStoreV3.h.
|
protected |
Definition at line 165 of file CellStoreV3.h.
|
protected |
Definition at line 162 of file CellStoreV3.h.
|
protected |
Definition at line 163 of file CellStoreV3.h.
|
protected |
Definition at line 161 of file CellStoreV3.h.
|
protected |
Definition at line 147 of file CellStoreV3.h.
|
protected |
Definition at line 169 of file CellStoreV3.h.
|
protected |
Definition at line 157 of file CellStoreV3.h.
|
protected |
Definition at line 146 of file CellStoreV3.h.
|
protected |
Definition at line 159 of file CellStoreV3.h.
|
protected |
Definition at line 154 of file CellStoreV3.h.
|
protected |
Definition at line 140 of file CellStoreV3.h.
|
protected |
Definition at line 155 of file CellStoreV3.h.
|
protected |
Definition at line 153 of file CellStoreV3.h.
|
protected |
Definition at line 141 of file CellStoreV3.h.
|
protected |
Definition at line 138 of file CellStoreV3.h.
|
protected |
Definition at line 166 of file CellStoreV3.h.
|
protected |
Definition at line 148 of file CellStoreV3.h.
|
protected |
Definition at line 142 of file CellStoreV3.h.
|
protected |
Definition at line 143 of file CellStoreV3.h.
|
protected |
Definition at line 167 of file CellStoreV3.h.
|
protected |
Definition at line 152 of file CellStoreV3.h.
|
protected |
Definition at line 164 of file CellStoreV3.h.
|
protected |
Definition at line 160 of file CellStoreV3.h.
|
protected |
Definition at line 151 of file CellStoreV3.h.
|
protected |
Definition at line 150 of file CellStoreV3.h.
|
protected |
Definition at line 168 of file CellStoreV3.h.
|
protected |
Definition at line 139 of file CellStoreV3.h.
|
protected |
Definition at line 149 of file CellStoreV3.h.
|
protected |
Definition at line 145 of file CellStoreV3.h.
|
protected |
Definition at line 158 of file CellStoreV3.h.
|
protected |
Definition at line 156 of file CellStoreV3.h.