diff options
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); }; |