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::CellStoreScannerIntervalReadahead< IndexT > Class Template Reference

Provides ability to efficiently scan over a portion of a cell store. More...

#include <CellStoreScannerIntervalReadahead.h>

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

Public Types

typedef IndexT::iterator IndexIteratorT
 

Public Member Functions

 CellStoreScannerIntervalReadahead (CellStorePtr &cellstore, IndexT *index, SerializedKey start_key, SerializedKey end_key, ScanContext *scan_ctx)
 
virtual ~CellStoreScannerIntervalReadahead ()
 
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_readahead (bool eob=false)
 This method fetches the 'next' compressed block of key/value pairs from the underlying CellStore. More...
 

Private Attributes

CellStorePtr m_cellstore
 
BlockInfo m_block
 
Key m_key
 
SerializedKey m_end_key
 
ByteString m_cur_value
 
BlockCompressionCodecm_zcodec {}
 
KeyDecompressorm_key_decompressor {}
 
int32_t m_fd {-1}
 
int64_t m_offset {}
 
int64_t m_end_offset {}
 
bool m_check_for_range_end {}
 
bool m_eos {}
 
ScanContextm_scan_ctx {}
 
uint32_t m_oflags {}
 

Additional Inherited Members

- Protected Attributes inherited from Hypertable::CellStoreScannerInterval
uint64_t m_disk_read
 

Detailed Description

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

Provides ability to efficiently scan over a portion of a cell store.

Template Parameters
IndexTType of block index

Definition at line 47 of file CellStoreScannerIntervalReadahead.h.

Member Typedef Documentation

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

Definition at line 50 of file CellStoreScannerIntervalReadahead.h.

Constructor & Destructor Documentation

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

Seek to start of range in block

End of range check

Column family check

Definition at line 50 of file CellStoreScannerIntervalReadahead.cc.

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

Definition at line 148 of file CellStoreScannerIntervalReadahead.cc.

Member Function Documentation

template<typename IndexT >
bool CellStoreScannerIntervalReadahead::fetch_next_block_readahead ( 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
eobtrue if at end of block
Returns
true if next block successfully fetched, false if no next block

Read header

take ownership of inflate buffer

Definition at line 237 of file CellStoreScannerIntervalReadahead.cc.

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

Column family check

Implements Hypertable::CellStoreScannerInterval.

Definition at line 181 of file CellStoreScannerIntervalReadahead.cc.

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

Member Data Documentation

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

Definition at line 63 of file CellStoreScannerIntervalReadahead.h.

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

Definition at line 62 of file CellStoreScannerIntervalReadahead.h.

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

Definition at line 72 of file CellStoreScannerIntervalReadahead.h.

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

Definition at line 66 of file CellStoreScannerIntervalReadahead.h.

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

Definition at line 65 of file CellStoreScannerIntervalReadahead.h.

template<typename IndexT >
int64_t Hypertable::CellStoreScannerIntervalReadahead< IndexT >::m_end_offset {}
private

Definition at line 71 of file CellStoreScannerIntervalReadahead.h.

template<typename IndexT >
bool Hypertable::CellStoreScannerIntervalReadahead< IndexT >::m_eos {}
private

Definition at line 73 of file CellStoreScannerIntervalReadahead.h.

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

Definition at line 69 of file CellStoreScannerIntervalReadahead.h.

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

Definition at line 64 of file CellStoreScannerIntervalReadahead.h.

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

Definition at line 68 of file CellStoreScannerIntervalReadahead.h.

template<typename IndexT >
int64_t Hypertable::CellStoreScannerIntervalReadahead< IndexT >::m_offset {}
private

Definition at line 70 of file CellStoreScannerIntervalReadahead.h.

template<typename IndexT >
uint32_t Hypertable::CellStoreScannerIntervalReadahead< IndexT >::m_oflags {}
private

Definition at line 75 of file CellStoreScannerIntervalReadahead.h.

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

Definition at line 74 of file CellStoreScannerIntervalReadahead.h.

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

Definition at line 67 of file CellStoreScannerIntervalReadahead.h.


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