INC-150873 · Issue 612895
Performance improvement for saving ADM model rule
Resolved in Pega Version 8.6
Saving an ADM model rule generated a heap dump. The stack trace from the heap dump showed a thread consuming the maximum memory (4.7 GB of memory). Configurations on all factories are updated when a model rule is saved, but at the time of development it was not expected that there would be a lot of factories in a Dev environment so the system was loading all existing factories simultaneously into memory and updating configurations on them. To improve performance, an update has been made which will now sequentially load factories and update the configuration.
INC-151037 · Issue 609624
Enhanced ADM diagnostic logging
Resolved in Pega Version 8.6
Diagnostic logging enhancements have been added in order to better identify issues related to ADM models not being created or where learning is impacted.
INC-151421 · Issue 614595
Adaptive Model Save-as works With Predictor Type
Resolved in Pega Version 8.6
A predictor change which was accounted for in a previous adaptive model rule version did not work on future save-as. This was traced to a missed use case that when the value 'pyPrevPredTransformation' is empty, validation on that is unnecessary. This has been resolved by adding an 'if' condition in the validation activity.
INC-153223 · Issue 613704
DSS added to set Cassandra query page size limit
Resolved in Pega Version 8.6
When a site with a large number of nodes captured responses to the commit log, it was possible for nodes run out of heap space and cause system instability. This was due to the Cassandra query not having a specified page size, so the cluster-wide default setting of 5000 created an issue for large sites which could have over 150 nodes capturing responses. This has been resolved by specifying the page size on the Cassandra query that used to read responses from the commit log. This value will be set dynamically with a DSS to not read more than n responses from all shards combined in a single batch.
INC-154128 · Issue 614296
High thread contention in StrategySSAProgram resolved
Resolved in Pega Version 8.6
While Running inbound campaigns during peak times, high contention was observed around "threadSafeWrite" and "threadSafeRead". To resolve this and improve performance, the code around handling write locks has been updated.
INC-155822 · Issue 618270
Locking added to avoid null pointer exception for auto-populate property
Resolved in Pega Version 8.6
After configuring the auto populate property "OrgProduct" which referred to a data page, the system experiencing heavy load led to the property not getting properly initialized. This resulted in a WrongModeException and NullPointerException. To resolve this, the system has been updated to lock the requestor when Queue Processors execute their activity. This will prevent race conditions and concurrent modifications if other threads are accessing the same requestor.
INC-155908 · Issue 625217
Logic updated for handling future events in strategy tests
Resolved in Pega Version 8.6
After upgrade, there was an unexpected exception "EventStrategy error in SerializeUtil: Integer too large to read, Size:48" while retrieving the final BBK aggregate results during strategy tests with several different pre-existing customerIDs, and no results were returned. When aggregations are read, there is a check to make sure the system does not return empty records. The logic for determining whether there is empty data in the record was mistakenly reading the event count from the wrong bytes which were part of a date for 2023. This was due to the second byte of the year date in hex being interpreted as the start of the event count. As a workaround, results are returned if no pxOutcomeTime dates in the database are more than a year in advance along with all aggregate datasets being recreated on production immediately after upgrade from v8.1 to v8.5. To resolve this issue going forward, the logic has been updated to handle the errors, and future records will trigger a warning in the log with information such as "Event time greater than current time in clipboard page. Event Time = Mon Mar 10 14:46:27 UTC 2025, Current Time = Tue Feb 09 14:18:49 UTC 2021. Ignoring event...".
INC-156299 · Issue 619712
"Daily" ADM monitoring setting now equals seven days a week
Resolved in Pega Version 8.6
Previously, the setting "daily" for monitoring ADM activity set the schedule only for weekdays. While there was a workaround of selecting Dev Studio -> Records -> SysAdmin -> Agent Schedule -> Pega-DecisionEngine -> ADMSnapshot -> Advanced, select Daily with Every 1 day option to capture the snapshot for seven days a week, this has been resolved by modifying the default "daily" snapshot agent interval definition to mean every calendar day.
INC-156818 · Issue 628466
Materialization uses time limit boundary for query
Resolved in Pega Version 8.6
After turning on Materialization for pyIHSummary and OfferOutcomesForPast45Days datasets, an SQL query was taking an excessive amount of time and causing multiple alerts in the logs. Investigation traced the issue to database partitioning, specifically that running a query where the pyOutcomeTime range spanned multiple partitions was causing the indexes for all partitions in the range to be opened. To resolve this, the query has been updated with a DSS to support a partition size of min(pxOutcomeTime) to limit the time range to querying day by day, or hour by hour, or any other chronology unit specified. If there are no records for the current limit, then it will look at the next partition. This should prevent the query from needing to open more than 1 or 2 partitions.
INC-157097 · Issue 619997
REGEX In Expression Builder matches runtime values
Resolved in Pega Version 8.6
An expression builder statement was evaluating differently at runtime vs at testing. This was traced to a difference in escape character handling between old legacy code and the new strategy runtime engine, and has been resolved by ensuring the strategy runtime engine is supporting escape character use cases.