lszskye opened a new pull request, #382:
URL: https://github.com/apache/paimon-cpp/pull/382

   ### Purpose
   Add checkpoint support for Lumina global index builds.
   
   This change:
   - introduces `GlobalIndexCheckpointFileManager` as a plugin-facing 
checkpoint storage interface;
   - lets `GlobalIndexFileManager` optionally manage checkpoint scanning and 
I/O;
   - adds task-scoped checkpoint paths in the following form:
     
`[index_type]-global-index-[field_name]-[range_from]-[range_to]-[task_id]-[id].index.ckpt`
   
   - discovers the latest checkpoint using its numeric ID and continues 
allocating IDs from it;
   - adds `GlobalIndexer::SupportsCheckpoint()` so checkpoint storage is 
created only for index implementations that support it;
   - adds an optional `task_id` to `GlobalIndexWriteTask::WriteIndex`;
   - adapts Paimon checkpoint storage to Lumina's checkpoint manager;
   - restores Lumina builds from the latest matching checkpoint;
   - deletes matching checkpoints after a successful build;
   - when a build using an existing checkpoint fails, deletes the checkpoint 
and retries once from scratch;
   - isolates checkpoints by index type, field, row range, and task ID.
   
   Index implementations that do not support checkpoints keep their existing 
behavior.
   
   ### Tests
   src/paimon/core/global_index/global_index_file_manager_test.cpp
   src/paimon/core/utils/file_store_path_factory_test.cpp
   src/paimon/global_index/lumina/lumina_global_index_test.cpp
   test/inte/global_index_test.cpp
   
   ### API and Format
   - adds `GlobalIndexer::SupportsCheckpoint()`, which returns `false` by 
default;
   - adds `GlobalIndexCheckpointFileManager`;
   - adds an optional `task_id` argument to `GlobalIndexWriteTask::WriteIndex`.


-- 
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]

Reply via email to