0.9.8.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Private Member Functions | List of all members
Hypertable::MaintenancePrioritizerLowMemory Class Reference

#include <MaintenancePrioritizerLowMemory.h>

Inheritance diagram for Hypertable::MaintenancePrioritizerLowMemory:
Inheritance graph
[legend]
Collaboration diagram for Hypertable::MaintenancePrioritizerLowMemory:
Collaboration graph
[legend]

Public Member Functions

virtual void prioritize (std::vector< RangeData > &range_data, MemoryState &memory_state, int32_t priority, String *trace)
 
- Public Member Functions inherited from Hypertable::MaintenancePrioritizer
 MaintenancePrioritizer ()
 

Private Member Functions

void assign_priorities_all (std::vector< RangeData > &range_data, CommitLogPtr &log, int64_t prune_threshold, MemoryState &memory_state, int32_t &priority, String *trace)
 Memory freeing algorithm: More...
 
void assign_priorities_user (std::vector< RangeData > &range_data, LoadStatistics::Bundle &load_stats, MemoryState &memory_state, int32_t &priority, String *trace)
 Memory freeing algorithm: More...
 

Additional Inherited Members

- Protected Member Functions inherited from Hypertable::MaintenancePrioritizer
void schedule_initialization_operations (std::vector< RangeData > &range_data, int32_t &priority)
 
bool schedule_inprogress_operations (std::vector< RangeData > &range_data, MemoryState &memory_state, int32_t &priority, String *trace)
 
bool schedule_splits_and_relinquishes (std::vector< RangeData > &range_data, MemoryState &memory_state, int32_t &priority, String *trace)
 
bool schedule_necessary_compactions (std::vector< RangeData > &range_data, CommitLogPtr &log, int64_t prune_threshold, MemoryState &memory_state, int32_t &priority, String *trace)
 
bool purge_shadow_caches (std::vector< RangeData > &range_data, MemoryState &memory_state, int32_t &priority, String *trace)
 
bool purge_cellstore_indexes (std::vector< RangeData > &range_data, MemoryState &memory_state, int32_t &priority, String *trace)
 
bool compact_cellcaches (std::vector< RangeData > &range_data, MemoryState &memory_state, int32_t &priority, String *trace)
 
- Protected Attributes inherited from Hypertable::MaintenancePrioritizer
bool m_initialization_complete
 
bool m_uninitialized_ranges_seen
 

Detailed Description

Definition at line 29 of file MaintenancePrioritizerLowMemory.h.

Member Function Documentation

void MaintenancePrioritizerLowMemory::assign_priorities_all ( std::vector< RangeData > &  range_data,
CommitLogPtr log,
int64_t  prune_threshold,
MemoryState memory_state,
int32_t &  priority,
String trace 
)
private

Memory freeing algorithm:

  1. schedule in-progress relinquish and/or split operations
  2. schedule needed splits
  3. schedule needed compactions

Definition at line 133 of file MaintenancePrioritizerLowMemory.cc.

void MaintenancePrioritizerLowMemory::assign_priorities_user ( std::vector< RangeData > &  range_data,
LoadStatistics::Bundle load_stats,
MemoryState memory_state,
int32_t &  priority,
String trace 
)
private

Memory freeing algorithm:

  1. purge shadow caches

if (READ heavy)

  1. compact remaining cell caches
  2. shrink block cache
  3. purge cell store indexes else if (WRITE heavy)
  1. shrink block cache
  2. purge cell store indexes
  3. compact remaining cell caches else
  1. shrink block cache
  2. compact remaining cell caches
  3. purge cell store indexes

Definition at line 170 of file MaintenancePrioritizerLowMemory.cc.

void MaintenancePrioritizerLowMemory::prioritize ( std::vector< RangeData > &  range_data,
MemoryState memory_state,
int32_t  priority,
String trace 
)
virtual

Assign priority for ROOT range

Assign priority for METADATA ranges

Compute prune threshold based on load activity

Assign priority for SYSTEM ranges

Assign priority for USER ranges

Implements Hypertable::MaintenancePrioritizer.

Definition at line 37 of file MaintenancePrioritizerLowMemory.cc.


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