yuqi1129 opened a new issue, #12992:
URL: https://github.com/apache/gravitino/issues/12992

   ### Describe the subtask
   
   Complete version-CAS OCC and atomic store operations for Job under #12166. 
Job updates already increment versions, but zero-row updates are reported as 
missing entities and soft-delete does not check the expected version.
   
   - Use the job run ID, expected current_version, and active-row state as the 
update/delete CAS predicate; retain monotonic version increments for every 
successful update.
   - Use OccWriteSupport to distinguish stale-version conflicts from 
missing/deleted jobs, preserving the existing missing-entity and 
idempotent-delete contracts.
   - Fence job insertion against concurrent metalake/template deletion using 
the shared parent-lock protocol. Coordinate this lock order with the Job 
Template subtask.
   - Cover background execution/status updates so stale writers cannot 
overwrite newer state or resurrect deleted jobs; follow the shared OCC retry 
contract without replaying external job submission/cancellation side effects.
   - Audit retention cleanup and template/metalake cascade deletion for races 
with job updates, preserving cleanup eligibility and transactional consistency.
   - Add H2, MySQL, and PostgreSQL tests for concurrent updates, stale deletes, 
update/delete races, parent deletion versus insertion, and rollback. Keep blind 
create/import overwrite semantics outside update/delete CAS, as specified by 
the parent issue.
   
   Reuse the existing version columns; no database schema migration is 
required. Follow the conflict contract from #12341 and the shared OCC service 
support from #12639.
   
   ### Parent issue
   
   https://github.com/apache/gravitino/issues/12166
   


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