Adds operational improvements to the Dolt storage backend for increased reliability in production environments with concurrent clients: 1. Lock retry with exponential backoff: - Add LockRetries and LockRetryDelay config options - Automatic retry on lock contention (default: 30 retries, ~6s window) - Exponential backoff starting at 100ms - Handles transient format version errors during manifest updates 2. Stale lock file cleanup: - Detect and clean orphaned .dolt/noms/LOCK files on startup - Prevents "database is read only" errors after crashes - Only removes empty locks older than 5 seconds 3. Transient error detection: - isTransientDoltError() detects retryable conditions - isLockError() identifies lock contention scenarios - cleanupStaleDoltLock() safely removes orphaned locks These improvements address common issues in multi-process environments where the Dolt embedded driver creates exclusive locks that persist after unexpected termination. Co-authored-by: upstream_syncer <matthew.baker@pihealth.ai> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
21 KiB
21 KiB