CernVM-FS  2.12.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
glue::DentryTracker Class Reference

#include <glue_buffer.h>

Collaboration diagram for glue::DentryTracker:

Classes

struct  Cursor
 
struct  Entry
 
struct  Statistics
 

Public Member Functions

Statistics GetStatistics ()
 
 DentryTracker ()
 
 DentryTracker (const DentryTracker &other)
 
DentryTrackeroperator= (const DentryTracker &other)
 
 ~DentryTracker ()
 
DentryTrackerMove ()
 
void Add (const uint64_t inode_parent, const char *name, uint64_t timeout_s)
 
void Prune ()
 
void Disable ()
 
bool is_active () const
 
void SpawnCleaner (unsigned interval_s)
 
Cursor BeginEnumerate ()
 
bool NextEntry (Cursor *cursor, uint64_t *inode_parent, NameString *name)
 
void EndEnumerate (Cursor *cursor)
 

Static Public Member Functions

static void * MainCleaner (void *data)
 

Private Member Functions

 FRIEND_TEST (T_GlueBuffer, DentryTracker)
 
void CopyFrom (const DentryTracker &other)
 
void InitLock ()
 
void Lock () const
 
void Unlock () const
 
void DoPrune (uint64_t now)
 

Private Attributes

pthread_mutex_t * lock_
 
unsigned version_
 
Statistics statistics_
 
bool is_active_
 
BigQueue< Entryentries_
 
int pipe_terminate_ [2]
 
int cleaning_interval_ms_
 
pthread_t thread_cleaner_
 

Static Private Attributes

static const unsigned kVersion = 0
 

Detailed Description

Tracks fuse name lookup replies for active cache eviction. Class renamed from previous name NentryTracker

Definition at line 820 of file glue_buffer.h.

Constructor & Destructor Documentation

glue::DentryTracker::DentryTracker ( )

Definition at line 112 of file glue_buffer.cc.

Referenced by Move().

Here is the call graph for this function:

Here is the caller graph for this function:

glue::DentryTracker::DentryTracker ( const DentryTracker other)

Definition at line 131 of file glue_buffer.cc.

Here is the call graph for this function:

glue::DentryTracker::~DentryTracker ( )

Definition at line 119 of file glue_buffer.cc.

Referenced by RestoreState().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Function Documentation

void glue::DentryTracker::Add ( const uint64_t  inode_parent,
const char *  name,
uint64_t  timeout_s 
)
inline

Definition at line 865 of file glue_buffer.h.

Referenced by cvmfs::cvmfs_lookup().

Here is the call graph for this function:

Here is the caller graph for this function:

DentryTracker::Cursor glue::DentryTracker::BeginEnumerate ( )

Definition at line 238 of file glue_buffer.cc.

Referenced by FuseInvalidator::MainInvalidator().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::DentryTracker::CopyFrom ( const DentryTracker other)
private

Definition at line 150 of file glue_buffer.cc.

Referenced by DentryTracker(), and operator=().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::DentryTracker::Disable ( )
inline

The nentry tracker is only needed for active cache eviction and can otherwise ignore new entries.

Definition at line 882 of file glue_buffer.h.

Referenced by Init().

Here is the caller graph for this function:

void glue::DentryTracker::DoPrune ( uint64_t  now)
inlineprivate

Definition at line 906 of file glue_buffer.h.

Referenced by Add(), and Prune().

Here is the caller graph for this function:

void glue::DentryTracker::EndEnumerate ( Cursor cursor)

Definition at line 261 of file glue_buffer.cc.

Referenced by FuseInvalidator::MainInvalidator().

Here is the call graph for this function:

Here is the caller graph for this function:

glue::DentryTracker::FRIEND_TEST ( T_GlueBuffer  ,
DentryTracker   
)
private
Statistics glue::DentryTracker::GetStatistics ( )
inline

Definition at line 851 of file glue_buffer.h.

Referenced by TalkManager::MainResponder(), and perf::TelemetryAggregator::ManuallyUpdateSelectedCounters().

Here is the caller graph for this function:

void glue::DentryTracker::InitLock ( )
private

Definition at line 223 of file glue_buffer.cc.

Referenced by DentryTracker().

Here is the call graph for this function:

Here is the caller graph for this function:

bool glue::DentryTracker::is_active ( ) const
inline

Definition at line 883 of file glue_buffer.h.

void glue::DentryTracker::Lock ( ) const
inlineprivate

Definition at line 897 of file glue_buffer.h.

Referenced by Add(), BeginEnumerate(), Move(), operator=(), and Prune().

Here is the call graph for this function:

Here is the caller graph for this function:

void * glue::DentryTracker::MainCleaner ( void *  data)
static

Definition at line 180 of file glue_buffer.cc.

Referenced by SpawnCleaner().

Here is the call graph for this function:

Here is the caller graph for this function:

DentryTracker * glue::DentryTracker::Move ( )

Lock object during copy

Definition at line 160 of file glue_buffer.cc.

Referenced by FuseInvalidator::MainInvalidator().

Here is the call graph for this function:

Here is the caller graph for this function:

bool glue::DentryTracker::NextEntry ( Cursor cursor,
uint64_t *  inode_parent,
NameString name 
)

Definition at line 246 of file glue_buffer.cc.

Referenced by FuseInvalidator::MainInvalidator().

Here is the caller graph for this function:

DentryTracker & glue::DentryTracker::operator= ( const DentryTracker other)

Definition at line 139 of file glue_buffer.cc.

Here is the call graph for this function:

void glue::DentryTracker::Prune ( )

Definition at line 231 of file glue_buffer.cc.

Referenced by MainCleaner(), and FuseInvalidator::MainInvalidator().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::DentryTracker::SpawnCleaner ( unsigned  interval_s)

Definition at line 170 of file glue_buffer.cc.

Referenced by Spawn().

Here is the call graph for this function:

Here is the caller graph for this function:

void glue::DentryTracker::Unlock ( ) const
inlineprivate

Definition at line 901 of file glue_buffer.h.

Referenced by Add(), EndEnumerate(), Move(), operator=(), and Prune().

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

int glue::DentryTracker::cleaning_interval_ms_
private

Definition at line 924 of file glue_buffer.h.

Referenced by DentryTracker(), MainCleaner(), and SpawnCleaner().

BigQueue<Entry> glue::DentryTracker::entries_
private

Definition at line 921 of file glue_buffer.h.

Referenced by Add(), BeginEnumerate(), CopyFrom(), DoPrune(), Move(), and NextEntry().

bool glue::DentryTracker::is_active_
private

Definition at line 920 of file glue_buffer.h.

Referenced by Add(), CopyFrom(), Disable(), and is_active().

const unsigned glue::DentryTracker::kVersion = 0
staticprivate

Definition at line 892 of file glue_buffer.h.

Referenced by CopyFrom().

pthread_mutex_t* glue::DentryTracker::lock_
private

Definition at line 917 of file glue_buffer.h.

Referenced by InitLock(), Lock(), Unlock(), and ~DentryTracker().

int glue::DentryTracker::pipe_terminate_[2]
private

Definition at line 923 of file glue_buffer.h.

Referenced by DentryTracker(), MainCleaner(), SpawnCleaner(), and ~DentryTracker().

Statistics glue::DentryTracker::statistics_
private

Definition at line 919 of file glue_buffer.h.

Referenced by Add(), CopyFrom(), DoPrune(), GetStatistics(), and Move().

pthread_t glue::DentryTracker::thread_cleaner_
private

Definition at line 925 of file glue_buffer.h.

Referenced by SpawnCleaner(), and ~DentryTracker().

unsigned glue::DentryTracker::version_
private

Definition at line 918 of file glue_buffer.h.

Referenced by CopyFrom().


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