Artur Melanchyk
Artur Melanchyk
**What happened** In response to a `VerifiableGet` request I received gRPC error `"key not found"` and it's code was set to 2, which stands for `Unknown` **What you expected to...
### What's being changed: Removing `sync.Mutex` lock and avoiding unneeded memory allocations in BM25Searcher::wand(). Existing implementation of the `for` loop implies (worst case): - `Lock()`/`Unlock()` invocations = `len(Tokenizations) x len(queryTerms)`...
### What's being changed: Removing `sync.Mutex` protecting the `DB::ratePerSecond` in favour of `atomic.Int64` ### Review checklist - [ ] Documentation has been updated, if necessary. Link to changed documentation: -...
Using atomic is lock-free and in this specific case roughly ~50% faster than using mutex
This change minimizes lock contention when working with `instrumentedRWMutex` According to the attached benchmark `Lock` \ `Unlock` operations as well as `RLock` \ `RUnlock` gain ~50% performance boost while `State`'s...
- validate input params before obtaining mutex lock - replace sync.Mutex with sync.RWMutex
### Description ### Testing & Reproduction steps ### Links ### PR Checklist * [ ] updated test coverage * [ ] external facing docs updated * [ ] appropriate backport...
### Description ### Testing & Reproduction steps ### Links ### PR Checklist * [ ] updated test coverage * [ ] external facing docs updated * [ ] appropriate backport...