#include <CellStoreV0.h>
Public Member Functions | |
CellStoreV0 (Filesystem *filesys) | |
virtual | ~CellStoreV0 () |
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 std::map < SerializedKey, uint32_t > | IndexMap |
typedef BlobHashSet | BloomFilterItems |
Protected Member Functions | |
void | add_index_entry (const SerializedKey key, uint32_t offset) |
void | create_bloom_filter (bool is_approx=false) |
void | load_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 CellStoreV0.h.
|
protected |
Definition at line 119 of file CellStoreV0.h.
|
protected |
Definition at line 118 of file CellStoreV0.h.
CellStoreV0::CellStoreV0 | ( | Filesystem * | filesys | ) |
Definition at line 56 of file CellStoreV0.cc.
|
virtual |
Definition at line 69 of file CellStoreV0.cc.
|
overridevirtual |
Inserts a key/value pair into the cell list.
key | key object |
value | ByteString representing value |
Implements Hypertable::CellStore.
Definition at line 192 of file CellStoreV0.cc.
|
protected |
Definition at line 429 of file CellStoreV0.cc.
|
overridevirtual |
Implements Hypertable::CellStore.
Definition at line 661 of file CellStoreV0.cc.
|
inlineoverridevirtual |
Returns the amount of memory consumed by the block index.
Implements Hypertable::CellStore.
Definition at line 92 of file CellStoreV0.h.
|
inlineoverridevirtual |
Returns the amount of memory consumed by the bloom filter.
Implements Hypertable::CellStore.
Definition at line 91 of file CellStoreV0.h.
|
inlineoverridevirtual |
Return Bloom filter size.
Implements Hypertable::CellStore.
Definition at line 90 of file CellStoreV0.h.
|
inlineoverridevirtual |
Returns block compression ratio of this cell store.
Implements Hypertable::CellStore.
Definition at line 82 of file CellStoreV0.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 102 of file CellStoreV0.cc.
|
overridevirtual |
Creates a block compression codec suitable for decompressing the cell store's blocks.
Implements Hypertable::CellStore.
Definition at line 90 of file CellStoreV0.cc.
|
protected |
Definition at line 165 of file CellStoreV0.cc.
|
overridevirtual |
Creates a scanner on this cell list.
scan_ctx | smart pointer to scan context |
Reimplemented from Hypertable::CellStore.
Definition at line 96 of file CellStoreV0.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 76 of file CellStoreV0.h.
|
overridevirtual |
Displays block information to stdout.
Implements Hypertable::CellStore.
Definition at line 637 of file CellStoreV0.cc.
|
inlineoverridevirtual |
Returns the offset of the end of the last block in the cell store.
Implements Hypertable::CellStore.
Definition at line 89 of file CellStoreV0.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 m_index_map32
close file for writing
Set file length
Re-open file for reading
Implements Hypertable::CellStore.
Definition at line 271 of file CellStoreV0.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 68 of file CellStoreV0.h.
|
inlineoverridevirtual |
Returns the open file descriptor for the CellStore file.
Implements Hypertable::CellStore.
Definition at line 96 of file CellStoreV0.h.
|
inlineoverridevirtual |
Returns a unique identifier which identifies the underlying file for caching purposes.
Implements Hypertable::CellStore.
Definition at line 85 of file CellStoreV0.h.
|
inlineoverridevirtual |
Pathname of cell store file.
Implements Hypertable::CellStore.
Definition at line 84 of file CellStoreV0.h.
|
inlineoverridevirtual |
Returns the number of key/value pairs in the cell store.
Implements Hypertable::CellStore.
Definition at line 83 of file CellStoreV0.h.
|
inlineoverridevirtual |
Return a pointer to the trailer object for this cell store.
Implements Hypertable::CellStore.
Definition at line 109 of file CellStoreV0.h.
|
protected |
Read index data
inflate fixed index
inflate variable index
Set up m_index_map32
Definition at line 473 of file CellStoreV0.cc.
bool CellStoreV0::may_contain | ( | const void * | ptr, |
size_t | len | ||
) |
Definition at line 630 of file CellStoreV0.cc.
|
inline |
Definition at line 70 of file CellStoreV0.h.
|
overridevirtual |
Bloom filter lookup.
scan_ctx | Scan context |
scan_ctx
Implements Hypertable::CellStore.
Definition at line 601 of file CellStoreV0.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 446 of file CellStoreV0.cc.
|
inlineoverridevirtual |
Purges bloom filter and block indexes.
Implements Hypertable::CellStore.
Definition at line 93 of file CellStoreV0.h.
|
inlineoverridevirtual |
Closes and reopens the underlying CellStore file.
Implements Hypertable::CellStore.
Definition at line 101 of file CellStoreV0.h.
|
inlineoverridevirtual |
Returns true if the cellstore was opened with a restricted range.
Implements Hypertable::CellStore.
Definition at line 94 of file CellStoreV0.h.
|
protected |
Definition at line 146 of file CellStoreV0.h.
|
protected |
Definition at line 147 of file CellStoreV0.h.
|
protected |
Definition at line 145 of file CellStoreV0.h.
|
protected |
Definition at line 128 of file CellStoreV0.h.
|
protected |
Definition at line 140 of file CellStoreV0.h.
|
protected |
Definition at line 127 of file CellStoreV0.h.
|
protected |
Definition at line 142 of file CellStoreV0.h.
|
protected |
Definition at line 137 of file CellStoreV0.h.
|
protected |
Definition at line 122 of file CellStoreV0.h.
|
protected |
Definition at line 138 of file CellStoreV0.h.
|
protected |
Definition at line 136 of file CellStoreV0.h.
|
protected |
Definition at line 123 of file CellStoreV0.h.
|
protected |
Definition at line 121 of file CellStoreV0.h.
|
protected |
Definition at line 129 of file CellStoreV0.h.
|
protected |
Definition at line 124 of file CellStoreV0.h.
|
protected |
Definition at line 125 of file CellStoreV0.h.
|
protected |
Definition at line 135 of file CellStoreV0.h.
|
protected |
Definition at line 148 of file CellStoreV0.h.
|
protected |
Definition at line 143 of file CellStoreV0.h.
|
protected |
Definition at line 131 of file CellStoreV0.h.
|
protected |
Definition at line 134 of file CellStoreV0.h.
|
protected |
Definition at line 133 of file CellStoreV0.h.
|
protected |
Definition at line 132 of file CellStoreV0.h.
|
protected |
Definition at line 126 of file CellStoreV0.h.
|
protected |
Definition at line 141 of file CellStoreV0.h.
|
protected |
Definition at line 139 of file CellStoreV0.h.
|
protected |
Definition at line 130 of file CellStoreV0.h.