-
Notifications
You must be signed in to change notification settings - Fork 0
Running Apache Cassandra on ppc64le
Running Apache Cassandra on ppc64le Linux still requires small changes to the distributed package. We are working with the community to integrate these changes to the upstream version. For now, we summarize the necessary changes in this page. We assume Cassandra 3.x and later. In the following steps, $CASSANDRA_HOME
refers to your Cassandra's installation directory.
- Increase the Java stack size.
$ sed -i -e s/Xss256/Xss512/g $CASSANDRA_HOME/conf/jvm.options
- (For Cassandra 2.x only; Cassandra 3.x and later do not need this step) Download and install the latest JNA library (4.4.0 as of June 20, 2017). The included jna-4.0.0.jar does not support ppc64le.
$ rm $CASSANDRA_HOME/lib/jna-4.0.0.jar
$ cp jna-4.4.0.jar $CASSANDRA_HOME/lib
None of the following steps are mandatory in terms of functionality, but we recommend them for better performance.
- (For Cassandra 3.x only; Cassandra 4.x and later do not need this step) Download and install the ppc64le-enabled lz4 library. The included lz4-1.3.0.jar does not natively support ppc64le and falls back to the slow Java version.
$ rm $CASSANDRA_HOME/lib/lz4-1.3.0.jar
$ cp lz4-java-1.4.0.jar $CASSANDRA_HOME/lib
- (For Cassandra 3.x only; Cassandra 4.x and later do not need this step) Download and install the ppc64le native library of SIGAR. The included version of SIGAR does not support ppc64le.
$ cp libsigar-ppc64le-linux.so $CASSANDRA_HOME/lib/sigar-bin
- If you have to use old OpenJDK (8u66-b01-4 or before), you must specify a proper architecture property to the JVM. Old OpenJDK had a bug that the
os.arch
property was incorrectly defined asppc64
, notppc64le
. If you are using the latest system-default OpenJDK8 (as of June 22, 2017), then there is no problem, but if you have to use old OpenJDK, then you must specify-Dos.arch=ppc64le
to the JVM. You can add it to theconf/jvm.options
file of Cassandra, or you can add it to theJVM_EXTRA_OPTS
environment variable like this:
# This assumes bash
$ export JVM_EXTRA_OPTS="$JVM_EXTRA_OPTS -Dos.arch=ppc64le"
If you build Cassandra from source as explained below and if you have to use old OpenJDK, then you should also make sure that the build tools pick up the correct architecture property:
$ export JAVA_TOOL_OPTIONS="$JAVA_TOOL_OPTIONS -Dos.arch=ppc64le"
If you build Cassandra from source, we recommend applying this patch to enable unaligned memory access on ppc64le. The patch should apply to recent Cassandra 3.x releases.
$ cd $CASSANDRA_HOME
$ patch -p1 < /path/to/your/Architecture-ppc64le.patch
$ ant