This fixes compatibility issues with frameworks like Lettuce Java that expect exact words when parsing INFO response.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
* chore: get rid of lock keys
1. Introduce LockTag a type representing the part of the key that is used for locking.
2. Hash keys once in each transaction.
3. Expose swap_memory_bytes metric.
---------
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
* helm templating and test cases for namespace support in prometheus rule crd
* updated prometheus rules
---------
Co-authored-by: Yash Jagdale <yash@databahn.ai>
Co-authored-by: Roman Gershman <roman@dragonflydb.io>
* chore: improve reply latency of SendScoredArray
Use SendStringArrInternal that reduces dramatically number of socket calls for long arrays.
---------
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
For high connection rate cases it can be significant.
In addition, refactor reply_builder so we could use SendStringArrInternal
for more cases like SendScoredArray that also has high latency overhead for replies.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
Co-authored-by: romange <romange@users.noreply.github.com>
The main change here is introduction of the strong type LockTag
that differentiates from a string_view key.
Also, some testing improvements to improve the footprint of the next PR.
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
* feat(server): Allow configuration of hashtag extraction
Before this PR: Hashtags, if enabled, meant the text between `{` and `}`
in the key (if exists and non-empty).
After this PR:
* Hashtags can _still_ be enabled / disabled
* Hashtag open / close char can be specified (and can be the same), like `:` popular with BullMQ
* Hashtag can include `N` closing tags to skip, like `{a}b}c}d` with `2` will return `a}b}c`.
This will allow some existing systems to migrate without code changes in
client code.
* chore: clean up REPLTAKEOVER flow
1. Factor out the catchup function.
2. Simplify the flow and make the second parameters - integer.
3. Return OK if the server is already a master (and do nothing underneath).
---------
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
* Going to rewrite hllSparseSet
* Add support to sparse hll
* Add support for PFAdd Sparse
* Add support for PFAdd Sparse
* Add support for PFAdd Sparse
* Add support for Sparse HLL PFADD
Signed-off-by: azuredream <zhaozixuan67@gmail.com>
* Add support for Sparse HLL PFADD
Signed-off-by: azuredream <zhaozixuan67@gmail.com>
* Add support for Sparse HLL PFADD
Signed-off-by: azuredream <zhaozixuan67@gmail.com>
* Add support for Sparse HLL PFADD
Signed-off-by: azuredream <zhaozixuan67@gmail.com>
* Add support for Sparse HLL PFADD
Signed-off-by: azuredream <zhaozixuan67@gmail.com>
* Add support for Sparse HLL PFADD
Signed-off-by: azuredream <zhaozixuan67@gmail.com>
* Add support for Sparse HLL PFADD
Signed-off-by: azuredream <zhaozixuan67@gmail.com>
* Add support for Sparse HLL PFADD
Signed-off-by: azuredream <zhaozixuan67@gmail.com>
---------
Signed-off-by: azuredream <zhaozixuan67@gmail.com>
* chore: LockTable tracks fingerprints of keys
It's a first step that will probably simplify dependencies in many places
where we need to keep key strings for that. A second step will be to reduce the CPU load
of multi-key operations like MSET and precompute Fingerprints once.
---------
Signed-off-by: Roman Gershman <roman@dragonflydb.io>