summaryrefslogtreecommitdiffstats
path: root/searchcorespi
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-12-17 04:09:47 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2016-12-17 04:09:47 +0100
commitc3947c40abbdc0d12c789b794f43c5b3b85afffb (patch)
tree90a656f917c166026925661f94ab6cf8ca9ab503 /searchcorespi
parent8e5629fcfa8da53aed44d2778ec5efbfcea017dd (diff)
Split the source selector out too.
Diffstat (limited to 'searchcorespi')
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp42
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/iindexcollection.cpp5
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/iindexcollection.h9
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp9
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/indexcollection.h10
-rw-r--r--searchcorespi/src/vespa/searchcorespi/index/isearchableindexcollection.cpp3
6 files changed, 34 insertions, 44 deletions
diff --git a/searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp b/searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp
index 13bef302083..339ceab83c8 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp
+++ b/searchcorespi/src/vespa/searchcorespi/index/fusionrunner.cpp
@@ -37,8 +37,7 @@ FusionRunner::FusionRunner(const string &base_dir,
_schema(schema),
_tuneFileAttributes(tuneFileAttributes),
_fileHeaderContext(fileHeaderContext)
-{
-}
+{ }
namespace {
@@ -47,13 +46,12 @@ void readSelectorArray(const string &selector_name, SelectorArray &selector_arra
FixedSourceSelector::UP selector =
FixedSourceSelector::load(selector_name);
if (base_id != selector->getBaseId()) {
- selector = selector->cloneAndSubtract(
- "tmp_for_fusion", base_id - selector->getBaseId());
+ selector = selector->cloneAndSubtract("tmp_for_fusion", base_id - selector->getBaseId());
}
const uint32_t num_docs = selector->getDocIdLimit();
selector_array.reserve(num_docs);
- ISourceSelector::Iterator::UP it = selector->createIterator();
+ auto it = selector->createIterator();
for (uint32_t i = 0; i < num_docs; ++i) {
search::queryeval::Source source = it->getSource(i);
assert(source < id_map.size());
@@ -71,12 +69,9 @@ writeFusionSelector(const IndexDiskLayout &diskLayout, uint32_t fusion_id,
FixedSourceSelector fusion_selector(default_source, "fusion_selector");
fusion_selector.setSource(highest_doc_id, default_source);
fusion_selector.setBaseId(fusion_id);
- string selector_name =
- IndexDiskLayout::getSelectorFileName(diskLayout.getFusionDir(fusion_id));
- if (!fusion_selector.extractSaveInfo(selector_name)->save(
- tuneFileAttributes, fileHeaderContext)) {
- LOG(warning,
- "Unable to write source selector data for fusion.%u.", fusion_id);
+ string selector_name = IndexDiskLayout::getSelectorFileName(diskLayout.getFusionDir(fusion_id));
+ if (!fusion_selector.extractSaveInfo(selector_name)->save(tuneFileAttributes, fileHeaderContext)) {
+ LOG(warning, "Unable to write source selector data for fusion.%u.", fusion_id);
return false;
}
return true;
@@ -99,8 +94,7 @@ FusionRunner::fuse(const FusionSpec &fusion_spec,
vector<uint8_t> id_map(fusion_id + 1);
if (fusion_spec.last_fusion_id != 0) {
id_map[0] = sources.size();
- sources.push_back(
- _diskLayout.getFusionDir(fusion_spec.last_fusion_id));
+ sources.push_back(_diskLayout.getFusionDir(fusion_spec.last_fusion_id));
}
for (size_t i = 0; i < ids.size(); ++i) {
id_map[ids[i] - fusion_spec.last_fusion_id] = sources.size();
@@ -108,35 +102,27 @@ FusionRunner::fuse(const FusionSpec &fusion_spec,
}
if (LOG_WOULD_LOG(event)) {
- EventLogger::diskFusionStart(sources,
- fusion_dir);
+ EventLogger::diskFusionStart(sources, fusion_dir);
}
FastOS_Time timer;
timer.SetNow();
- const string selector_name =
- IndexDiskLayout::getSelectorFileName(_diskLayout.getFlushDir(fusion_id));
+ const string selector_name = IndexDiskLayout::getSelectorFileName(_diskLayout.getFlushDir(fusion_id));
SelectorArray selector_array;
- readSelectorArray(selector_name, selector_array,
- id_map, fusion_spec.last_fusion_id);
+ readSelectorArray(selector_name, selector_array, id_map, fusion_spec.last_fusion_id);
- if (!operations.runFusion(_schema, fusion_dir, sources, selector_array,
- lastSerialNum)) {
+ if (!operations.runFusion(_schema, fusion_dir, sources, selector_array, lastSerialNum)) {
return 0;
}
const uint32_t highest_doc_id = selector_array.size() - 1;
- SerialNumFileHeaderContext fileHeaderContext(_fileHeaderContext,
- lastSerialNum);
- if (!writeFusionSelector(_diskLayout, fusion_id, highest_doc_id,
- _tuneFileAttributes,
- fileHeaderContext)) {
+ SerialNumFileHeaderContext fileHeaderContext(_fileHeaderContext, lastSerialNum);
+ if (!writeFusionSelector(_diskLayout, fusion_id, highest_doc_id, _tuneFileAttributes, fileHeaderContext)) {
return 0;
}
if (LOG_WOULD_LOG(event)) {
- EventLogger::diskFusionComplete(fusion_dir,
- (int64_t)timer.MilliSecsToNow());
+ EventLogger::diskFusionComplete(fusion_dir, (int64_t)timer.MilliSecsToNow());
}
return fusion_id;
}
diff --git a/searchcorespi/src/vespa/searchcorespi/index/iindexcollection.cpp b/searchcorespi/src/vespa/searchcorespi/index/iindexcollection.cpp
index 961e908f1bb..b2ab7707c90 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/iindexcollection.cpp
+++ b/searchcorespi/src/vespa/searchcorespi/index/iindexcollection.cpp
@@ -1,7 +1,8 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/searchcorespi/index/iindexcollection.h>
-#include <vespa/searchcorespi/index/idiskindex.h>
+#include "iindexcollection.h"
+#include "idiskindex.h"
#include <vespa/vespalib/stllike/asciistream.h>
+#include <vespa/searchlib/queryeval/isourceselector.h>
namespace searchcorespi {
diff --git a/searchcorespi/src/vespa/searchcorespi/index/iindexcollection.h b/searchcorespi/src/vespa/searchcorespi/index/iindexcollection.h
index e4b90f11bac..13e9d6f5b15 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/iindexcollection.h
+++ b/searchcorespi/src/vespa/searchcorespi/index/iindexcollection.h
@@ -3,9 +3,12 @@
#pragma once
#include "indexsearchable.h"
-#include <vespa/searchlib/queryeval/isourceselector.h>
-#include <vespa/searchlib/util/searchable_stats.h>
+namespace search {
+ namespace queryeval {
+ class ISourceSelector;
+ }
+}
namespace searchcorespi {
/**
@@ -14,7 +17,7 @@ namespace searchcorespi {
*/
class IIndexCollection {
protected:
- typedef search::queryeval::ISourceSelector ISourceSelector;
+ using ISourceSelector = search::queryeval::ISourceSelector;
public:
typedef std::unique_ptr<IIndexCollection> UP;
typedef std::shared_ptr<IIndexCollection> SP;
diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp b/searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp
index 653cf0a28b4..cf9c06ac468 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp
+++ b/searchcorespi/src/vespa/searchcorespi/index/indexcollection.cpp
@@ -1,15 +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>
-LOG_SETUP(".searchcorespi.index.indexcollection");
-
#include "indexcollection.h"
+#include "indexsearchablevisitor.h"
#include <vespa/searchlib/queryeval/isourceselector.h>
#include <vespa/searchlib/queryeval/create_blueprint_visitor_helper.h>
#include <vespa/searchlib/queryeval/intermediate_blueprints.h>
#include <vespa/searchlib/queryeval/leaf_blueprints.h>
-#include "indexsearchablevisitor.h"
+
+#include <vespa/log/log.h>
+LOG_SETUP(".searchcorespi.index.indexcollection");
using namespace search::queryeval;
using namespace search::query;
diff --git a/searchcorespi/src/vespa/searchcorespi/index/indexcollection.h b/searchcorespi/src/vespa/searchcorespi/index/indexcollection.h
index 38942abc9dc..1f5e17d7099 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/indexcollection.h
+++ b/searchcorespi/src/vespa/searchcorespi/index/indexcollection.h
@@ -3,7 +3,6 @@
#pragma once
#include "isearchableindexcollection.h"
-#include <vespa/searchlib/queryeval/isourceselector.h>
#include <vespa/searchlib/util/searchable_stats.h>
#include <memory>
#include <set>
@@ -29,12 +28,13 @@ class IndexCollection : public ISearchableIndexCollection
};
// Selector shared across memory dumps, replaced on disk fusion operations
- ISourceSelector::SP _source_selector;
+ using ISourceSelectorSP = std::shared_ptr<ISourceSelector>;
+ ISourceSelectorSP _source_selector;
std::vector<SourceWithId> _sources;
public:
- IndexCollection(const ISourceSelector::SP & selector);
- IndexCollection(const ISourceSelector::SP & selector,
+ IndexCollection(const ISourceSelectorSP & selector);
+ IndexCollection(const ISourceSelectorSP & selector,
const ISearchableIndexCollection &sources);
virtual void append(uint32_t id, const IndexSearchable::SP &source);
@@ -65,7 +65,7 @@ public:
virtual void accept(IndexSearchableVisitor &visitor) const override;
static ISearchableIndexCollection::UP replaceAndRenumber(
- const ISourceSelector::SP & selector,
+ const ISourceSelectorSP & selector,
const ISearchableIndexCollection &fsc,
uint32_t id_diff,
const IndexSearchable::SP &new_source);
diff --git a/searchcorespi/src/vespa/searchcorespi/index/isearchableindexcollection.cpp b/searchcorespi/src/vespa/searchcorespi/index/isearchableindexcollection.cpp
index 484a5137a81..c5d9f8b2962 100644
--- a/searchcorespi/src/vespa/searchcorespi/index/isearchableindexcollection.cpp
+++ b/searchcorespi/src/vespa/searchcorespi/index/isearchableindexcollection.cpp
@@ -1,6 +1,7 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/searchcorespi/index/isearchableindexcollection.h>
+#include "isearchableindexcollection.h"
+#include <vespa/searchlib/queryeval/isourceselector.h>
namespace searchcorespi {