#include <CongestionDB.h>
Inherits MTHashTable< uint64_t, CongestionEntry * >.
Public Member Functions | |
CongestionDB (int tablesize) | |
~CongestionDB () | |
bool | congested (uint64_t key) |
void | addRecord (uint64_t key, CongestionEntry *pEntry) |
void | removeRecord (uint64_t key) |
void | removeAllRecords (void) |
void | RunTodoList (int buckId) |
void | process (int buckId, CongestRequestParam *param) |
void | revalidateBucket (int buckId) |
Data Fields | |
InkAtomicList * | todo_lists |
Definition at line 95 of file CongestionDB.h.
CongestionDB::CongestionDB | ( | int | tablesize | ) |
Definition at line 154 of file CongestionDB.cc.
References ink_assert, ink_atomiclist_init(), and todo_lists.
CongestionDB::~CongestionDB | ( | ) |
Definition at line 168 of file CongestionDB.cc.
References todo_lists.
void CongestionDB::addRecord | ( | uint64_t | key, | |
CongestionEntry * | pEntry | |||
) |
Definition at line 174 of file CongestionDB.cc.
References CongestRequestParamAllocator, CongestionEntry::get(), ink_assert, ink_atomiclist_push(), MTHashTable< key_t, data_t >::insert_entry(), MTHashTable< key_t, data_t >::lock_for_key(), CongestRequestParam::m_key, CongestionEntry::m_key, CongestRequestParam::m_op, CongestRequestParam::m_pEntry, MUTEX_TRY_LOCK, MTHashTable< key_t, data_t >::part_num(), CongestionEntry::put(), RunTodoList(), this_ethread(), and todo_lists.
Referenced by CCCongestionDBTestCont::mainEvent().
bool CongestionDB::congested | ( | uint64_t | key | ) |
void CongestionDB::process | ( | int | buckId, | |
CongestRequestParam * | param | |||
) |
Definition at line 240 of file CongestionDB.cc.
References CongestRequestParam::ADD_RECORD, MTHashTable< key_t, data_t >::cur_entry(), MTHashTable< key_t, data_t >::first_entry(), ink_assert, MTHashTable< key_t, data_t >::insert_entry(), CongestRequestParam::m_key, CongestRequestParam::m_op, CongestRequestParam::m_pEntry, CongestionEntry::put(), CongestRequestParam::REMOVE_ALL_RECORDS, MTHashTable< key_t, data_t >::remove_entry(), CongestRequestParam::REMOVE_RECORD, CongestRequestParam::REVALIDATE_BUCKET, and revalidateBucket().
Referenced by RunTodoList().
void CongestionDB::removeAllRecords | ( | void | ) |
Definition at line 195 of file CongestionDB.cc.
References CongestRequestParamAllocator, MTHashTable< key_t, data_t >::cur_entry(), MTHashTable< key_t, data_t >::first_entry(), ink_atomiclist_push(), MTHashTable< key_t, data_t >::lock_for_key(), CongestRequestParam::m_key, CongestRequestParam::m_op, MUTEX_TRY_LOCK, CongestionEntry::put(), MTHashTable< key_t, data_t >::remove_entry(), RunTodoList(), this_ethread(), and todo_lists.
Referenced by CCCongestionDBTestCont::init(), CCCongestionDBTestCont::mainEvent(), remove_all_congested_entry(), and CCCongestionDBTestCont::~CCCongestionDBTestCont().
void CongestionDB::removeRecord | ( | uint64_t | key | ) |
Definition at line 220 of file CongestionDB.cc.
References CongestRequestParamAllocator, ink_atomiclist_push(), MTHashTable< key_t, data_t >::lock_for_key(), CongestRequestParam::m_key, CongestRequestParam::m_op, MUTEX_TRY_LOCK, MTHashTable< key_t, data_t >::part_num(), CongestionEntry::put(), MTHashTable< key_t, data_t >::remove_entry(), RunTodoList(), this_ethread(), and todo_lists.
Referenced by remove_congested_entry().
void CongestionDB::revalidateBucket | ( | int | buckId | ) |
Definition at line 297 of file CongestionDB.cc.
References MTHashTable< key_t, data_t >::cur_entry(), MTHashTable< key_t, data_t >::first_entry(), MTHashTable< key_t, data_t >::next_entry(), CongestionEntry::put(), MTHashTable< key_t, data_t >::remove_entry(), and CongestionEntry::validate().
Referenced by process(), and revalidateCongestionDB().
void CongestionDB::RunTodoList | ( | int | buckId | ) |
Definition at line 276 of file CongestionDB.cc.
References Free_CongestRequestParam(), ink_atomiclist_popall(), process(), and todo_lists.
Referenced by addRecord(), CongestionDBCont::GC(), get_congest_entry(), CongestionDBCont::get_congest_entry(), CCCongestionDBTestCont::get_congest_list(), get_congest_list(), CongestionDBCont::get_congest_list(), removeAllRecords(), removeRecord(), and revalidateCongestionDB().
Definition at line 107 of file CongestionDB.h.
Referenced by addRecord(), CongestionDB(), removeAllRecords(), removeRecord(), revalidateCongestionDB(), RunTodoList(), and ~CongestionDB().