SR-D54602 · Issue 517309
Prconfigs added to support Cassandra Speculative Based Execution
Resolved in Pega Version 8.4
In order to achieve high availability for Cassandra, prconfigs have been added to support speculative execution. The available prconfigs will enable it, and set maximum number of executions and delay before the next execution is launched.The prconfigs are: dnode/cassandra_speculative_execution_policy dnode/cassandra_speculative_execution_policy/max_executions dnode/cassandra_speculative_execution_policy/delay
SR-D60121 · Issue 525492
All interactions visible in "Latest Responses" for ADM
Resolved in Pega Version 8.4
Interactions were not visible in the "Latest Responses" section of the Model Management landing page for Adaptive models if the requests were stored on multi-node systems. This was due to the system fetching the Last Responses using a list of server nodes built using a version of deployment.getClusterState(tools) which gave only the ADM nodes list instead of all the ADM nodes both client and server. To resolve this, the system has been updated to use ServiceRegistry to get all of the data flow nodes and get the last responses from each of them.
SR-D60268 · Issue 521467
Performance and thread-handling improvements for SSA
Resolved in Pega Version 8.4
The SecureRandom class was used internally by SSAExecutionContext indirectly via UUID generation. Because this exhibited performance issues on some Linux environments, UUID has been replaced with static AtomicLong. In addition, a memory leak was observed when the strategy (SSA) execution resulted in an exception, and the strategy template has been modified to gracefully shutdown the VM under all circumstances. Thread-safety measures have also been tuned to be more fine-grained to reduce the potential thread contention that was seen while borrowing the SSAInterpreter object from SSAInterpreterPool.
SR-D69028 · Issue 528974
Deadlock in static Initialization of IntList resolved
Resolved in Pega Version 8.4
JVM Deadlock was seen related to the static Initialization of a subclass field in class com.pega.decision.strategy.ssa.runtime.collections.api.IntList . Thread dumps showed threads in RUNNABLE State that were parked to wait for class initialization, and this was traced to a missed sonar alert which failed in multi-threading. To resolve this, the system handling has been updated to prevent potential deadlock.
SR-D41730 · Issue 508144
TTL value correctly passed for Adaptive Event store
Resolved in Pega Version 8.4
The ADM table was growing due to the Time to Live (TTL) for entries in the Adaptive Event Store not being propagated to clean them out. This was traced to the TTL field on the data flow not being checked, causing the TTL value to be supplied as zero so there was no expiration. This has been corrected.
INC-128342 · Issue 594185
Improved cleanup for adm_response_meta_info
Resolved in Pega Version 8.6
The adm_commitlog.adm_response_meta_info column family was growing, leading to gradual increase in CPU utilization on the Adaptive Decision Management (ADM) nodes over time. Investigation showed that the compaction on the adm_response_meta_info table was not being triggered by the ADM service, and the compaction did not remove rows that belonged to models that had been deleted. To resolve this, compaction of the adm_response_meta_info table has been moved from the ADM client nodes to the ADM service nodes, which will correctly trigger the compaction on a predefined schedule. The compaction logic has also been refactored to remove rows that belong to models that have been deleted.
INC-136634 · Issue 591679
Thread contention resolved for InteractionHistoryQuery
Resolved in Pega Version 8.6
High thread contention was observed while running Inbound load tests. This was traced to pzLoadInteractionHistory invoking a generated strategy to retrieve ihFields from InteractionHistoryQuery using the getUsedInteractionHistoryFields() method: because this method is synchronized, it caused a bottleneck. To resolve this, the synchronized methods have been replaced with the appropriate data structures.
INC-136969 · Issue 585547
Section and Paragraph rule types added to Revision Manager
Resolved in Pega Version 8.6
An enhancement has been made to add support for section and paragraph rule types in revision management. With this change, the sections and paragraph rule types can be added to overlay and can be added to change requests and modified.
INC-138037 · Issue 586595
Strategy handling updated for very large systems using IH summary
Resolved in Pega Version 8.6
When a Strategy in a Real-time dataflow used IH Summary on a system with more than 5000 groups for one eventKey, the message "Error retrieving aggregates from Cassandra KVS" intermittently appeared. Investigation showed that if the number of result rows was greater than the FETCH_SIZE (set to 5000), it meant another read to Cassandra was required and an exception was generated. To resolve this, updates have been made so that instead of returning maps, the system will return iterators and change them to map on the calling thread.
INC-138103 · Issue 585640
Enhancement added for node heartbeat recovery process
Resolved in Pega Version 8.6
Nodes were not showing up in the admin portal even though they were up and running and could be seen in the pr_sys_statusnodes table. The exception "An exception was encountered while invoking the cluster membership listener callback" was seen. All nodes became visible again after multiple restarts. The root cause was traced back to a temporary database connectivity problem. The database itself was fine according to database monitoring reports, but a network problem, a slow database query, or another issue prevented Pega from establishing a connection for more than a minute. An enhancement has been made to resolve this: if a node becomes unhealthy due to the service registry missing due to a failed heartbeat, the heartbeat will try to recover after 60 seconds and keep trying every 30 seconds until it succeeds.