lxy-9602 opened a new pull request, #44: URL: https://github.com/apache/paimon-cpp/pull/44
<!-- Please specify the module before the PR name: feat: ... or fix: ... --> ### Purpose <!-- Linking this pull request to the issue --> No Linked issue. Migrate SST (Sorted String Table) block-level I/O infrastructure: **Block primitives (`src/paimon/common/sst/`):** - `BlockEntry` — key-value entry within a data block (`block_entry.h`) - `BlockHandle` — offset/size pointer to a block within an SST file (`block_handle.h/cpp`) - `BlockTrailer` — block checksum and compression type footer (`block_trailer.h/cpp`) - `BlockAlignedType` — alignment strategy enum for block I/O (`block_aligned_type.h`) - `BloomFilterHandle` — handle pointing to the bloom filter block (`bloom_filter_handle.h`) **Block read/write (`src/paimon/common/sst/`):** - `BlockWriter` — appends entries and builds a serialized block (`block_writer.h/cpp`) - `BlockReader` — reads and parses a serialized block (`block_reader.h/cpp`) - `BlockIterator` — iterates over entries in a parsed block (`block_iterator.h/cpp`) - `BlockCache` — LRU cache wrapper for parsed blocks (`block_cache.h`) **SST file I/O (`src/paimon/common/sst/`):** - `SstFileUtils` — shared constants and utility functions (`sst_file_utils.h`) - `SstFileWriter` — writes blocks, index, bloom filter, and footer into an SST file (`sst_file_writer.h/cpp`) - `SstFileReader` — opens and reads blocks from an SST file (`sst_file_reader.h/cpp`) <!-- What is the purpose of the change --> ### Tests - `block_cache_test.cpp` — LRU eviction, capacity limits, concurrent access - `sst_file_io_test.cpp` — end-to-end SST write/read round-trip, block iteration <!-- List UT and IT cases to verify this change --> ### API and Format <!-- Does this change affect API in include dir or storage format or protocol --> ### Documentation <!-- Does this change introduce a new feature --> ### Generative AI tooling Migrate-by: Aone Copilot (Claude) <!-- If generative AI tooling has been used in the process of authoring this patch, please include the phrase: 'Generated-by: ' followed by the name of the tool and its version. If no, write 'No'. Please refer to the [ASF Generative Tooling Guidance](https://www.apache.org/legal/generative-tooling.html) for 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
