@@ -52,7 +52,7 @@ namespace stellar
5252{
5353
5454std::unique_ptr<BucketManager>
55- BucketManager::create (Application & app)
55+ BucketManager::create (AppConnector & app)
5656{
5757 auto bucketManagerPtr =
5858 std::unique_ptr<BucketManager>(new BucketManager (app));
@@ -99,7 +99,7 @@ BucketManager::initialize()
9999 mLiveBucketList = std::make_unique<LiveBucketList>();
100100 mHotArchiveBucketList = std::make_unique<HotArchiveBucketList>();
101101 mSnapshotManager = std::make_unique<BucketSnapshotManager>(
102- mApp ,
102+ mAppConnector ,
103103 std::make_unique<BucketListSnapshot<LiveBucket>>(*mLiveBucketList ,
104104 LedgerHeader ()),
105105 std::make_unique<BucketListSnapshot<HotArchiveBucket>>(
@@ -131,40 +131,41 @@ BucketManager::getTmpDirManager()
131131 return *mTmpDirManager ;
132132}
133133
134- BucketManager::BucketManager (Application& app )
135- : mApp (app )
134+ BucketManager::BucketManager (AppConnector& appConnector )
135+ : mAppConnector (appConnector )
136136 , mLiveBucketList (nullptr )
137137 , mHotArchiveBucketList (nullptr )
138138 , mSnapshotManager (nullptr )
139139 , mTmpDirManager (nullptr )
140140 , mWorkDir (nullptr )
141141 , mLockedBucketDir (nullptr )
142- , mBucketLiveObjectInsertBatch (app .getMetrics().NewMeter(
142+ , mBucketLiveObjectInsertBatch (appConnector .getMetrics().NewMeter(
143143 {" bucket" , " batch" , " objectsadded" }, " object" ))
144- , mBucketArchiveObjectInsertBatch (app .getMetrics().NewMeter(
144+ , mBucketArchiveObjectInsertBatch (appConnector .getMetrics().NewMeter(
145145 {" bucket" , " batch-archive" , " objectsadded" }, " object" ))
146146 , mBucketAddLiveBatch (
147- app.getMetrics().NewTimer({" bucket" , " batch" , " addtime" }))
148- , mBucketAddArchiveBatch (
149- app.getMetrics().NewTimer({" bucket" , " batch-archive" , " addtime" }))
150- , mBucketSnapMerge (app.getMetrics().NewTimer({" bucket" , " snap" , " merge" }))
147+ appConnector.getMetrics().NewTimer({" bucket" , " batch" , " addtime" }))
148+ , mBucketAddArchiveBatch (appConnector.getMetrics().NewTimer(
149+ {" bucket" , " batch-archive" , " addtime" }))
150+ , mBucketSnapMerge (
151+ appConnector.getMetrics().NewTimer({" bucket" , " snap" , " merge" }))
151152 , mSharedBucketsSize (
152- app .getMetrics().NewCounter({" bucket" , " memory" , " shared" }))
153+ appConnector .getMetrics().NewCounter({" bucket" , " memory" , " shared" }))
153154 , mLiveBucketListSizeCounter (
154- app .getMetrics().NewCounter({" bucketlist" , " size" , " bytes" }))
155- , mArchiveBucketListSizeCounter (
156- app.getMetrics().NewCounter( {" bucketlist-archive" , " size" , " bytes" }))
157- , mCacheHitMeter (app .getMetrics().NewMeter({ " bucketlistDB " , " cache " , " hit " },
158- " bucketlistDB" ))
159- , mCacheMissMeter (app .getMetrics().NewMeter(
155+ appConnector .getMetrics().NewCounter({" bucketlist" , " size" , " bytes" }))
156+ , mArchiveBucketListSizeCounter (appConnector.getMetrics().NewCounter(
157+ {" bucketlist-archive" , " size" , " bytes" }))
158+ , mCacheHitMeter (appConnector .getMetrics().NewMeter(
159+ { " bucketlistDB " , " cache " , " hit " }, " bucketlistDB" ))
160+ , mCacheMissMeter (appConnector .getMetrics().NewMeter(
160161 {" bucketlistDB" , " cache" , " miss" }, " bucketlistDB" ))
161- , mLiveBucketIndexCacheEntries (
162- app.getMetrics().NewCounter( {" bucketlistDB" , " cache" , " entries" }))
163- , mLiveBucketIndexCacheBytes (
164- app.getMetrics().NewCounter( {" bucketlistDB" , " cache" , " bytes" }))
165- , mBucketListEvictionCounters (app )
162+ , mLiveBucketIndexCacheEntries (appConnector.getMetrics().NewCounter(
163+ {" bucketlistDB" , " cache" , " entries" }))
164+ , mLiveBucketIndexCacheBytes (appConnector.getMetrics().NewCounter(
165+ {" bucketlistDB" , " cache" , " bytes" }))
166+ , mBucketListEvictionCounters (appConnector )
166167 , mEvictionStatistics (std::make_shared<EvictionStatistics>())
167- , mConfig (app .getConfig())
168+ , mConfig (appConnector .getConfig())
168169{
169170 for (uint32_t t =
170171 static_cast <uint32_t >(LedgerEntryTypeAndDurability::ACCOUNT);
@@ -174,10 +175,10 @@ BucketManager::BucketManager(Application& app)
174175 auto type = static_cast <LedgerEntryTypeAndDurability>(t);
175176 auto typeString = toString (type);
176177 mBucketListEntryCountCounters .emplace (
177- type, app .getMetrics ().NewCounter (
178+ type, appConnector .getMetrics ().NewCounter (
178179 {" bucketlist" , " entryCounts" , typeString}));
179180 mBucketListEntrySizeCounters .emplace (
180- type, app .getMetrics ().NewCounter (
181+ type, appConnector .getMetrics ().NewCounter (
181182 {" bucketlist" , " entrySizes" , typeString}));
182183 }
183184}
@@ -334,7 +335,7 @@ medida::Meter&
334335BucketManager::getBloomMissMeter () const
335336{
336337 BUCKET_TYPE_ASSERT (BucketT);
337- return mApp .getMetrics ().NewMeter (
338+ return mAppConnector .getMetrics ().NewMeter (
338339 {BucketT::METRIC_STRING, " bloom" , " misses" }, " bloom" );
339340}
340341
@@ -343,7 +344,7 @@ medida::Meter&
343344BucketManager::getBloomLookupMeter () const
344345{
345346 BUCKET_TYPE_ASSERT (BucketT);
346- return mApp .getMetrics ().NewMeter (
347+ return mAppConnector .getMetrics ().NewMeter (
347348 {BucketT::METRIC_STRING, " bloom" , " lookups" }, " bloom" );
348349}
349350
@@ -843,8 +844,8 @@ BucketManager::getAllReferencedBuckets(HistoryArchiveState const& has) const
843844 }
844845
845846 // retain buckets that are referenced by a state in the publish queue.
846- for (auto const & h :
847- HistoryManager::getBucketsReferencedByPublishQueue ( mApp .getConfig ()))
847+ for (auto const & h : HistoryManager::getBucketsReferencedByPublishQueue (
848+ mAppConnector .getConfig ()))
848849 {
849850 auto rhash = hexToBin256 (h);
850851 auto rit = referenced.emplace (rhash);
@@ -1158,7 +1159,7 @@ BucketManager::startBackgroundEvictionScan(uint32_t ledgerSeq,
11581159 });
11591160
11601161 mEvictionFuture = task->get_future ();
1161- mApp .postOnEvictionBackgroundThread (
1162+ mAppConnector .postOnEvictionBackgroundThread (
11621163 bind (&task_t::operator (), task),
11631164 " SearchableLiveBucketListSnapshot: eviction scan" );
11641165}
@@ -1295,7 +1296,7 @@ BucketManager::checkForMissingBucketsFiles(HistoryArchiveState const& has)
12951296}
12961297
12971298void
1298- BucketManager::assumeState (HistoryArchiveState const & has,
1299+ BucketManager::assumeState (Application& app, HistoryArchiveState const & has,
12991300 uint32_t maxProtocolVersion, bool restartMerges)
13001301{
13011302 ZoneScoped;
@@ -1355,11 +1356,11 @@ BucketManager::assumeState(HistoryArchiveState const& has,
13551356
13561357 if (restartMerges)
13571358 {
1358- mLiveBucketList ->restartMerges (mApp , maxProtocolVersion,
1359+ mLiveBucketList ->restartMerges (app , maxProtocolVersion,
13591360 has.currentLedger );
13601361 if (has.hasHotArchiveBuckets ())
13611362 {
1362- mHotArchiveBucketList ->restartMerges (mApp , maxProtocolVersion,
1363+ mHotArchiveBucketList ->restartMerges (app , maxProtocolVersion,
13631364 has.currentLedger );
13641365 }
13651366 }
@@ -1462,14 +1463,14 @@ BucketManager::loadCompleteLedgerState(HistoryArchiveState const& has)
14621463}
14631464
14641465std::shared_ptr<LiveBucket>
1465- BucketManager::mergeBuckets (HistoryArchiveState const & has)
1466+ BucketManager::mergeBuckets (asio::io_context& ctx,
1467+ HistoryArchiveState const & has)
14661468{
14671469 ZoneScoped;
14681470 releaseAssert (threadIsMain ());
14691471 std::map<LedgerKey, LedgerEntry> ledgerMap = loadCompleteLedgerState (has);
14701472 BucketMetadata meta;
14711473 MergeCounters mc;
1472- auto & ctx = mApp .getClock ().getIOContext ();
14731474 meta.ledgerVersion = mConfig .LEDGER_PROTOCOL_VERSION ;
14741475 LiveBucketOutputIterator out (getTmpDir (), /* keepTombstoneEntries=*/ false ,
14751476 meta, mc, ctx, /* doFsync=*/ true );
@@ -1656,7 +1657,7 @@ BucketManager::visitLedgerEntries(
16561657
16571658std::shared_ptr<BasicWork>
16581659BucketManager::scheduleVerifyReferencedBucketsWork (
1659- HistoryArchiveState const & has)
1660+ Application& app, HistoryArchiveState const & has)
16601661{
16611662 releaseAssert (threadIsMain ());
16621663 std::set<Hash> hashes = getAllReferencedBuckets (has);
@@ -1699,7 +1700,7 @@ BucketManager::scheduleVerifyReferencedBucketsWork(
16991700
17001701 seq.emplace_back (
17011702 std::make_shared<VerifyBucketWork<HotArchiveBucket>>(
1702- mApp , filename, hash, indexIter->second , nullptr ));
1703+ app , filename, hash, indexIter->second , nullptr ));
17031704 }
17041705 else
17051706 {
@@ -1708,10 +1709,10 @@ BucketManager::scheduleVerifyReferencedBucketsWork(
17081709 auto [indexIter, _] = liveIndexMap.emplace (i++, nullptr );
17091710
17101711 seq.emplace_back (std::make_shared<VerifyBucketWork<LiveBucket>>(
1711- mApp , filename, hash, indexIter->second , nullptr ));
1712+ app , filename, hash, indexIter->second , nullptr ));
17121713 }
17131714 }
1714- return mApp .getWorkScheduler ().scheduleWork <WorkSequence>(
1715+ return app .getWorkScheduler ().scheduleWork <WorkSequence>(
17151716 " verify-referenced-buckets" , seq);
17161717}
17171718
@@ -1734,7 +1735,7 @@ BucketManager::reportBucketEntryCountMetrics()
17341735 countCounter =
17351736 mBucketListEntryCountCounters
17361737 .emplace (type,
1737- mApp .getMetrics ().NewCounter (
1738+ mAppConnector .getMetrics ().NewCounter (
17381739 {" bucketlist" , " entryCounts" , typeString}))
17391740 .first ;
17401741 }
@@ -1747,7 +1748,7 @@ BucketManager::reportBucketEntryCountMetrics()
17471748 sizeCounter =
17481749 mBucketListEntrySizeCounters
17491750 .emplace (type,
1750- mApp .getMetrics ().NewCounter (
1751+ mAppConnector .getMetrics ().NewCounter (
17511752 {" bucketlist" , " entrySizes" , typeString}))
17521753 .first ;
17531754 }
0 commit comments