Judge: count a chunk's file hashes once, from a covering index
The incremental judge counted each changed release's files twice, each index entry a heap fetch: 24-32 s a chunk. file_hashes by (hash16k, size, release_id) replaces (hash16k); the other releases of a file are judged only when the chunk brings it to 20. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
76e52f69ce
commit
9725bdbd7b
3 files changed
+50
-11
No files matched your search
@@ -171,6 +171,12 @@ test.group('ReleaseJudge', (group) => {
|
||||
const rules = new Set()
|
||||
for (const id of [...holders, twentieth]) rules.add(await verdict(id))
|
||||
assert.deepEqual([...rules], ['repeated'])
|
||||
// A 21st: the file was in 20 releases without it, so only it is judged.
|
||||
const twentyFirst = await release('holder20')
|
||||
await db.table('file_hashes').insert({ candidate_id: 30020, release_id: twentyFirst, hash16k: hash, size: 5000 })
|
||||
round = await judge.changed()
|
||||
assert.equal(round.releases, 1)
|
||||
assert.equal(await verdict(twentyFirst), 'repeated')
|
||||
|
||||
// A verdict nothing noted stays until the full round; it's due a day after the last one.
|
||||
const stale = await release('Fine.Release')
|
||||
|
||||
Reference in new issue
Block a user