apache / apache/paimon-cpp

[Feature] Reimplement bitmap Global Index for compatibility with Paimon Java

Offen
#316 0 Kommentare 0 Reaktionen 1 zugewiesene Person Beansprucht von @lxy-9602 Auf GitHub ansehen
enhancement
Vorherrschende Sprache
C++
Sterne
65
Forks
25
Ø Merge
2 T. 12 Std.
Gemergte PRs (30 T.)
80

Beschreibung

### Search before asking

- [x] I searched in the [issues](https://github.com/apache/paimon-cpp/issues) and found nothing similar.

### Motivation

The bitmap Global Index in Paimon Java has undergone a major redesign. The bitmap Global Index currently implemented in Paimon C++ follows the legacy design and file format, so it is no longer compatible with the current Java implementation.

As a result, Paimon C++ cannot reliably read bitmap Global Index files produced by current Paimon Java, and indexes written by the existing C++ implementation are not interoperable with the new Java implementation. The current Paimon C++ documentation therefore marks bitmap Global Index as unsupported.

### Solution

Reimplement bitmap Global Index in Paimon C++ based on the current Paimon Java design and file format. The work should cover:

- The current index reader, writer, and factory behavior.
- Predicate evaluation and null/non-null bitmap semantics.
- Compatibility tests using indexes produced by Paimon Java, together with C++ round-trip tests.
- Cleanup or isolation of the legacy implementation after the new implementation is validated.

I plan to work on this reimplementation and submit a follow-up PR.

### Anything else?

The redesigned Java implementation was introduced in [apache/paimon#8276](https://github.com/apache/paimon/pull/8276) and subsequently integrated with the sorted global-index build path in [apache/paimon#8283](https://github.com/apache/paimon/pull/8283).

### Are you willing to submit a PR?

- [x] I am willing to submit a PR!

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.