log: dont compact on startup

This commit is contained in:
Andre Staltz 2023-11-23 17:02:07 +02:00
parent 1f88d67116
commit 29badc9fd8
No known key found for this signature in database
GPG Key ID: 9EDE23EA7E8A4890
4 changed files with 17 additions and 7 deletions

View File

@ -169,11 +169,8 @@ function Log(filename, opts) {
if (err) throw err
// prettier-ignore
debug('Opened log file, last record is at log offset %d', lastRecOffset.value)
compact(function doneCompactingOnStartup(err) {
if (err) debug('Failed compacting on startup: %s', err.message)
// @ts-ignore
while (waitingLoad.length) waitingLoad.shift()()
})
// @ts-ignore
while (waitingLoad.length) waitingLoad.shift()()
})
}
}

View File

@ -66,6 +66,9 @@ test('del()', async (t) => {
assert.deepEqual(after, ['m0', 'm1', 'm3', 'm4'], 'msgs after the delete')
await p(peer.db.log.compact)()
assert('compacted')
await p(peer.close)(true)
const log = Log(path.join(DIR, 'db.bin'), {

View File

@ -77,6 +77,9 @@ test('erase()', async (t) => {
assert.deepEqual(after2, [1, 2, 3, 4, 5], '5 metadata exists after the erase')
await p(peer.db.log.compact)()
assert('compacted')
await p(peer.close)(true)
const log = Log(path.join(DIR, 'db.bin'), {

View File

@ -48,7 +48,7 @@ test('Log deletes', async (t) => {
await p(log.close)()
})
await t.test('Deleted records auto-compacted upon re-opening', async (t) => {
await t.test('Deleted records are not invalid upon re-opening', async (t) => {
const file = '/tmp/ppppp-db-log-test-del-invalid.log'
try {
fs.unlinkSync(file)
@ -94,12 +94,19 @@ test('Log deletes', async (t) => {
},
(err) => {
assert.ifError(err)
assert.deepEqual(arr, [{ text: 'm0' }, { text: 'm2' }])
assert.deepEqual(arr, [{ text: 'm0' }, null, { text: 'm2' }])
resolve()
}
)
})
await assert.rejects(p(log2._get)(offset2), (err) => {
assert.ok(err)
assert.equal(err.message, 'Record has been deleted')
assert.equal(err.code, 'ERR_AAOL_DELETED_RECORD')
return true
})
await p(log2.close)()
})