Support Article
Cassandra start up error causes failure in Data Set truncation
Summary
In Pega 7.1.8 a problem occurs in a data set opertation even though the configured Dnode status is healthy, i.e. Online- Normal
A newly created Data Set(sampledds) is being used to record some data in the Decision Data Store.
It is not possible to execure a Truncate operation successfully against this Data Set and it throws snappy library errors in the logfile.
ERROR MESSAGES
The error message of interest is the line below that points to the underlying snappy library
[] [ STANDARD] [ ] [ APPL:01.01.01] ( impl.cassandra.Cassandra) ERROR - Issue during cassandra startup
java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy
[ STANDARD] [ ] [APPL:01.01.01] ( internal.mgmt.Executable) ERROR [] - Exception
com.pega.pegarules.pub.PRRuntimeException: Exception during data set execution
Caused by: com.pega.dsm.dnode.api.DNodeException: Cannot truncate sampledds_xyznbam_rules_47e45c6e5cc07bdf
Caused by: java.util.concurrent.TimeoutException: Truncate timed out - received only 0 responses
Steps to Reproduce
1.Open an existing Data Set or create a new one.
2.Go to the Action menu and Run.
3.Then execute truncate operation.
Root Cause
The Snappy compression library that came with Cassandra doesn’t support the underlying architecture of Linux OS and ppc64 arch.
This is reason for the snappy initialization failure that can overall affect the Cassandra during its operation.
This resulted in the exception when dataset truncation is being performed on a Dnode.
Resolution
The following prconfig settings will bypass the compression done by snappy modules.
Add the env setting below in prconfig.xml for all nodes to turn off compression for traffic between nodes.
<env name="dnode/yaml/internode_compression" value="none" />
This is a cassandra.yaml configuration setting that is modifiable via prconfig.xml, full details for the setting are found in the Cassandra documentation.
internode_compression
(Default: all ) Controls whether traffic between nodes is compressed. The valid values are:
all: All traffic is compressed.
dc : Traffic between data centers is compressed.
none : No compression.
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.