Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: preparation step for lock fingerprints #2899

Merged
merged 1 commit into from
Apr 16, 2024
Merged

chore: preparation step for lock fingerprints #2899

merged 1 commit into from
Apr 16, 2024

Conversation

romange
Copy link
Collaborator

@romange romange commented Apr 12, 2024

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.

@romange romange requested a review from dranikpg April 12, 2024 19:27
dranikpg
dranikpg previously approved these changes Apr 12, 2024
Copy link
Contributor

@dranikpg dranikpg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. If the purpose of this PR is to simplify code, I'd suggest simplifying it even a little more 🥺

Comment on lines 1307 to 1314
for (const auto& key : sharded_keys) {
shard->db_slice().ReleaseNormalized(*multi_->lock_mode, db_index_, key);
shard->db_slice().ReleaseNormalized(*multi_->lock_mode, db_index_, GetLockTag(key));
}
Copy link
Contributor

@dranikpg dranikpg Apr 12, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it's already a tag, but there is no such thing as an owned one in our system

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually it doesn't matter because we will store fingerprints in the future

src/server/common.h Outdated Show resolved Hide resolved
src/server/db_slice.cc Outdated Show resolved Hide resolved
Comment on lines 145 to 148

inline LockFp GetLockFp(std::string_view key) {
return LockTable::Fingerprint(GetLockTag(key));
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And if we have a good type, we can chain LockTag{key}.Fingerprint() or convert implicitly

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sure.

dranikpg
dranikpg previously approved these changes Apr 13, 2024
src/server/table.h Outdated Show resolved Hide resolved
// Releases a single key. `key` must have been normalized by GetLockKey().
void ReleaseNormalized(IntentLock::Mode m, DbIndex db_index, std::string_view key);
// Releases a single tag.
void ReleaseNormalized(IntentLock::Mode m, DbIndex db_index, LockTag tag);
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this function will be eliminated in the next pr

return table->trans_locks.Find(key)->IsContended();
};
bool HasContendedLocks(ShardId shard_id, Transaction* trx, const DbTable* table) {
auto is_contended = [table](LockTag tag) { return table->trans_locks.Find(tag)->IsContended(); };
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this function will change in the next pr

dranikpg
dranikpg previously approved these changes Apr 14, 2024
Copy link
Contributor

@dranikpg dranikpg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍🏻

src/core/heap_size.h Show resolved Hide resolved
Copy link
Collaborator

@chakaz chakaz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel free to ignore any and all comments, they are mostly nits anyways.

src/core/heap_size.h Show resolved Hide resolved

// Before acquiring and releasing keys, one must "normalize" them via GetLockKey().
static std::string_view GetLockKey(std::string_view key);
static const LockTagOptions& instance();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I should have returned by const-& when I added the prefix string, I forgot about that. It's good that you do that now.

return H::combine(std::move(h), tag.str_);
}

bool operator==(const LockTag& o) const {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: You could also add operator< for it to be key-able in sorted maps


// Before acquiring and releasing keys, one must "normalize" them via GetLockKey().
static std::string_view GetLockKey(std::string_view key);
static const LockTagOptions& instance();
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe default() is a better name here?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

default implies construction, since it's a thread-local singleton, I think instance or tlocal are better names. maybe tlocal is better just because of consistency

return str_;
}

LockFp Fingerprint() const;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you plan to cache this in the future?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, in the next PR.

LockTag() = default;
explicit LockTag(std::string_view key);

explicit operator std::string_view() const {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: if you renamed this to tag(), you could add, in the future, a key() which returns the original (full) key. That way this class may be even more useful.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not store the original key. The only purpose of this class is to be a distinct type to distinguish between key and the tags.

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>
@romange romange merged commit 8030ee9 into main Apr 16, 2024
10 checks passed
@romange romange deleted the Pr2 branch April 16, 2024 16:23
kireque pushed a commit to kireque/home-ops that referenced this pull request May 10, 2024
…nfly ( v1.17.1 → v1.18.0 ) (#539)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[docker.dragonflydb.io/dragonflydb/dragonfly](https://togithub.com/dragonflydb/dragonfly)
| minor | `v1.17.1` -> `v1.18.0` |

---

### Release Notes

<details>
<summary>dragonflydb/dragonfly
(docker.dragonflydb.io/dragonflydb/dragonfly)</summary>

###
[`v1.18.0`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.18.0)

[Compare
Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.17.1...v1.18.0)

##### Dragonfly v1.18.0

Some prominent changes include:

- ACL improvements:
[#&#8203;2945](https://togithub.com/dragonflydb/dragonfly/issues/2945)
[#&#8203;2943](https://togithub.com/dragonflydb/dragonfly/issues/2943)
[#&#8203;2920](https://togithub.com/dragonflydb/dragonfly/issues/2920)
[#&#8203;2982](https://togithub.com/dragonflydb/dragonfly/issues/2982)
[#&#8203;2995](https://togithub.com/dragonflydb/dragonfly/issues/2995)
- Implementation of json.merge
[#&#8203;2960](https://togithub.com/dragonflydb/dragonfly/issues/2960)
-   Replication - memory improvements
- Very much alpha support for data tiering. Try it out with
`--tiered_prefix=/pathto/ssd/base` and see how your memory usage goes
down (STRING type only). Do not use it in prod! 😸

##### What's Changed

- feat: retry ACK if the configs are different
[#&#8203;2833](https://togithub.com/dragonflydb/dragonfly/issues/2833)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2906
- chore(tiering): Update Get, Set, Del by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2897
- chore: preparation step for lock fingerprints by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2899
- fix(transaction): Use FinishHop in schedule by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2911
- chore(tiering): Fix MacOs build by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2913
- feat(cluster): Migration cancellation support by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#2869
- feat: process migration data after FIN opcode
[#&#8203;2864](https://togithub.com/dragonflydb/dragonfly/issues/2864)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2918
- chore(string_family): Refactor SetCmd by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2919
- fix: Improve reply latency of HELLO by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2925
- chore: improve reply latency of SendScoredArray by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2929
- Namespace support in prometheus rule by
[@&#8203;Pothulapati](https://togithub.com/Pothulapati) in
[dragonflydb/dragonfly#2931
- fix: socket closed when RegisterOnErrorCb is called in HandleRequests
by [@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2932
- chore: bring more clarity when replayer fails by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2933
- Slot migration cancel crash fix by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2934
- feat: add ability reaply config with migration
[#&#8203;2924](https://togithub.com/dragonflydb/dragonfly/issues/2924)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2926
- fix(test): Unflake fuzzy cluster migration test by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#2927
- chore: Remove Schedule() call by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2938
- chore: get rid of lock keys by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2894
- fix: introduce info_replication_valkey_compatible flag by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2936
- feat(metrics): adding max_clients to metrics and info output
([#&#8203;2912](https://togithub.com/dragonflydb/dragonfly/issues/2912))
by [@&#8203;racamirko](https://togithub.com/racamirko) in
[dragonflydb/dragonfly#2940
- chore: adjust transaction code to keystep/3 commands by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2941
- feat(tiering): Get, GetSet, Set test by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2921
- chore(acl): adjust some ACL command responses by
[@&#8203;Niennienzz](https://togithub.com/Niennienzz) in
[dragonflydb/dragonfly#2943
- chore: Pull helio with new future by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2944
- refactor: add cluster namespace by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2948
- chore: Introduce ShardArgs as a distinct type by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2952
- chore: Log db_index in traffic logger by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2951
- fixes for v1.18.0 by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#2956
- feat(tiering): Support append (and modifications in general) by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2949
- feat: extended bracket index in jsonpath by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2954
- chore: Remove TieringV1 by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2962
- fix(pytests): replace proc.wait() with proc.communicate() to avoid
deadlocks by [@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2964
- feat(tiering): Registered buffers by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2967
- feat: add slot migration error processing by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2957
- chore(acl): allow multiple users in acl deluser by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2945
- feat: implement json.merge by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2960
- fix: fix deadlock and slot flush for migration cancel
[#&#8203;2968](https://togithub.com/dragonflydb/dragonfly/issues/2968)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2972
- chore(tiering): Lots of metrics by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2977
- fix: crash during migration when connection is closing by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2973
- fix: remove acl-check and cancel instead when REPLCONF ACK fails to
validate by [@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2920
- fix: check return code of process after communicate by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2976
- fix: allow non hashed passwords when loading users from acl file by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2982
- chore: update our container distributions versions by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2983
- chore: remove version checks when running our regtests by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2988
- chore(acl): add vlog and check on deluser flow by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2995
- fix(memcached): Register memcached listener to handle `--maxclients`
by [@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#2985
- chore: another preparation commit to get rid of kv_args in transaction
by [@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2996
- chore: improve performance of Scan operation by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2990
- fix(server): small string allocations only under 256 bytes str by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#2991
- fix(cluster-migration): Support cancelling migration right after
starting it by [@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#2992
- chore: fix double header issue by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3002
- chore: small tiering fixes by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2966
- feat(benchmark-tests): run in K8s by
[@&#8203;zacharya19](https://togithub.com/zacharya19) in
[dragonflydb/dragonfly#2965
- Benchmark fixes by
[@&#8203;zacharya19](https://togithub.com/zacharya19) in
[dragonflydb/dragonfly#3005
- fix(tiering): rename v2 + max_file_size by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3004
- chore: fix tiering macos stub by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3006
- chore: export listener stats by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3007
- chore: pull latest helio by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3009
- fix(server): lag is 0 when server not in stable state by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3010
- chore: get rid of kv_args and replace it with slices to full_args by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2942
- fix(server): non auto journal write after callback finish by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3016
- fix(server): shrink replication steaming buf by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3012
- fix(zset): fix random in ZRANDMEMBER command by
[@&#8203;BagritsevichStepan](https://togithub.com/BagritsevichStepan) in
[dragonflydb/dragonfly#2994
- Fix benchmark by [@&#8203;adiholden](https://togithub.com/adiholden)
in
[dragonflydb/dragonfly#3017
- chore: Remove tiering test skip by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3011
- feat(tiering): simple offload loop by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2987
- feat(tiering): MGET support by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3013
- Revert "chore: get rid of kv_args and replace it with slices to
full\_… by [@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3024
- chore(dash): Replace comparator with predicate by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3025
- feat: add defragment command by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3003

##### Huge thanks to all the contributors! ❤️

##### New Contributors

- [@&#8203;racamirko](https://togithub.com/racamirko) made their first
contribution in
[dragonflydb/dragonfly#2940
- [@&#8203;BagritsevichStepan](https://togithub.com/BagritsevichStepan)
made their first contribution in
[dragonflydb/dragonfly#2994

**Full Changelog**:
dragonflydb/dragonfly@v1.17.0...v1.18.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM1Mi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

Co-authored-by: kireque-bot[bot] <143391978+kireque-bot[bot]@users.noreply.github.com>
lumiere-bot bot added a commit to coolguy1771/home-ops that referenced this pull request May 11, 2024
…18.0 ) (#4656)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/dragonflydb/dragonfly](https://togithub.com/dragonflydb/dragonfly)
| minor | `v1.17.1` -> `v1.18.0` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>dragonflydb/dragonfly (ghcr.io/dragonflydb/dragonfly)</summary>

###
[`v1.18.0`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.18.0)

[Compare
Source](https://togithub.com/dragonflydb/dragonfly/compare/v1.17.1...v1.18.0)

##### Dragonfly v1.18.0

Some prominent changes include:

- ACL improvements:
[#&#8203;2945](https://togithub.com/dragonflydb/dragonfly/issues/2945)
[#&#8203;2943](https://togithub.com/dragonflydb/dragonfly/issues/2943)
[#&#8203;2920](https://togithub.com/dragonflydb/dragonfly/issues/2920)
[#&#8203;2982](https://togithub.com/dragonflydb/dragonfly/issues/2982)
[#&#8203;2995](https://togithub.com/dragonflydb/dragonfly/issues/2995)
- Implementation of json.merge
[#&#8203;2960](https://togithub.com/dragonflydb/dragonfly/issues/2960)
-   Replication - memory improvements
- Very much alpha support for data tiering. Try it out with
`--tiered_prefix=/pathto/ssd/base` and see how your memory usage goes
down (STRING type only). Do not use it in prod! 😸

##### What's Changed

- feat: retry ACK if the configs are different
[#&#8203;2833](https://togithub.com/dragonflydb/dragonfly/issues/2833)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2906
- chore(tiering): Update Get, Set, Del by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2897
- chore: preparation step for lock fingerprints by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2899
- fix(transaction): Use FinishHop in schedule by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2911
- chore(tiering): Fix MacOs build by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2913
- feat(cluster): Migration cancellation support by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#2869
- feat: process migration data after FIN opcode
[#&#8203;2864](https://togithub.com/dragonflydb/dragonfly/issues/2864)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2918
- chore(string_family): Refactor SetCmd by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2919
- fix: Improve reply latency of HELLO by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2925
- chore: improve reply latency of SendScoredArray by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2929
- Namespace support in prometheus rule by
[@&#8203;Pothulapati](https://togithub.com/Pothulapati) in
[dragonflydb/dragonfly#2931
- fix: socket closed when RegisterOnErrorCb is called in HandleRequests
by [@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2932
- chore: bring more clarity when replayer fails by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2933
- Slot migration cancel crash fix by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2934
- feat: add ability reaply config with migration
[#&#8203;2924](https://togithub.com/dragonflydb/dragonfly/issues/2924)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2926
- fix(test): Unflake fuzzy cluster migration test by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#2927
- chore: Remove Schedule() call by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2938
- chore: get rid of lock keys by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2894
- fix: introduce info_replication_valkey_compatible flag by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2936
- feat(metrics): adding max_clients to metrics and info output
([#&#8203;2912](https://togithub.com/dragonflydb/dragonfly/issues/2912))
by [@&#8203;racamirko](https://togithub.com/racamirko) in
[dragonflydb/dragonfly#2940
- chore: adjust transaction code to keystep/3 commands by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2941
- feat(tiering): Get, GetSet, Set test by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2921
- chore(acl): adjust some ACL command responses by
[@&#8203;Niennienzz](https://togithub.com/Niennienzz) in
[dragonflydb/dragonfly#2943
- chore: Pull helio with new future by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2944
- refactor: add cluster namespace by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2948
- chore: Introduce ShardArgs as a distinct type by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2952
- chore: Log db_index in traffic logger by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2951
- fixes for v1.18.0 by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#2956
- feat(tiering): Support append (and modifications in general) by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2949
- feat: extended bracket index in jsonpath by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2954
- chore: Remove TieringV1 by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2962
- fix(pytests): replace proc.wait() with proc.communicate() to avoid
deadlocks by [@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2964
- feat(tiering): Registered buffers by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2967
- feat: add slot migration error processing by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2957
- chore(acl): allow multiple users in acl deluser by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2945
- feat: implement json.merge by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2960
- fix: fix deadlock and slot flush for migration cancel
[#&#8203;2968](https://togithub.com/dragonflydb/dragonfly/issues/2968)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#2972
- chore(tiering): Lots of metrics by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2977
- fix: crash during migration when connection is closing by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2973
- fix: remove acl-check and cancel instead when REPLCONF ACK fails to
validate by [@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2920
- fix: check return code of process after communicate by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2976
- fix: allow non hashed passwords when loading users from acl file by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2982
- chore: update our container distributions versions by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2983
- chore: remove version checks when running our regtests by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2988
- chore(acl): add vlog and check on deluser flow by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2995
- fix(memcached): Register memcached listener to handle `--maxclients`
by [@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#2985
- chore: another preparation commit to get rid of kv_args in transaction
by [@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2996
- chore: improve performance of Scan operation by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2990
- fix(server): small string allocations only under 256 bytes str by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#2991
- fix(cluster-migration): Support cancelling migration right after
starting it by [@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#2992
- chore: fix double header issue by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3002
- chore: small tiering fixes by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2966
- feat(benchmark-tests): run in K8s by
[@&#8203;zacharya19](https://togithub.com/zacharya19) in
[dragonflydb/dragonfly#2965
- Benchmark fixes by
[@&#8203;zacharya19](https://togithub.com/zacharya19) in
[dragonflydb/dragonfly#3005
- fix(tiering): rename v2 + max_file_size by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3004
- chore: fix tiering macos stub by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3006
- chore: export listener stats by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3007
- chore: pull latest helio by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3009
- fix(server): lag is 0 when server not in stable state by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3010
- chore: get rid of kv_args and replace it with slices to full_args by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#2942
- fix(server): non auto journal write after callback finish by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3016
- fix(server): shrink replication steaming buf by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3012
- fix(zset): fix random in ZRANDMEMBER command by
[@&#8203;BagritsevichStepan](https://togithub.com/BagritsevichStepan) in
[dragonflydb/dragonfly#2994
- Fix benchmark by [@&#8203;adiholden](https://togithub.com/adiholden)
in
[dragonflydb/dragonfly#3017
- chore: Remove tiering test skip by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3011
- feat(tiering): simple offload loop by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#2987
- feat(tiering): MGET support by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3013
- Revert "chore: get rid of kv_args and replace it with slices to
full\_… by [@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3024
- chore(dash): Replace comparator with predicate by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3025
- feat: add defragment command by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3003

##### Huge thanks to all the contributors! ❤️

##### New Contributors

- [@&#8203;racamirko](https://togithub.com/racamirko) made their first
contribution in
[dragonflydb/dragonfly#2940
- [@&#8203;BagritsevichStepan](https://togithub.com/BagritsevichStepan)
made their first contribution in
[dragonflydb/dragonfly#2994

**Full Changelog**:
dragonflydb/dragonfly@v1.17.0...v1.18.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these
updates again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM1Mi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

Co-authored-by: lumiere-bot[bot] <98047013+lumiere-bot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants