0.9.8.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Modules | Namespaces | Classes | Typedefs | Enumerations | Functions
RangeServer

Range server. More...

Collaboration diagram for RangeServer:

Modules

 Request
 Request handling code.
 
 Response
 Response handling code.
 

Namespaces

 Hypertable::MaintenanceFlag
 Maintenance task bit field.
 

Classes

class  Hypertable::CellPredicate
 Cell predicate. More...
 
struct  Hypertable::CellPredicate::CellPattern
 
class  Hypertable::AccessGroup
 Access group. More...
 
class  Hypertable::AccessGroup::CellStoreMaintenanceData
 
class  Hypertable::AccessGroup::MaintenanceData
 
class  Hypertable::AccessGroup::Hints
 
class  Hypertable::AccessGroupGarbageTracker
 Tracks access group garbage and signals when collection is needed. More...
 
class  Hypertable::AccessGroupHintsFile
 Reads and writes access group "hints" file. More...
 
class  Hypertable::CellCacheManager
 Manages the cell cache of an access group. More...
 
class  Hypertable::CellListScannerBuffer
 Cell list scanner over a buffer of cells. More...
 
struct  Hypertable::CellListScannerBuffer::LtKeyValueT
 STL Strict Weak Ordering for KeyValueT. More...
 
class  Hypertable::CellStore
 Abstract base class for persistent cell lists (ones that are stored on disk). More...
 
class  Hypertable::CellStore::IndexMemoryStats
 
class  Hypertable::CellStoreBlockIndexElementArray< OffsetT >
 
struct  Hypertable::LtCellStoreBlockIndexElementArray< OffsetT >
 
class  Hypertable::CellStoreBlockIndexIteratorArray< OffsetT >
 Provides an STL-style iterator on CellStoreBlockIndex objects. More...
 
class  Hypertable::CellStoreBlockIndexArray< OffsetT >
 
class  Hypertable::CellStoreFactory
 Factory class for creating CellStore objects. More...
 
class  Hypertable::CellStoreScanner< IndexT >
 Provides the ability to scan over (query) a cell store. More...
 
class  Hypertable::CellStoreScannerIntervalBlockIndex< IndexT >
 Provides the ability to scan over a portion of a cell store using its block index. More...
 
class  Hypertable::CellStoreScannerIntervalReadahead< IndexT >
 Provides ability to efficiently scan over a portion of a cell store. More...
 
class  Hypertable::CellStoreTrailerV7
 Represents the trailer for CellStore version 7. More...
 
class  Hypertable::CellStoreV6
 
class  Hypertable::CellStoreV6::IndexBuilder
 
class  Hypertable::CellStoreV7
 
class  Hypertable::RangeServer::ConnectionHandler
 
class  Hypertable::Context
 Execution context for the Master. More...
 
class  Hypertable::FragmentData
 Accumulates phantom update data for a phantom range. More...
 
struct  Hypertable::lt_ctip
 Comparison functor for ClusterTableIdPair objects. More...
 
class  Hypertable::GroupCommit
 Group commit manager. More...
 
class  Hypertable::GroupCommitInterface
 Abstract base class for group commit implementation. More...
 
class  Hypertable::HyperspaceTableCache
 Provides efficient lookup of Hyperspace table data. More...
 
class  Hypertable::HyperspaceTableCache::Entry
 Cache entry for Hyperspace table data. More...
 
class  Hypertable::IndexUpdater
 Helper class for updating index tables. More...
 
class  Hypertable::IndexUpdaterFactory
 Factory class for creating IndexUpdater objects. More...
 
class  Hypertable::LoadStatistics
 Computes application load statistics. More...
 
struct  Hypertable::LoadStatistics::Bundle
 POD-style structure to hold statistics. More...
 
class  Hypertable::LocationInitializer
 Obtains location string (proxy name) for the range server. More...
 
class  Hypertable::LogReplayBarrier
 Blocks requests until specific commit log has finished replaying. More...
 
class  Hypertable::MaintenanceFlag::Hash
 Hash function class for pointers. More...
 
struct  Hypertable::MaintenanceFlag::Equal
 Equality function for pointers. More...
 
class  Hypertable::MaintenanceFlag::Map
 Maps object pointers to bit fields. More...
 
class  Hypertable::MaintenanceQueue
 Queue for periodic maintenance work. More...
 
struct  Hypertable::MaintenanceQueue::LtMaintenanceTask
 
class  Hypertable::MaintenanceQueue::MaintenanceQueueState
 
class  Hypertable::MaintenanceQueue::Worker
 
class  Hypertable::MaintenanceScheduler
 Schedules range server maintenance. More...
 
class  Hypertable::MemoryTracker
 Tracks range server memory used. More...
 
class  Hypertable::MergeScannerAccessGroup
 Merge scanner for access groups. More...
 
class  Hypertable::MergeScannerAccessGroup::RegexpInfo
 
struct  Hypertable::MergeScannerAccessGroup::ScannerState
 
struct  Hypertable::MergeScannerAccessGroup::LtScannerState
 
class  Hypertable::MergeScannerRange
 Performs a scan over a range. More...
 
class  Hypertable::MetaLogEntityRange
 MetaLog entity for range state persisted in RSML. More...
 
class  Hypertable::MetaLogEntityRemoveOkLogs
 MetaLog entity to track transfer logs that can be safely removed More...
 
class  Hypertable::PhantomRange
 Represents a "phantom" range. More...
 
class  Hypertable::QueryCache
 Query cache. More...
 
class  Hypertable::QueryCache::Key
 Hash key to query cache. More...
 
class  Hypertable::QueryCache::RowKey
 Row key information. More...
 
class  Hypertable::QueryCache::QueryCacheEntry
 Internal cache entry. More...
 
struct  Hypertable::QueryCache::KeyHash
 
struct  Hypertable::QueryCache::RowKeyHash
 
class  Hypertable::Range
 Represents a table row range. More...
 
class  Hypertable::Apps::RangeServer
 
class  Hypertable::ScannerMap
 Map to hold outstanding scanners. More...
 
struct  Hypertable::ScannerMap::ScanInfo
 Holds scanner information. More...
 
class  Hypertable::ServerState
 Holds dynamic server state. More...
 
class  Hypertable::RangeData
 Holds pointers to a Range and associated Range::MaintenanceData. More...
 
class  Hypertable::Ranges
 Holds vector of RangeData objects and memory arena. More...
 
class  Hypertable::RangeInfo
 Holds pointer to range and cached start and end rows. More...
 
class  Hypertable::TableInfo
 Holds set of range objects for a table. More...
 
class  Hypertable::TableInfoMap
 Manages live range map and set of log names that can be safely removed. More...
 
class  Hypertable::TimerHandler
 Timer interrupt handler. More...
 
class  Hypertable::TransferLog
 Creates a unique range transfer log pathname. More...
 
class  Hypertable::UpdateContext
 Context record for update request passed into UpdatePipeline. More...
 
class  Hypertable::UpdatePipeline
 Three-staged, multithreaded update pipeline. More...
 
class  Hypertable::UpdateRecRange
 Specifies a range of updates (key/value pairs) within a buffer. More...
 
class  Hypertable::UpdateRecRangeList
 Holds updates destined for a specific range. More...
 
class  Hypertable::UpdateRecTable
 Holds updates destined for a specific table. More...
 
struct  Hypertable::SendBackRec
 Describes portion of an update buffer rejected due to error. More...
 
class  Hypertable::UpdateRequest
 Holds client update request and error state. More...
 

Typedefs

typedef std::shared_ptr
< AccessGroup
Hypertable::AccessGroupPtr
 
typedef std::shared_ptr
< CellCacheManager
Hypertable::CellCacheManagerPtr
 Smart pointer to CellCacheManager. More...
 
typedef std::shared_ptr
< CellStore
Hypertable::CellStorePtr
 Smart pointer to CellStore. More...
 
typedef std::shared_ptr
< ConnectionHandler
Hypertable::RangeServer::ConnectionHandlerPtr
 Smart pointer to ConnectionHandler. More...
 
typedef std::shared_ptr
< FragmentData
Hypertable::FragmentDataPtr
 Smart pointer to FragmentData. More...
 
typedef std::pair< uint64_t,
TableIdentifier
Hypertable::ClusterTableIdPair
 Structure for holding cluster ID / table identifier pair. More...
 
typedef std::shared_ptr
< GroupCommitInterface
Hypertable::GroupCommitInterfacePtr
 Smart pointer to GroupCommitInterface. More...
 
typedef std::shared_ptr
< HyperspaceTableCache
Hypertable::HyperspaceTableCachePtr
 Smart pointer to HyperspaceTableCache. More...
 
typedef std::shared_ptr
< IndexUpdater
Hypertable::IndexUpdaterPtr
 Smart pointer to IndexUpdater. More...
 
typedef std::shared_ptr
< LoadStatistics > 
Hypertable::LoadStatisticsPtr
 Shared smart pointer to LoadStatistics. More...
 
typedef std::shared_ptr
< LocationInitializer
Hypertable::LocationInitializerPtr
 Shared smart pointer to LocationInitializer. More...
 
typedef std::shared_ptr
< LogReplayBarrier > 
Hypertable::LogReplayBarrierPtr
 Smart pointer to LogReplayBarrier. More...
 
typedef std::shared_ptr
< MaintenanceQueue
Hypertable::MaintenanceQueuePtr
 Smart pointer to MaintenanceQueue. More...
 
typedef std::shared_ptr
< MaintenanceScheduler
Hypertable::MaintenanceSchedulerPtr
 Smart pointer to MaintenanceScheduler. More...
 
typedef std::shared_ptr
< MergeScannerAccessGroup
Hypertable::MergeScannerAccessGroupPtr
 Shared pointer to MergeScannerAccessGroup. More...
 
typedef std::shared_ptr
< MergeScannerRange
Hypertable::MergeScannerRangePtr
 Smart pointer to MergeScannerRange. More...
 
typedef std::shared_ptr
< MetaLogEntityRange > 
Hypertable::MetaLogEntityRangePtr
 Smart pointer to MetaLogEntityRange. More...
 
typedef std::shared_ptr
< MetaLogEntityRemoveOkLogs
Hypertable::MetaLogEntityRemoveOkLogsPtr
 Smart pointer to MetaLogEntityRemoveOkLogs. More...
 
typedef std::shared_ptr
< PhantomRange
Hypertable::PhantomRangePtr
 Shared smart pointer to PhantomRange. More...
 
typedef std::shared_ptr
< QueryCache > 
Hypertable::QueryCachePtr
 Smart pointer to QueryCache. More...
 
typedef std::shared_ptr< RangeHypertable::RangePtr
 Smart pointer to Range. More...
 
typedef std::shared_ptr
< RangeServer > 
Hypertable::Apps::RangeServerPtr
 Shared smart pointer to RangeServer. More...
 
typedef std::shared_ptr< RangesHypertable::RangesPtr
 Smart pointer to Ranges. More...
 
typedef std::shared_ptr
< TableInfo
Hypertable::TableInfoPtr
 Smart pointer to TableInfo. More...
 
typedef std::shared_ptr
< TableInfoMap
Hypertable::TableInfoMapPtr
 Shared smart pointer to TableInfoMap. More...
 
typedef std::shared_ptr
< TimerHandler
Hypertable::TimerHandlerPtr
 Smart pointer to TimerHandler. More...
 
typedef std::shared_ptr
< UpdatePipeline
Hypertable::UpdatePipelinePtr
 Smart pointer to UpdatePipeline. More...
 

Enumerations

enum  Hypertable::CellStoreTrailerV7::Flags { Hypertable::CellStoreTrailerV7::INDEX_64BIT = 1, Hypertable::CellStoreTrailerV7::MAJOR_COMPACTION = 2, Hypertable::CellStoreTrailerV7::SPLIT = 4 }
 
enum  {
  Hypertable::MaintenanceFlag::SPLIT = 0x00000100, Hypertable::MaintenanceFlag::COMPACT = 0x00000200, Hypertable::MaintenanceFlag::COMPACT_MINOR = 0x00000201, Hypertable::MaintenanceFlag::COMPACT_MAJOR = 0x00000202,
  Hypertable::MaintenanceFlag::COMPACT_MERGING = 0x00000204, Hypertable::MaintenanceFlag::COMPACT_GC = 0x00000208, Hypertable::MaintenanceFlag::COMPACT_MOVE = 0x00000210, Hypertable::MaintenanceFlag::MEMORY_PURGE = 0x00000400,
  Hypertable::MaintenanceFlag::MEMORY_PURGE_SHADOW_CACHE = 0x00000401, Hypertable::MaintenanceFlag::MEMORY_PURGE_CELLSTORE = 0x00000402, Hypertable::MaintenanceFlag::RELINQUISH = 0x00000800, Hypertable::MaintenanceFlag::RECOMPUTE_MERGE_RUN = 0x00010000
}
 Enumeration for maintenance masks. More...
 
enum  Hypertable::MergeScannerAccessGroup::Flags { Hypertable::MergeScannerAccessGroup::RETURN_DELETES = 0x00000001, Hypertable::MergeScannerAccessGroup::IS_COMPACTION = 0x00000002, Hypertable::MergeScannerAccessGroup::ACCUMULATE_COUNTERS = 0x00000004 }
 
enum  Hypertable::PhantomRange::State {
  Hypertable::PhantomRange::LOADED = 0x00000001, Hypertable::PhantomRange::REPLAYED = 0x00000002, Hypertable::PhantomRange::PREPARED = 0x00000004, Hypertable::PhantomRange::COMMITTED = 0x00000008,
  Hypertable::PhantomRange::CANCELLED = 0x00000010
}
 

Functions

std::ostream & Hypertable::operator<< (std::ostream &os, const AccessGroup::MaintenanceData &mdata)
 
bool Hypertable::FillScanBlock (MergeScannerRangePtr &scanner, DynamicBuffer &dbuf, uint32_t *cell_count, int64_t buffer_size)
 Fills a block of scan results to be sent back to client. More...
 
std::ostream & Hypertable::operator<< (std::ostream &os, const Range::MaintenanceData &mdata)
 
bool Hypertable::operator< (const RangeInfo &lhs, const RangeInfo &rhs)
 Less than operator for RangeInfo objects. More...
 

Detailed Description

Range server.

The RangeServer module contains the definition of the RangeServer

Typedef Documentation

typedef std::shared_ptr<AccessGroup> Hypertable::AccessGroupPtr

Definition at line 303 of file AccessGroup.h.

Smart pointer to CellCacheManager.

Definition at line 231 of file CellCacheManager.h.

typedef std::shared_ptr<CellStore> Hypertable::CellStorePtr

Smart pointer to CellStore.

Definition at line 340 of file CellStore.h.

typedef std::pair<uint64_t, TableIdentifier> Hypertable::ClusterTableIdPair

Structure for holding cluster ID / table identifier pair.

Definition at line 39 of file GroupCommit.h.

Smart pointer to ConnectionHandler.

Definition at line 54 of file ConnectionHandler.h.

typedef std::shared_ptr<FragmentData> Hypertable::FragmentDataPtr

Smart pointer to FragmentData.

Definition at line 119 of file FragmentData.h.

Smart pointer to GroupCommitInterface.

Definition at line 66 of file GroupCommitInterface.h.

Smart pointer to HyperspaceTableCache.

Definition at line 98 of file HyperspaceTableCache.h.

typedef std::shared_ptr<IndexUpdater> Hypertable::IndexUpdaterPtr

Smart pointer to IndexUpdater.

Definition at line 87 of file IndexUpdater.h.

typedef std::shared_ptr<LoadStatistics> Hypertable::LoadStatisticsPtr

Shared smart pointer to LoadStatistics.

Definition at line 242 of file LoadStatistics.h.

Shared smart pointer to LocationInitializer.

Definition at line 104 of file LocationInitializer.h.

typedef std::shared_ptr<LogReplayBarrier> Hypertable::LogReplayBarrierPtr

Smart pointer to LogReplayBarrier.

Definition at line 171 of file LogReplayBarrier.h.

Smart pointer to MaintenanceQueue.

Definition at line 392 of file MaintenanceQueue.h.

Smart pointer to MaintenanceScheduler.

Definition at line 128 of file MaintenanceScheduler.h.

Shared pointer to MergeScannerAccessGroup.

Definition at line 371 of file MergeScannerAccessGroup.h.

Smart pointer to MergeScannerRange.

Definition at line 148 of file MergeScannerRange.h.

typedef std::shared_ptr<MetaLogEntityRange> Hypertable::MetaLogEntityRangePtr

Smart pointer to MetaLogEntityRange.

Definition at line 266 of file MetaLogEntityRange.h.

Smart pointer to MetaLogEntityRemoveOkLogs.

Definition at line 138 of file MetaLogEntityRemoveOkLogs.h.

typedef std::shared_ptr<PhantomRange> Hypertable::PhantomRangePtr

Shared smart pointer to PhantomRange.

Definition at line 120 of file PhantomRange.h.

typedef std::shared_ptr<QueryCache> Hypertable::QueryCachePtr

Smart pointer to QueryCache.

Definition at line 252 of file QueryCache.h.

typedef std::shared_ptr<Range> Hypertable::RangePtr

Smart pointer to Range.

Definition at line 404 of file Range.h.

typedef std::shared_ptr<RangeServer> Hypertable::Apps::RangeServerPtr

Shared smart pointer to RangeServer.

Definition at line 355 of file RangeServer.h.

typedef std::shared_ptr<Ranges> Hypertable::RangesPtr

Smart pointer to Ranges.

Definition at line 91 of file TableInfo.h.

typedef std::shared_ptr<TableInfoMap> Hypertable::TableInfoMapPtr

Shared smart pointer to TableInfoMap.

Definition at line 223 of file TableInfoMap.h.

typedef std::shared_ptr<TableInfo> Hypertable::TableInfoPtr

Smart pointer to TableInfo.

Definition at line 312 of file TableInfo.h.

typedef std::shared_ptr<TimerHandler> Hypertable::TimerHandlerPtr

Smart pointer to TimerHandler.

Definition at line 226 of file TimerHandler.h.

Smart pointer to UpdatePipeline.

Definition at line 193 of file UpdatePipeline.h.

Enumeration Type Documentation

anonymous enum

Enumeration for maintenance masks.

Enumerator
SPLIT 

Split mask.

COMPACT 

Compaction mask.

COMPACT_MINOR 

Minor compaction mask.

COMPACT_MAJOR 

Major compaction mask.

COMPACT_MERGING 

Mergin compaction mask.

COMPACT_GC 

GC compaction mask.

COMPACT_MOVE 

Merging compaction mask.

MEMORY_PURGE 

Memory purge mask.

MEMORY_PURGE_SHADOW_CACHE 

Memory shadow cache purge mask.

MEMORY_PURGE_CELLSTORE 

Memory cellstore index purge mask.

RELINQUISH 

Relinquish mask.

RECOMPUTE_MERGE_RUN 

Recompute CellStore merge run to test if merging compaction needed.

Definition at line 47 of file MaintenanceFlag.h.

Enumerator
INDEX_64BIT 
MAJOR_COMPACTION 
SPLIT 

Definition at line 88 of file CellStoreTrailerV7.h.

Enumerator
RETURN_DELETES 
IS_COMPACTION 
ACCUMULATE_COUNTERS 

Definition at line 108 of file MergeScannerAccessGroup.h.

Enumerator
LOADED 
REPLAYED 
PREPARED 
COMMITTED 
CANCELLED 

Definition at line 56 of file PhantomRange.h.

Function Documentation

bool Hypertable::FillScanBlock ( MergeScannerRangePtr scanner,
DynamicBuffer dbuf,
uint32_t *  cell_count,
int64_t  buffer_size 
)

Fills a block of scan results to be sent back to client.

Iterates through scanner and serializes each key/value pair into dbuf, stopping when the buffer exceeds buffer_size. If the KEYS_ONLY predicate is specified in the scan specification, then an empty value is encoded for each key/value pair. For each key representing a COUNTER, the value is an encoded 64-bit integer and is converted to an ASCII value.

Parameters
scannerScanner frome which results are to be obtained
dbufBuffer to hold encoded results
cell_countAddress of variable to hold number of cells in the scan block.
buffer_sizeTarget size of scan block
Returns
true if there are more results to be pulled from the scanner when this function returns, false otherwise.

Definition at line 28 of file FillScanBlock.cc.

bool Hypertable::operator< ( const RangeInfo lhs,
const RangeInfo rhs 
)
inline

Less than operator for RangeInfo objects.

Definition at line 110 of file TableInfo.h.

ostream & Hypertable::operator<< ( std::ostream &  os,
const AccessGroup::MaintenanceData mdata 
)

Definition at line 1253 of file AccessGroup.cc.

std::ostream & Hypertable::operator<< ( std::ostream &  os,
const Range::MaintenanceData mdata 
)

Definition at line 1732 of file Range.cc.