![]() |
XRootD
|
#include <XrdPfcResourceMonitor.hh>
Public Member Functions | |
ResourceMonitor (XrdOss &oss) | |
~ResourceMonitor () | |
void | CrossCheckIfScanIsInProgress (const std::string &lfn, XrdSysCondVar &cond) |
void | fill_pshot_vec_children (const DirState &parent_ds, int parent_idx, std::vector< DirPurgeElement > &vec, int max_depth) |
void | fill_sshot_vec_children (const DirState &parent_ds, int parent_idx, std::vector< DirStateElement > &vec, int max_depth) |
void | heart_beat () |
void | init_before_main () |
void | main_thread_function () |
bool | perform_initial_scan () |
void | perform_purge_check (bool purge_cold_files, int tl) |
void | perform_purge_task (DataFsPurgeshot &ps) |
void | perform_purge_task_cleanup () |
int | process_queues () |
void | register_file_close (int token_id, time_t close_timestamp, const Stats &full_stats) |
int | register_file_open (const std::string &filename, time_t open_timestamp, bool existing_file) |
void | register_file_purge (const std::string &filename, long long size_in_st_blocks) |
void | register_file_purge (DirState *target, long long size_in_st_blocks) |
void | register_file_update_stats (int token_id, const Stats &stats) |
void | register_multi_file_purge (const std::string &target, long long size_in_st_blocks, int n_files) |
void | register_multi_file_purge (DirState *target, long long size_in_st_blocks, int n_files) |
void | scan_dir_and_recurse (FsTraversal &fst) |
AccessToken & | token (int i) |
void | update_vs_and_file_usage_info () |
Public Attributes | |
bool | m_purge_task_active {false} |
bool | m_purge_task_complete {false} |
XrdSysCondVar | m_purge_task_cond {0} |
time_t | m_purge_task_end {0} |
time_t | m_purge_task_start {0} |
Definition at line 37 of file XrdPfcResourceMonitor.hh.
ResourceMonitor::ResourceMonitor | ( | XrdOss & | oss | ) |
Definition at line 32 of file XrdPfcResourceMonitor.cc.
ResourceMonitor::~ResourceMonitor | ( | ) |
Definition at line 37 of file XrdPfcResourceMonitor.cc.
void ResourceMonitor::CrossCheckIfScanIsInProgress | ( | const std::string & | lfn, |
XrdSysCondVar & | cond | ||
) |
Definition at line 46 of file XrdPfcResourceMonitor.cc.
References XrdSysCondVar::Lock(), XrdSysMutex::Lock(), XrdSysCondVar::UnLock(), XrdSysMutex::UnLock(), and XrdSysCondVar::Wait().
void ResourceMonitor::fill_pshot_vec_children | ( | const DirState & | parent_ds, |
int | parent_idx, | ||
std::vector< DirPurgeElement > & | vec, | ||
int | max_depth | ||
) |
Definition at line 516 of file XrdPfcResourceMonitor.cc.
References child(), XrdPfc::DirPurgeElement::m_daughters_begin, XrdPfc::DirPurgeElement::m_daughters_end, XrdPfc::DirState::m_depth, and XrdPfc::DirState::m_subdirs.
Referenced by perform_purge_check().
void ResourceMonitor::fill_sshot_vec_children | ( | const DirState & | parent_ds, |
int | parent_idx, | ||
std::vector< DirStateElement > & | vec, | ||
int | max_depth | ||
) |
Definition at line 487 of file XrdPfcResourceMonitor.cc.
References child(), XrdPfc::DirStateElement::m_daughters_begin, XrdPfc::DirStateElement::m_daughters_end, XrdPfc::DirState::m_depth, and XrdPfc::DirState::m_subdirs.
Referenced by heart_beat().
void ResourceMonitor::heart_beat | ( | ) |
Definition at line 350 of file XrdPfcResourceMonitor.cc.
References XrdPfc::Cache::Conf(), XrdPfc::DirState::count_dirs_to_level(), Macaroons::Debug, dprintf, XrdPfc::DataFsState::dump_recursively(), fill_sshot_vec_children(), XrdPfc::DataFsState::get_root(), XrdPfc::Configuration::is_dir_stat_reporting_on(), XrdPfc::DataFsSnapshot::m_dir_states, XrdPfc::Configuration::m_dirStatsInterval, XrdPfc::Configuration::m_dirStatsStoreDepth, XrdPfc::DirState::m_here_usage, XrdPfc::DirUsage::m_NDirectories, m_purge_task_active, m_purge_task_complete, m_purge_task_cond, XrdPfc::Configuration::m_purgeAgeBasedPeriod, XrdPfc::Configuration::m_purgeInterval, XrdPfc::DirState::m_recursive_subdir_usage, XrdPfc::DataFsState::m_sshot_stats_reset_time, perform_purge_check(), process_queues(), XrdPfc::DataFsState::reset_sshot_stats(), XrdPfc::DataFsState::reset_stats(), TRACE, TRACE_Debug, TRACE_Info, XrdOss::Unlink(), XrdPfc::DataFsState::update_stats_and_usages(), update_vs_and_file_usage_info(), and XrdPfc::DataFsSnapshot::write_json_file().
Referenced by main_thread_function().
void ResourceMonitor::init_before_main | ( | ) |
Definition at line 825 of file XrdPfcResourceMonitor.cc.
Referenced by XrdPfc::Cache::Config().
void ResourceMonitor::main_thread_function | ( | ) |
Definition at line 832 of file XrdPfcResourceMonitor.cc.
References Macaroons::Error, heart_beat(), XrdPfc::DataFsState::init_stat_reset_times(), perform_initial_scan(), process_queues(), and TRACE.
Referenced by ResourceMonitorThread().
bool ResourceMonitor::perform_initial_scan | ( | ) |
Definition at line 168 of file XrdPfcResourceMonitor.cc.
References XrdPfc::FsTraversal::begin_traversal(), XrdPfc::FsTraversal::end_traversal(), XrdPfc::DataFsState::get_root(), XrdPfc::DirState::m_here_usage, XrdPfc::FsTraversal::m_protected_top_dirs, XrdPfc::DirState::m_recursive_subdir_usage, XrdPfc::DirUsage::m_StBlocks, scan_dir_and_recurse(), update_vs_and_file_usage_info(), and XrdPfc::DirState::upward_propagate_initial_scan_usages().
Referenced by main_thread_function().
void ResourceMonitor::perform_purge_check | ( | bool | purge_cold_files, |
int | tl | ||
) |
Definition at line 681 of file XrdPfcResourceMonitor.cc.
References XrdPfc::Configuration::are_file_usage_limits_set(), XrdPfc::PurgePin::CallPeriodically(), XrdPfc::Cache::ClearPurgeProtectedSet(), XrdPfc::Cache::Conf(), XrdPfc::DirState::count_dirs_to_level(), DoIt(), dprintf, fill_pshot_vec_children(), XrdPfc::DataFsState::get_root(), XrdPfc::Cache::GetInstance(), XrdPfc::Cache::GetPurgePin(), XrdPfc::Configuration::is_age_based_purge_in_effect(), XrdPfc::DataFsPurgeshot::m_age_based_purge, XrdPfc::DataFsPurgeshot::m_bytes_to_remove, XrdPfc::DataFsPurgeshot::m_dir_vec, XrdPfc::DataFsStateBase::m_disk_used, XrdPfc::Configuration::m_diskUsageHWM, XrdPfc::Configuration::m_diskUsageLWM, XrdPfc::DataFsPurgeshot::m_estimated_writes_from_writeq, XrdPfc::DataFsStateBase::m_file_usage, XrdPfc::DirState::m_here_usage, XrdPfc::DirUsage::m_NDirectories, m_purge_task_active, XrdPfc::DirState::m_recursive_subdir_usage, XrdPfc::DataFsPurgeshot::m_space_based_purge, perform_purge_task(), perform_purge_task_cleanup(), XrdPfc::Cache::ResMon(), XrdPfc::Cache::schedP, XrdScheduler::Schedule(), TRACE, TRACE_INT, Warning, and XrdPfc::Cache::WritesSinceLastCall().
Referenced by heart_beat().
void ResourceMonitor::perform_purge_task | ( | DataFsPurgeshot & | ps | ) |
Definition at line 788 of file XrdPfcResourceMonitor.cc.
References m_purge_task_cond, m_purge_task_start, and XrdPfc::OldStylePurgeDriver().
Referenced by perform_purge_check().
void ResourceMonitor::perform_purge_task_cleanup | ( | ) |
Definition at line 808 of file XrdPfcResourceMonitor.cc.
References XrdPfc::Cache::ClearPurgeProtectedSet(), XrdPfc::Cache::GetInstance(), m_purge_task_complete, m_purge_task_cond, m_purge_task_end, and XrdSysCondVar::Signal().
Referenced by perform_purge_check().
int ResourceMonitor::process_queues | ( | ) |
Definition at line 224 of file XrdPfcResourceMonitor.cc.
References XrdPfc::DirStats::AddUp(), dprintf, Macaroons::Error, XrdPfc::DataFsState::find_dirstate_for_lfn(), XrdPfc::DirState::find_path(), XrdPfc::DirState::get_parent(), XrdPfc::DataFsState::get_root(), XrdPfc::DirState::m_here_stats, XrdPfc::DirState::m_here_usage, XrdPfc::DirUsage::m_LastCloseTime, XrdPfc::DirUsage::m_LastOpenTime, XrdPfc::DirStats::m_NDirectoriesCreated, XrdPfc::DirStats::m_NFilesClosed, XrdPfc::DirStats::m_NFilesCreated, XrdPfc::DirStats::m_NFilesOpened, XrdPfc::DirStats::m_NFilesRemoved, XrdPfc::DirStats::m_StBlocksRemoved, token(), and TRACE.
Referenced by heart_beat(), and main_thread_function().
|
inline |
Definition at line 185 of file XrdPfcResourceMonitor.hh.
Referenced by XrdPfc::Cache::ExecuteCommandUrl().
|
inline |
Definition at line 149 of file XrdPfcResourceMonitor.hh.
Referenced by XrdPfc::Cache::ExecuteCommandUrl().
|
inline |
Definition at line 204 of file XrdPfcResourceMonitor.hh.
|
inline |
Definition at line 192 of file XrdPfcResourceMonitor.hh.
Referenced by XrdPfc::Cache::UnlinkFile().
|
inline |
Definition at line 167 of file XrdPfcResourceMonitor.hh.
References XrdPfc::Stats::AddUp(), and token().
Referenced by XrdPfc::Cache::ExecuteCommandUrl().
|
inline |
Definition at line 200 of file XrdPfcResourceMonitor.hh.
|
inline |
Definition at line 196 of file XrdPfcResourceMonitor.hh.
void ResourceMonitor::scan_dir_and_recurse | ( | FsTraversal & | fst | ) |
Definition at line 115 of file XrdPfcResourceMonitor.cc.
References XrdPfc::FsTraversal::cd_down(), XrdPfc::FsTraversal::cd_up(), dprintf, XrdPfc::FsTraversal::m_current_dirs, XrdPfc::FsTraversal::m_current_files, XrdPfc::FsTraversal::m_current_path, XrdPfc::FsTraversal::m_dir_state, XrdPfc::DirState::m_here_usage, XrdPfc::DirUsage::m_NFiles, XrdPfc::DirState::m_scanned, and XrdPfc::DirUsage::m_StBlocks.
Referenced by perform_initial_scan().
|
inline |
Definition at line 217 of file XrdPfcResourceMonitor.hh.
Referenced by process_queues(), and register_file_update_stats().
void ResourceMonitor::update_vs_and_file_usage_info | ( | ) |
Definition at line 549 of file XrdPfcResourceMonitor.cc.
References XrdPfc::Cache::Conf(), Macaroons::Error, XrdOssVSInfo::Free, XrdPfc::DataFsStateBase::m_disk_total, XrdPfc::DataFsStateBase::m_disk_used, XrdPfc::DataFsStateBase::m_file_usage, XrdPfc::DataFsStateBase::m_meta_total, XrdPfc::DataFsStateBase::m_meta_used, XrdOss::StatVS(), XrdOssVSInfo::Total, and TRACE.
Referenced by heart_beat(), and perform_initial_scan().
bool XrdPfc::ResourceMonitor::m_purge_task_active {false} |
Definition at line 248 of file XrdPfcResourceMonitor.hh.
Referenced by heart_beat(), and perform_purge_check().
bool XrdPfc::ResourceMonitor::m_purge_task_complete {false} |
Definition at line 249 of file XrdPfcResourceMonitor.hh.
Referenced by heart_beat(), and perform_purge_task_cleanup().
XrdSysCondVar XrdPfc::ResourceMonitor::m_purge_task_cond {0} |
Definition at line 244 of file XrdPfcResourceMonitor.hh.
Referenced by heart_beat(), perform_purge_task(), and perform_purge_task_cleanup().
time_t XrdPfc::ResourceMonitor::m_purge_task_end {0} |
Definition at line 247 of file XrdPfcResourceMonitor.hh.
Referenced by perform_purge_task_cleanup().
time_t XrdPfc::ResourceMonitor::m_purge_task_start {0} |
Definition at line 246 of file XrdPfcResourceMonitor.hh.
Referenced by perform_purge_task().