summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/common/environment.h1
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/spi/iteratorhandler.cpp3
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp2
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h36
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.cpp1
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.h6
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.cpp1
-rw-r--r--memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.h5
-rw-r--r--storage/src/vespa/storage/bucketdb/storagebucketdbinitializer.h1
-rw-r--r--storage/src/vespa/storage/persistence/mergehandler.cpp10
-rw-r--r--storage/src/vespa/storage/persistence/providershutdownwrapper.cpp4
-rw-r--r--storage/src/vespa/storage/persistence/providershutdownwrapper.h90
-rw-r--r--storage/src/vespa/storage/persistence/splitbitdetector.cpp5
-rw-r--r--storage/src/vespa/storage/persistence/splitbitdetector.h8
14 files changed, 74 insertions, 99 deletions
diff --git a/memfilepersistence/src/vespa/memfilepersistence/common/environment.h b/memfilepersistence/src/vespa/memfilepersistence/common/environment.h
index 8a944f6921e..a73ad4ceea9 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/common/environment.h
+++ b/memfilepersistence/src/vespa/memfilepersistence/common/environment.h
@@ -21,6 +21,7 @@
#include <vespa/storageframework/storageframework.h>
#include <vespa/vespalib/io/fileutil.h>
#include <vespa/memfilepersistence/device/mountpointlist.h>
+#include <vespa/document/bucket/bucketidfactory.h>
namespace storage {
namespace memfile {
diff --git a/memfilepersistence/src/vespa/memfilepersistence/spi/iteratorhandler.cpp b/memfilepersistence/src/vespa/memfilepersistence/spi/iteratorhandler.cpp
index c95d59001f4..3985459a5be 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/spi/iteratorhandler.cpp
+++ b/memfilepersistence/src/vespa/memfilepersistence/spi/iteratorhandler.cpp
@@ -1,13 +1,14 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/fastos/fastos.h>
-#include <vespa/log/log.h>
#include <iterator>
#include <vespa/document/fieldset/fieldsets.h>
#include <vespa/document/select/bodyfielddetector.h>
+#include <vespa/document/select/node.h>
#include <vespa/memfilepersistence/spi/iteratorhandler.h>
#include <vespa/memfilepersistence/spi/visitorslotmatcher.h>
#include <vespa/memfilepersistence/spi/cacheevictionguard.h>
+#include <vespa/log/log.h>
LOG_SETUP(".persistence.memfile.handler.iterator");
namespace storage {
diff --git a/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp b/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp
index cec695423af..7b0954aaa5b 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp
+++ b/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.cpp
@@ -4,6 +4,8 @@
#include <vespa/document/fieldset/fieldsetrepo.h>
#include <vespa/memfilepersistence/spi/memfilepersistenceprovider.h>
#include <vespa/memfilepersistence/common/exceptions.h>
+#include <vespa/document/fieldvalue/document.h>
+#include <vespa/document/update/documentupdate.h>
#include <vespa/log/log.h>
LOG_SETUP(".memfilepersistenceprovider");
diff --git a/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h b/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h
index 69edb680d5c..a1b0b1bd0ae 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h
+++ b/memfilepersistence/src/vespa/memfilepersistence/spi/memfilepersistenceprovider.h
@@ -45,59 +45,59 @@ public:
~MemFilePersistenceProvider();
- spi::PartitionStateListResult getPartitionStates() const;
+ spi::PartitionStateListResult getPartitionStates() const override;
- spi::BucketIdListResult listBuckets(spi::PartitionId) const;
+ spi::BucketIdListResult listBuckets(spi::PartitionId) const override;
- spi::BucketIdListResult getModifiedBuckets() const;
+ spi::BucketIdListResult getModifiedBuckets() const override;
- spi::BucketInfoResult getBucketInfo(const spi::Bucket&) const;
+ spi::BucketInfoResult getBucketInfo(const spi::Bucket&) const override;
spi::Result put(const spi::Bucket&, spi::Timestamp,
- const document::Document::SP&, spi::Context&);
+ const spi::DocumentSP&, spi::Context&) override;
spi::RemoveResult remove(const spi::Bucket&, spi::Timestamp,
- const DocumentId&, spi::Context&);
+ const DocumentId&, spi::Context&) override;
spi::RemoveResult removeIfFound(const spi::Bucket&, spi::Timestamp,
- const DocumentId&, spi::Context&);
+ const DocumentId&, spi::Context&) override;
spi::UpdateResult update(const spi::Bucket&, spi::Timestamp,
- const document::DocumentUpdate::SP&, spi::Context&);
+ const spi::DocumentUpdateSP&, spi::Context&) override;
spi::GetResult get(const spi::Bucket&, const document::FieldSet&,
- const spi::DocumentId&, spi::Context&) const;
+ const spi::DocumentId&, spi::Context&) const override;
- spi::Result flush(const spi::Bucket&, spi::Context&);
+ spi::Result flush(const spi::Bucket&, spi::Context&) override;
spi::CreateIteratorResult createIterator(const spi::Bucket&,
const document::FieldSet&,
const spi::Selection&,
spi::IncludedVersions versions,
- spi::Context&);
+ spi::Context&) override;
spi::IterateResult iterate(spi::IteratorId,
- uint64_t maxByteSize, spi::Context&) const;
+ uint64_t maxByteSize, spi::Context&) const override;
- spi::Result destroyIterator(spi::IteratorId, spi::Context&);
+ spi::Result destroyIterator(spi::IteratorId, spi::Context&) override;
- spi::Result deleteBucket(const spi::Bucket&, spi::Context&);
+ spi::Result deleteBucket(const spi::Bucket&, spi::Context&) override;
spi::Result split(const spi::Bucket& source,
const spi::Bucket& target1,
const spi::Bucket& target2,
- spi::Context&);
+ spi::Context&) override;
spi::Result join(const spi::Bucket& source1,
const spi::Bucket& source2,
const spi::Bucket& target,
- spi::Context&);
+ spi::Context&) override;
spi::Result removeEntry(const spi::Bucket&,
- spi::Timestamp, spi::Context&);
+ spi::Timestamp, spi::Context&) override;
spi::Result maintain(const spi::Bucket&,
- spi::MaintenanceLevel level);
+ spi::MaintenanceLevel level) override;
Environment& getEnvironment() {
return *_env;
diff --git a/memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.cpp b/memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.cpp
index 349663fb7c1..86cf7f50ba2 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.cpp
+++ b/memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.cpp
@@ -2,6 +2,7 @@
#include <vespa/fastos/fastos.h>
#include <vespa/memfilepersistence/spi/operationhandler.h>
+#include <vespa/document/select/parser.h>
#include <vespa/log/log.h>
diff --git a/memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.h b/memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.h
index fad723de4aa..708ab34922a 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.h
+++ b/memfilepersistence/src/vespa/memfilepersistence/spi/operationhandler.h
@@ -21,6 +21,12 @@
#include <vespa/memfilepersistence/common/environment.h>
#include <vespa/document/fieldset/fieldsetrepo.h>
+namespace document {
+ namespace select {
+ class Node;
+ }
+}
+
namespace storage {
namespace memfile {
diff --git a/memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.cpp b/memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.cpp
index 37779feb60f..d5b3927018c 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.cpp
+++ b/memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.cpp
@@ -2,6 +2,7 @@
#include <vespa/fastos/fastos.h>
#include <vespa/memfilepersistence/spi/visitorslotmatcher.h>
#include <vespa/document/select/bodyfielddetector.h>
+#include <vespa/document/select/node.h>
namespace storage {
namespace memfile {
diff --git a/memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.h b/memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.h
index 9b1412da4b7..cc85716eecc 100644
--- a/memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.h
+++ b/memfilepersistence/src/vespa/memfilepersistence/spi/visitorslotmatcher.h
@@ -2,6 +2,11 @@
#pragma once
#include <vespa/memfilepersistence/common/slotmatcher.h>
+namespace document {
+ namespace select {
+ class Node;
+ }
+}
namespace storage {
namespace memfile {
diff --git a/storage/src/vespa/storage/bucketdb/storagebucketdbinitializer.h b/storage/src/vespa/storage/bucketdb/storagebucketdbinitializer.h
index 365d1df89e7..4b344a09076 100644
--- a/storage/src/vespa/storage/bucketdb/storagebucketdbinitializer.h
+++ b/storage/src/vespa/storage/bucketdb/storagebucketdbinitializer.h
@@ -47,6 +47,7 @@
#include <vespa/storageframework/storageframework.h>
#include <vespa/vespalib/stllike/hash_map.h>
#include <vespa/vespalib/util/sync.h>
+#include <vespa/vdslib/state/nodestate.h>
namespace storage {
diff --git a/storage/src/vespa/storage/persistence/mergehandler.cpp b/storage/src/vespa/storage/persistence/mergehandler.cpp
index 3e0aa0fe4b9..63e3ac1dcde 100644
--- a/storage/src/vespa/storage/persistence/mergehandler.cpp
+++ b/storage/src/vespa/storage/persistence/mergehandler.cpp
@@ -46,11 +46,11 @@ checkResult(const spi::Result& result,
const char* op)
{
if (result.hasError()) {
- std::ostringstream ss;
+ vespalib::asciistream ss;
ss << "Failed " << op
- << " for " << docId
+ << " for " << docId.toString()
<< " in " << bucket
- << ": " << result;
+ << ": " << result.toString();
throw std::runtime_error(ss.str());
}
}
@@ -61,8 +61,8 @@ checkResult(const spi::Result& result,
const char* op)
{
if (result.hasError()) {
- std::ostringstream ss;
- ss << "Failed " << op << " in " << bucket << ": " << result;
+ vespalib::asciistream ss;
+ ss << "Failed " << op << " in " << bucket << ": " << result.toString();
throw std::runtime_error(ss.str());
}
}
diff --git a/storage/src/vespa/storage/persistence/providershutdownwrapper.cpp b/storage/src/vespa/storage/persistence/providershutdownwrapper.cpp
index b3a44a2b41b..504c3b09419 100644
--- a/storage/src/vespa/storage/persistence/providershutdownwrapper.cpp
+++ b/storage/src/vespa/storage/persistence/providershutdownwrapper.cpp
@@ -73,7 +73,7 @@ ProviderShutdownWrapper::getBucketInfo(const spi::Bucket& bucket) const
spi::Result
ProviderShutdownWrapper::put(const spi::Bucket& bucket,
spi::Timestamp ts,
- const document::Document::SP& doc,
+ const spi::DocumentSP& doc,
spi::Context& context)
{
return checkResult(_impl.put(bucket, ts, doc, context));
@@ -100,7 +100,7 @@ ProviderShutdownWrapper::removeIfFound(const spi::Bucket& bucket,
spi::UpdateResult
ProviderShutdownWrapper::update(const spi::Bucket& bucket,
spi::Timestamp ts,
- const document::DocumentUpdate::SP& docUpdate,
+ const spi::DocumentUpdateSP& docUpdate,
spi::Context& context)
{
return checkResult(_impl.update(bucket, ts, docUpdate, context));
diff --git a/storage/src/vespa/storage/persistence/providershutdownwrapper.h b/storage/src/vespa/storage/persistence/providershutdownwrapper.h
index 5c827130c2b..2a372757283 100644
--- a/storage/src/vespa/storage/persistence/providershutdownwrapper.h
+++ b/storage/src/vespa/storage/persistence/providershutdownwrapper.h
@@ -32,72 +32,30 @@ public:
{
}
- spi::Result initialize();
-
- spi::PartitionStateListResult getPartitionStates() const;
-
- spi::BucketIdListResult listBuckets(spi::PartitionId) const;
-
- spi::Result setClusterState(const spi::ClusterState&) ;
-
- spi::Result setActiveState(const spi::Bucket& bucket,
- spi::BucketInfo::ActiveState newState);
-
- spi::BucketInfoResult getBucketInfo(const spi::Bucket&) const;
-
- spi::Result put(const spi::Bucket&, spi::Timestamp,
- const document::Document::SP&, spi::Context&);
-
- spi::RemoveResult remove(const spi::Bucket&, spi::Timestamp,
- const document::DocumentId&, spi::Context&);
-
- spi::RemoveResult removeIfFound(const spi::Bucket&,
- spi::Timestamp,
- const document::DocumentId&, spi::Context&);
-
- spi::UpdateResult update(const spi::Bucket&,
- spi::Timestamp,
- const document::DocumentUpdate::SP&, spi::Context&);
-
- spi::GetResult get(const spi::Bucket&,
- const document::FieldSet&,
- const document::DocumentId&, spi::Context&) const;
-
- spi::Result flush(const spi::Bucket&, spi::Context&);
-
- spi::CreateIteratorResult createIterator(const spi::Bucket&,
- const document::FieldSet&,
- const spi::Selection&,
- spi::IncludedVersions versions,
- spi::Context&);
-
- spi::IterateResult iterate(spi::IteratorId, uint64_t maxByteSize,
- spi::Context&) const;
-
- spi::Result destroyIterator(spi::IteratorId, spi::Context&);
-
- spi::Result createBucket(const spi::Bucket&, spi::Context&);
-
- spi::Result deleteBucket(const spi::Bucket&, spi::Context&);
-
- spi::BucketIdListResult getModifiedBuckets() const;
-
- spi::Result maintain(const spi::Bucket& bucket,
- spi::MaintenanceLevel level);
-
- spi::Result split(const spi::Bucket& source,
- const spi::Bucket& target1,
- const spi::Bucket& target2, spi::Context&);
-
- spi::Result join(const spi::Bucket& source1,
- const spi::Bucket& source2,
- const spi::Bucket& target,
- spi::Context&);
-
- spi::Result move(const spi::Bucket& source, spi::PartitionId target,
- spi::Context&);
-
- spi::Result removeEntry(const spi::Bucket&, spi::Timestamp, spi::Context&);
+ spi::Result initialize() override;
+ spi::PartitionStateListResult getPartitionStates() const override;
+ spi::BucketIdListResult listBuckets(spi::PartitionId) const override;
+ spi::Result setClusterState(const spi::ClusterState&) override;
+ spi::Result setActiveState(const spi::Bucket& bucket, spi::BucketInfo::ActiveState newState) override;
+ spi::BucketInfoResult getBucketInfo(const spi::Bucket&) const override;
+ spi::Result put(const spi::Bucket&, spi::Timestamp, const spi::DocumentSP&, spi::Context&) override;
+ spi::RemoveResult remove(const spi::Bucket&, spi::Timestamp, const document::DocumentId&, spi::Context&) override;
+ spi::RemoveResult removeIfFound(const spi::Bucket&, spi::Timestamp, const document::DocumentId&, spi::Context&) override;
+ spi::UpdateResult update(const spi::Bucket&, spi::Timestamp, const spi::DocumentUpdateSP&, spi::Context&) override;
+ spi::GetResult get(const spi::Bucket&, const document::FieldSet&, const document::DocumentId&, spi::Context&) const override;
+ spi::Result flush(const spi::Bucket&, spi::Context&) override;
+ spi::CreateIteratorResult createIterator(const spi::Bucket&, const document::FieldSet&, const spi::Selection&,
+ spi::IncludedVersions versions, spi::Context&) override;
+ spi::IterateResult iterate(spi::IteratorId, uint64_t maxByteSize, spi::Context&) const override;
+ spi::Result destroyIterator(spi::IteratorId, spi::Context&) override;
+ spi::Result createBucket(const spi::Bucket&, spi::Context&) override;
+ spi::Result deleteBucket(const spi::Bucket&, spi::Context&) override;
+ spi::BucketIdListResult getModifiedBuckets() const override;
+ spi::Result maintain(const spi::Bucket& bucket, spi::MaintenanceLevel level) override;
+ spi::Result split(const spi::Bucket& source, const spi::Bucket& target1, const spi::Bucket& target2, spi::Context&) override;
+ spi::Result join(const spi::Bucket& source1, const spi::Bucket& source2, const spi::Bucket& target, spi::Context&) override;
+ spi::Result move(const spi::Bucket& source, spi::PartitionId target, spi::Context&) override;
+ spi::Result removeEntry(const spi::Bucket&, spi::Timestamp, spi::Context&) override;
spi::PersistenceProvider& getProviderImplementation() {
return _impl;
diff --git a/storage/src/vespa/storage/persistence/splitbitdetector.cpp b/storage/src/vespa/storage/persistence/splitbitdetector.cpp
index 8fc49071cf6..1d32a751f34 100644
--- a/storage/src/vespa/storage/persistence/splitbitdetector.cpp
+++ b/storage/src/vespa/storage/persistence/splitbitdetector.cpp
@@ -1,11 +1,12 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/fastos/fastos.h>
-#include <vespa/log/log.h>
#include <vespa/storage/persistence/splitbitdetector.h>
#include <vespa/storage/persistence/bucketprocessor.h>
-#include <vespa/vespalib/stllike/string.h>
+#include <vespa/document/bucket/bucketidfactory.h>
+#include <vespa/document/base/documentid.h>
+#include <vespa/log/log.h>
LOG_SETUP(".persistence.split.bitdetector");
namespace storage {
diff --git a/storage/src/vespa/storage/persistence/splitbitdetector.h b/storage/src/vespa/storage/persistence/splitbitdetector.h
index 66096a70f68..f511ce63d8f 100644
--- a/storage/src/vespa/storage/persistence/splitbitdetector.h
+++ b/storage/src/vespa/storage/persistence/splitbitdetector.h
@@ -29,7 +29,7 @@ struct SplitBitDetector
ERROR
};
- class Result : public document::Printable {
+ class Result : public vespalib::Printable {
ResultType _result;
document::BucketId _target1;
document::BucketId _target2;
@@ -52,13 +52,11 @@ struct SplitBitDetector
const document::BucketId& getTarget2() const { return _target2; }
// Printable implementation
- virtual void print(std::ostream& out, bool verbose,
- const std::string& indent) const;
+ void print(std::ostream& out, bool verbose, const std::string& indent) const override;
};
static Result detectSplit(spi::PersistenceProvider&, const spi::Bucket&,
- uint32_t maxSplitBits,
- spi::Context&,
+ uint32_t maxSplitBits, spi::Context&,
uint32_t minCount = 0, uint32_t minSize = 0);
};