@claudexor/journal 3.11.0 → 3.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/append-batch.d.ts +2 -0
- package/dist/append-batch.d.ts.map +1 -1
- package/dist/append-batch.js +4 -0
- package/dist/append-batch.js.map +1 -1
- package/dist/frame-codec.d.ts +54 -0
- package/dist/frame-codec.d.ts.map +1 -1
- package/dist/frame-codec.js +167 -87
- package/dist/frame-codec.js.map +1 -1
- package/dist/frame-reader.d.ts +30 -0
- package/dist/frame-reader.d.ts.map +1 -0
- package/dist/frame-reader.js +97 -0
- package/dist/frame-reader.js.map +1 -0
- package/dist/index.d.ts +34 -44
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +81 -156
- package/dist/index.js.map +1 -1
- package/dist/journal-background-compaction.d.ts +7 -2
- package/dist/journal-background-compaction.d.ts.map +1 -1
- package/dist/journal-background-compaction.js +79 -78
- package/dist/journal-background-compaction.js.map +1 -1
- package/dist/journal-compaction-chunks.d.ts +29 -0
- package/dist/journal-compaction-chunks.d.ts.map +1 -0
- package/dist/journal-compaction-chunks.js +112 -0
- package/dist/journal-compaction-chunks.js.map +1 -0
- package/dist/journal-compaction.d.ts +27 -5
- package/dist/journal-compaction.d.ts.map +1 -1
- package/dist/journal-compaction.js +22 -4
- package/dist/journal-compaction.js.map +1 -1
- package/dist/journal-core.d.ts +96 -0
- package/dist/journal-core.d.ts.map +1 -0
- package/dist/journal-core.js +173 -0
- package/dist/journal-core.js.map +1 -0
- package/dist/journal-files.d.ts +0 -1
- package/dist/journal-files.d.ts.map +1 -1
- package/dist/journal-files.js +0 -9
- package/dist/journal-files.js.map +1 -1
- package/dist/journal-fold.d.ts +47 -0
- package/dist/journal-fold.d.ts.map +1 -0
- package/dist/journal-fold.js +81 -0
- package/dist/journal-fold.js.map +1 -0
- package/dist/journal-recovery.d.ts +18 -6
- package/dist/journal-recovery.d.ts.map +1 -1
- package/dist/journal-recovery.js +46 -30
- package/dist/journal-recovery.js.map +1 -1
- package/dist/read-only-preparation.d.ts +7 -0
- package/dist/read-only-preparation.d.ts.map +1 -1
- package/dist/read-only-preparation.js +98 -41
- package/dist/read-only-preparation.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frame-reader.js","sourceRoot":"","sources":["../src/frame-reader.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,40 +1,18 @@
|
|
|
1
1
|
import { type JournalRecord } from "./frame-codec.js";
|
|
2
|
-
import { type
|
|
2
|
+
import { type JournalCompactionOutcome } from "./journal-compaction.js";
|
|
3
|
+
import { JournalCore, type DurableJournalOptions } from "./journal-core.js";
|
|
3
4
|
import { type JournalPreparationReceipt } from "./read-only-preparation.js";
|
|
4
|
-
export type { JournalRecord, JournalPreparationReceipt };
|
|
5
|
+
export type { JournalRecord, JournalPreparationReceipt, DurableJournalOptions };
|
|
5
6
|
export { JournalCursorError } from "./journal-cursor.js";
|
|
6
7
|
export { journalPartitionDirectory } from "./journal-partition.js";
|
|
7
8
|
export { JournalRecoveryRequiredError, JournalAppendUncertainError };
|
|
8
9
|
export type { JournalRecoveryLocation, JournalRecoveryState } from "./journal-recovery-state.js";
|
|
10
|
+
export type { FoldRecord, FoldVerdict, JournalFold } from "./journal-fold.js";
|
|
11
|
+
export { keepEverything } from "./journal-fold.js";
|
|
12
|
+
export type { JournalCompactionDeclined, JournalCompactionOutcome, JournalCompactionReceipt, } from "./journal-compaction.js";
|
|
9
13
|
import { JournalRecoveryRequiredError, JournalAppendUncertainError, type JournalRecoveryState } from "./journal-recovery-state.js";
|
|
10
|
-
export interface DurableJournalOptions {
|
|
11
|
-
rootDir: string;
|
|
12
|
-
partition: string;
|
|
13
|
-
now?: () => Date;
|
|
14
|
-
epochFactory?: () => string;
|
|
15
|
-
appendAndSync?: (fd: number, bytes: Buffer) => void;
|
|
16
|
-
compactionThresholdBytes?: number;
|
|
17
|
-
/** The daemon opts into after-admission maintenance; standalone callers keep inline compaction. */
|
|
18
|
-
deferCompaction?: boolean;
|
|
19
|
-
}
|
|
20
14
|
/** Single-writer, checksummed journal. A returned append has reached fsync. */
|
|
21
|
-
export declare class DurableJournal {
|
|
22
|
-
readonly options: Readonly<DurableJournalOptions>;
|
|
23
|
-
readonly partitionDir: string;
|
|
24
|
-
readonly path: string;
|
|
25
|
-
private readonly now;
|
|
26
|
-
private readonly appendFrame;
|
|
27
|
-
private fd;
|
|
28
|
-
private entries;
|
|
29
|
-
private background;
|
|
30
|
-
private epoch;
|
|
31
|
-
private nextSeq;
|
|
32
|
-
private previousFrameHash;
|
|
33
|
-
private knownFileBytes;
|
|
34
|
-
private recovery;
|
|
35
|
-
private preparationState;
|
|
36
|
-
private writable;
|
|
37
|
-
private closed;
|
|
15
|
+
export declare class DurableJournal extends JournalCore {
|
|
38
16
|
static prepare(options: DurableJournalOptions): DurableJournal;
|
|
39
17
|
constructor(options: DurableJournalOptions);
|
|
40
18
|
state(): JournalRecoveryState;
|
|
@@ -50,18 +28,29 @@ export declare class DurableJournal {
|
|
|
50
28
|
currentSequence(): number;
|
|
51
29
|
currentEpoch(): string;
|
|
52
30
|
physicalBytes(): number;
|
|
53
|
-
/**
|
|
31
|
+
/** What the configured fold retired while replaying the file (preparation,
|
|
32
|
+
* construction or activation). Compaction-time retirement is reported on the
|
|
33
|
+
* compaction receipt instead, so the daemon can log both. */
|
|
34
|
+
retiredAtReplay(): {
|
|
35
|
+
count: number;
|
|
36
|
+
bytes: number;
|
|
37
|
+
};
|
|
38
|
+
/** Atomically replace physical frames with one checksummed compressed frame.
|
|
39
|
+
* Refused when a fold is configured: this lossless single-frame writer would
|
|
40
|
+
* persist the retained set renumbered from 1 as a complete history, which an
|
|
41
|
+
* older engine cannot tell apart from a lossless snapshot. */
|
|
54
42
|
compact(): {
|
|
55
43
|
beforeBytes: number;
|
|
56
44
|
afterBytes: number;
|
|
57
45
|
records: number;
|
|
58
46
|
} | null;
|
|
59
47
|
/** Automatic maintenance preserves logical epoch/seq cursors, including ACKed
|
|
60
|
-
* appends during preparation
|
|
48
|
+
* appends during preparation, and applies the configured fold. The first
|
|
49
|
+
* caller's signal owns a shared flight; a decline is typed, never silent. */
|
|
61
50
|
compactInBackground(options: {
|
|
62
51
|
stagingDir: string;
|
|
63
52
|
signal?: AbortSignal;
|
|
64
|
-
}): Promise<
|
|
53
|
+
}): Promise<JournalCompactionOutcome>;
|
|
65
54
|
sequenceAfter(cursor: string | null | undefined): number;
|
|
66
55
|
cursorFor(record: Pick<JournalRecord, "partition" | "epoch" | "seq">): string;
|
|
67
56
|
append<T>(type: string, payload: T): JournalRecord<T>;
|
|
@@ -72,18 +61,19 @@ export declare class DurableJournal {
|
|
|
72
61
|
type: string;
|
|
73
62
|
payload: unknown;
|
|
74
63
|
}[]): JournalRecord[];
|
|
75
|
-
|
|
76
|
-
private
|
|
77
|
-
|
|
64
|
+
/** Replay, then journal a discarded pending suffix through the ordinary append path. */
|
|
65
|
+
private replay;
|
|
66
|
+
/** Edge-triggered: one notification per crossing, decoupled from the ACK
|
|
67
|
+
* already returned to the appender and silent once the journal is closed;
|
|
68
|
+
* any completed maintenance pass re-arms it. */
|
|
69
|
+
private notifyThreshold;
|
|
70
|
+
/** An immediate decline is a completed pass too: it re-arms the hook. It
|
|
71
|
+
* never moves the growth baseline — nothing was observed over the data, and
|
|
72
|
+
* moving it on a below-threshold request would delay the first crossing. */
|
|
73
|
+
private declined;
|
|
74
|
+
/** A fold implies deferred, seq-preserving background compaction: the
|
|
75
|
+
* lossless synchronous path would mint a new epoch and renumber the
|
|
76
|
+
* retained set. Explicit `compact()` keeps its own contract. */
|
|
78
77
|
private compactAtThreshold;
|
|
79
|
-
private atCompactionThreshold;
|
|
80
|
-
/** One physical install owner for both producers; no serialization or await. */
|
|
81
|
-
private installCompaction;
|
|
82
|
-
private closeWriter;
|
|
83
|
-
private failPreparedActivation;
|
|
84
|
-
private requireRecovery;
|
|
85
|
-
private assertReadable;
|
|
86
|
-
private assertWritable;
|
|
87
|
-
private assertOpen;
|
|
88
78
|
}
|
|
89
79
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,39 +1,24 @@
|
|
|
1
|
-
import { recoverJournal } from "./journal-recovery.js";
|
|
2
1
|
import { randomUUID } from "node:crypto";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { ensureCanonicalPrivateDirectory
|
|
6
|
-
import { prepareAppendBatch } from "./append-batch.js";
|
|
2
|
+
import { fstatSync, lstatSync, rmSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { ensureCanonicalPrivateDirectory } from "@claudexor/util";
|
|
5
|
+
import { cloneJson, prepareAppendBatch } from "./append-batch.js";
|
|
7
6
|
import { ZERO_HASH } from "./frame-codec.js";
|
|
8
|
-
import { prepareJournalCompaction } from "./journal-compaction.js";
|
|
7
|
+
import { declinedCompaction, prepareJournalCompaction, } from "./journal-compaction.js";
|
|
9
8
|
import { prepareBackgroundCompaction, sameBoundary, } from "./journal-background-compaction.js";
|
|
10
|
-
import {
|
|
9
|
+
import { JournalCore } from "./journal-core.js";
|
|
10
|
+
import { ensurePrivateFile, sameJournalFile, readIntent, removeFile, writeIntent, } from "./journal-files.js";
|
|
11
11
|
import { sequenceAfterCursor, encodeCursor, JournalCursorError } from "./journal-cursor.js";
|
|
12
12
|
import { journalPartitionDirectory } from "./journal-partition.js";
|
|
13
13
|
import { fingerprintPreparedJournal, inspectPreparedJournal, } from "./read-only-preparation.js";
|
|
14
14
|
export { JournalCursorError } from "./journal-cursor.js";
|
|
15
15
|
export { journalPartitionDirectory } from "./journal-partition.js";
|
|
16
16
|
export { JournalRecoveryRequiredError, JournalAppendUncertainError };
|
|
17
|
-
|
|
17
|
+
export { keepEverything } from "./journal-fold.js";
|
|
18
|
+
import { JournalRecoveryRequiredError, JournalAppendUncertainError, } from "./journal-recovery-state.js";
|
|
18
19
|
const PREPARED_JOURNAL = Symbol("prepared-journal");
|
|
19
20
|
/** Single-writer, checksummed journal. A returned append has reached fsync. */
|
|
20
|
-
export class DurableJournal {
|
|
21
|
-
options;
|
|
22
|
-
partitionDir;
|
|
23
|
-
path;
|
|
24
|
-
now;
|
|
25
|
-
appendFrame;
|
|
26
|
-
fd = -1;
|
|
27
|
-
entries = [];
|
|
28
|
-
background = null;
|
|
29
|
-
epoch;
|
|
30
|
-
nextSeq = 1;
|
|
31
|
-
previousFrameHash = ZERO_HASH;
|
|
32
|
-
knownFileBytes = 0;
|
|
33
|
-
recovery = { status: "ready", discardedTailBytes: 0 };
|
|
34
|
-
preparationState = null;
|
|
35
|
-
writable = false;
|
|
36
|
-
closed = false;
|
|
21
|
+
export class DurableJournal extends JournalCore {
|
|
37
22
|
static prepare(options) {
|
|
38
23
|
if (!options.partition.trim())
|
|
39
24
|
throw new Error("journal partition must not be empty");
|
|
@@ -45,18 +30,13 @@ export class DurableJournal {
|
|
|
45
30
|
intentPath: join(partitionDir, "append.pending.json"),
|
|
46
31
|
partition: options.partition,
|
|
47
32
|
initialEpoch: (options.epochFactory ?? randomUUID)(),
|
|
33
|
+
fold: options.fold,
|
|
48
34
|
});
|
|
49
35
|
const InternalJournal = DurableJournal;
|
|
50
36
|
return new InternalJournal(options, PREPARED_JOURNAL, prepared);
|
|
51
37
|
}
|
|
52
38
|
constructor(options, token, prepared) {
|
|
53
|
-
|
|
54
|
-
throw new Error("journal partition must not be empty");
|
|
55
|
-
this.options = Object.freeze({ ...options });
|
|
56
|
-
this.now = options.now ?? (() => new Date());
|
|
57
|
-
this.appendFrame = options.appendAndSync ?? appendAndSync;
|
|
58
|
-
this.partitionDir = journalPartitionDirectory(options.rootDir, options.partition);
|
|
59
|
-
this.path = join(this.partitionDir, "journal.bin");
|
|
39
|
+
super(options);
|
|
60
40
|
if (token === PREPARED_JOURNAL && prepared) {
|
|
61
41
|
this.preparationState = prepared.receipt;
|
|
62
42
|
this.recovery = structuredClone(prepared.recovery);
|
|
@@ -66,6 +46,8 @@ export class DurableJournal {
|
|
|
66
46
|
this.nextSeq = prepared.nextSeq;
|
|
67
47
|
this.previousFrameHash = prepared.previousFrameHash;
|
|
68
48
|
this.knownFileBytes = prepared.knownFileBytes;
|
|
49
|
+
this.replayRetired = { count: prepared.retiredCount, bytes: prepared.retiredBytes };
|
|
50
|
+
this.compactionBaselineBytes = this.replayBaselineBytes();
|
|
69
51
|
return;
|
|
70
52
|
}
|
|
71
53
|
ensureCanonicalPrivateDirectory(options.rootDir);
|
|
@@ -73,7 +55,7 @@ export class DurableJournal {
|
|
|
73
55
|
ensureCanonicalPrivateDirectory(this.partitionDir);
|
|
74
56
|
ensurePrivateFile(this.path);
|
|
75
57
|
this.openWriter();
|
|
76
|
-
this.
|
|
58
|
+
this.replay();
|
|
77
59
|
this.compactAtThreshold();
|
|
78
60
|
}
|
|
79
61
|
state() {
|
|
@@ -117,7 +99,7 @@ export class DurableJournal {
|
|
|
117
99
|
this.knownFileBytes = 0;
|
|
118
100
|
this.recovery = { status: "ready", discardedTailBytes: 0 };
|
|
119
101
|
this.openWriter();
|
|
120
|
-
this.
|
|
102
|
+
this.replay();
|
|
121
103
|
const activatedRecovery = this.state();
|
|
122
104
|
if (activatedRecovery.status === "recovery_required") {
|
|
123
105
|
throw new JournalRecoveryRequiredError(activatedRecovery);
|
|
@@ -166,8 +148,21 @@ export class DurableJournal {
|
|
|
166
148
|
this.assertOpen();
|
|
167
149
|
return this.knownFileBytes;
|
|
168
150
|
}
|
|
169
|
-
/**
|
|
151
|
+
/** What the configured fold retired while replaying the file (preparation,
|
|
152
|
+
* construction or activation). Compaction-time retirement is reported on the
|
|
153
|
+
* compaction receipt instead, so the daemon can log both. */
|
|
154
|
+
retiredAtReplay() {
|
|
155
|
+
this.assertOpen();
|
|
156
|
+
return { ...this.replayRetired };
|
|
157
|
+
}
|
|
158
|
+
/** Atomically replace physical frames with one checksummed compressed frame.
|
|
159
|
+
* Refused when a fold is configured: this lossless single-frame writer would
|
|
160
|
+
* persist the retained set renumbered from 1 as a complete history, which an
|
|
161
|
+
* older engine cannot tell apart from a lossless snapshot. */
|
|
170
162
|
compact() {
|
|
163
|
+
if (this.options.fold) {
|
|
164
|
+
throw new Error("synchronous compaction is unavailable with a fold; use compactInBackground");
|
|
165
|
+
}
|
|
171
166
|
this.background?.controller.abort();
|
|
172
167
|
this.assertReadable();
|
|
173
168
|
this.assertWritable();
|
|
@@ -189,16 +184,19 @@ export class DurableJournal {
|
|
|
189
184
|
}
|
|
190
185
|
}
|
|
191
186
|
/** Automatic maintenance preserves logical epoch/seq cursors, including ACKed
|
|
192
|
-
* appends during preparation
|
|
187
|
+
* appends during preparation, and applies the configured fold. The first
|
|
188
|
+
* caller's signal owns a shared flight; a decline is typed, never silent. */
|
|
193
189
|
compactInBackground(options) {
|
|
194
190
|
if (this.background)
|
|
195
191
|
return this.background.promise;
|
|
196
192
|
this.assertReadable();
|
|
197
193
|
this.assertWritable();
|
|
198
194
|
if (options.signal?.aborted)
|
|
199
|
-
return Promise.resolve(
|
|
200
|
-
if (!this.atCompactionThreshold()
|
|
201
|
-
return Promise.resolve(
|
|
195
|
+
return Promise.resolve(this.declined("aborted"));
|
|
196
|
+
if (!this.atCompactionThreshold())
|
|
197
|
+
return Promise.resolve(this.declined("below_threshold"));
|
|
198
|
+
if (this.nextSeq <= 1)
|
|
199
|
+
return Promise.resolve(this.declined("empty"));
|
|
202
200
|
const controller = new AbortController();
|
|
203
201
|
const abort = () => controller.abort();
|
|
204
202
|
options.signal?.addEventListener("abort", abort, { once: true });
|
|
@@ -227,6 +225,7 @@ export class DurableJournal {
|
|
|
227
225
|
time: this.now().toISOString(),
|
|
228
226
|
entries,
|
|
229
227
|
prefix: current(),
|
|
228
|
+
fold: this.options.fold,
|
|
230
229
|
current,
|
|
231
230
|
install: (candidate, boundary) => {
|
|
232
231
|
if (!sameBoundary(current(), boundary))
|
|
@@ -241,9 +240,18 @@ export class DurableJournal {
|
|
|
241
240
|
return true;
|
|
242
241
|
},
|
|
243
242
|
}).finally(() => {
|
|
243
|
+
// Every pass that reached the data settles the growth baseline —
|
|
244
|
+
// install, real decline, a pass aborted in flight (it resolves as a
|
|
245
|
+
// declined `aborted` through this promise) or failure alike (an install
|
|
246
|
+
// already set it to the installed size): the next attempt waits for a
|
|
247
|
+
// threshold of NEW bytes instead of re-folding the whole retained
|
|
248
|
+
// prefix, and failing again, on every following append (an unwritable
|
|
249
|
+
// staging directory, an ENOSPC window).
|
|
250
|
+
this.compactionBaselineBytes = this.knownFileBytes;
|
|
244
251
|
options.signal?.removeEventListener("abort", abort);
|
|
245
252
|
if (this.background?.promise === promise)
|
|
246
253
|
this.background = null;
|
|
254
|
+
this.thresholdNotified = false;
|
|
247
255
|
});
|
|
248
256
|
this.background = { controller, promise };
|
|
249
257
|
return promise;
|
|
@@ -305,134 +313,51 @@ export class DurableJournal {
|
|
|
305
313
|
this.nextSeq = batch.nextSeq;
|
|
306
314
|
this.previousFrameHash = batch.previousFrameHash;
|
|
307
315
|
this.knownFileBytes += batch.bytes.length;
|
|
316
|
+
this.notifyThreshold();
|
|
308
317
|
return batch.records.map((record) => ({ ...record, payload: cloneJson(record.payload) }));
|
|
309
318
|
}
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
}
|
|
315
|
-
catch (error) {
|
|
316
|
-
if (!(error instanceof JournalRecoveryRequiredError))
|
|
317
|
-
throw error;
|
|
318
|
-
this.recovery = error.recovery;
|
|
319
|
+
/** Replay, then journal a discarded pending suffix through the ordinary append path. */
|
|
320
|
+
replay() {
|
|
321
|
+
const discardedBytes = this.recover();
|
|
322
|
+
if (discardedBytes === 0)
|
|
319
323
|
return;
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
this.
|
|
325
|
-
this.
|
|
326
|
-
|
|
327
|
-
}
|
|
328
|
-
this.knownFileBytes = result.knownFileBytes;
|
|
329
|
-
if (result.discardedBytes > 0) {
|
|
330
|
-
this.recovery = { status: "ready", discardedTailBytes: result.discardedBytes };
|
|
331
|
-
this.append("journal.recovery_tail_discarded", {
|
|
332
|
-
recoveryId: randomUUID(),
|
|
333
|
-
discardedBytes: result.discardedBytes,
|
|
334
|
-
validBytes: result.knownFileBytes,
|
|
335
|
-
originalBytes: result.knownFileBytes + result.discardedBytes,
|
|
336
|
-
detectedAt: this.now().toISOString(),
|
|
337
|
-
});
|
|
338
|
-
}
|
|
324
|
+
this.append("journal.recovery_tail_discarded", {
|
|
325
|
+
recoveryId: randomUUID(),
|
|
326
|
+
discardedBytes,
|
|
327
|
+
validBytes: this.knownFileBytes,
|
|
328
|
+
originalBytes: this.knownFileBytes + discardedBytes,
|
|
329
|
+
detectedAt: this.now().toISOString(),
|
|
330
|
+
});
|
|
339
331
|
}
|
|
340
|
-
|
|
341
|
-
|
|
332
|
+
/** Edge-triggered: one notification per crossing, decoupled from the ACK
|
|
333
|
+
* already returned to the appender and silent once the journal is closed;
|
|
334
|
+
* any completed maintenance pass re-arms it. */
|
|
335
|
+
notifyThreshold() {
|
|
336
|
+
const hook = this.options.onCompactionThreshold;
|
|
337
|
+
if (!hook || this.thresholdNotified || !this.atCompactionThreshold())
|
|
338
|
+
return;
|
|
339
|
+
this.thresholdNotified = true;
|
|
340
|
+
queueMicrotask(() => {
|
|
341
|
+
if (!this.closed)
|
|
342
|
+
hook();
|
|
343
|
+
});
|
|
342
344
|
}
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
345
|
+
/** An immediate decline is a completed pass too: it re-arms the hook. It
|
|
346
|
+
* never moves the growth baseline — nothing was observed over the data, and
|
|
347
|
+
* moving it on a below-threshold request would delay the first crossing. */
|
|
348
|
+
declined(reason) {
|
|
349
|
+
this.thresholdNotified = false;
|
|
350
|
+
return declinedCompaction(reason);
|
|
346
351
|
}
|
|
352
|
+
/** A fold implies deferred, seq-preserving background compaction: the
|
|
353
|
+
* lossless synchronous path would mint a new epoch and renumber the
|
|
354
|
+
* retained set. Explicit `compact()` keeps its own contract. */
|
|
347
355
|
compactAtThreshold() {
|
|
348
356
|
if (!this.options.deferCompaction &&
|
|
357
|
+
!this.options.fold &&
|
|
349
358
|
this.recovery.status === "ready" &&
|
|
350
359
|
this.atCompactionThreshold())
|
|
351
360
|
this.compact();
|
|
352
361
|
}
|
|
353
|
-
atCompactionThreshold() {
|
|
354
|
-
return this.knownFileBytes >= (this.options.compactionThresholdBytes ?? 8 * 1024 * 1024);
|
|
355
|
-
}
|
|
356
|
-
/** One physical install owner for both producers; no serialization or await. */
|
|
357
|
-
installCompaction(result) {
|
|
358
|
-
const original = fstatSync(this.fd);
|
|
359
|
-
if (result.knownFileBytes >= this.knownFileBytes)
|
|
360
|
-
throw new Error("compaction did not reclaim bytes");
|
|
361
|
-
let renamed = false;
|
|
362
|
-
let closed = false;
|
|
363
|
-
const fd = this.fd;
|
|
364
|
-
this.fd = -1;
|
|
365
|
-
this.writable = false;
|
|
366
|
-
try {
|
|
367
|
-
closeSync(fd);
|
|
368
|
-
closed = true;
|
|
369
|
-
renameSync(result.path, this.path);
|
|
370
|
-
renamed = true;
|
|
371
|
-
fsyncDirectory(dirname(this.path));
|
|
372
|
-
this.openWriter();
|
|
373
|
-
}
|
|
374
|
-
catch (error) {
|
|
375
|
-
this.closeWriter();
|
|
376
|
-
if (closed && !renamed) {
|
|
377
|
-
this.fd = reopenOriginalWriter(this.path, original);
|
|
378
|
-
this.writable = this.fd >= 0;
|
|
379
|
-
}
|
|
380
|
-
if (!this.writable)
|
|
381
|
-
throw new JournalRecoveryRequiredError(this.requireRecovery(0, `journal compaction install failed: ${error instanceof Error ? error.message : String(error)}`));
|
|
382
|
-
throw error;
|
|
383
|
-
}
|
|
384
|
-
this.entries = result.records;
|
|
385
|
-
this.epoch = result.epoch;
|
|
386
|
-
this.nextSeq = result.nextSeq;
|
|
387
|
-
this.previousFrameHash = result.previousFrameHash;
|
|
388
|
-
this.knownFileBytes = result.knownFileBytes;
|
|
389
|
-
}
|
|
390
|
-
closeWriter() {
|
|
391
|
-
const fd = this.fd;
|
|
392
|
-
this.fd = -1;
|
|
393
|
-
this.writable = false;
|
|
394
|
-
if (fd < 0)
|
|
395
|
-
return;
|
|
396
|
-
try {
|
|
397
|
-
closeSync(fd);
|
|
398
|
-
}
|
|
399
|
-
catch {
|
|
400
|
-
/* best-effort revocation: the handle number is never reused by this writer */
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
-
failPreparedActivation(error) {
|
|
404
|
-
this.closeWriter();
|
|
405
|
-
this.entries.length = 0;
|
|
406
|
-
this.nextSeq = 1;
|
|
407
|
-
this.previousFrameHash = ZERO_HASH;
|
|
408
|
-
this.knownFileBytes = 0;
|
|
409
|
-
const recovery = error instanceof JournalRecoveryRequiredError
|
|
410
|
-
? error.recovery
|
|
411
|
-
: this.requireRecovery(0, `prepared activation failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
412
|
-
this.recovery = structuredClone(recovery);
|
|
413
|
-
throw new JournalRecoveryRequiredError(recovery);
|
|
414
|
-
}
|
|
415
|
-
requireRecovery(byteOffset, reason) {
|
|
416
|
-
this.recovery = journalRecoveryAt(byteOffset, reason);
|
|
417
|
-
this.background?.controller.abort();
|
|
418
|
-
return this.recovery;
|
|
419
|
-
}
|
|
420
|
-
assertReadable() {
|
|
421
|
-
this.assertOpen();
|
|
422
|
-
if (this.recovery.status === "recovery_required") {
|
|
423
|
-
throw new JournalRecoveryRequiredError(this.recovery);
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
assertWritable() {
|
|
427
|
-
if (!this.writable)
|
|
428
|
-
throw new Error("journal preparation is not activated");
|
|
429
|
-
}
|
|
430
|
-
assertOpen() {
|
|
431
|
-
if (this.closed)
|
|
432
|
-
throw new Error("journal writer is closed");
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
function cloneJson(value) {
|
|
436
|
-
return JSON.parse(JSON.stringify(value));
|
|
437
362
|
}
|
|
438
363
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import { type JournalRecord } from "./frame-codec.js";
|
|
2
|
-
import { type JournalCompactionResult } from "./journal-compaction.js";
|
|
2
|
+
import { type JournalCompactionOutcome, type JournalCompactionResult } from "./journal-compaction.js";
|
|
3
|
+
import { type JournalFold } from "./journal-fold.js";
|
|
4
|
+
/** `count` is the in-memory entry count (the retained prefix length captured);
|
|
5
|
+
* `nextSeq`/`previousFrameHash`/`knownFileBytes` are disk chain state. The two
|
|
6
|
+
* are different arithmetic once a fold has run at replay. */
|
|
3
7
|
export interface CompactionBoundary {
|
|
4
8
|
count: number;
|
|
5
9
|
nextSeq: number;
|
|
@@ -16,8 +20,9 @@ export declare function prepareBackgroundCompaction(input: {
|
|
|
16
20
|
time: string;
|
|
17
21
|
entries: readonly JournalRecord[];
|
|
18
22
|
prefix: CompactionBoundary;
|
|
23
|
+
fold?: JournalFold;
|
|
19
24
|
current(): CompactionBoundary;
|
|
20
25
|
install(candidate: JournalCompactionResult, boundary: CompactionBoundary): boolean;
|
|
21
|
-
}): Promise<
|
|
26
|
+
}): Promise<JournalCompactionOutcome>;
|
|
22
27
|
export declare function sameBoundary(a: CompactionBoundary, b: CompactionBoundary): boolean;
|
|
23
28
|
//# sourceMappingURL=journal-background-compaction.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"journal-background-compaction.d.ts","sourceRoot":"","sources":["../src/journal-background-compaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"journal-background-compaction.d.ts","sourceRoot":"","sources":["../src/journal-background-compaction.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsC,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE1F,OAAO,EAKL,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAc,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKjE;;6DAE6D;AAC7D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;6DAC6D;AAC7D,wBAAsB,2BAA2B,CAAC,KAAK,EAAE;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,aAAa,EAAE,CAAC;IAClC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,OAAO,IAAI,kBAAkB,CAAC;IAC9B,OAAO,CAAC,SAAS,EAAE,uBAAuB,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC;CACpF,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAgHpC;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAOlF"}
|