32 #ifndef CVMFS_GARBAGE_COLLECTION_GARBAGE_COLLECTOR_H_
33 #define CVMFS_GARBAGE_COLLECTION_GARBAGE_COLLECTOR_H_
44 template<
class CatalogTraversalT,
class HashFilterT>
48 typedef typename ObjectFetcherTN::HistoryTN
HistoryTN;
49 typedef typename ObjectFetcherTN::ReflogTN
ReflogTN;
50 typedef typename CatalogTraversalT::CatalogTN
CatalogTN;
136 bool retval =
reflog_->GetCatalogTimestamp(catalog->hash(), ×tamp);
137 return retval ? timestamp : catalog->GetLastModified();
187 #endif // CVMFS_GARBAGE_COLLECTION_GARBAGE_COLLECTOR_H_
uint64_t condemned_bytes_count() const
uint64_t condemned_objects_
uint64_t unreferenced_trees_
uint64_t condemned_catalogs_
HashFilterT hash_map_delete_requests_
uint64_t duplicate_delete_requests_
ReflogBasedInfoShim(ReflogTN *reflog)
bool AnalyzePreservedCatalogTree()
uint64_t condemned_catalog_count() const
FILE * deleted_objects_logfile
void UseReflogTimestamps()
uint64_t oldest_trunk_catalog() const
void LogDeletion(const shash::Any &hash) const
pthread_mutex_t reflog_mutex_
TraversalParameters GetTraversalParams(const Configuration &configuration)
uint64_t condemned_bytes_
ObjectFetcherTN * object_fetcher
ObjectFetcherTN::HistoryTN HistoryTN
perf::Statistics * statistics
void Sweep(const shash::Any &hash)
CatalogTraversalT::Parameters TraversalParameters
bool oldest_trunk_catalog_found_
CatalogTraversalT traversal_
bool use_reflog_timestamps_
uint64_t preserved_catalog_count() const
CatalogTraversalT::CallbackDataTN TraversalCallbackDataTN
float last_reported_status_
static const uint64_t kNoHistory
void PrintCatalogTreeEntry(const unsigned int tree_level, const CatalogTN *catalog) const
bool has_deletion_log() const
uint64_t condemned_trees_
virtual uint64_t GetLastModified(const CatalogTN *catalog)
static const shash::Any kLatestHistoryDatabase
uint64_t oldest_trunk_catalog_
ObjectFetcherTN::ReflogTN ReflogTN
uint64_t condemned_objects_count() const
CatalogTraversalT::ObjectFetcherTN ObjectFetcherTN
CatalogTraversalT::CatalogTN CatalogTN
uint64_t duplicate_delete_requests() const
manifest::Reflog * reflog
upload::AbstractUploader * uploader
uint64_t preserved_catalogs_
static const time_t kNoTimestamp
uint64_t keep_history_depth
bool RemoveCatalogFromReflog(const shash::Any &catalog)
static const uint64_t kFullHistory
void PreserveDataObjects(const TraversalCallbackDataTN &data)
const Configuration configuration_
void SweepDataObjects(const TraversalCallbackDataTN &data)
void CheckAndSweep(const shash::Any &hash)
time_t keep_history_timestamp
std::vector< shash::Any > HashVector
ReflogBasedInfoShim catalog_info_shim_
bool CheckPreservedRevisions()
GarbageCollector(const Configuration &configuration)
virtual ~ReflogBasedInfoShim()