diff --git a/objectstore/ArchiveQueue.cpp b/objectstore/ArchiveQueue.cpp index 93f12e675194ba2a62bf31fe4d7df41278ed7adb..70e30cdf6a12586247e0f9b0c22a487f86abb9de 100644 --- a/objectstore/ArchiveQueue.cpp +++ b/objectstore/ArchiveQueue.cpp @@ -58,6 +58,8 @@ void ArchiveQueue::initialize(const std::string& name) { // set the archive jobs counter to zero m_payload.set_archivejobstotalsize(0); m_payload.set_oldestjobcreationtime(0); + // set the initial summary map rebuild count to zero + m_payload.set_mapsrebuildcount(0); // This object is good to go (to storage) m_payloadInterpreted = true; } @@ -79,6 +81,7 @@ void ArchiveQueue::commit() { priorityMap.incCount(m_payload.pendingarchivejobs(i).priority()); minArchiveRequestAgeMap.incCount(m_payload.pendingarchivejobs(i).priority()); } + m_payload.set_mapsrebuildcount(m_payload.mapsrebuildcount()+1); } ObjectOps<serializers::ArchiveQueue, serializers::ArchiveQueue_t>::commit(); } @@ -241,6 +244,7 @@ void ArchiveQueue::removeJob(const std::string& archiveToFileAddress) { priorityMap.decCount(jl->Get(i).priority()); ValueCountMap minArchiveRequestAgeMap(m_payload.mutable_minarchiverequestagemap()); minArchiveRequestAgeMap.decCount(jl->Get(i).minarchiverequestage()); + m_payload.set_archivejobstotalsize(m_payload.archivejobstotalsize() - jl->Get(i).size()); while (i+1 < (size_t)jl->size()) { jl->SwapElements(i, i+1); i++; diff --git a/objectstore/cta.proto b/objectstore/cta.proto index f15999b92b82f6e4e7b5d37093913fed07921ed9..e074bbc704b84d4557bba20bd1781d19215824c4 100644 --- a/objectstore/cta.proto +++ b/objectstore/cta.proto @@ -386,6 +386,7 @@ message ArchiveQueue { repeated ValueCountPair maxdrivesallowedmap = 10033; required uint64 archivejobstotalsize = 10040; required uint64 oldestjobcreationtime = 10050; + required uint64 mapsrebuildcount = 10060; } message RetrieveQueue {