Closed marniks7 closed 2 years ago
Is it possible that this issue is on application side? yes, there is a chance, for example due to sync.Pool
, but it is not reproduced on another version(s) of kelindar.
After testing with different versions - the problem introduced in v1.2.0
.
BTW, what did you use for performance testing here https://github.com/kelindar/bitmap/releases/tag/v1.2.0 ?
This behavior is due to Clone
function and removed code *into = (*into)[:len(dst)]
. This is fine, i have changed the application code
Before: (not exact, but idea)
func (h *Holder) release(tx *Tx) {
h.empty.Clone(&tx.index)
h.bitmapPool.Put(tx)
}
After
func (h *Holder) release(tx *Tx) {
clone := h.empty.Clone(&tx.index)
tx.index = clone
h.bitmapPool.Put(tx)
}
Hi, After upgrade from
v1.1.4
tov1.2.1
I got errors under highload testsTest Case:
AR: (wrk, client side), 3 errors per 390k+ requests
ER:
Non-2xx or 3xx responses
should be absentAR: (errors on application side)
ER: there should be 0 errors on application side
Code: https://github.com/marniks7/bitmap-usage/blob/update-dependencies/index-kelindar/searchv2.go Code for breakpoint:
List of used operations:
Debug:
KELINDAR32=true FIBER=true go run main.go
make wrk-kelindar-t2-c20