github deckhouse/prompp v2.53.2-0.3.1

latest releases: v0.6.2, v0.6.1, v0.6.0...
pre-release4 months ago

Fixes

  1. Fixed Channel Overflow and Shard Goroutine Deadlock: A bug that caused channel overflow and deadlocks in shard goroutines has been fixed. The change ensures that tasks are added to the channel only from external goroutines, preventing these issues.
  2. Fixed Series Snapshot Memory Hanging: We've corrected an issue where series snapshots were not getting cleared from memory due to problems with Finalizers in Go. The snapshots involved pointers to memory allocated in C++, and the garbage collector did not always trigger the Finalizer, causing memory to linger.
  3. Corrected Potential Object Retention Errors in fastCGo Calls: There were potential errors related to object retention during fastCGo calls. While most of these were specific to test code, some could cause runtime errors in rare situations. These have now been addressed to improve stability.

Enhancements

  1. Optimized Series Copying During Rotation: We've made series copying during rotation much more efficient, reducing the time required by 7.5 times. To avoid pauses in the garbage collector, we're using the standard CGo mechanism for this process. Currently, this feature is under a feature flag and is being tested on select clusters to ensure stability and correctness. Once these tests are successful, we plan to enable it for all clusters.
  2. Revamped Task Execution System on Shards: The task execution system on shards has been restructured to separate series processing from data handling. Each now operates with its own queues and locks, which is expected to boost the requests per second (RPS) for both read and write operations.
  3. New Feature Flag for Multiple Goroutines per Shard: We've introduced a feature flag that allows running multiple goroutines per shard. This change is aimed at improving the scalability of read request handling, while still maintaining proper locking for exclusive write operations. This setup is particularly beneficial in scenarios where read requests heavily outweigh write requests. We are actively testing this feature on our clusters to determine the best concurrency levels before rolling out automatic tuning options.
  4. Optimized Internal Encoders and Decoders: We use StreamVByte encoding in data storages. We optimize some operations inside this encoding to reduce instructions and memory jumps. This optimizations reduce CPU time by 10% on this operations.

Don't miss a new prompp release

NewReleases is sending notifications on new releases.