27 #ifndef Hypertable_RangeServer_UpdatePipeline_h
28 #define Hypertable_RangeServer_UpdatePipeline_h
41 #include <condition_variable>
122 int64_t revision, int64_t *revisionp,
123 bool timeorder_desc);
199 #endif // Hypertable_RangeServer_UpdatePipeline_h
std::list< UpdateContext * > m_commit_queue
Stage 2 input queue.
std::mutex m_commit_queue_mutex
Mutex protecting stage 2 input queue
void shutdown()
Shuts down the pipeline Sets m_shutdown to true, signals the three pipeline condition variables...
std::shared_ptr< Context > m_context
Range server context
Abstract base class for a filesystem.
UpdatePipeline(ContextPtr &context, QueryCachePtr &query_cache, TimerHandlerPtr &timer_handler, CommitLogPtr &log, Filesystem::Flags flags)
Constructor.
std::shared_ptr< UpdatePipeline > UpdatePipelinePtr
Smart pointer to UpdatePipeline.
void commit()
Thread function for stage 2 of update pipeline.
Flags
Enumeration type for append flags.
int64_t m_last_revision
Last (largest) assigned revision number.
void transform_key(ByteString &bskey, DynamicBuffer *dest_bufp, int64_t revision, int64_t *revisionp, bool timeorder_desc)
Three-staged, multithreaded update pipeline.
Filesystem::Flags m_flags
Commit log flush flag (NONE, FLUSH, or SYNC)
Declarations for Context.
bool m_shutdown
Flag indicating if pipeline is being shut down.
int32_t m_maintenance_pause_interval
Millisecond pause time at the end of the pipeline (TESTING)
A dynamic, resizable and reference counted memory buffer.
static const int64_t TIMESTAMP_MIN
std::mutex m_response_queue_mutex
Mutex protecting stage 3 input queue
std::vector< std::thread > m_threads
Update pipeline threads.
std::shared_ptr< Context > ContextPtr
Smart pointer to Context.
A class managing one or more serializable ByteStrings.
std::mutex m_qualify_queue_mutex
Mutex protecting stage 1 input queue
std::condition_variable m_response_queue_cond
Condition variable signaling addition to stage 3 input queue.
std::list< UpdateContext * > m_qualify_queue
Stage 1 input queue.
void add_and_respond()
Thread function for stage 3 of update pipeline.
A dynamic, resizable memory buffer.
uint64_t m_update_coalesce_limit
Commit log coalesce limit.
TimerHandlerPtr m_timer_handler
Pointer to timer handler.
std::list< UpdateContext * > m_response_queue
Stage 3 input queue.
int32_t m_commit_queue_count
Count of objects in stage 2 input queue.
std::shared_ptr< TimerHandler > TimerHandlerPtr
Smart pointer to TimerHandler.
Declarations for TimerHandler.
std::shared_ptr< QueryCache > QueryCachePtr
Smart pointer to QueryCache.
int32_t m_max_clock_skew
Maximum allowable clock skew.
Context record for update request passed into UpdatePipeline.
std::condition_variable m_commit_queue_cond
Condition variable signaling addition to stage 2 input queue.
uint32_t m_update_delay
Update delay at start of pipeline (TESTING)
std::condition_variable m_qualify_queue_cond
Condition variable signaling addition to stage 1 input queue.
void qualify_and_transform()
Thread function for stage 1 of update pipeline.
std::shared_ptr< CommitLog > CommitLogPtr
Smart pointer to CommitLog.
A serializable ByteString.
void add(UpdateContext *uc)
Adds updates to pipeline Adds uc to m_qualify_queue and signals m_qualify_queue_cond.
CommitLogPtr m_log
Pointer to commit log.
QueryCachePtr m_query_cache
Pointer to query cache.