You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by mo...@apache.org on 2022/07/01 08:05:54 UTC
[doris] branch master updated: [improvement] alloc aligned memory for block bloom filter to work with jemalloc (#10446)
This is an automated email from the ASF dual-hosted git repository.
morningman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 5dd43fff53 [improvement] alloc aligned memory for block bloom filter to work with jemalloc (#10446)
5dd43fff53 is described below
commit 5dd43fff53c207d628b77df4b6ddc10403ac4e02
Author: Yongqiang YANG <98...@users.noreply.github.com>
AuthorDate: Fri Jul 1 16:05:48 2022 +0800
[improvement] alloc aligned memory for block bloom filter to work with jemalloc (#10446)
---
be/src/exprs/block_bloom_filter.hpp | 2 --
be/src/exprs/block_bloom_filter_impl.cc | 9 +++++++--
2 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/be/src/exprs/block_bloom_filter.hpp b/be/src/exprs/block_bloom_filter.hpp
index e1d64013af..b75350b56e 100644
--- a/be/src/exprs/block_bloom_filter.hpp
+++ b/be/src/exprs/block_bloom_filter.hpp
@@ -202,8 +202,6 @@ private:
}
DISALLOW_COPY_AND_ASSIGN(BlockBloomFilter);
-
- std::unique_ptr<char[]> _mem_holder;
};
} // namespace doris
diff --git a/be/src/exprs/block_bloom_filter_impl.cc b/be/src/exprs/block_bloom_filter_impl.cc
index c8cf9b049b..1cdab38605 100644
--- a/be/src/exprs/block_bloom_filter_impl.cc
+++ b/be/src/exprs/block_bloom_filter_impl.cc
@@ -69,8 +69,12 @@ Status BlockBloomFilter::init_internal(const int log_space_bytes, uint32_t hash_
const size_t alloc_size = directory_size();
close(); // Ensure that any previously allocated memory for directory_ is released.
- _mem_holder.reset(new char[alloc_size]);
- _directory = (Bucket*)_mem_holder.get();
+ DCHECK(_directory == nullptr);
+ int rc = posix_memalign((void**)&_directory, 32, alloc_size);
+ if (rc != 0) {
+ return Status::InternalError("block_bloom_filter alloc fail");
+ }
+
_hash_seed = hash_seed;
return Status::OK();
}
@@ -100,6 +104,7 @@ Status BlockBloomFilter::init_from_directory(int log_space_bytes, const Slice& d
void BlockBloomFilter::close() {
if (_directory != nullptr) {
+ free(_directory);
_directory = nullptr;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org