Write-ahead log coverage gap for SonarQube retry operations
0 reputation · 06 Jul 2020, 06:14 UTC
The goal is to determine whether SonarQube retry mechanisms for database writes can be safely repeated without duplicating persistent records, given the interaction between Hibernate session-level caching and the platform's limited write-ahead log coverage. SonarQube 9.x introduced a write-ahead log for certain operations, but its scope does not encompass all task-execution write paths. Hibernate's session cache may re-issue entities on retry if the session is not invalidated, and the task execution model's attempt-ID logging does not inherently guarantee idempotent primary-key writes. Additionally, Elasticsearch index updates are not transactional with database writes, leading to eventual consistency discrepancies when retries occur. Version-specific Hibernate JTA platform settings can further modulate these behaviors, and no native idempotent write guard exists across the platform.
- What conditions cause the write-ahead log to omit retry-affected operations?
- Whether the task execution attempt ID prevents duplicate primary-key writes across clustered SonarQube nodes?
- If Elasticsearch index reconciliation can diverge from retried database transactions?