aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore/src
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-01-31 15:14:57 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2021-01-31 17:36:43 +0000
commit2503a877f21838e66e873f839a5b6fd0c38abfab (patch)
tree966ae9d7757aa58e7bff4aaa4b9b45b5f6668329 /searchcore/src
parent5ac0d0b71749c7555167c3c3906ff6843bf178f0 (diff)
Use vespalib::duration for timeouts
Diffstat (limited to 'searchcore/src')
-rw-r--r--searchcore/src/tests/proton/attribute/attributeflush_test.cpp1
-rw-r--r--searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/exclusive_attribute_read_accessor_test.cpp2
-rw-r--r--searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp40
-rw-r--r--searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/job_tracked_maintenance_job_test.cpp8
-rw-r--r--searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp45
-rw-r--r--searchcore/src/tests/proton/flushengine/flushengine_test.cpp6
-rw-r--r--searchcore/src/tests/proton/matching/docid_range_scheduler/docid_range_scheduler_test.cpp3
-rw-r--r--searchcore/src/tests/proton/metrics/documentdb_job_trackers/documentdb_job_trackers_test.cpp1
-rw-r--r--searchcore/src/tests/proton/metrics/job_tracked_flush/job_tracked_flush_test.cpp24
-rw-r--r--searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp1
-rw-r--r--searchcore/src/vespa/searchcore/proton/attribute/attribute_initializer.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/common/eventlogger.cpp33
-rw-r--r--searchcore/src/vespa/searchcore/proton/common/eventlogger.h13
-rw-r--r--searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastoreinitializer.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h2
-rw-r--r--searchcore/src/vespa/searchcore/proton/reprocessing/reprocess_documents_task.cpp7
-rw-r--r--searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.cpp2
-rw-r--r--searchcore/src/vespa/searchcore/proton/test/simple_job_tracker.h2
20 files changed, 85 insertions, 113 deletions
diff --git a/searchcore/src/tests/proton/attribute/attributeflush_test.cpp b/searchcore/src/tests/proton/attribute/attributeflush_test.cpp
index 8a814e25bd5..d6c40b0d70d 100644
--- a/searchcore/src/tests/proton/attribute/attributeflush_test.cpp
+++ b/searchcore/src/tests/proton/attribute/attributeflush_test.cpp
@@ -18,6 +18,7 @@
#include <vespa/vespalib/util/foreground_thread_executor.h>
#include <vespa/vespalib/util/foregroundtaskexecutor.h>
#include <vespa/vespalib/util/threadstackexecutor.h>
+#include <thread>
#include <vespa/log/log.h>
LOG_SETUP("attributeflush_test");
diff --git a/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/exclusive_attribute_read_accessor_test.cpp b/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/exclusive_attribute_read_accessor_test.cpp
index e284f5ed1d9..cb64a1a59d8 100644
--- a/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/exclusive_attribute_read_accessor_test.cpp
+++ b/searchcore/src/tests/proton/attribute/exclusive_attribute_read_accessor/exclusive_attribute_read_accessor_test.cpp
@@ -40,7 +40,7 @@ TEST_F("require that attribute write thread is blocked while guard is held", Fix
ReadGuard::UP guard = f.accessor.takeGuard();
Gate gate;
f.writer->execute(f.writer->getExecutorIdFromName(f.attribute->getNamePrefix()), [&gate]() { gate.countDown(); });
- bool reachedZero = gate.await(100);
+ bool reachedZero = gate.await(100ms);
EXPECT_FALSE(reachedZero);
EXPECT_EQUAL(1u, gate.getCount());
diff --git a/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp b/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp
index 1127191a1a2..8840d4778e0 100644
--- a/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/feedhandler/feedhandler_test.cpp
@@ -78,20 +78,20 @@ struct Rendezvous {
vespalib::Gate gone;
typedef std::unique_ptr<Rendezvous> UP;
Rendezvous() : enter(), leave(), gone() {}
- bool run(uint32_t timeout = 80000) {
+ bool run(vespalib::duration timeout = 80s) {
enter.countDown();
bool retval = leave.await(timeout);
gone.countDown();
return retval;
}
- bool waitForEnter(uint32_t timeout = 80000) {
+ bool waitForEnter(vespalib::duration timeout = 80s) {
return enter.await(timeout);
}
- bool leaveAndWait(uint32_t timeout = 80000) {
+ bool leaveAndWait(vespalib::duration timeout = 80s) {
leave.countDown();
return gone.await(timeout);
}
- bool await(uint32_t timeout = 80000) {
+ bool await(vespalib::duration timeout = 80s) {
if (waitForEnter(timeout)) {
return leaveAndWait(timeout);
}
@@ -373,7 +373,7 @@ struct FeedTokenContext {
FeedTokenContext();
~FeedTokenContext();
- bool await(uint32_t timeout = 80000) { return transport.gate.await(timeout); }
+ bool await(vespalib::duration timeout = 80s) { return transport.gate.await(timeout); }
const Result *getResult() {
if (transport.result.get()) {
return transport.result.get();
@@ -399,36 +399,6 @@ struct PutContext {
{}
};
-
-struct PutHandler {
- FeedHandler &handler;
- DocBuilder &builder;
- Timestamp timestamp;
- std::vector<PutContext::SP> puts;
- PutHandler(FeedHandler &fh, DocBuilder &db) :
- handler(fh),
- builder(db),
- timestamp(0),
- puts()
- {}
- void put(const vespalib::string &docId) {
- PutContext::SP pc(new PutContext(docId, builder));
- FeedOperation::UP op(new PutOperation(pc->docCtx.bucketId, timestamp, pc->docCtx.doc));
- handler.handleOperation(pc->tokenCtx.token, std::move(op));
- timestamp = Timestamp(timestamp + 1);
- puts.push_back(pc);
- }
- bool await(uint32_t timeout = 80000) {
- for (const auto & put : puts) {
- if (!put->tokenCtx.await(timeout)) {
- return false;
- }
- }
- return true;
- }
-};
-
-
struct MyTlsWriter : TlsWriter {
int store_count;
int erase_count;
diff --git a/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/job_tracked_maintenance_job_test.cpp b/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/job_tracked_maintenance_job_test.cpp
index 2bde5761aea..c12b91c4c1e 100644
--- a/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/job_tracked_maintenance_job_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/job_tracked_maintenance_job/job_tracked_maintenance_job_test.cpp
@@ -24,7 +24,7 @@ getGateVector(size_t size)
{
GateVector retval;
for (size_t i = 0; i < size; ++i) {
- retval.push_back(GateUP(new Gate()));
+ retval.push_back(std::make_unique<Gate>());
}
return retval;
}
@@ -46,7 +46,7 @@ struct MyMaintenanceJob : public IBlockableMaintenanceJob
void unBlock(BlockedReason) override { _blocked = false; }
bool isBlocked() const override { return _blocked; }
bool run() override {
- _runGates[_runIdx++]->await(5000);
+ _runGates[_runIdx++]->await(5s);
return _runIdx == _runGates.size();
}
};
@@ -82,10 +82,10 @@ struct Fixture
}
void runJobAndWait(size_t runIdx, size_t startedGateCount, size_t endedGateCount) {
_exec.execute(vespalib::makeLambdaTask([this]() { runJob(); }));
- _tracker->_started.await(5000);
+ _tracker->_started.await(5s);
assertTracker(startedGateCount, endedGateCount);
_myJob->_runGates[runIdx]->countDown();
- _runGates[runIdx]->await(5000);
+ _runGates[runIdx]->await(5s);
}
};
diff --git a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
index c6ffa167dbf..44afe1ddd75 100644
--- a/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
+++ b/searchcore/src/tests/proton/documentdb/maintenancecontroller/maintenancecontroller_test.cpp
@@ -72,8 +72,7 @@ using BlockedReason = IBlockableMaintenanceJob::BlockedReason;
typedef BucketId::List BucketIdVector;
typedef std::set<BucketId> BucketIdSet;
-constexpr int TIMEOUT_MS = 60000;
-constexpr vespalib::duration TIMEOUT_SEC = 60s;
+constexpr vespalib::duration TIMEOUT = 60s;
namespace {
@@ -947,14 +946,14 @@ TEST_F("require that bucket move controller is active", MaintenanceControllerFix
EXPECT_EQUAL(5u, f._notReady.getNumUsedLids());
EXPECT_EQUAL(5u, f._notReady.getDocumentCount());
f.startMaintenance();
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(0u, f._ready.getNumUsedLids());
EXPECT_EQUAL(0u, f._ready.getDocumentCount());
EXPECT_EQUAL(10u, f._notReady.getNumUsedLids());
EXPECT_EQUAL(10u, f._notReady.getDocumentCount());
f._calc->addReady(bucketId1);
f.notifyClusterStateChanged();
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(3u, f._ready.getNumUsedLids());
EXPECT_EQUAL(3u, f._ready.getDocumentCount());
EXPECT_EQUAL(7u, f._notReady.getNumUsedLids());
@@ -963,13 +962,13 @@ TEST_F("require that bucket move controller is active", MaintenanceControllerFix
f._calc->addReady(bucketId2);
f._calc->addReady(bucketId4);
f.notifyClusterStateChanged();
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(6u, f._ready.getNumUsedLids());
EXPECT_EQUAL(6u, f._ready.getDocumentCount());
EXPECT_EQUAL(4u, f._notReady.getNumUsedLids());
EXPECT_EQUAL(4u, f._notReady.getDocumentCount());
frozen2.reset();
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(8u, f._ready.getNumUsedLids());
EXPECT_EQUAL(8u, f._ready.getDocumentCount());
EXPECT_EQUAL(2u, f._notReady.getNumUsedLids());
@@ -997,14 +996,14 @@ TEST_F("require that document pruner is active", MaintenanceControllerFixture)
EXPECT_EQUAL(10u, f._removed.getNumUsedLids());
EXPECT_EQUAL(10u, f._removed.getDocumentCount());
f.startMaintenance();
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(10u, f._removed.getNumUsedLids());
EXPECT_EQUAL(10u, f._removed.getDocumentCount());
MyFrozenBucket::UP frozen3(new MyFrozenBucket(f._mc, bucketId3));
f.setPruneConfig(DocumentDBPruneRemovedDocumentsConfig(200ms, 900s));
for (uint32_t i = 0; i < 6; ++i) {
std::this_thread::sleep_for(100ms);
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
if (f._removed.getNumUsedLids() != 10u)
break;
}
@@ -1013,7 +1012,7 @@ TEST_F("require that document pruner is active", MaintenanceControllerFixture)
frozen3.reset();
for (uint32_t i = 0; i < 600; ++i) {
std::this_thread::sleep_for(100ms);
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
if (f._removed.getNumUsedLids() != 10u)
break;
}
@@ -1075,7 +1074,7 @@ TEST_F("require that active bucket is not moved until de-activated", Maintenance
EXPECT_EQUAL(5u, f._notReady.getDocumentCount());
f.startMaintenance();
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(5u, f._ready.getNumUsedLids());
EXPECT_EQUAL(5u, f._ready.getDocumentCount());
EXPECT_EQUAL(5u, f._notReady.getNumUsedLids());
@@ -1084,7 +1083,7 @@ TEST_F("require that active bucket is not moved until de-activated", Maintenance
// de-activate bucket 1
f._ready.setBucketState(readyDocs.getBucket(1), false);
f.notifyBucketStateChanged(readyDocs.getBucket(1), BucketInfo::NOT_ACTIVE);
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(2u, f._ready.getNumUsedLids());
EXPECT_EQUAL(2u, f._ready.getDocumentCount());
EXPECT_EQUAL(8u, f._notReady.getNumUsedLids());
@@ -1093,7 +1092,7 @@ TEST_F("require that active bucket is not moved until de-activated", Maintenance
// re-activate bucket 1
f._ready.setBucketState(readyDocs.getBucket(1), true);
f.notifyBucketStateChanged(readyDocs.getBucket(1), BucketInfo::ACTIVE);
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(5u, f._ready.getNumUsedLids());
EXPECT_EQUAL(5u, f._ready.getDocumentCount());
EXPECT_EQUAL(5u, f._notReady.getNumUsedLids());
@@ -1102,7 +1101,7 @@ TEST_F("require that active bucket is not moved until de-activated", Maintenance
// de-activate bucket 1
f._ready.setBucketState(readyDocs.getBucket(1), false);
f.notifyBucketStateChanged(readyDocs.getBucket(1), BucketInfo::NOT_ACTIVE);
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(2u, f._ready.getNumUsedLids());
EXPECT_EQUAL(2u, f._ready.getDocumentCount());
EXPECT_EQUAL(8u, f._notReady.getNumUsedLids());
@@ -1111,7 +1110,7 @@ TEST_F("require that active bucket is not moved until de-activated", Maintenance
// re-activate bucket 1
f._ready.setBucketState(readyDocs.getBucket(1), true);
f.notifyBucketStateChanged(readyDocs.getBucket(1), BucketInfo::ACTIVE);
- ASSERT_TRUE(f._executor.waitIdle(TIMEOUT_SEC));
+ ASSERT_TRUE(f._executor.waitIdle(TIMEOUT));
EXPECT_EQUAL(5u, f._ready.getNumUsedLids());
EXPECT_EQUAL(5u, f._ready.getDocumentCount());
EXPECT_EQUAL(5u, f._notReady.getNumUsedLids());
@@ -1125,19 +1124,19 @@ TEST_F("require that a simple maintenance job is executed", MaintenanceControlle
f._mc.registerJobInMasterThread(std::move(job));
f._injectDefaultJobs = false;
f.startMaintenance();
- bool done = myJob._latch.await(TIMEOUT_MS);
+ bool done = myJob._latch.await(TIMEOUT);
EXPECT_TRUE(done);
EXPECT_EQUAL(0u, myJob._latch.getCount());
}
TEST_F("require that a split maintenance job is executed", MaintenanceControllerFixture)
{
- auto job = std::make_unique<MySplitJob>(200ms, TIMEOUT_SEC * 2, 3);
+ auto job = std::make_unique<MySplitJob>(200ms, TIMEOUT * 2, 3);
MySplitJob &myJob = *job;
f._mc.registerJobInMasterThread(std::move(job));
f._injectDefaultJobs = false;
f.startMaintenance();
- bool done = myJob._latch.await(TIMEOUT_MS);
+ bool done = myJob._latch.await(TIMEOUT);
EXPECT_TRUE(done);
EXPECT_EQUAL(0u, myJob._latch.getCount());
}
@@ -1145,9 +1144,9 @@ TEST_F("require that a split maintenance job is executed", MaintenanceController
TEST_F("require that a blocked job is unblocked and executed after thaw bucket",
MaintenanceControllerFixture)
{
- auto job1 = std::make_unique<MySimpleJob>(TIMEOUT_SEC * 2, TIMEOUT_SEC * 2, 1);
+ auto job1 = std::make_unique<MySimpleJob>(TIMEOUT * 2, TIMEOUT * 2, 1);
MySimpleJob &myJob1 = *job1;
- auto job2 = std::make_unique< MySimpleJob>(TIMEOUT_SEC * 2, TIMEOUT_SEC * 2, 0);
+ auto job2 = std::make_unique< MySimpleJob>(TIMEOUT * 2, TIMEOUT * 2, 0);
MySimpleJob &myJob2 = *job2;
f._mc.registerJobInMasterThread(std::move(job1));
f._mc.registerJobInMasterThread(std::move(job2));
@@ -1169,7 +1168,7 @@ TEST_F("require that a blocked job is unblocked and executed after thaw bucket",
f._executor.sync();
EXPECT_FALSE(myJob1.isBlocked());
EXPECT_FALSE(myJob2.isBlocked());
- bool done1 = myJob1._latch.await(TIMEOUT_MS);
+ bool done1 = myJob1._latch.await(TIMEOUT);
EXPECT_TRUE(done1);
std::this_thread::sleep_for(2s);
EXPECT_EQUAL(0u, myJob2._runCnt);
@@ -1190,14 +1189,14 @@ TEST_F("require that blocked jobs are not executed", MaintenanceControllerFixtur
TEST_F("require that maintenance controller state list jobs", MaintenanceControllerFixture)
{
{
- IMaintenanceJob::UP job1(new MySimpleJob(TIMEOUT_SEC * 2, TIMEOUT_SEC * 2, 0));
- IMaintenanceJob::UP job2(new MyLongRunningJob(200ms, 200ms));
+ auto job1 = std::make_unique<MySimpleJob>(TIMEOUT * 2, TIMEOUT * 2, 0);
+ auto job2 = std::make_unique<MyLongRunningJob>(200ms, 200ms);
auto &longRunningJob = dynamic_cast<MyLongRunningJob &>(*job2);
f._mc.registerJobInMasterThread(std::move(job1));
f._mc.registerJobInMasterThread(std::move(job2));
f._injectDefaultJobs = false;
f.startMaintenance();
- longRunningJob._firstRun.await(TIMEOUT_MS);
+ longRunningJob._firstRun.await(TIMEOUT);
}
MaintenanceControllerExplorer explorer(f._mc.getJobList());
diff --git a/searchcore/src/tests/proton/flushengine/flushengine_test.cpp b/searchcore/src/tests/proton/flushengine/flushengine_test.cpp
index fae2e9f2d52..b1c188b2f9f 100644
--- a/searchcore/src/tests/proton/flushengine/flushengine_test.cpp
+++ b/searchcore/src/tests/proton/flushengine/flushengine_test.cpp
@@ -14,7 +14,7 @@
#include <vespa/vespalib/test/insertion_operators.h>
#include <vespa/vespalib/testkit/testapp.h>
#include <mutex>
-#include <chrono>
+#include <thread>
#include <vespa/log/log.h>
LOG_SETUP("flushengine_test");
@@ -31,8 +31,8 @@ using searchcorespi::IFlushTarget;
using searchcorespi::FlushTask;
using vespalib::Slime;
-constexpr long LONG_TIMEOUT = 66666;
-constexpr long SHORT_TIMEOUT = 1;
+constexpr vespalib::duration LONG_TIMEOUT = 66666ms;
+constexpr vespalib::duration SHORT_TIMEOUT = 1ms;
constexpr vespalib::duration IINTERVAL = 1s;
class SimpleExecutor : public vespalib::Executor {
diff --git a/searchcore/src/tests/proton/matching/docid_range_scheduler/docid_range_scheduler_test.cpp b/searchcore/src/tests/proton/matching/docid_range_scheduler/docid_range_scheduler_test.cpp
index 4814ab4cb49..510269f2195 100644
--- a/searchcore/src/tests/proton/matching/docid_range_scheduler/docid_range_scheduler_test.cpp
+++ b/searchcore/src/tests/proton/matching/docid_range_scheduler/docid_range_scheduler_test.cpp
@@ -1,9 +1,8 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/vespalib/testkit/test_kit.h>
+#include <vespa/vespalib/testkit/time_bomb.h>
#include <vespa/searchcore/proton/matching/docid_range_scheduler.h>
-#include <chrono>
-#include <thread>
using namespace proton::matching;
using vespalib::TimeBomb;
diff --git a/searchcore/src/tests/proton/metrics/documentdb_job_trackers/documentdb_job_trackers_test.cpp b/searchcore/src/tests/proton/metrics/documentdb_job_trackers/documentdb_job_trackers_test.cpp
index c108e98cc2a..1b9c60b379e 100644
--- a/searchcore/src/tests/proton/metrics/documentdb_job_trackers/documentdb_job_trackers_test.cpp
+++ b/searchcore/src/tests/proton/metrics/documentdb_job_trackers/documentdb_job_trackers_test.cpp
@@ -4,6 +4,7 @@
#include <vespa/searchcore/proton/metrics/job_tracked_flush_target.h>
#include <vespa/searchcore/proton/test/dummy_flush_target.h>
#include <vespa/vespalib/testkit/testapp.h>
+#include <thread>
#include <vespa/log/log.h>
LOG_SETUP("documentdb_job_trackers_test");
diff --git a/searchcore/src/tests/proton/metrics/job_tracked_flush/job_tracked_flush_test.cpp b/searchcore/src/tests/proton/metrics/job_tracked_flush/job_tracked_flush_test.cpp
index 7c22aab2285..20d75972c8b 100644
--- a/searchcore/src/tests/proton/metrics/job_tracked_flush/job_tracked_flush_test.cpp
+++ b/searchcore/src/tests/proton/metrics/job_tracked_flush/job_tracked_flush_test.cpp
@@ -27,8 +27,8 @@ struct MyFlushTask : public searchcorespi::FlushTask
MyFlushTask(Gate &execGate) : _execGate(execGate) {}
// Implements searchcorespi::FlushTask
- virtual void run() override {
- _execGate.await(5000);
+ void run() override {
+ _execGate.await(5s);
}
virtual search::SerialNum getFlushSerial() const override { return 5; }
};
@@ -39,7 +39,7 @@ struct MyFlushTarget : public test::DummyFlushTarget
SerialNum _initFlushSerial;
Gate _execGate;
Gate _initGate;
- MyFlushTarget()
+ MyFlushTarget() noexcept
: test::DummyFlushTarget("mytarget", Type::FLUSH, Component::OTHER),
_initFlushSerial(0),
_execGate(),
@@ -50,8 +50,8 @@ struct MyFlushTarget : public test::DummyFlushTarget
FlushTask::UP initFlush(SerialNum currentSerial, std::shared_ptr<search::IFlushToken>) override {
if (currentSerial > 0) {
_initFlushSerial = currentSerial;
- _initGate.await(5000);
- return FlushTask::UP(new MyFlushTask(_execGate));
+ _initGate.await(5s);
+ return std::make_unique<MyFlushTask>(_execGate);
}
return FlushTask::UP();
}
@@ -66,8 +66,8 @@ struct Fixture
Gate _taskGate;
ThreadStackExecutor _exec;
Fixture(uint32_t numJobTrackings = 1)
- : _tracker(new SimpleJobTracker(numJobTrackings)),
- _target(new MyFlushTarget()),
+ : _tracker(std::make_shared<SimpleJobTracker>(numJobTrackings)),
+ _target(std::make_shared<MyFlushTarget>()),
_trackedFlush(_tracker, _target),
_task(),
_taskGate(),
@@ -95,12 +95,12 @@ TEST_F("require that flush task init is tracked", Fixture)
EXPECT_EQUAL(1u, f._tracker->_ended.getCount());
f._exec.execute(makeLambdaTask([&]() {f.initFlush(FLUSH_SERIAL); }));
- f._tracker->_started.await(5000);
+ f._tracker->_started.await(5s);
EXPECT_EQUAL(0u, f._tracker->_started.getCount());
EXPECT_EQUAL(1u, f._tracker->_ended.getCount());
f._target->_initGate.countDown();
- f._taskGate.await(5000);
+ f._taskGate.await(5s);
EXPECT_EQUAL(0u, f._tracker->_ended.getCount());
{
JobTrackedFlushTask *trackedTask = dynamic_cast<JobTrackedFlushTask *>(f._task.get());
@@ -114,18 +114,18 @@ TEST_F("require that flush task execution is tracked", Fixture(2))
{
f._exec.execute(makeLambdaTask([&]() { f.initFlush(FLUSH_SERIAL); }));
f._target->_initGate.countDown();
- f._taskGate.await(5000);
+ f._taskGate.await(5s);
EXPECT_EQUAL(1u, f._tracker->_started.getCount());
EXPECT_EQUAL(1u, f._tracker->_ended.getCount());
f._exec.execute(std::move(f._task));
- f._tracker->_started.await(5000);
+ f._tracker->_started.await(5s);
EXPECT_EQUAL(0u, f._tracker->_started.getCount());
EXPECT_EQUAL(1u, f._tracker->_ended.getCount());
f._target->_execGate.countDown();
- f._tracker->_ended.await(5000);
+ f._tracker->_ended.await(5s);
EXPECT_EQUAL(0u, f._tracker->_ended.getCount());
}
diff --git a/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp b/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp
index f028de23be6..63c861a60d9 100644
--- a/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp
+++ b/searchcore/src/tests/proton/reference/gid_to_lid_change_listener/gid_to_lid_change_listener_test.cpp
@@ -7,6 +7,7 @@
#include <vespa/searchcore/proton/reference/gid_to_lid_change_listener.h>
#include <vespa/searchlib/common/i_gid_to_lid_mapper_factory.h>
#include <vespa/vespalib/util/destructor_callbacks.h>
+#include <vespa/vespalib/util/gate.h>
#include <vespa/searchlib/test/mock_gid_to_lid_mapping.h>
#include <map>
#include <vespa/log/log.h>
diff --git a/searchcore/src/vespa/searchcore/proton/attribute/attribute_initializer.cpp b/searchcore/src/vespa/searchcore/proton/attribute/attribute_initializer.cpp
index 368e4ce12f2..372bfe5d631 100644
--- a/searchcore/src/vespa/searchcore/proton/attribute/attribute_initializer.cpp
+++ b/searchcore/src/vespa/searchcore/proton/attribute/attribute_initializer.cpp
@@ -199,7 +199,7 @@ AttributeInitializer::loadAttribute(const AttributeVectorSP &attr,
return false;
} else {
attr->commit(serialNum, serialNum);
- EventLogger::loadAttributeComplete(_documentSubDbName, attr->getName(), vespalib::count_ms(timer.elapsed()));
+ EventLogger::loadAttributeComplete(_documentSubDbName, attr->getName(), timer.elapsed());
}
return true;
}
diff --git a/searchcore/src/vespa/searchcore/proton/common/eventlogger.cpp b/searchcore/src/vespa/searchcore/proton/common/eventlogger.cpp
index 5966589d635..20b87f4bc63 100644
--- a/searchcore/src/vespa/searchcore/proton/common/eventlogger.cpp
+++ b/searchcore/src/vespa/searchcore/proton/common/eventlogger.cpp
@@ -10,6 +10,7 @@ LOG_SETUP(".proton.common.eventlogger");
using search::util::LogUtil;
using vespalib::JSONStringer;
using vespalib::make_string;
+using vespalib::count_ms;
namespace {
@@ -32,12 +33,12 @@ doTransactionLogReplayStart(const string &domainName, SerialNum first, SerialNum
}
void
-doTransactionLogReplayComplete(const string &domainName, int64_t elapsedTimeMs, const string &eventName)
+doTransactionLogReplayComplete(const string &domainName, vespalib::duration elapsedTime, const string &eventName)
{
JSONStringer jstr;
jstr.beginObject();
jstr.appendKey("domain").appendString(domainName);
- jstr.appendKey("time.elapsed.ms").appendInt64(elapsedTimeMs);
+ jstr.appendKey("time.elapsed.ms").appendInt64(count_ms(elapsedTime));
jstr.endObject();
EV_STATE(eventName.c_str(), jstr.toString().data());
}
@@ -71,9 +72,9 @@ EventLogger::transactionLogReplayProgress(const string &domainName, float progre
}
void
-EventLogger::transactionLogReplayComplete(const string &domainName, int64_t elapsedTimeMs)
+EventLogger::transactionLogReplayComplete(const string &domainName, vespalib::duration elapsedTime)
{
- doTransactionLogReplayComplete(domainName, elapsedTimeMs, "transactionlog.replay.complete");
+ doTransactionLogReplayComplete(domainName, elapsedTime, "transactionlog.replay.complete");
}
void
@@ -109,13 +110,13 @@ EventLogger::flushStart(const string &name, int64_t beforeMemory, int64_t afterM
}
void
-EventLogger::flushComplete(const string &name, int64_t elapsedTimeMs, SerialNum flushed,
+EventLogger::flushComplete(const string &name, vespalib::duration elapsedTime, SerialNum flushed,
const string &outputPath, size_t outputPathElems)
{
JSONStringer jstr;
jstr.beginObject();
jstr.appendKey("name").appendString(name);
- jstr.appendKey("time.elapsed.ms").appendInt64(elapsedTimeMs);
+ jstr.appendKey("time.elapsed.ms").appendInt64(count_ms(elapsedTime));
jstr.appendKey("serialnum")
.beginObject()
.appendKey("flushed").appendInt64(flushed)
@@ -237,13 +238,13 @@ EventLogger::reprocessDocumentsProgress(const string &subDb, double progress, do
void
-EventLogger::reprocessDocumentsComplete(const string &subDb, double visitCost, int64_t elapsedTimeMs)
+EventLogger::reprocessDocumentsComplete(const string &subDb, double visitCost, vespalib::duration elapsedTime)
{
JSONStringer jstr;
jstr.beginObject();
jstr.appendKey("documentsubdb").appendString(subDb);
jstr.appendKey("visitcost").appendDouble(visitCost);
- jstr.appendKey("time.elapsed.ms").appendInt64(elapsedTimeMs);
+ jstr.appendKey("time.elapsed.ms").appendInt64(count_ms(elapsedTime));
jstr.endObject();
EV_STATE("reprocess.documents.complete", jstr.toString().data());
}
@@ -261,13 +262,13 @@ EventLogger::loadAttributeStart(const vespalib::string &subDbName, const vespali
void
EventLogger::loadAttributeComplete(const vespalib::string &subDbName,
- const vespalib::string &attrName, int64_t elapsedTimeMs)
+ const vespalib::string &attrName, vespalib::duration elapsedTime)
{
JSONStringer jstr;
jstr.beginObject();
jstr.appendKey("documentsubdb").appendString(subDbName);
jstr.appendKey("name").appendString(attrName);
- jstr.appendKey("time.elapsed.ms").appendInt64(elapsedTimeMs);
+ jstr.appendKey("time.elapsed.ms").appendInt64(count_ms(elapsedTime));
jstr.endObject();
EV_STATE("load.attribute.complete", jstr.toString().data());
}
@@ -285,12 +286,12 @@ loadComponentStart(const vespalib::string &subDbName, const vespalib::string &co
}
void
-loadComponentComplete(const vespalib::string &subDbName, const vespalib::string &componentName, int64_t elapsedTimeMs)
+loadComponentComplete(const vespalib::string &subDbName, const vespalib::string &componentName, vespalib::duration elapsedTime)
{
JSONStringer jstr;
jstr.beginObject();
jstr.appendKey("documentsubdb").appendString(subDbName);
- jstr.appendKey("time.elapsed.ms").appendInt64(elapsedTimeMs);
+ jstr.appendKey("time.elapsed.ms").appendInt64(count_ms(elapsedTime));
jstr.endObject();
EV_STATE(make_string("load.%s.complete", componentName.c_str()).c_str(), jstr.toString().data());
}
@@ -304,9 +305,9 @@ EventLogger::loadDocumentMetaStoreStart(const vespalib::string &subDbName)
}
void
-EventLogger::loadDocumentMetaStoreComplete(const vespalib::string &subDbName, int64_t elapsedTimeMs)
+EventLogger::loadDocumentMetaStoreComplete(const vespalib::string &subDbName, vespalib::duration elapsedTime)
{
- loadComponentComplete(subDbName, "documentmetastore", elapsedTimeMs);
+ loadComponentComplete(subDbName, "documentmetastore", elapsedTime);
}
void
@@ -316,9 +317,9 @@ EventLogger::loadDocumentStoreStart(const vespalib::string &subDbName)
}
void
-EventLogger::loadDocumentStoreComplete(const vespalib::string &subDbName, int64_t elapsedTimeMs)
+EventLogger::loadDocumentStoreComplete(const vespalib::string &subDbName, vespalib::duration elapsedTime)
{
- loadComponentComplete(subDbName, "documentstore", elapsedTimeMs);
+ loadComponentComplete(subDbName, "documentstore", elapsedTime);
}
void
diff --git a/searchcore/src/vespa/searchcore/proton/common/eventlogger.h b/searchcore/src/vespa/searchcore/proton/common/eventlogger.h
index 574e650732a..7d32c777f98 100644
--- a/searchcore/src/vespa/searchcore/proton/common/eventlogger.h
+++ b/searchcore/src/vespa/searchcore/proton/common/eventlogger.h
@@ -3,6 +3,7 @@
#include <vespa/searchlib/common/serialnum.h>
#include <vespa/vespalib/stllike/string.h>
+#include <vespa/vespalib/util/time.h>
#include <vector>
namespace proton {
@@ -15,7 +16,7 @@ private:
typedef search::SerialNum SerialNum;
typedef vespalib::string string;
public:
- static void transactionLogReplayComplete(const string &domainName, int64_t elapsedTimeMs);
+ static void transactionLogReplayComplete(const string &domainName, vespalib::duration elapsedTime);
static void populateAttributeStart(const std::vector<string> &names);
static void populateAttributeComplete(const std::vector<string> &names, int64_t documentsVisisted);
static void populateDocumentFieldStart(const string &fieldName);
@@ -23,7 +24,7 @@ public:
static void lidSpaceCompactionComplete(const string &subDbName, uint32_t lidLimit);
static void reprocessDocumentsStart(const string &subDb, double visitCost);
static void reprocessDocumentsProgress(const string &subDb, double progress, double visitCost);
- static void reprocessDocumentsComplete(const string &subDb, double visitCost, int64_t elapsedTimeMs);
+ static void reprocessDocumentsComplete(const string &subDb, double visitCost, vespalib::duration elapsedTime);
static void transactionLogReplayStart(const string &domainName,
SerialNum first,
SerialNum last);
@@ -40,18 +41,18 @@ public:
SerialNum unflushed,
SerialNum current);
static void flushComplete(const string &name,
- int64_t elapsedTimeMs,
+ vespalib::duration elapsedTime,
SerialNum flushed,
const string &outputPath,
size_t outputPathElems);
static void flushPrune(const string &name, SerialNum oldestFlushed);
static void loadAttributeStart(const vespalib::string &subDbName, const vespalib::string &attrName);
static void loadAttributeComplete(const vespalib::string &subDbName,
- const vespalib::string &attrName, int64_t elapsedTimeMs);
+ const vespalib::string &attrName, vespalib::duration elapsedTime);
static void loadDocumentMetaStoreStart(const vespalib::string &subDbName);
- static void loadDocumentMetaStoreComplete(const vespalib::string &subDbName, int64_t elapsedTimeMs);
+ static void loadDocumentMetaStoreComplete(const vespalib::string &subDbName, vespalib::duration elapsedTime);
static void loadDocumentStoreStart(const vespalib::string &subDbName);
- static void loadDocumentStoreComplete(const vespalib::string &subDbName, int64_t elapsedTimeMs);
+ static void loadDocumentStoreComplete(const vespalib::string &subDbName, vespalib::duration elapsedTime);
static void transactionLogPruneComplete(const string &domainName, SerialNum prunedSerial);
};
diff --git a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp
index 29346903aef..85c92f0da6b 100644
--- a/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp
+++ b/searchcore/src/vespa/searchcore/proton/docsummary/summarymanagerinitializer.cpp
@@ -43,7 +43,7 @@ SummaryManagerInitializer::run()
*_result = std::make_shared<SummaryManager>
(_summaryExecutor, _storeCfg, _grow, _baseDir, _docTypeName,
_tuneFile, _fileHeaderContext, _tlSyncer, _bucketizer);
- EventLogger::loadDocumentStoreComplete(_subDbName, vespalib::count_ms(timer.elapsed()));
+ EventLogger::loadDocumentStoreComplete(_subDbName, timer.elapsed());
}
} // namespace proton
diff --git a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastoreinitializer.cpp b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastoreinitializer.cpp
index a1a8297d5c0..2bf6a1c8432 100644
--- a/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastoreinitializer.cpp
+++ b/searchcore/src/vespa/searchcore/proton/documentmetastore/documentmetastoreinitializer.cpp
@@ -51,7 +51,7 @@ DocumentMetaStoreInitializer::run()
} else {
_dms->commit(snap.syncToken, snap.syncToken);
}
- EventLogger::loadDocumentMetaStoreComplete(_subDbName, vespalib::count_ms(stopWatch.elapsed()));
+ EventLogger::loadDocumentMetaStoreComplete(_subDbName, stopWatch.elapsed());
}
} else {
vespalib::mkdir(_baseDir, false);
diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp
index 29fa2c95945..50162936835 100644
--- a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp
+++ b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.cpp
@@ -372,7 +372,7 @@ FlushEngine::flushDone(const FlushContext &ctx, uint32_t taskId)
}
if (LOG_WOULD_LOG(event)) {
FlushStats stats = ctx.getTarget()->getLastFlushStats();
- EventLogger::flushComplete(ctx.getName(), vespalib::count_ms(duration), ctx.getTarget()->getFlushedSerialNum(),
+ EventLogger::flushComplete(ctx.getName(), duration, ctx.getTarget()->getFlushedSerialNum(),
stats.getPath(), stats.getPathElementsToLog());
}
LOG(debug, "FlushEngine::flushDone(taskId='%d') took '%f' secs", taskId, vespalib::to_s(duration));
diff --git a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h
index e4f3cc8edc2..b3376ece351 100644
--- a/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h
+++ b/searchcore/src/vespa/searchcore/proton/flushengine/flushengine.h
@@ -102,7 +102,7 @@ public:
* @param idleInterval The interval between when flushes are checked whne there are no one progressing.
*/
FlushEngine(std::shared_ptr<flushengine::ITlsStatsFactory> tlsStatsFactory,
- IFlushStrategy::SP strategy, uint32_t numThreads, vespalib::duration idleIntervalMS);
+ IFlushStrategy::SP strategy, uint32_t numThreads, vespalib::duration idleInterval);
/**
* Destructor. Waits for all pending tasks to complete.
diff --git a/searchcore/src/vespa/searchcore/proton/reprocessing/reprocess_documents_task.cpp b/searchcore/src/vespa/searchcore/proton/reprocessing/reprocess_documents_task.cpp
index d8e0fcc7843..d5cbb4615f4 100644
--- a/searchcore/src/vespa/searchcore/proton/reprocessing/reprocess_documents_task.cpp
+++ b/searchcore/src/vespa/searchcore/proton/reprocessing/reprocess_documents_task.cpp
@@ -44,8 +44,7 @@ ReprocessDocumentsTask::run()
docstore.accept(_handler, *this, *_docTypeRepo);
}
_handler.done();
- EventLogger::reprocessDocumentsComplete(_subDbName, _visitorCost,
- duration_cast<milliseconds>(clock::now() - _start).count());
+ EventLogger::reprocessDocumentsComplete(_subDbName, _visitorCost,(clock::now() - _start));
}
}
@@ -55,8 +54,8 @@ ReprocessDocumentsTask::updateProgress(double progress)
_visitorProgress = progress;
double deltaProgress = progress - _loggedProgress;
if (deltaProgress >= 0.01) {
- auto secondsSinceLastLog = duration_cast<seconds>(clock::now() - _lastLogTime);
- if (secondsSinceLastLog >= 60s || deltaProgress >= 0.10) {
+ auto timeSinceLastLog = clock::now() - _lastLogTime;
+ if (timeSinceLastLog >= 60s || deltaProgress >= 0.10) {
EventLogger::reprocessDocumentsProgress(_subDbName, progress, _visitorCost);
_lastLogTime = clock::now();
_loggedProgress = progress;
diff --git a/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.cpp b/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.cpp
index 9c928f49ca8..b776e32e0db 100644
--- a/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.cpp
+++ b/searchcore/src/vespa/searchcore/proton/server/transactionlogmanager.cpp
@@ -20,7 +20,7 @@ void
TransactionLogManager::doLogReplayComplete(const vespalib::string &domainName,
vespalib::duration elapsedTime) const
{
- EventLogger::transactionLogReplayComplete(domainName, vespalib::count_ms(elapsedTime));
+ EventLogger::transactionLogReplayComplete(domainName, elapsedTime);
}
diff --git a/searchcore/src/vespa/searchcore/proton/test/simple_job_tracker.h b/searchcore/src/vespa/searchcore/proton/test/simple_job_tracker.h
index cf4decf0f4a..9048fb7a356 100644
--- a/searchcore/src/vespa/searchcore/proton/test/simple_job_tracker.h
+++ b/searchcore/src/vespa/searchcore/proton/test/simple_job_tracker.h
@@ -11,7 +11,7 @@ struct SimpleJobTracker : public IJobTracker
typedef std::shared_ptr<SimpleJobTracker> SP;
vespalib::CountDownLatch _started;
vespalib::CountDownLatch _ended;
- SimpleJobTracker(uint32_t numJobTrackings)
+ SimpleJobTracker(uint32_t numJobTrackings) noexcept
: _started(numJobTrackings),
_ended(numJobTrackings)
{}