Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

GetRecords: AT_SEQUENCE_NUMBER past a closed shard's ending number positions at the last record on the service

未关闭
#521 1 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 4 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
1-2 天
新手友好度
54/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
活跃
技术栈
rust
领域
database

调研方向

Start by measuring the open-shard and between-records cases described in the issue, then inspect the AT_SEQUENCE_NUMBER iterator positioning path and tests for shard iterators. If the measurements confirm the stated rule, position the iterator at the greatest record sequence number not exceeding the request. Done means the new cases match the measured service behavior and the closed-shard case no longer returns a record past the shard end.

由索引模型根据 Issue 内容生成。

描述

bug

Summary

On a closed shard holding one record with sequence number S (equal to its EndingSequenceNumber), GetShardIterator AT_SEQUENCE_NUMBER with a number greater than S (measured with S plus 1 and S plus 10^15, twice each) issues an iterator, and GetRecords on it returns that record. AFTER_SEQUENCE_NUMBER with S or greater returns no records. So the service positions an AT_SEQUENCE_NUMBER iterator at the last record at or before the requested number when the number is past the shard's end, rather than after it. ExtendDB returns no records for AT_SEQUENCE_NUMBER past the shard's last record.

Reachable only with a number the client did not obtain from the shard (every number a consumer holds is at or before the ending number), so low priority. Whether the same positioning applies on an open shard, and what the service does for a number between two records, was not measured.

Fix shape

Measure the open-shard and between-records cases first; then, if the rule is "at or before", position AT_SEQUENCE_NUMBER at the greatest record sequence number not exceeding the request. Relevant to #372, which ends the iterator at the ending number.

Found while reviewing #515.

主要语言
Rust
星标
517
派生
60
平均合并
4 天 22 小时
30 天内合并 PR
40

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

ExtendDB/extenddb 的其他 Issue

查看 ExtendDB/extenddb 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。