[Store] LIMIT_DEDUP on NO_SCAN with loadPropertyFromIndex compares BaseVertex by reference
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
MapLimitIterator と、transElement が scanIndexToBaseElement を wrap している BusinessHandlerImpl.scanIndex 内のその呼び出しを読む。MapLimitIterator に key extractor を追加し、そのパスで BaseElement::id を渡す。同じ id を持つ頂点が重複排除され、既存の store テストが通ると完了。
索引モデルが issue の本文から書いたものです。
説明
In BusinessHandlerImpl.scanIndex(graph, params, dedupOption, transElement, filterTTL), the transElement branch wraps scanIndexToBaseElement in MapLimitIterator<BaseElement> for LIMIT_DEDUP. MapLimitIterator dedups with a hash set of the elements themselves. BaseEdge defines equals/hashCode on id(), but BaseVertex and BaseElement define neither, so two vertex objects with the same id both get through. DEDUP and PRECISE_DEDUP on the same branch already hash on id().asBytes().
This can't be hit today. BinaryElementSerializer.index2Element throws NotImplementedException, and StoreQueryParam always sends loadPropertyFromIndex=false. It will show up once index2Element is implemented. Search indexes, secondary indexes on collection properties and joint secondary indexes all write several entries per element, and a scan that covers more than one of them returns the same vertex once per entry.
Suggested fix: give MapLimitIterator a key extractor and pass BaseElement::id on this path. Adding equals/hashCode to BaseVertex in hugegraph-struct would also work, but it changes equality for every collection that holds vertices.
- 主要言語
- Java
- スター
- 3.2k
- フォーク
- 645
- 平均マージ
- 1日 2時間
- マージ済み PR(30日)
- 123
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
apache/hugegraph のほかの issue
-
[Bug] PD task REST: balanceLeaders throws a bare HTTP 500 during the balance-shard window, and task responses cannot be told apart from a no-op or a follower answer対応中かも @pallavithegod が 15 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
apache/hugegraph#3231 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
bug
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
apache/hugegraph#3446 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
[Bug] Gremlin sandbox blocks HStore gRPC allocator configuration reads対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 55/100
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
メンテナーはふだん 1 日以内に返信
apache/hugegraph の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
objectionary/lints#1640 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
openhab/openhab-addons#22168 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
wildfly/wildfly-channel#446 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
5.0.x backport enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 63/100
spring-cloud/spring-cloud-function#1507 ·
メンテナーはふだん 1 日以内に返信