Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Cassandra start up error causes failure in Data Set truncation

SA-18654

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

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice