v1.1.6 - Bugs, Perf, and Chores
Summary
We recommend updating to this version if you are on later ones due to Signficiant perf improvements and bug fixes.
Bugs
- Fixed a race condition which could cause more outbound requests on a cache miss than needed (should be bounded at 1, but at high qps, can go to 10s/100s)
- Fix bug where id lists were failing to fetch which could lead to almost infinite 401s
Performance
- In non-async scenarios, use parking_lot RwLocks which are more performant for these basic situations
- In our core data stores, leverage a dashmap which has internal sharding to reduce lock contention on shared hashmaps which only use a lock for shared storage
- Improve logic for reading and writing to reduce lock contention and lock holding as much as possible by moving almost all logic out of the critical section
- In scenarios where there is an outer an inner lock, only ever hold the write lock on the outer lock if there is no valid entry that exists yet, else only use a read lock
- Used fixed sized vectors to reduce memory utilization
- Moved sdk_key parsing off of main request thread and into event handler thread
Chores
- Cleanup metric collection for log_event