This is an automated email from the ASF dual-hosted git repository. alexey pushed a commit to branch branch-1.11.x in repository https://gitbox.apache.org/repos/asf/kudu.git
commit 4f21110d57391e452e9cde787cfc091b608b1347 Author: Adar Dembo <[email protected]> AuthorDate: Sat Nov 9 14:59:01 2019 -0800 docs: additional instructions for installing memkind from source This is often necessary as most of our supported distros include a memkind that's too old. There are some complications, however: - Using the default prefix (/usr/local) means Kudu won't find the library. - Even after installing to /usr, ldconfig must be run to regenerate the cache of dynamic libraries in "trusted locations" like /usr/lib. Change-Id: I7d52d02ad87a27e5fef5ba5c0ab8932128a29762 Reviewed-on: http://gerrit.cloudera.org:8080/14683 Tested-by: Kudu Jenkins Reviewed-by: Alexey Serbin <[email protected]> (cherry picked from commit b97c2f6ca78097186c3c77e759cf43bab966cc7b) Conflicts: docs/installation.adoc Reviewed-on: http://gerrit.cloudera.org:8080/14696 Reviewed-by: Grant Henke <[email protected]> --- docs/installation.adoc | 60 +++++++++++++++++++++++++++++++++++++++++++ src/kudu/cfile/block_cache.cc | 2 +- 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/docs/installation.adoc b/docs/installation.adoc index f7dc39f..3497501 100644 --- a/docs/installation.adoc +++ b/docs/installation.adoc @@ -109,6 +109,26 @@ $ sudo yum install -y scl-utils ${DTLS_RPM} $ sudo yum install -y devtoolset-3-toolchain ---- +. Optional: If support for Kudu's NVM (non-volatile memory) block cache is +desired, install the memkind library. ++ +---- +$ sudo yum install memkind +---- ++ +If the memkind package provided with the Linux distribution is too old (1.8.0 or +newer is required), build and install it from source. ++ +---- +$ sudo yum install numactl-libs numactl-devel +$ git clone https://github.com/memkind/memkind.git +$ cd memkind +$ ./build.sh --prefix=/usr +$ sudo yum remove memkind +$ sudo make install +$ sudo ldconfig +---- + . Optional: Install some additional packages, including ruby, if you plan to build documentation. + ---- @@ -239,6 +259,26 @@ $ sudo apt-get install autoconf automake curl flex g++ gcc gdb git \ openjdk-8-jdk openssl patch pkg-config python rsync unzip vim-common ---- +. Optional: If support for Kudu's NVM (non-volatile memory) block cache is +desired, install the memkind library. ++ +---- +$ sudo apt-get install libmemkind0 +---- ++ +If the memkind package provided with the Linux distribution is too old (1.8.0 or +newer is required), build and install it from source. ++ +---- +$ sudo apt-get install libnuma1 libnuma-dev +$ git clone https://github.com/memkind/memkind.git +$ cd memkind +$ ./build.sh --prefix=/usr +$ sudo apt-get remove memkind +$ sudo make install +$ sudo ldconfig +---- + . Optional: Install some additional packages, including ruby, if you plan to build documentation. + ---- @@ -356,6 +396,26 @@ $ sudo zypper install autoconf automake curl cyrus-sasl-devel \ pkg-config python rsync unzip vim ---- +. Optional: If support for Kudu's NVM (non-volatile memory) block cache is +desired, install the memkind library. ++ +---- +$ sudo zypper install memkind +---- ++ +If the memkind package provided with the Linux distribution is too old (1.8.0 or +newer is required), build and install it from source. ++ +---- +$ sudo zypper install numactl-libs numactl-devel +$ git clone https://github.com/memkind/memkind.git +$ cd memkind +$ ./build.sh --prefix=/usr +$ sudo zypper remove memkind +$ sudo make install +$ sudo ldconfig +---- + . Clone the Git repository and change to the new `kudu` directory. + [source,bash] diff --git a/src/kudu/cfile/block_cache.cc b/src/kudu/cfile/block_cache.cc index c00bee1..bf93703 100644 --- a/src/kudu/cfile/block_cache.cc +++ b/src/kudu/cfile/block_cache.cc @@ -55,7 +55,7 @@ DEFINE_string(block_cache_type, "DRAM", "Valid choices are 'DRAM' or 'NVM'. DRAM, the default, " "caches data in regular memory. 'NVM' caches data " "in a memory-mapped file using the memkind library. To use 'NVM', " - "libmemkind 1.6.0 or newer must be available on the system; " + "libmemkind 1.8.0 or newer must be available on the system; " "otherwise Kudu will crash."); using strings::Substitute;
