Problem: - Multiple concurrent transactions updating system_mining_accounts caused row lock contention - 16+ transactions waiting for tuple/transactionid locks led to timeout errors - This prevented writeMinuteRecords() from executing, leaving mining_records empty Solution: - Modified SystemMiningAccountRepository.mine() to accept optional external transaction client - Created new distributeToSystemAndPending() method that processes all system accounts and pending contributions in a single transaction - Pre-calculate all rewards before transaction, then execute updates sequentially - Aggregate all pending contribution rewards into single HEADQUARTERS update - Move Redis accumulation outside transaction to avoid blocking Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| api | ||
| application | ||
| domain | ||
| infrastructure | ||
| shared | ||
| app.module.ts | ||
| main.ts | ||