Release tag: v2.2.0
Upgrade Notes
No steps are required to upgrade to this release. There are 3 new environment variables. All are optional. See more information about them in the Bug Fixes and Patches section.
There may be a delay before seeing the new version of the definition that v2.0.0 generates as requests for recompute go onto a queue and the existing definition is returned. This allows recomputes to happen in the background and reduces the impact on API requests.
What’s changed
Minor Changes
- Add the ability to queue definition recomputation by @qtomlinson in #1242
When a major release happens, every definition for a period of time will be recomputed based on those updated. The recent v2.0.0 update saw throughput drop significantly leading to timeouts for some requests.
To address this issue, a queue for recomputes. The new process is:
- request a definition
- if definition needs to be recomputed, it is put on the recompute queue
- return the original definition
Once the recompute completes, any definition requests will return the updated definition
Bug Fixes and Patches
Added conditional logging to log the heap usage stats
In support of this, two environment variables were added to control heap stats logging and interval.
LOG_NODE_HEAPSTATS
- string value of true or false (case insensitive) to enable the heap stats logging
LOG_NODE_HEAPSTATS_INTERVAL_MS
- string value of a number (in milliseconds) representing the interval to log heap stats at
- Adjust logging and allow configuration of batch size for dequeueMultiple @qtomlinson in #1258
When pulling from the recompute queue, multiple messages are pulled at once. If this is too high, it can reduce the efficiency of processing and consume more resources than it would need otherwise. An env var was added to provide control over this value. When debugging it can be changed to determine if it has an impact on performance.
DEFINITION_UPGRADE_DEQUEUE_BATCH_SIZE
- string value of a number representing the number of messages that are dequeued at once from the recomputation queue (default=16)
DEFINITION_UPGRADE_PROVIDER
- string value of versionCheck or upgradeQueue that controls the upgrade behavior (default=versionCheck)
DEFINITION_UPGRADE_QUEUE_PROVIDER
- string value of memory or azure that Controls the queuing of upgrades (default=memory)
DEFINITION_UPGRADE_QUEUE_CONNECTION_STRING
- string value with the connection string to the Azure Storage Queue. (default=value of HARVEST_AZBLOB_CONNECTION_STRING
)
DEFINITION_UPGRADE_QUEUE_NAME
- string value designating the name of the upgrade queue (default=definitions-upgrade)
Full Changelog: https://github.com/clearlydefined/service/compare/v2.1.0…v2.2.0