0.9.8.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Hypertable::CellStoreScannerIntervalBlockIndex< IndexT > Class Template Reference

Provides the ability to scan over a portion of a cell store using its block index. More...

#include <CellStoreScannerIntervalBlockIndex.h>

Inheritance diagram for Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >:
Inheritance graph
[legend]
Collaboration diagram for Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >:
Collaboration graph
[legend]

Public Types

typedef IndexT::iterator IndexIteratorT
 

Public Member Functions

 CellStoreScannerIntervalBlockIndex (CellStorePtr &cellstore, IndexT *index, SerializedKey start_key, SerializedKey end_key, ScanContext *scan_ctx)
 
virtual ~CellStoreScannerIntervalBlockIndex ()
 
virtual void forward ()
 
virtual bool get (Key &key, ByteString &value)
 
- Public Member Functions inherited from Hypertable::CellStoreScannerInterval
 CellStoreScannerInterval ()
 
virtual ~CellStoreScannerInterval ()
 
int64_t get_disk_read ()
 

Private Member Functions

bool fetch_next_block (bool eob=false)
 This method fetches the 'next' compressed block of key/value pairs from the underlying CellStore. More...
 

Private Attributes

CellStorePtr m_cellstore
 
IndexT * m_index {}
 
IndexIteratorT m_iter
 
BlockInfo m_block
 
Key m_key
 
SerializedKey m_cur_key
 
ByteString m_cur_value
 
SerializedKey m_start_key
 
SerializedKey m_end_key
 
const char * m_end_row {}
 
DynamicBuffer m_key_buf
 
BlockCompressionCodecm_zcodec {}
 
KeyDecompressorm_key_decompressor {}
 
int32_t m_fd {-1}
 
bool m_cached {}
 
bool m_check_for_range_end {}
 
int m_file_id {}
 
ScanContextm_scan_ctx {}
 
ScanContext::CstrRowSetm_rowset
 

Additional Inherited Members

- Protected Attributes inherited from Hypertable::CellStoreScannerInterval
uint64_t m_disk_read
 

Detailed Description

template<typename IndexT>
class Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >

Provides the ability to scan over a portion of a cell store using its block index.

Template Parameters
IndexTType of block index

Definition at line 47 of file CellStoreScannerIntervalBlockIndex.h.

Member Typedef Documentation

template<typename IndexT >
typedef IndexT::iterator Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::IndexIteratorT

Definition at line 50 of file CellStoreScannerIntervalBlockIndex.h.

Constructor & Destructor Documentation

template<typename IndexT >
CellStoreScannerIntervalBlockIndex::CellStoreScannerIntervalBlockIndex ( CellStorePtr cellstore,
IndexT *  index,
SerializedKey  start_key,
SerializedKey  end_key,
ScanContext scan_ctx 
)

End of range check

Column family check

Definition at line 50 of file CellStoreScannerIntervalBlockIndex.cc.

template<typename IndexT >
CellStoreScannerIntervalBlockIndex::~CellStoreScannerIntervalBlockIndex ( )
virtual

Definition at line 106 of file CellStoreScannerIntervalBlockIndex.cc.

Member Function Documentation

template<typename IndexT >
bool CellStoreScannerIntervalBlockIndex::fetch_next_block ( bool  eob = false)
private

This method fetches the 'next' compressed block of key/value pairs from the underlying CellStore.

Preconditions required to call this method: 1. m_block is cleared and m_iter points to the m_index entry of the first block to fetch 'or' 2. m_block is loaded with the current block and m_iter points to the m_index entry of the current block

Parameters
eobend of block indicator, true if being called because at end of block
Returns
true if next block successfully fetched, false if no next block

Cache lookup / block read

Read compressed block

inflate compressed block

Insert or checkin compressed block into cache

take ownership of inflate buffer

Insert uncompressed block into cache

Definition at line 187 of file CellStoreScannerIntervalBlockIndex.cc.

template<typename IndexT >
void CellStoreScannerIntervalBlockIndex::forward ( )
virtual

Column family check

Implements Hypertable::CellStoreScannerInterval.

Definition at line 132 of file CellStoreScannerIntervalBlockIndex.cc.

template<typename IndexT >
bool CellStoreScannerIntervalBlockIndex::get ( Key key,
ByteString value 
)
virtual

Member Data Documentation

template<typename IndexT >
BlockInfo Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_block
private

Definition at line 65 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
bool Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_cached {}
private

Definition at line 76 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
CellStorePtr Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_cellstore
private

Definition at line 62 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
bool Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_check_for_range_end {}
private

Definition at line 77 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
SerializedKey Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_cur_key
private

Definition at line 67 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
ByteString Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_cur_value
private

Definition at line 68 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
SerializedKey Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_end_key
private

Definition at line 70 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
const char* Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_end_row {}
private

Definition at line 71 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
int32_t Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_fd {-1}
private

Definition at line 75 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
int Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_file_id {}
private

Definition at line 78 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
IndexT* Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_index {}
private

Definition at line 63 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
IndexIteratorT Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_iter
private

Definition at line 64 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
Key Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_key
private

Definition at line 66 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
DynamicBuffer Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_key_buf
private

Definition at line 72 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
KeyDecompressor* Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_key_decompressor {}
private

Definition at line 74 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
ScanContext::CstrRowSet& Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_rowset
private

Definition at line 80 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
ScanContext* Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_scan_ctx {}
private

Definition at line 79 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
SerializedKey Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_start_key
private

Definition at line 69 of file CellStoreScannerIntervalBlockIndex.h.

template<typename IndexT >
BlockCompressionCodec* Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >::m_zcodec {}
private

Definition at line 73 of file CellStoreScannerIntervalBlockIndex.h.


The documentation for this class was generated from the following files: