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: improve Migration() #3033

Merged
merged 1 commit into from
May 28, 2024
Merged

chore: improve Migration() #3033

merged 1 commit into from
May 28, 2024

Conversation

kostasrim
Copy link
Contributor

  • add DCHECK
  • add comments to describe flows and correctness

@kostasrim kostasrim requested a review from dranikpg May 9, 2024 12:52
@kostasrim kostasrim changed the title chore: improve Migration code chore: improve Migration() May 9, 2024
@kostasrim kostasrim self-assigned this May 24, 2024
@@ -1331,6 +1339,7 @@ void Connection::DispatchFiber(util::FiberSocketBase* peer) {

uint64_t prev_epoch = fb2::FiberSwitchEpoch();
while (!builder->GetError()) {
DCHECK_EQ(socket()->proactor(), ProactorBase::me());
Copy link
Contributor

Choose a reason for hiding this comment

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

👍🏻

Comment on lines 582 to +584

DCHECK(!dispatch_fb_.IsJoinable());

Copy link
Contributor

@dranikpg dranikpg May 27, 2024

Choose a reason for hiding this comment

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

Did you check what happens with the dispatch fiber when it gets a message during migration?

Copy link
Contributor Author

@kostasrim kostasrim May 27, 2024

Choose a reason for hiding this comment

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

It shouldn't? The connection migrates, before it does it joins the dispatch_fb_. At this point we got no messages and we are the active fiber on the thread we are executing. Then we suspend on the current thread and we continue our execution on the thread we migrate. During that time the dispatch_fb_ should stay joined (that is, it couldn't be restarted) since no other operation can or should really wake it -- thinking of ACL's here(since the connection won't even show up when it gets removed by the thread local connection table and when it becomes available again on the thread local of the migrated thread it will be the active fiber - so no other fiber can wake up its queue).

Am I missing something?

Copy link
Contributor

Choose a reason for hiding this comment

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

Theoretically... we check that no subscriptions are active when we migrate and no command is ongoin, so there shouldn't be any, right.

We have this dcheck to catch it if it does. Maybe there will be a reason do so in the future and we'll forget this is a potential bug 🙂

Copy link
Collaborator

Choose a reason for hiding this comment

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

@kostasrim @dranikpg it is a bug.
See https://github.com/dragonflydb/dragonfly/actions/runs/9332324376
F20240601 18:46:34.649338 35021 dragonfly_connection.cc:570] Check failed: !dispatch_fb_.IsJoinable()

Copy link
Collaborator

@romange romange Jun 1, 2024

Choose a reason for hiding this comment

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

can SendAsync be called from another connection? In that case it would kick off the fiber. Correct @dranikpg ?

Copy link
Contributor

Choose a reason for hiding this comment

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

can SendAsync be called from another connection?

Sure it can, pubsub as an example. I had a feeling that's something's wrong here, that's why I asked.

We migrate only when we don't have any subscriptions. The question is whether ACL messages or checkpoint messages see us on the new or old thread during migration

Copy link
Contributor Author

Choose a reason for hiding this comment

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

We should check this -- I can -- but once I wrap up the current staff.

can SendAsync be called from another connection?

Both connection fiber and dispatch fiber run on the same thread so during a migration the connection fiber is active so SendAsync should happen after the migration and therefore it should have the correct semantics?

Maybe I am missing something... Either way we have a track record of having issues around this code and we should take care of it.

I will ping here once I get a chance

Copy link
Collaborator

Choose a reason for hiding this comment

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

It could be that the Fiber is migrated but was not switched to yet. Meanwhile another producer-fiber find the connection on a new thread and calls SendAsync. The migrated fiber finaly resumes and finds out its dispatch_fb_ has started. Seems like a valid scenario.

@kostasrim kostasrim merged commit b89997c into main May 28, 2024
10 checks passed
@kostasrim kostasrim deleted the proper_migrations branch May 28, 2024 15:14
szinn pushed a commit to szinn/k8s-homelab that referenced this pull request Jun 5, 2024
…nfly ( v1.18.1 → v1.19.0 ) (#3784)

This PR contains the following updates:

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

---

### Release Notes

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

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

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

##### Dragonfly v1.19.0

Some prominent changes include:

- SPOP and SRANDMEMBER return truly randomized results
([#&#8203;3022](https://togithub.com/dragonflydb/dragonfly/issues/3022))
- Fix memory blowup in some cases during replication
([#&#8203;3084](https://togithub.com/dragonflydb/dragonfly/issues/3084)
[#&#8203;3103](https://togithub.com/dragonflydb/dragonfly/issues/3103))
- Snapshotting works with data tiering
([#&#8203;3073](https://togithub.com/dragonflydb/dragonfly/issues/3073))
- Fix incompatibility issue of RDB snapshot with Redis 6.x
([#&#8203;3121](https://togithub.com/dragonflydb/dragonfly/issues/3121))
- Memory utilization improvements + better introspection of memory usage
via /metrics

##### What's Changed

- chore: update versions and remove caching code by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3030
- chore: fix macos tiering by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3032
- feat: support subrange expressions in jsonpathv2 by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3036
- fix: reduce delay when stop replica
[#&#8203;3020](https://togithub.com/dragonflydb/dragonfly/issues/3020)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3028
- fix(set): fix random in SRANDMEMBER and SPOP commands by
[@&#8203;BagritsevichStepan](https://togithub.com/BagritsevichStepan) in
[dragonflydb/dragonfly#3022
- chore: prevent updating gcc on macos by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3037
- chore: add half-range indices by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3041
- chore: update helio together with new mimalloc version by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3040
- fix: header for oom_errors_total by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3043
- chore: reset enable_direct_fd to avoid socket leakage in kernel by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3051
- chore: update deprecated actions by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3052
- chore: remove unneeded check-fails by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3054
- chore: Export replication memory stats by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3062
- <chore>!: Update grafana panel by
[@&#8203;MaoMaoCake](https://togithub.com/MaoMaoCake) in
[dragonflydb/dragonfly#3064
- chore: add replication memory stats to the dashboard by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3065
- chore: bpop prints by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3076
- fix(tiering): wait for IO before test teardown by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3079
- chore: small replayer fixes by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3081
- fix: increase lua stack limit to 8KB by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3080
- chore: minor fixes by [@&#8203;romange](https://togithub.com/romange)
in
[dragonflydb/dragonfly#3082
- fix: fix cluster incorrect keys status by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3083
- fix(acl): return -NOPERM instead of response error by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#3049
- feat(server): Expose serialization bytes via `INFO` and `/metrics` by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3087
- chore(streams): Some refactoring by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3088
- feat(server): remove multi shard sync from replication by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3085
- fix(replication): fullsync phase write to sync on noop by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3084
- fix(tiering): Async delete for small bins by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3068
- fix: prevent crashing if error happened during snapshot moving by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3092
- fix: add timeout for DFLYMIGRATE ACK to prevent deadlock by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3093
- chore: improve Migration() by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#3033
- feat(streams): Stream optimizations by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3091
- feat(tiering): Defragmentation by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3021
- fix: bit shift of kTagMask by
[@&#8203;haodongnj](https://togithub.com/haodongnj) in
[dragonflydb/dragonfly#3099
- feat(cluster_mgr): Allow attaching replicas by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3105
- bug(server): fix replication stuck in full sync by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3103
- fix(server): Sync FLUSH with tiering by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3098
- chore: export pipeline related metrics by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3104
- chore: zset error log (from 1.18 branch) by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3109
- New test for cluster migration: connection issue by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3102
- chore: minor fixes + remove redundant DCHECK by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3115
- fix: fix cluster_fuzzy_migration test by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3116
- feat(server): Pipeline and dispatch on `/metrics` by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3117
- chore: pull helio add test for tls deadlock by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#3111
- feat(cluster_mgr): Improvements to `cluster_mgr.py` by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3118
- refactor client tracking, fix atomicity, squashing and multi/exec by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2970
- fix(server): fix compatibility with rdb snapshot by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3121
- Revert "refactor client tracking, fix atomicity, squashing and multi/…
by [@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3122
- feat(cluster_mgr): Take over command by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3120
- fix: fix RestoreStreamer to prevent buckets skipping
[#&#8203;2830](https://togithub.com/dragonflydb/dragonfly/issues/2830)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3119
- feat(cluster_mgr): Fix migration action by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3124
- chore: prevent Dispatch fiber to be launched during migration by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3123
- feat(tiering): Simple snapshotting by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3073
- fix: upload action in version release by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3127

##### New Contributors

- [@&#8203;MaoMaoCake](https://togithub.com/MaoMaoCake) made their first
contribution in
[dragonflydb/dragonfly#3064
- [@&#8203;haodongnj](https://togithub.com/haodongnj) made their first
contribution in
[dragonflydb/dragonfly#3099

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

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

</details>

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM5MS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

Co-authored-by: repo-jeeves[bot] <106431701+repo-jeeves[bot]@users.noreply.github.com>
kireque pushed a commit to kireque/home-ops that referenced this pull request Jun 6, 2024
…nfly ( v1.18.1 → v1.19.0 ) (#629)

This PR contains the following updates:

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

---

### Release Notes

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

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

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

##### Dragonfly v1.19.0

Some prominent changes include:

- SPOP and SRANDMEMBER return truly randomized results
([#&#8203;3022](https://togithub.com/dragonflydb/dragonfly/issues/3022))
- Fix memory blowup in some cases during replication
([#&#8203;3084](https://togithub.com/dragonflydb/dragonfly/issues/3084)
[#&#8203;3103](https://togithub.com/dragonflydb/dragonfly/issues/3103))
- Snapshotting works with data tiering
([#&#8203;3073](https://togithub.com/dragonflydb/dragonfly/issues/3073))
- Fix incompatibility issue of RDB snapshot with Redis 6.x
([#&#8203;3121](https://togithub.com/dragonflydb/dragonfly/issues/3121))
- Memory utilization improvements + better introspection of memory usage
via /metrics

##### What's Changed

- chore: update versions and remove caching code by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3030
- chore: fix macos tiering by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3032
- feat: support subrange expressions in jsonpathv2 by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3036
- fix: reduce delay when stop replica
[#&#8203;3020](https://togithub.com/dragonflydb/dragonfly/issues/3020)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3028
- fix(set): fix random in SRANDMEMBER and SPOP commands by
[@&#8203;BagritsevichStepan](https://togithub.com/BagritsevichStepan) in
[dragonflydb/dragonfly#3022
- chore: prevent updating gcc on macos by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3037
- chore: add half-range indices by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3041
- chore: update helio together with new mimalloc version by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3040
- fix: header for oom_errors_total by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3043
- chore: reset enable_direct_fd to avoid socket leakage in kernel by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3051
- chore: update deprecated actions by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3052
- chore: remove unneeded check-fails by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3054
- chore: Export replication memory stats by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3062
- <chore>!: Update grafana panel by
[@&#8203;MaoMaoCake](https://togithub.com/MaoMaoCake) in
[dragonflydb/dragonfly#3064
- chore: add replication memory stats to the dashboard by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3065
- chore: bpop prints by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3076
- fix(tiering): wait for IO before test teardown by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3079
- chore: small replayer fixes by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3081
- fix: increase lua stack limit to 8KB by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3080
- chore: minor fixes by [@&#8203;romange](https://togithub.com/romange)
in
[dragonflydb/dragonfly#3082
- fix: fix cluster incorrect keys status by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3083
- fix(acl): return -NOPERM instead of response error by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#3049
- feat(server): Expose serialization bytes via `INFO` and `/metrics` by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3087
- chore(streams): Some refactoring by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3088
- feat(server): remove multi shard sync from replication by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3085
- fix(replication): fullsync phase write to sync on noop by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3084
- fix(tiering): Async delete for small bins by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3068
- fix: prevent crashing if error happened during snapshot moving by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3092
- fix: add timeout for DFLYMIGRATE ACK to prevent deadlock by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3093
- chore: improve Migration() by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#3033
- feat(streams): Stream optimizations by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3091
- feat(tiering): Defragmentation by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3021
- fix: bit shift of kTagMask by
[@&#8203;haodongnj](https://togithub.com/haodongnj) in
[dragonflydb/dragonfly#3099
- feat(cluster_mgr): Allow attaching replicas by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3105
- bug(server): fix replication stuck in full sync by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3103
- fix(server): Sync FLUSH with tiering by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3098
- chore: export pipeline related metrics by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3104
- chore: zset error log (from 1.18 branch) by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3109
- New test for cluster migration: connection issue by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3102
- chore: minor fixes + remove redundant DCHECK by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3115
- fix: fix cluster_fuzzy_migration test by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3116
- feat(server): Pipeline and dispatch on `/metrics` by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3117
- chore: pull helio add test for tls deadlock by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#3111
- feat(cluster_mgr): Improvements to `cluster_mgr.py` by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3118
- refactor client tracking, fix atomicity, squashing and multi/exec by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2970
- fix(server): fix compatibility with rdb snapshot by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3121
- Revert "refactor client tracking, fix atomicity, squashing and multi/…
by [@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3122
- feat(cluster_mgr): Take over command by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3120
- fix: fix RestoreStreamer to prevent buckets skipping
[#&#8203;2830](https://togithub.com/dragonflydb/dragonfly/issues/2830)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3119
- feat(cluster_mgr): Fix migration action by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3124
- chore: prevent Dispatch fiber to be launched during migration by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3123
- feat(tiering): Simple snapshotting by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3073
- fix: upload action in version release by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3127

##### New Contributors

- [@&#8203;MaoMaoCake](https://togithub.com/MaoMaoCake) made their first
contribution in
[dragonflydb/dragonfly#3064
- [@&#8203;haodongnj](https://togithub.com/haodongnj) made their first
contribution in
[dragonflydb/dragonfly#3099

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

**Full Changelog**:
dragonflydb/dragonfly@v1.18.0...v1.19.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:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjM5MC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

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 Jun 7, 2024
…19.0 ) (#4821)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[ghcr.io/dragonflydb/dragonfly](https://togithub.com/dragonflydb/dragonfly)
| minor | `v1.18.1` -> `v1.19.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.19.0`](https://togithub.com/dragonflydb/dragonfly/releases/tag/v1.19.0)

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

##### Dragonfly v1.19.0

Some prominent changes include:

- SPOP and SRANDMEMBER return truly randomized results
([#&#8203;3022](https://togithub.com/dragonflydb/dragonfly/issues/3022))
- Fix memory blowup in some cases during replication
([#&#8203;3084](https://togithub.com/dragonflydb/dragonfly/issues/3084)
[#&#8203;3103](https://togithub.com/dragonflydb/dragonfly/issues/3103))
- Snapshotting works with data tiering
([#&#8203;3073](https://togithub.com/dragonflydb/dragonfly/issues/3073))
- Fix incompatibility issue of RDB snapshot with Redis 6.x
([#&#8203;3121](https://togithub.com/dragonflydb/dragonfly/issues/3121))
- Memory utilization improvements + better introspection of memory usage
via /metrics

##### What's Changed

- chore: update versions and remove caching code by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3030
- chore: fix macos tiering by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3032
- feat: support subrange expressions in jsonpathv2 by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3036
- fix: reduce delay when stop replica
[#&#8203;3020](https://togithub.com/dragonflydb/dragonfly/issues/3020)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3028
- fix(set): fix random in SRANDMEMBER and SPOP commands by
[@&#8203;BagritsevichStepan](https://togithub.com/BagritsevichStepan) in
[dragonflydb/dragonfly#3022
- chore: prevent updating gcc on macos by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3037
- chore: add half-range indices by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3041
- chore: update helio together with new mimalloc version by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3040
- fix: header for oom_errors_total by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3043
- chore: reset enable_direct_fd to avoid socket leakage in kernel by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3051
- chore: update deprecated actions by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3052
- chore: remove unneeded check-fails by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3054
- chore: Export replication memory stats by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3062
- <chore>!: Update grafana panel by
[@&#8203;MaoMaoCake](https://togithub.com/MaoMaoCake) in
[dragonflydb/dragonfly#3064
- chore: add replication memory stats to the dashboard by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3065
- chore: bpop prints by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3076
- fix(tiering): wait for IO before test teardown by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3079
- chore: small replayer fixes by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3081
- fix: increase lua stack limit to 8KB by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3080
- chore: minor fixes by [@&#8203;romange](https://togithub.com/romange)
in
[dragonflydb/dragonfly#3082
- fix: fix cluster incorrect keys status by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3083
- fix(acl): return -NOPERM instead of response error by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#3049
- feat(server): Expose serialization bytes via `INFO` and `/metrics` by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3087
- chore(streams): Some refactoring by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3088
- feat(server): remove multi shard sync from replication by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3085
- fix(replication): fullsync phase write to sync on noop by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3084
- fix(tiering): Async delete for small bins by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3068
- fix: prevent crashing if error happened during snapshot moving by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3092
- fix: add timeout for DFLYMIGRATE ACK to prevent deadlock by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3093
- chore: improve Migration() by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#3033
- feat(streams): Stream optimizations by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3091
- feat(tiering): Defragmentation by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3021
- fix: bit shift of kTagMask by
[@&#8203;haodongnj](https://togithub.com/haodongnj) in
[dragonflydb/dragonfly#3099
- feat(cluster_mgr): Allow attaching replicas by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3105
- bug(server): fix replication stuck in full sync by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3103
- fix(server): Sync FLUSH with tiering by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3098
- chore: export pipeline related metrics by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3104
- chore: zset error log (from 1.18 branch) by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3109
- New test for cluster migration: connection issue by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3102
- chore: minor fixes + remove redundant DCHECK by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3115
- fix: fix cluster_fuzzy_migration test by
[@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3116
- feat(server): Pipeline and dispatch on `/metrics` by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3117
- chore: pull helio add test for tls deadlock by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#3111
- feat(cluster_mgr): Improvements to `cluster_mgr.py` by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3118
- refactor client tracking, fix atomicity, squashing and multi/exec by
[@&#8203;kostasrim](https://togithub.com/kostasrim) in
[dragonflydb/dragonfly#2970
- fix(server): fix compatibility with rdb snapshot by
[@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3121
- Revert "refactor client tracking, fix atomicity, squashing and multi/…
by [@&#8203;adiholden](https://togithub.com/adiholden) in
[dragonflydb/dragonfly#3122
- feat(cluster_mgr): Take over command by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3120
- fix: fix RestoreStreamer to prevent buckets skipping
[#&#8203;2830](https://togithub.com/dragonflydb/dragonfly/issues/2830)
by [@&#8203;BorysTheDev](https://togithub.com/BorysTheDev) in
[dragonflydb/dragonfly#3119
- feat(cluster_mgr): Fix migration action by
[@&#8203;chakaz](https://togithub.com/chakaz) in
[dragonflydb/dragonfly#3124
- chore: prevent Dispatch fiber to be launched during migration by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3123
- feat(tiering): Simple snapshotting by
[@&#8203;dranikpg](https://togithub.com/dranikpg) in
[dragonflydb/dragonfly#3073
- fix: upload action in version release by
[@&#8203;romange](https://togithub.com/romange) in
[dragonflydb/dragonfly#3127

##### New Contributors

- [@&#8203;MaoMaoCake](https://togithub.com/MaoMaoCake) made their first
contribution in
[dragonflydb/dragonfly#3064
- [@&#8203;haodongnj](https://togithub.com/haodongnj) made their first
contribution in
[dragonflydb/dragonfly#3099

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

**Full Changelog**:
dragonflydb/dragonfly@v1.18.0...v1.19.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:eyJjcmVhdGVkSW5WZXIiOiIzNy4zOTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjM5MC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

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