1
0
Fork 0
mirror of https://github.com/dragonflydb/dragonfly.git synced 2024-12-15 17:51:06 +00:00
Commit graph

2107 commits

Author SHA1 Message Date
Roman Gershman
7226024a9f
chore: improve reply latency of SendScoredArray (#2929)
* 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>
2024-04-18 22:39:51 +03:00
Roman Gershman
9289f12dc3
fix: Improve reply latency of HELLO (#2925)
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>
2024-04-18 15:41:42 +03:00
Vladislav
9b6ee18e90
chore(string_family): Refactor SetCmd (#2919)
* chore(string_family): Refactor SetCmd

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-18 10:41:02 +03:00
romange
e352edd018 chore(helm-chart): update to v1.17.1 2024-04-18 05:09:32 +00:00
Borys
81fc57a5a9
feat: process migration data after FIN opcode #2864 (#2918)
* feat: process migration data after FIN opcode #2864
2024-04-17 23:16:49 +03:00
Shahar Mike
56965edbe1
feat(cluster): Migration cancellation support (#2869) 2024-04-17 13:19:31 +03:00
Vladislav
bb238ba33a
chore(tiering): Fix MacOs build (#2913) 2024-04-17 07:38:51 +00:00
Vladislav
64d963dbbe
fix(transaction): Use FinishHop in schedule (#2911) 2024-04-17 09:24:27 +03:00
Roman Gershman
8030ee96b5
chore: preparation step for lock fingerprints (#2899)
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>
2024-04-16 19:23:50 +03:00
Vladislav
4fe00a071e
chore(tiering): Update Get, Set, Del (#2897)
* chore(tiering): Update Get, Set and Del


---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-16 19:20:24 +03:00
Borys
d99b0eda16
feat: retry ACK if the configs are different #2833 (#2906)
* feat: retry ACK if the configs are different #2833
2024-04-16 15:03:30 +03:00
romange
f58ded488c chore(helm-chart): update to v1.17.0 2024-04-16 09:48:29 +00:00
Roman Gershman
5c422e39ee
chore: add ipv6 support for native linux release (#2908) 2024-04-16 06:56:33 +00:00
Vladislav
468942ccbb
chore: pull helio and add ipv6 replication test (#2889)
* chore: pull helio and add ipv6 replication test

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-15 15:37:22 +03:00
Kostas Kyrimis
86559a29db
fix(sanitizers): false positive fail on multi_test::Eval (#2896)
* disable false positives
2024-04-15 15:15:42 +03:00
Roman Gershman
868e7a04ce
chore: add help string for memory_fiberstack_vms_bytes (#2903) 2024-04-15 13:45:08 +03:00
Borys
55447e28ff
fix: fix ld for num converting (#2902) 2024-04-15 11:35:19 +03:00
Shahar Mike
2b6a5e5039
fix(zset): Better memory consumption calculation (#2900)
Fixes #2808
2024-04-15 11:34:46 +03:00
Kostas Kyrimis
c87cc22c5d
fix(acl): skip http and add check on connection traversals (#2883)
* skip http and add check on connection traversals for ACL
2024-04-15 10:08:26 +03:00
adiholden
9cbe69576e
fix(cluster_replication): replicate redis cluster node bug fix (#2876)
* fix redis replication error handling and set cntx as journal emulated


Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-04-14 22:49:00 +03:00
Borys
a5e27af1e5
fix: fix build under macos (#2901) 2024-04-14 16:28:07 +03:00
Shahar Mike
256e07f8ba
feat(server): Allow configuration of hashtag extraction (#2890)
* 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.
2024-04-14 15:09:41 +03:00
Roman Gershman
f6f7cfb2c9
chore: add a clear link on how to build dragonfly from source (#2884) 2024-04-12 22:12:36 +03:00
Vladislav
0693846d9b
chore(blocking): Remove faulty DCHECK (#2898)
* chore(blocking): Remove faulty DCHECK

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-12 22:11:47 +03:00
Borys
9bed3390d7
feat(cluster): add repeated ACK if an error is happened (#2892) 2024-04-12 16:20:19 +03:00
Kostas Kyrimis
c2f13993d9
fix(acl): authentication with UDS socket (#2895)
* disable authentication on UDS socket
* add a test so the bug won't happen again
2024-04-12 16:01:12 +03:00
Tarun Pothulapati
0f613d8f85
fix(ci/helm): Stick to v0.73.0 version of prom operator (#2893) 2024-04-12 10:36:49 +00:00
Vladislav
1dd068c9a6
chore(interpreter): Support object replies (#2885)
This PR allows serializing lua tables into the RESP format

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-12 09:56:53 +03:00
Vladislav
5979fd1cb9
chore(tiering): Move files and move kb literal to common (#2868)
Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-11 16:37:29 +03:00
Roman Gershman
2a4d3ae08e
chore: clean up REPLTAKEOVER flow (#2887)
* 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>
2024-04-11 16:18:06 +03:00
adiholden
7580a88ca5
feat server: bring visibility to script errors (#2879)
* feat server: bring visibility to script errorד

Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-04-11 11:25:41 +03:00
zixuan zhao
48d7fa7eba
Add support for Sparse HLL PFADD (#2761)
* 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>
2024-04-11 10:54:59 +03:00
Roman Gershman
f2b6daa3c5
chore: reject TLS handshake when our listener is plain TCP (#2882)
Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-04-11 08:05:01 +03:00
Roman Gershman
da5c51d1dd
chore: LockTable tracks fingerprints of keys (#2839)
* 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>
2024-04-10 17:52:53 +03:00
Kostas Kyrimis
56a7f85e39
fix: brpoplpush single shard to wake up blocked transactions (#2875)
* wake up blocked transactions on single shard
2024-04-10 16:59:33 +03:00
Vladislav
3e270fee53
chore(replayer): Roll back to go1.18 (#2881) 2024-04-10 16:58:51 +03:00
Kostas Kyrimis
1bcbb41ec3
chore: relax repltakeover constraints to only exclude write commands (#2873)
* relax repltakeover constraints
2024-04-10 16:58:34 +03:00
Roman Gershman
dd437693f6
chore: limit traffic logger only to the main interface (#2877) 2024-04-10 14:27:55 +03:00
adiholden
eb164be596
fix(redis replication): remove partial sync flow ,not supported yet (#2865)
* fix redis replicaiton: remove partial sync flow ,not supported yet

Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-04-10 09:27:02 +03:00
Roman Gershman
fffeb4bacd
fix: return wrong type errors for SET...GET command (#2874)
Fixes #2423

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-04-09 22:01:15 +03:00
Kostas Kyrimis
ccffc14419
fix(json): make path optional in json.objkeys (#2872)
* make path optional in json.objkeys
2024-04-09 18:54:12 +03:00
Kostas Kyrimis
b4930b2281
fix(acl): incompatibilities with acl load (#2867)
* ignore case when reading the acl line prefix user
* acl load returns OK before it kills the active connections
2024-04-09 18:53:50 +03:00
Roman Gershman
5b6bf1fa96
chore: License update (#2767)
* chore: License update

Fixes #2758

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-04-09 15:46:14 +03:00
Shahar Mike
54c9633cb8
feat(dbslice): Add self-laundering iterator in DbSlice (#2815)
A self-laundering iterator will enable us to, eventually, yield from fibers while holding an iterator. For example:

```cpp
auto it1 = db_slice.Find(...);
Yield();  // Until now - this could have invalidated `it1`
auto it2 = db_slice.Find(...);
```

Why is this a good idea? Because it will enable yielding inside PreUpdate() which will allow breaking down of writing huge entries in small quantities to disk/network, eliminating the need to allocate huge chunks of memory just for serialization.

Also, it'll probably unlock future developments as well, as yielding can be useful in other contexts.
2024-04-09 12:00:52 +03:00
Kostas Kyrimis
41d463ae3d
fix: test_replicaof_reject_on_load crash on stop (#2818)
* Migrate might fail if dispatch_fiber is active. In that case do no crash but return false to indicate that the migration was not successful.
* After we migrate, we might find ourselves with the socket closed (because of the shutdown signal process/flow). We need to check that the socket is open. If it's not, it means that it was shutdown by the signal flow (because after we finish with DispatchTracker, we start iterating over all of the connections in all of the shards and shut them down.
2024-04-09 10:01:32 +03:00
Roman Gershman
57d567639c
chore: serialize SBF (#2846)
* chore: serialize SBF

SAVE/LOAD supports SBF now. Also fixes MallocUsed for SBF.

---------

Signed-off-by: Roman Gershman <roman@dragonflydb.io>
2024-04-09 09:57:24 +03:00
adiholden
b1e688b33f
bug(server): set connection flags block/pause flag on all blocking commands (#2816)
* bug((server)): set connecttion blocking and puash flags on all blocking commands

Signed-off-by: adi_holden <adi@dragonflydb.io>
2024-04-09 09:49:33 +03:00
Vladislav
23106d4be5
feat(tiering): TieredStorageV2 (#2849)
Implements basic high-level tiered storage

---------

Signed-off-by: Vladislav Oleshko <vlad@dragonflydb.io>
2024-04-09 09:03:51 +03:00
Shahar Mike
b8693b4805
feat(cluster): Send number of keys for incoming and outgoing migrations. (#2858)
The number of keys in an _incoming_ migration indicates how many keys
were received, while for _outgoing_ it shows the total number. Combining
the two can provide the control plane with percentage.

This slightly modified the format of the response.

Fixes #2756
2024-04-08 21:17:03 +03:00
romange
2e00d42fa6 chore(helm-chart): update to v1.16.1 2024-04-08 14:56:04 +00:00