You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kvrocks.apache.org by "git-hulk (via GitHub)" <gi...@apache.org> on 2025/05/10 08:22:38 UTC
[PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
git-hulk opened a new pull request, #308:
URL: https://github.com/apache/kvrocks-controller/pull/308
This closes #306.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "git-hulk (via GitHub)" <gi...@apache.org>.
git-hulk closed pull request #308: Fix the slot range unmarshal should be compatible with integer
URL: https://github.com/apache/kvrocks-controller/pull/308
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "bseto (via GitHub)" <gi...@apache.org>.
bseto commented on code in PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#discussion_r2083113223
##########
store/slot.go:
##########
@@ -91,15 +91,30 @@ func (slotRange *SlotRange) MarshalJSON() ([]byte, error) {
}
func (slotRange *SlotRange) UnmarshalJSON(data []byte) error {
- var slotsString string
+ var slotsString any
if err := json.Unmarshal(data, &slotsString); err != nil {
return err
}
- slotObject, err := ParseSlotRange(slotsString)
- if err != nil {
- return err
+ switch t := slotsString.(type) {
+ case string:
+ slotObject, err := ParseSlotRange(t)
+ if err != nil {
+ return err
+ }
+ *slotRange = *slotObject
+ case float64:
+ // We use integer to represent the slot because we don't support the slot range
+ // in the past. So we need to support the integer type for backward compatibility.
+ // But the number in JSON is float64, so we need to convert it to int here.
+ if t < MinSlotID || t > MaxSlotID {
+ return ErrSlotOutOfRange
Review Comment:
But with the two states `nil` and kind of magic `-1,-1` representing 'not migrating', I think we could clean that up a little.
### To get rid of the `nil` check:
Another way we could do things is instead of defining `Shard` with a pointer to the struct, like this:
https://github.com/apache/kvrocks-controller/blob/3bdddb543c076b197f959a3e6dbcea11d161dca7/store/cluster_shard.go#L40
we use just the struct, and not a pointer
### To get rid of the magic `-1,-1`
Maybe we add a new struct that embeds SlotRange that exposes a new field, maybe something like `migrating` which denotes if it's migrating or not.
We can still do range checks on the start/stop, but if we receive just a single `-1`, then we set the migrating field to false.
It'll also require it's own marshal/unmarshal, depending on what you want it to output.
Before it was `-1` to denote not migrating. Right now it's `null`. But maybe we could make it just a string like
`"not-migrating"` to be more clear, and when we unmarshal "not-migrating", then it'll also set `isMigrating` to false.
```go
type MigrationSlotRange struct {
SlotRange
isMigrating bool
}
type Shard struct {
Nodes []Node `json:"nodes"`
SlotRanges []SlotRange `json:"slot_ranges"`
TargetShardIndex int `json:"target_shard_index"`
MigratingSlot MigrationSlotRange `json:"migrating_slot"`
}
```
Sorry about this bug, I probably won't have time tomorrow to work on this, but I have some time on Sunday if you'd like me to make the changes
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "bseto (via GitHub)" <gi...@apache.org>.
bseto commented on code in PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#discussion_r2083107747
##########
store/slot.go:
##########
@@ -91,15 +91,30 @@ func (slotRange *SlotRange) MarshalJSON() ([]byte, error) {
}
func (slotRange *SlotRange) UnmarshalJSON(data []byte) error {
- var slotsString string
+ var slotsString any
if err := json.Unmarshal(data, &slotsString); err != nil {
return err
}
- slotObject, err := ParseSlotRange(slotsString)
- if err != nil {
- return err
+ switch t := slotsString.(type) {
+ case string:
+ slotObject, err := ParseSlotRange(t)
+ if err != nil {
+ return err
+ }
+ *slotRange = *slotObject
+ case float64:
+ // We use integer to represent the slot because we don't support the slot range
+ // in the past. So we need to support the integer type for backward compatibility.
+ // But the number in JSON is float64, so we need to convert it to int here.
+ if t < MinSlotID || t > MaxSlotID {
+ return ErrSlotOutOfRange
Review Comment:
Instead of setting it to `nil`, maybe we add a new state to SlotRange where start = -1 && stop = -1 means it's not migrating. We can add a function called `IsMigrating` that'll check -1 and -1
So we'd do something like
```go
if shard.MigratingSlot != nil && !shard.MigratingSlot.IsMigrating() {
migratingStatus = fmt.Sprintf("%s --> %d", shard.MigratingSlot, shard.TargetShardIndex)
}
...
```
https://github.com/apache/kvrocks-controller/blob/unstable/cmd/client/command/helper.go#L54
We'd have to do this anywhere we're currently checking `if shard.MigratingSlot != nil`
And here in this unmarshal, if we find it's `-1`, we set `start` and `stop` to `-1`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "git-hulk (via GitHub)" <gi...@apache.org>.
git-hulk commented on code in PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#discussion_r2083120149
##########
store/slot.go:
##########
@@ -91,15 +91,30 @@ func (slotRange *SlotRange) MarshalJSON() ([]byte, error) {
}
func (slotRange *SlotRange) UnmarshalJSON(data []byte) error {
- var slotsString string
+ var slotsString any
if err := json.Unmarshal(data, &slotsString); err != nil {
return err
}
- slotObject, err := ParseSlotRange(slotsString)
- if err != nil {
- return err
+ switch t := slotsString.(type) {
+ case string:
+ slotObject, err := ParseSlotRange(t)
+ if err != nil {
+ return err
+ }
+ *slotRange = *slotObject
+ case float64:
+ // We use integer to represent the slot because we don't support the slot range
+ // in the past. So we need to support the integer type for backward compatibility.
+ // But the number in JSON is float64, so we need to convert it to int here.
+ if t < MinSlotID || t > MaxSlotID {
+ return ErrSlotOutOfRange
Review Comment:
> Sorry about this bug, I probably won't have time tomorrow to work on this, but I have some time on Sunday if you'd like me to make the changes
@bseto OK, you're right that it will become a null value after changing to the slot range. And I'm good with adding a dedicated new type for migrating slots. I will close this PR and wait for yours.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "bseto (via GitHub)" <gi...@apache.org>.
bseto commented on code in PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#discussion_r2083107747
##########
store/slot.go:
##########
@@ -91,15 +91,30 @@ func (slotRange *SlotRange) MarshalJSON() ([]byte, error) {
}
func (slotRange *SlotRange) UnmarshalJSON(data []byte) error {
- var slotsString string
+ var slotsString any
if err := json.Unmarshal(data, &slotsString); err != nil {
return err
}
- slotObject, err := ParseSlotRange(slotsString)
- if err != nil {
- return err
+ switch t := slotsString.(type) {
+ case string:
+ slotObject, err := ParseSlotRange(t)
+ if err != nil {
+ return err
+ }
+ *slotRange = *slotObject
+ case float64:
+ // We use integer to represent the slot because we don't support the slot range
+ // in the past. So we need to support the integer type for backward compatibility.
+ // But the number in JSON is float64, so we need to convert it to int here.
+ if t < MinSlotID || t > MaxSlotID {
+ return ErrSlotOutOfRange
Review Comment:
maybe we add a new state (with a function) to SlotRange where start = -1 && stop = -1 means it's not migrating.
So we'd do something like
```go
if shard.MigratingSlot != nil && !shard.MigratingSlot.IsMigrating() {
migratingStatus = fmt.Sprintf("%s --> %d", shard.MigratingSlot, shard.TargetShardIndex)
}
...
```
https://github.com/apache/kvrocks-controller/blob/unstable/cmd/client/command/helper.go#L54
We'd have to do this anywhere we're currently checking `if shard.MigratingSlot != nil`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "bseto (via GitHub)" <gi...@apache.org>.
bseto commented on code in PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#discussion_r2083106008
##########
store/slot.go:
##########
@@ -91,15 +91,30 @@ func (slotRange *SlotRange) MarshalJSON() ([]byte, error) {
}
func (slotRange *SlotRange) UnmarshalJSON(data []byte) error {
- var slotsString string
+ var slotsString any
if err := json.Unmarshal(data, &slotsString); err != nil {
return err
}
- slotObject, err := ParseSlotRange(slotsString)
- if err != nil {
- return err
+ switch t := slotsString.(type) {
+ case string:
+ slotObject, err := ParseSlotRange(t)
+ if err != nil {
+ return err
+ }
+ *slotRange = *slotObject
+ case float64:
+ // We use integer to represent the slot because we don't support the slot range
+ // in the past. So we need to support the integer type for backward compatibility.
+ // But the number in JSON is float64, so we need to convert it to int here.
+ if t < MinSlotID || t > MaxSlotID {
+ return ErrSlotOutOfRange
Review Comment:
Tried the following:
1. With old commit (before slotRange), create cluster
2. swap to new controller and it takes in `migrating_slot: -1`
but when the `-1` enters, we get the `ErrSlotOutOfRange`
It's hard to set `SlotRange` to be nil from within this function though...
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "bseto (via GitHub)" <gi...@apache.org>.
bseto commented on code in PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#discussion_r2083106008
##########
store/slot.go:
##########
@@ -91,15 +91,30 @@ func (slotRange *SlotRange) MarshalJSON() ([]byte, error) {
}
func (slotRange *SlotRange) UnmarshalJSON(data []byte) error {
- var slotsString string
+ var slotsString any
if err := json.Unmarshal(data, &slotsString); err != nil {
return err
}
- slotObject, err := ParseSlotRange(slotsString)
- if err != nil {
- return err
+ switch t := slotsString.(type) {
+ case string:
+ slotObject, err := ParseSlotRange(t)
+ if err != nil {
+ return err
+ }
+ *slotRange = *slotObject
+ case float64:
+ // We use integer to represent the slot because we don't support the slot range
+ // in the past. So we need to support the integer type for backward compatibility.
+ // But the number in JSON is float64, so we need to convert it to int here.
+ if t < MinSlotID || t > MaxSlotID {
+ return ErrSlotOutOfRange
Review Comment:
Tried the following:
1. With old commit (before slotRange), create cluster
2. swap to new controller and it takes in `migrating_slot: -1`
but when the `-1` enters, we get the `ErrSlotOutOfRange`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "bseto (via GitHub)" <gi...@apache.org>.
bseto commented on code in PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#discussion_r2083113223
##########
store/slot.go:
##########
@@ -91,15 +91,30 @@ func (slotRange *SlotRange) MarshalJSON() ([]byte, error) {
}
func (slotRange *SlotRange) UnmarshalJSON(data []byte) error {
- var slotsString string
+ var slotsString any
if err := json.Unmarshal(data, &slotsString); err != nil {
return err
}
- slotObject, err := ParseSlotRange(slotsString)
- if err != nil {
- return err
+ switch t := slotsString.(type) {
+ case string:
+ slotObject, err := ParseSlotRange(t)
+ if err != nil {
+ return err
+ }
+ *slotRange = *slotObject
+ case float64:
+ // We use integer to represent the slot because we don't support the slot range
+ // in the past. So we need to support the integer type for backward compatibility.
+ // But the number in JSON is float64, so we need to convert it to int here.
+ if t < MinSlotID || t > MaxSlotID {
+ return ErrSlotOutOfRange
Review Comment:
Another way we could do things is instead of defining `Shard` with a pointer to the struct, like this:
https://github.com/apache/kvrocks-controller/blob/3bdddb543c076b197f959a3e6dbcea11d161dca7/store/cluster_shard.go#L40
Maybe we add a new struct that embeds SlotRange that exposes a new field, maybe something like `migrating` which denotes if it's migrating or not.
We can still do range checks on the start/stop, but if we receive just a single `-1`, then we set the migrating field to false.
It'll also require it's own marshal/unmarshal, depending on what you want it to output.
Before it was `-1` to denote not migrating. Right now it's `null`. But maybe we could make it just a string like
`"not-migrating"` to be more clear, and when we unmarshal "not-migrating", then it'll also set `isMigrating` to false.
```go
type MigrationSlotRange struct {
SlotRange
isMigrating bool
}
type Shard struct {
Nodes []Node `json:"nodes"`
SlotRanges []SlotRange `json:"slot_ranges"`
TargetShardIndex int `json:"target_shard_index"`
MigratingSlot MigrationSlotRange `json:"migrating_slot"`
}
```
Sorry about this bug, I probably won't have time tomorrow to work on this, but I have some time on Sunday if you'd like me to make the changes
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#issuecomment-2868634677
## [Codecov](https://app.codecov.io/gh/apache/kvrocks-controller/pull/308?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
Attention: Patch coverage is `60.00000%` with `8 lines` in your changes missing coverage. Please review.
> Project coverage is 43.39%. Comparing base [(`6c56470`)](https://app.codecov.io/gh/apache/kvrocks-controller/commit/6c564700d621ef30a182bad1bfeff0aa13db6ea7?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to head [(`6b6441a`)](https://app.codecov.io/gh/apache/kvrocks-controller/commit/6b6441a9075ffeeb312783604b64cf6081567aa5?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
> Report is 61 commits behind head on unstable.
| [Files with missing lines](https://app.codecov.io/gh/apache/kvrocks-controller/pull/308?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
|---|---|---|
| [store/slot.go](https://app.codecov.io/gh/apache/kvrocks-controller/pull/308?src=pr&el=tree&filepath=store%2Fslot.go&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3RvcmUvc2xvdC5nbw==) | 60.00% | [6 Missing and 2 partials :warning: ](https://app.codecov.io/gh/apache/kvrocks-controller/pull/308?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## unstable #308 +/- ##
============================================
+ Coverage 43.38% 43.39% +0.01%
============================================
Files 37 45 +8
Lines 2971 4355 +1384
============================================
+ Hits 1289 1890 +601
- Misses 1544 2259 +715
- Partials 138 206 +68
```
| [Flag](https://app.codecov.io/gh/apache/kvrocks-controller/pull/308/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
|---|---|---|
| [unittests](https://app.codecov.io/gh/apache/kvrocks-controller/pull/308/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `43.39% <60.00%> (+0.01%)` | :arrow_up: |
Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
</details>
[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/kvrocks-controller/pull/308?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "bseto (via GitHub)" <gi...@apache.org>.
bseto commented on code in PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#discussion_r2083107747
##########
store/slot.go:
##########
@@ -91,15 +91,30 @@ func (slotRange *SlotRange) MarshalJSON() ([]byte, error) {
}
func (slotRange *SlotRange) UnmarshalJSON(data []byte) error {
- var slotsString string
+ var slotsString any
if err := json.Unmarshal(data, &slotsString); err != nil {
return err
}
- slotObject, err := ParseSlotRange(slotsString)
- if err != nil {
- return err
+ switch t := slotsString.(type) {
+ case string:
+ slotObject, err := ParseSlotRange(t)
+ if err != nil {
+ return err
+ }
+ *slotRange = *slotObject
+ case float64:
+ // We use integer to represent the slot because we don't support the slot range
+ // in the past. So we need to support the integer type for backward compatibility.
+ // But the number in JSON is float64, so we need to convert it to int here.
+ if t < MinSlotID || t > MaxSlotID {
+ return ErrSlotOutOfRange
Review Comment:
maybe we add a new state (with a function) to SlotRange where start = -1 && stop = -1 means it's not migrating.
So we'd do something like
```go
if shard.MigratingSlot != nil && !shard.MigratingSlot.IsMigrating() {
migratingStatus = fmt.Sprintf("%s --> %d", shard.MigratingSlot, shard.TargetShardIndex)
}
...
```
https://github.com/apache/kvrocks-controller/blob/unstable/cmd/client/command/helper.go#L54
We'd have to do this anywhere we're currently checking `if shard.MigratingSlot != nil`
And here in this unmarshal, if we find it's `-1`, we set `start` and `stop` to `-1`
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Fix the slot range unmarshal should be compatible with integer [kvrocks-controller]
Posted by "bseto (via GitHub)" <gi...@apache.org>.
bseto commented on code in PR #308:
URL: https://github.com/apache/kvrocks-controller/pull/308#discussion_r2083113223
##########
store/slot.go:
##########
@@ -91,15 +91,30 @@ func (slotRange *SlotRange) MarshalJSON() ([]byte, error) {
}
func (slotRange *SlotRange) UnmarshalJSON(data []byte) error {
- var slotsString string
+ var slotsString any
if err := json.Unmarshal(data, &slotsString); err != nil {
return err
}
- slotObject, err := ParseSlotRange(slotsString)
- if err != nil {
- return err
+ switch t := slotsString.(type) {
+ case string:
+ slotObject, err := ParseSlotRange(t)
+ if err != nil {
+ return err
+ }
+ *slotRange = *slotObject
+ case float64:
+ // We use integer to represent the slot because we don't support the slot range
+ // in the past. So we need to support the integer type for backward compatibility.
+ // But the number in JSON is float64, so we need to convert it to int here.
+ if t < MinSlotID || t > MaxSlotID {
+ return ErrSlotOutOfRange
Review Comment:
Another way we could do things is instead of defining `Shard` with a pointer to the struct, like this:
https://github.com/apache/kvrocks-controller/blob/3bdddb543c076b197f959a3e6dbcea11d161dca7/store/cluster_shard.go#L40
Maybe we add a new struct that embeds SlotRange that exposes a new field, maybe something like `migrating` which denotes if it's migrating or not.
We can still do range checks on the start/stop, but if we receive just a single `-1`, then we set the migrating field to false.
It'll also require it's own marshal/unmarshal, depending on what you want it to output.
Before it was `-1` to denote not migrating. Right now it's `null`. But maybe we could make it just a string like
`"not-migrating"` to be more clear, and when we unmarshal "not-migrating", then it'll also set `isMigrating` to false.
```go
type MigrationSlotRange struct {
SlotRange
isMigrating bool
}
type Shard struct {
Nodes []Node `json:"nodes"`
SlotRanges []SlotRange `json:"slot_ranges"`
TargetShardIndex int `json:"target_shard_index"`
MigratingSlot MigrationSlotRange `json:"migrating_slot"`
}
```
Sorry about this bug, I probably won't have time tomorrow to work on this, but I have some time on Sunday if you'd like me to make the changes
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@kvrocks.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org