summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-06-17 21:14:41 +0200
committerGitHub <noreply@github.com>2016-06-17 21:14:41 +0200
commitb639e3239364e2f585052935af5764be0f145ef4 (patch)
tree1d4fcd169e14d7040a1c4a4224771ff6d784791e /searchlib
parent28dd5c3e604fb6249f552f27ce844523b2fdba54 (diff)
parent62a60b5c54bcd470c91beb495efd21a24c0e82da (diff)
Merge pull request #64 from yahoo/geirst/tls-fixes-and-metrics
Geirst/tls fixes and metrics
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/tests/transactionlog/translogclient_test.cpp20
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domain.cpp8
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/domain.h16
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/trans_log_server_explorer.cpp4
-rw-r--r--searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp1
5 files changed, 20 insertions, 29 deletions
diff --git a/searchlib/src/tests/transactionlog/translogclient_test.cpp b/searchlib/src/tests/transactionlog/translogclient_test.cpp
index 775654d23fc..2e756e9d4b8 100644
--- a/searchlib/src/tests/transactionlog/translogclient_test.cpp
+++ b/searchlib/src/tests/transactionlog/translogclient_test.cpp
@@ -715,7 +715,7 @@ void Test::testErase()
"count %zu, numBytes %zu",
partId,
(uint64_t) part.range.from(), (uint64_t) part.range.to(),
- part.count, part.byteSize);
+ part.numEntries, part.byteSize);
}
ASSERT_LESS_EQUAL(2u, numParts);
// Erase everything before second to last domainpart file
@@ -726,8 +726,8 @@ void Test::testErase()
TOTAL_NUM_ENTRIES + 1 - eraseSerial,
TOTAL_NUM_ENTRIES - eraseSerial));
TEST_DO(assertStatus(*s1, eraseSerial, TOTAL_NUM_ENTRIES,
- domainInfo.parts[numParts - 2].count +
- domainInfo.parts[numParts - 1].count));
+ domainInfo.parts[numParts - 2].numEntries +
+ domainInfo.parts[numParts - 1].numEntries));
// No apparent effect of erasing just first entry in 2nd to last part
s1->erase(eraseSerial + 1);
TEST_DO(assertVisitStats(tls, "erase", 2, TOTAL_NUM_ENTRIES,
@@ -735,8 +735,8 @@ void Test::testErase()
TOTAL_NUM_ENTRIES + 1 - eraseSerial,
TOTAL_NUM_ENTRIES - eraseSerial));
TEST_DO(assertStatus(*s1, eraseSerial + 1, TOTAL_NUM_ENTRIES,
- domainInfo.parts[numParts - 2].count +
- domainInfo.parts[numParts - 1].count));
+ domainInfo.parts[numParts - 2].numEntries +
+ domainInfo.parts[numParts - 1].numEntries));
// No apparent effect of erasing almost all of 2nd to last part
SerialNum eraseSerial2 = domainInfo.parts[numParts - 2].range.to();
s1->erase(eraseSerial2);
@@ -745,8 +745,8 @@ void Test::testErase()
TOTAL_NUM_ENTRIES + 1 - eraseSerial,
TOTAL_NUM_ENTRIES - eraseSerial));
TEST_DO(assertStatus(*s1, eraseSerial2, TOTAL_NUM_ENTRIES,
- domainInfo.parts[numParts - 2].count +
- domainInfo.parts[numParts - 1].count));
+ domainInfo.parts[numParts - 2].numEntries +
+ domainInfo.parts[numParts - 1].numEntries));
// Erase everything before last domainpart file
eraseSerial = domainInfo.parts[numParts - 1].range.from();
s1->erase(eraseSerial);
@@ -755,7 +755,7 @@ void Test::testErase()
TOTAL_NUM_ENTRIES + 1 - eraseSerial,
TOTAL_NUM_ENTRIES - eraseSerial));
TEST_DO(assertStatus(*s1, eraseSerial, TOTAL_NUM_ENTRIES,
- domainInfo.parts[numParts - 1].count));
+ domainInfo.parts[numParts - 1].numEntries));
// No apparent effect of erasing just first entry in last part
s1->erase(eraseSerial + 1);
TEST_DO(assertVisitStats(tls, "erase", 2, TOTAL_NUM_ENTRIES,
@@ -763,7 +763,7 @@ void Test::testErase()
TOTAL_NUM_ENTRIES + 1 - eraseSerial,
TOTAL_NUM_ENTRIES - eraseSerial));
TEST_DO(assertStatus(*s1, eraseSerial + 1, TOTAL_NUM_ENTRIES,
- domainInfo.parts[numParts - 1].count));
+ domainInfo.parts[numParts - 1].numEntries));
// No apparent effect of erasing almost all of last part
eraseSerial2 = domainInfo.parts[numParts - 1].range.to();
s1->erase(eraseSerial2);
@@ -772,7 +772,7 @@ void Test::testErase()
TOTAL_NUM_ENTRIES + 1 - eraseSerial,
TOTAL_NUM_ENTRIES - eraseSerial));
TEST_DO(assertStatus(*s1, eraseSerial2, TOTAL_NUM_ENTRIES,
- domainInfo.parts[numParts - 1].count));
+ domainInfo.parts[numParts - 1].numEntries));
}
}
diff --git a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp
index be1de99efef..9faa80a76b9 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/domain.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/domain.cpp
@@ -38,7 +38,6 @@ Domain::Domain(const string &domainName,
const FileHeaderContext &fileHeaderContext) :
_defaultCrcType(defaultCrcType),
_executor(executor),
- _count(0),
_sessionId(1),
_useFsync(useFsync),
_syncMonitor(),
@@ -83,7 +82,6 @@ void Domain::addPart(int64_t partId, bool isLastPart) {
} else {
{
LockGuard guard(_lock);
- _count += dp->size();
_parts[partId] = dp;
}
if (! isLastPart) {
@@ -119,7 +117,7 @@ DomainInfo
Domain::getDomainInfo() const
{
LockGuard guard(_lock);
- DomainInfo info(SerialNumRange(begin(), end()), count(), byteSize());
+ DomainInfo info(SerialNumRange(begin(), end()), size(guard), byteSize());
for (const auto &entry: _parts) {
const DomainPart &part = *entry.second;
info.parts.emplace_back(PartInfo(part.range(), part.size(),
@@ -272,12 +270,8 @@ void Domain::commit(const Packet & packet)
}
dp = _parts.rbegin()->second;
}
- size_t oldSz(dp->size());
dp->commit(entry.serial(), packet);
cleanSessions();
- // If commit fails no updates should be sent to subscribers either.
- // Is is better to keep a consistent behaviour.
- _count += dp->size() - oldSz;
LockGuard guard(_sessionLock);
for (auto & it : _sessions) {
diff --git a/searchlib/src/vespa/searchlib/transactionlog/domain.h b/searchlib/src/vespa/searchlib/transactionlog/domain.h
index 6309d7113f1..d6dbde6b06e 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/domain.h
+++ b/searchlib/src/vespa/searchlib/transactionlog/domain.h
@@ -10,25 +10,25 @@ namespace transactionlog {
struct PartInfo {
SerialNumRange range;
- size_t count;
+ size_t numEntries;
size_t byteSize;
vespalib::string file;
- PartInfo(SerialNumRange range_in, size_t count_in,
+ PartInfo(SerialNumRange range_in, size_t numEntries_in,
size_t byteSize_in,
vespalib::stringref file_in)
- : range(range_in), count(count_in), byteSize(byteSize_in),
+ : range(range_in), numEntries(numEntries_in), byteSize(byteSize_in),
file(file_in) {}
};
struct DomainInfo {
SerialNumRange range;
- size_t count;
+ size_t numEntries;
size_t byteSize;
std::vector<PartInfo> parts;
- DomainInfo(SerialNumRange range_in, size_t count_in, size_t byteSize_in)
- : range(range_in), count(count_in), byteSize(byteSize_in), parts() {}
+ DomainInfo(SerialNumRange range_in, size_t numEntries_in, size_t byteSize_in)
+ : range(range_in), numEntries(numEntries_in), byteSize(byteSize_in), parts() {}
DomainInfo()
- : range(), count(0), byteSize(0), parts() {}
+ : range(), numEntries(0), byteSize(0), parts() {}
};
typedef std::map<vespalib::string, DomainInfo> DomainStats;
@@ -69,7 +69,6 @@ public:
bool getMarkedDeleted(void) const { return _markedDeleted; }
void markDeleted(void) { _markedDeleted = true; }
- uint64_t count() const { return _count; }
size_t byteSize() const;
size_t getNumSessions() const { return _sessions.size(); }
@@ -103,7 +102,6 @@ private:
DomainPart::Crc _defaultCrcType;
Executor & _executor;
- uint64_t _count;
int _sessionId;
const bool _useFsync;
vespalib::Monitor _syncMonitor;
diff --git a/searchlib/src/vespa/searchlib/transactionlog/trans_log_server_explorer.cpp b/searchlib/src/vespa/searchlib/transactionlog/trans_log_server_explorer.cpp
index 49c16940be5..fdc771a7b58 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/trans_log_server_explorer.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/trans_log_server_explorer.cpp
@@ -21,7 +21,7 @@ struct DomainExplorer : vespalib::StateExplorer {
DomainInfo info = domain->getDomainInfo();
state.setLong("from", info.range.from());
state.setLong("to", info.range.to());
- state.setLong("count", info.count);
+ state.setLong("numEntries", info.numEntries);
state.setLong("byteSize", info.byteSize);
if (full) {
Cursor &array = state.setArray("parts");
@@ -29,7 +29,7 @@ struct DomainExplorer : vespalib::StateExplorer {
Cursor &part = array.addObject();
part.setLong("from", part_in.range.from());
part.setLong("to", part_in.range.to());
- part.setLong("count", part_in.count);
+ part.setLong("numEntries", part_in.numEntries);
part.setLong("byteSize", part_in.byteSize);
part.setString("file", part_in.file);
{
diff --git a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
index 79b7413c1b4..b9a9ea57a9e 100644
--- a/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
+++ b/searchlib/src/vespa/searchlib/transactionlog/translogserver.cpp
@@ -219,7 +219,6 @@ void TransLogServer::logMetric() const
EV_COUNT((prefix + "last").c_str(), it->second->end());
EV_COUNT((prefix + "first").c_str(), it->second->begin());
EV_VALUE((prefix + "numused").c_str(), it->second->size());
- EV_COUNT((prefix + "count").c_str(), it->second->count());
}
}