summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@oath.com>2017-09-19 13:31:58 +0000
committerTor Egge <Tor.Egge@oath.com>2017-09-19 13:31:58 +0000
commit1d1263c544d49c2816b6ab54ee1c2a5b989004e7 (patch)
tree0aa1f44eec2a68cf30c697fd27b29fb79643f597 /searchlib
parentd825bb328c94e138ea87301282c85cc4edb5e585 (diff)
Expose posting list memory usage in attribute vector explorer.
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributevector.cpp1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/attributevector.h1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/ipostinglistattributebase.h4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.h4
-rw-r--r--searchlib/src/vespa/searchlib/attribute/multistringpostattribute.h2
-rw-r--r--searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp6
-rw-r--r--searchlib/src/vespa/searchlib/attribute/postinglistattribute.h1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.h1
-rw-r--r--searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.h4
9 files changed, 22 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp
index b21f0e0dfff..184475fd70c 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributevector.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/attributevector.cpp
@@ -696,6 +696,7 @@ AttributeVector::enableEnumeratedSave(bool enable) {
}
attribute::IPostingListAttributeBase *AttributeVector::getIPostingListAttributeBase() { return nullptr; }
+const attribute::IPostingListAttributeBase *AttributeVector::getIPostingListAttributeBase() const { return nullptr; }
const IDocumentWeightAttribute * AttributeVector::asDocumentWeightAttribute() const { return nullptr; }
bool AttributeVector::hasPostings() { return getIPostingListAttributeBase() != nullptr; }
uint64_t AttributeVector::getUniqueValueCount() const { return getTotalValueCount(); }
diff --git a/searchlib/src/vespa/searchlib/attribute/attributevector.h b/searchlib/src/vespa/searchlib/attribute/attributevector.h
index d9426822603..13ba3f801b7 100644
--- a/searchlib/src/vespa/searchlib/attribute/attributevector.h
+++ b/searchlib/src/vespa/searchlib/attribute/attributevector.h
@@ -661,6 +661,7 @@ public:
bool getEnumeratedSave() const { return _hasEnum && _enableEnumeratedSave; }
virtual attribute::IPostingListAttributeBase * getIPostingListAttributeBase();
+ virtual const attribute::IPostingListAttributeBase * getIPostingListAttributeBase() const;
bool hasPostings();
virtual uint64_t getUniqueValueCount() const;
virtual uint64_t getTotalValueCount() const;
diff --git a/searchlib/src/vespa/searchlib/attribute/ipostinglistattributebase.h b/searchlib/src/vespa/searchlib/attribute/ipostinglistattributebase.h
index 91f2a63976b..8d44c022062 100644
--- a/searchlib/src/vespa/searchlib/attribute/ipostinglistattributebase.h
+++ b/searchlib/src/vespa/searchlib/attribute/ipostinglistattributebase.h
@@ -22,8 +22,8 @@ public:
uint32_t fromLid,
uint32_t toLid) = 0;
- virtual void
- forwardedShrinkLidSpace(uint32_t newSize) = 0;
+ virtual void forwardedShrinkLidSpace(uint32_t newSize) = 0;
+ virtual MemoryUsage getMemoryUsage() const = 0;
};
diff --git a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.h b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.h
index ac525da419f..68aa8d6673c 100644
--- a/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.h
+++ b/searchlib/src/vespa/searchlib/attribute/multinumericpostattribute.h
@@ -104,6 +104,10 @@ public:
return this;
}
+ const attribute::IPostingListAttributeBase *getIPostingListAttributeBase() const override {
+ return this;
+ }
+
void fillPostingsFixupEnum(const LoadedEnumAttributeVector &loaded) override {
fillPostingsFixupEnumBase(loaded);
}
diff --git a/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.h b/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.h
index 348bef44bf8..04f26d232d5 100644
--- a/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.h
+++ b/searchlib/src/vespa/searchlib/attribute/multistringpostattribute.h
@@ -105,6 +105,8 @@ public:
attribute::IPostingListAttributeBase * getIPostingListAttributeBase() override { return this; }
+ const attribute::IPostingListAttributeBase * getIPostingListAttributeBase() const override { return this; }
+
void fillPostingsFixupEnum(const LoadedEnumAttributeVector &loaded) override {
fillPostingsFixupEnumBase(loaded);
}
diff --git a/searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp b/searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp
index fa24221b888..7750758469b 100644
--- a/searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp
+++ b/searchlib/src/vespa/searchlib/attribute/postinglistattribute.cpp
@@ -202,6 +202,12 @@ PostingListAttributeBase<P>::forwardedShrinkLidSpace(uint32_t newSize)
(void) _postingList.resizeBitVectors(newSize, newSize);
}
+template <typename P>
+MemoryUsage
+PostingListAttributeBase<P>::getMemoryUsage() const
+{
+ return _postingList.getMemoryUsage();
+}
template <typename P, typename LoadedVector, typename LoadedValueType,
typename EnumStoreType>
diff --git a/searchlib/src/vespa/searchlib/attribute/postinglistattribute.h b/searchlib/src/vespa/searchlib/attribute/postinglistattribute.h
index 695c7872255..a8563ef6027 100644
--- a/searchlib/src/vespa/searchlib/attribute/postinglistattribute.h
+++ b/searchlib/src/vespa/searchlib/attribute/postinglistattribute.h
@@ -65,6 +65,7 @@ protected:
uint32_t toLid, EnumStoreComparator &cmp);
void forwardedShrinkLidSpace(uint32_t newSize) override;
+ virtual MemoryUsage getMemoryUsage() const override;
public:
const PostingList & getPostingList() const { return _postingList; }
diff --git a/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.h b/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.h
index 9235611fd09..b50944492a8 100644
--- a/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.h
+++ b/searchlib/src/vespa/searchlib/attribute/singlenumericpostattribute.h
@@ -95,6 +95,7 @@ public:
void fillPostings(LoadedVector & loaded) override { handleFillPostings(loaded); }
attribute::IPostingListAttributeBase *getIPostingListAttributeBase() override { return this; }
+ const attribute::IPostingListAttributeBase *getIPostingListAttributeBase() const override { return this; }
void fillPostingsFixupEnum(const LoadedEnumAttributeVector &loaded) override { fillPostingsFixupEnumBase(loaded); }
};
diff --git a/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.h b/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.h
index 506269733ba..de8baf4473f 100644
--- a/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.h
+++ b/searchlib/src/vespa/searchlib/attribute/singlestringpostattribute.h
@@ -110,6 +110,10 @@ public:
return this;
}
+ const attribute::IPostingListAttributeBase * getIPostingListAttributeBase() const override {
+ return this;
+ }
+
void fillPostingsFixupEnum(const LoadedEnumAttributeVector &loaded) override {
fillPostingsFixupEnumBase(loaded);
}