Sdms-977 !!better!! <TESTED · Manual>
// 3. Update metadata in a DB transaction transaction // lock row for update val meta = metadataDao.findForUpdate(request.objectId) meta.tier = request.targetTier meta.lastTierChangeTs = Instant.now() metadataDao.update(meta)
// 1. Stream copy (multipart, server‑side if supported) val copyResult = dst.copyObjectFrom(src, request.objectKey) sdms-977
// 2. Verify checksum if (copyResult.checksum != request.expectedChecksum) auditFail(request, "checksum mismatch") throw MigrationException("Checksum verification failed") sdms-977
Total estimated effort: (≈ 6 full‑time developers + 2 QA + 1 Ops). 7. Testing Strategy | Test Level | Scope | Tools | |------------|-------|-------| | **Unit sdms-977
// 4. Delete source (if policy permits) if (request.deleteSource) src.deleteObject(request.objectKey)
auditSuccess(request)