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> |
||
|---|---|---|
| .. | ||
| prisma | ||
| src | ||
| .env.example | ||
| DEVELOPMENT_GUIDE.md | ||
| Dockerfile | ||
| nest-cli.json | ||
| package-lock.json | ||
| package.json | ||
| tsconfig.json | ||