summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorGeir Storli <geirst@verizonmedia.com>2019-11-14 08:49:45 +0000
committerGeir Storli <geirst@verizonmedia.com>2019-11-14 08:49:45 +0000
commit3e8c96fcba038b3b68f75073fbe516912d169311 (patch)
treec54a28883ff7f7b29ba111234498758478d36477 /vespalib
parent03d90c743ae83cfea09be55cb7f1787aa8c8453b (diff)
Enable free lists for multi-value mapping used in all multi-value attributes.
This should reduce the need for compaction which is CPU intensive for some applications.
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/vespa/vespalib/datastore/array_store.h2
-rw-r--r--vespalib/src/vespa/vespalib/datastore/datastorebase.h2
2 files changed, 4 insertions, 0 deletions
diff --git a/vespalib/src/vespa/vespalib/datastore/array_store.h b/vespalib/src/vespa/vespalib/datastore/array_store.h
index d9d5afcbd43..d5fef404a43 100644
--- a/vespalib/src/vespa/vespalib/datastore/array_store.h
+++ b/vespalib/src/vespa/vespalib/datastore/array_store.h
@@ -101,6 +101,8 @@ public:
// Should only be used for unit testing
const BufferState &bufferState(EntryRef ref) const;
+ bool has_free_lists_enabled() const { return _store.has_free_lists_enabled(); }
+
static ArrayStoreConfig optimizedConfigForHugePage(size_t maxSmallArraySize,
size_t hugePageSize,
size_t smallPageSize,
diff --git a/vespalib/src/vespa/vespalib/datastore/datastorebase.h b/vespalib/src/vespa/vespalib/datastore/datastorebase.h
index 59e0d76b638..22b1a53f0ab 100644
--- a/vespalib/src/vespa/vespalib/datastore/datastorebase.h
+++ b/vespalib/src/vespa/vespalib/datastore/datastorebase.h
@@ -316,6 +316,8 @@ public:
void disableFreeList(uint32_t bufferId);
void disableElemHoldList();
+ bool has_free_lists_enabled() const { return _freeListsEnabled; }
+
/**
* Returns the free list for the given type id.
*/