@harperfast/harper 5.3.0 → 5.3.1
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/bin/copyDb.ts +5 -1
- package/bin/deployRenderer.ts +3 -0
- package/components/Application.ts +66 -22
- package/components/DESIGN.md +89 -36
- package/components/componentLoader.ts +2 -0
- package/components/deploymentRecorder.ts +18 -1
- package/components/installFingerprint.ts +123 -0
- package/components/mcp/DESIGN.md +4 -4
- package/components/operations.js +29 -0
- package/config/DESIGN.md +5 -5
- package/dataLayer/DESIGN.md +37 -22
- package/dataLayer/backupRepository.ts +248 -0
- package/dataLayer/restoreMarker.ts +30 -75
- package/dataLayer/rocksdbBackup.ts +253 -110
- package/dist/bin/copyDb.js +3 -0
- package/dist/bin/copyDb.js.map +1 -1
- package/dist/bin/deployRenderer.js +3 -0
- package/dist/bin/deployRenderer.js.map +1 -1
- package/dist/components/Application.d.ts +5 -0
- package/dist/components/Application.js +51 -19
- package/dist/components/Application.js.map +1 -1
- package/dist/components/componentLoader.js +2 -0
- package/dist/components/componentLoader.js.map +1 -1
- package/dist/components/deploymentRecorder.js +18 -1
- package/dist/components/deploymentRecorder.js.map +1 -1
- package/dist/components/installFingerprint.d.ts +39 -0
- package/dist/components/installFingerprint.js +113 -0
- package/dist/components/installFingerprint.js.map +1 -0
- package/dist/components/operations.d.ts +2 -0
- package/dist/components/operations.js +31 -0
- package/dist/components/operations.js.map +1 -1
- package/dist/dataLayer/backupRepository.d.ts +33 -0
- package/dist/dataLayer/backupRepository.js +232 -0
- package/dist/dataLayer/backupRepository.js.map +1 -0
- package/dist/dataLayer/restoreMarker.d.ts +4 -1
- package/dist/dataLayer/restoreMarker.js +29 -68
- package/dist/dataLayer/restoreMarker.js.map +1 -1
- package/dist/dataLayer/rocksdbBackup.js +221 -112
- package/dist/dataLayer/rocksdbBackup.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -1
- package/dist/json/systemSchema.json +14 -0
- package/dist/resources/DatabaseTransaction.d.ts +140 -11
- package/dist/resources/DatabaseTransaction.js +1055 -464
- package/dist/resources/DatabaseTransaction.js.map +1 -1
- package/dist/resources/IterableEventQueue.d.ts +2 -1
- package/dist/resources/IterableEventQueue.js +16 -8
- package/dist/resources/IterableEventQueue.js.map +1 -1
- package/dist/resources/LMDBTransaction.d.ts +13 -2
- package/dist/resources/LMDBTransaction.js +219 -93
- package/dist/resources/LMDBTransaction.js.map +1 -1
- package/dist/resources/RecordEncoder.js +2 -3
- package/dist/resources/RecordEncoder.js.map +1 -1
- package/dist/resources/Resource.js +5 -6
- package/dist/resources/Resource.js.map +1 -1
- package/dist/resources/ResourceInterface.d.ts +3 -1
- package/dist/resources/ResourceInterface.js.map +1 -1
- package/dist/resources/RocksIndexStore.d.ts +2 -1
- package/dist/resources/RocksIndexStore.js +3 -0
- package/dist/resources/RocksIndexStore.js.map +1 -1
- package/dist/resources/Table.js +116 -12
- package/dist/resources/Table.js.map +1 -1
- package/dist/resources/analytics/write.js +6 -2
- package/dist/resources/analytics/write.js.map +1 -1
- package/dist/resources/auditStore.d.ts +71 -17
- package/dist/resources/auditStore.js +248 -64
- package/dist/resources/auditStore.js.map +1 -1
- package/dist/resources/branchDatabase.js +2 -0
- package/dist/resources/branchDatabase.js.map +1 -1
- package/dist/resources/databases.js +8 -2
- package/dist/resources/databases.js.map +1 -1
- package/dist/resources/indexes/fullTextNativeBinding.d.ts +6 -2
- package/dist/resources/indexes/fullTextNativeBinding.js +12 -2
- package/dist/resources/indexes/fullTextNativeBinding.js.map +1 -1
- package/dist/resources/indexes/fullTextQueryIndex.d.ts +4 -0
- package/dist/resources/indexes/fullTextQueryIndex.js +207 -10
- package/dist/resources/indexes/fullTextQueryIndex.js.map +1 -1
- package/dist/resources/models/Models.d.ts +11 -0
- package/dist/resources/models/Models.js +95 -4
- package/dist/resources/models/Models.js.map +1 -1
- package/dist/resources/models/backendRegistry.d.ts +8 -0
- package/dist/resources/models/backendRegistry.js +15 -1
- package/dist/resources/models/backendRegistry.js.map +1 -1
- package/dist/resources/models/bootstrap.d.ts +2 -0
- package/dist/resources/models/bootstrap.js +6 -0
- package/dist/resources/models/bootstrap.js.map +1 -1
- package/dist/resources/models/calibration.d.ts +88 -0
- package/dist/resources/models/calibration.js +244 -0
- package/dist/resources/models/calibration.js.map +1 -0
- package/dist/resources/models/calibrationStore.d.ts +163 -0
- package/dist/resources/models/calibrationStore.js +986 -0
- package/dist/resources/models/calibrationStore.js.map +1 -0
- package/dist/resources/models/decisionStore.d.ts +24 -0
- package/dist/resources/models/decisionStore.js +45 -0
- package/dist/resources/models/decisionStore.js.map +1 -1
- package/dist/resources/models/generativeDecision.js +44 -15
- package/dist/resources/models/generativeDecision.js.map +1 -1
- package/dist/resources/models/types.d.ts +7 -0
- package/dist/resources/recordLock.d.ts +8 -5
- package/dist/resources/recordLock.js +6 -4
- package/dist/resources/recordLock.js.map +1 -1
- package/dist/resources/replayLogs.js +8 -1
- package/dist/resources/replayLogs.js.map +1 -1
- package/dist/resources/scheduler/engine.d.ts +4 -0
- package/dist/resources/scheduler/engine.js +30 -2
- package/dist/resources/scheduler/engine.js.map +1 -1
- package/dist/resources/search.d.ts +16 -4
- package/dist/resources/search.js +117 -13
- package/dist/resources/search.js.map +1 -1
- package/dist/resources/transaction.js +85 -5
- package/dist/resources/transaction.js.map +1 -1
- package/dist/resources/transactionBroadcast.d.ts +8 -0
- package/dist/resources/transactionBroadcast.js +65 -0
- package/dist/resources/transactionBroadcast.js.map +1 -1
- package/dist/security/keys.d.ts +1 -1
- package/dist/security/keys.js +170 -120
- package/dist/security/keys.js.map +1 -1
- package/dist/server/http.js +10 -0
- package/dist/server/http.js.map +1 -1
- package/dist/server/serverHelpers/Request.js +11 -2
- package/dist/server/serverHelpers/Request.js.map +1 -1
- package/dist/server/serverHelpers/contentTypes.js +8 -3
- package/dist/server/serverHelpers/contentTypes.js.map +1 -1
- package/dist/server/serverHelpers/uwsServer.js +38 -7
- package/dist/server/serverHelpers/uwsServer.js.map +1 -1
- package/dist/server/threads/manageThreads.d.ts +3 -3
- package/dist/server/threads/manageThreads.js +15 -13
- package/dist/server/threads/manageThreads.js.map +1 -1
- package/dist/server/threads/threadServer.d.ts +3 -0
- package/dist/server/threads/threadServer.js +24 -6
- package/dist/server/threads/threadServer.js.map +1 -1
- package/dist/upgrade/directives/5-3-0.js +9 -3
- package/dist/upgrade/directives/5-3-0.js.map +1 -1
- package/dist/utility/durableFile.d.ts +36 -0
- package/dist/utility/durableFile.js +106 -0
- package/dist/utility/durableFile.js.map +1 -0
- package/dist/utility/errors/hdbError.d.ts +4 -0
- package/dist/utility/errors/hdbError.js +10 -1
- package/dist/utility/errors/hdbError.js.map +1 -1
- package/dist/utility/globalSchema.d.ts +9 -0
- package/dist/utility/hdbTerms.d.ts +1 -0
- package/dist/utility/hdbTerms.js +1 -0
- package/dist/utility/hdbTerms.js.map +1 -1
- package/dist/validation/configValidator.js +29 -0
- package/dist/validation/configValidator.js.map +1 -1
- package/index.ts +7 -0
- package/json/systemSchema.json +14 -0
- package/npm-shrinkwrap.json +22 -22
- package/package.json +2 -2
- package/resources/DESIGN.md +57 -272
- package/resources/DatabaseTransaction.ts +708 -87
- package/resources/FULL_TEXT.md +6 -2
- package/resources/IterableEventQueue.ts +14 -7
- package/resources/LMDBTransaction.ts +212 -84
- package/resources/RecordEncoder.ts +2 -3
- package/resources/Resource.ts +5 -6
- package/resources/ResourceInterface.ts +3 -1
- package/resources/RocksIndexStore.ts +5 -0
- package/resources/Table.ts +118 -15
- package/resources/analytics/write.ts +6 -2
- package/resources/audit-retention.md +203 -0
- package/resources/auditStore.ts +306 -84
- package/resources/branchDatabase.ts +2 -0
- package/resources/databases.ts +6 -2
- package/resources/indexes/DESIGN.md +120 -177
- package/resources/indexes/fullTextNativeBinding.ts +22 -3
- package/resources/indexes/fullTextQueryIndex.ts +274 -11
- package/resources/models/DESIGN.md +11 -3
- package/resources/models/Models.ts +127 -4
- package/resources/models/backendRegistry.ts +17 -0
- package/resources/models/bootstrap.ts +9 -1
- package/resources/models/calibration.ts +298 -0
- package/resources/models/calibrationStore.ts +1167 -0
- package/resources/models/decisionStore.ts +57 -0
- package/resources/models/generativeDecision.ts +54 -16
- package/resources/models/types.ts +6 -0
- package/resources/record-locks.md +155 -141
- package/resources/recordLock.ts +12 -6
- package/resources/replayLogs.ts +9 -2
- package/resources/scheduler/DESIGN.md +4 -3
- package/resources/scheduler/engine.ts +35 -2
- package/resources/search.ts +154 -16
- package/resources/transaction.ts +50 -5
- package/resources/transactionBroadcast.ts +69 -0
- package/security/DESIGN.md +9 -30
- package/security/keys.ts +175 -127
- package/server/DESIGN.md +70 -36
- package/server/http.ts +10 -0
- package/server/serverHelpers/Request.ts +10 -2
- package/server/serverHelpers/contentTypes.ts +5 -3
- package/server/serverHelpers/uwsServer.ts +34 -7
- package/server/threads/manageThreads.js +16 -14
- package/server/threads/threadServer.js +24 -6
- package/studio/web/assets/{Chat-CNEKMllJ.js → Chat-4LMxI0yB.js} +1 -1
- package/studio/web/assets/{FloatingChat-CEnWhHeR.js → FloatingChat-kWHApEtF.js} +3 -3
- package/studio/web/assets/{SearchDialog-CwhJdEdY.js → SearchDialog-B7ymna97.js} +1 -1
- package/studio/web/assets/{apiToken-DC5vsaaO.js → apiToken-CE3AAt9f.js} +1 -1
- package/studio/web/assets/{applications-DQZxDy0x.js → applications-DdN7CqsB.js} +1 -1
- package/studio/web/assets/{cssMode-Dz2DxF4e.js → cssMode-BpySZUSt.js} +1 -1
- package/studio/web/assets/{editor-B3mjd3tz.js → editor-myLCVv9C.js} +1 -1
- package/studio/web/assets/{html-BsRGM7tp.js → html-DGNYO55O.js} +1 -1
- package/studio/web/assets/{htmlMode-tUKJaA3o.js → htmlMode-BUgpQr41.js} +1 -1
- package/studio/web/assets/{index-BuqFjN5K.js → index-FN4KC9va.js} +39 -39
- package/studio/web/assets/index-QLZw6xrU.css +1 -0
- package/studio/web/assets/{index.lazy-CcpfQFY_.js → index.lazy-DZFuaumG.js} +1 -1
- package/studio/web/assets/{javascript-BZ_uRGHl.js → javascript-DiBzh4pj.js} +1 -1
- package/studio/web/assets/{jsonMode-DgB-aFMj.js → jsonMode-Bm312nmu.js} +1 -1
- package/studio/web/assets/{languageServices-BleuBw17.js → languageServices-Dz2K9rZN.js} +1 -1
- package/studio/web/assets/{lspLanguageFeatures-ByVYLSsQ.js → lspLanguageFeatures-CNu1L5xn.js} +1 -1
- package/studio/web/assets/{notifications-TuzN0IMi.js → notifications--nwFLGmM.js} +1 -1
- package/studio/web/assets/{notifications-D1Nf-Edn.js → notifications-BelKw5bR.js} +1 -1
- package/studio/web/assets/{profile-D7C7Lupz.js → profile-AU5FjOBx.js} +1 -1
- package/studio/web/assets/{regions-nGQCm-v8.js → regions-C0sTSEHH.js} +1 -1
- package/studio/web/assets/{register-C3x9Ze6P.js → register-DyNR2rGk.js} +2 -2
- package/studio/web/assets/{setComponentFile-DpjrRqeG.js → setComponentFile-BkWx8AN3.js} +1 -1
- package/studio/web/assets/{setup-CGiKLZ9e.js → setup-D6LZS78d.js} +2 -2
- package/studio/web/assets/{status-CGJwrNPH.js → status-BCWnn70o.js} +1 -1
- package/studio/web/assets/{toggleHighContrast-C-Ne6P7T.js → toggleHighContrast-pyeGJ6W1.js} +1 -1
- package/studio/web/assets/{tsMode-CSreYTys.js → tsMode-CGV3iaWC.js} +1 -1
- package/studio/web/assets/{typescript-MnxBk89W.js → typescript-Ci7Khvwo.js} +1 -1
- package/studio/web/assets/{useEntityRestURL-TNrh77-s.js → useEntityRestURL-DNiz3aZ0.js} +1 -1
- package/studio/web/assets/{workers-BfZlUNVI.js → workers-byzxjbqy.js} +1 -1
- package/studio/web/assets/{xml-BHd6qGH7.js → xml-DGnHQ3CX.js} +1 -1
- package/studio/web/assets/{yaml-C53R8OQq.js → yaml-BUoTnPWb.js} +1 -1
- package/studio/web/index.html +2 -2
- package/upgrade/directives/5-3-0.ts +10 -3
- package/utility/durableFile.ts +96 -0
- package/utility/errors/hdbError.ts +9 -0
- package/utility/hdbTerms.ts +1 -0
- package/validation/configValidator.ts +31 -0
- package/studio/web/assets/index-72cEH474.css +0 -1
|
@@ -63,6 +63,15 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
63
63
|
renewIdleTimeout() {
|
|
64
64
|
this.timeout = Math.max(txnExpiration, this.timeoutBudget ?? 0);
|
|
65
65
|
}
|
|
66
|
+
markNativeCommitSubmitted() {
|
|
67
|
+
super.markNativeCommitSubmitted();
|
|
68
|
+
this.timeout = Math.max(this.timeout || 0, txnExpiration, this.timeoutBudget ?? 0);
|
|
69
|
+
trackedTxns.add(this);
|
|
70
|
+
}
|
|
71
|
+
nativeCommitAttemptEnded() {
|
|
72
|
+
if (!this.readTxn)
|
|
73
|
+
trackedTxns.delete(this);
|
|
74
|
+
}
|
|
66
75
|
getReadTxn() {
|
|
67
76
|
// used optimistically
|
|
68
77
|
this.readTxnRefCount = (this.readTxnRefCount || 0) + 1;
|
|
@@ -79,6 +88,7 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
79
88
|
// Get a read transaction from lmdb-js; make sure we do this first, as it can fail, we don't want to leave the transaction in a bad state with readTxnsUsed > 0
|
|
80
89
|
this.readTxn = this.db.useReadTransaction();
|
|
81
90
|
this.readTxnsUsed = 1;
|
|
91
|
+
this.baseReadRefConsumed = false;
|
|
82
92
|
if (this.readTxn.openTimer)
|
|
83
93
|
this.readTxn.openTimer = 0;
|
|
84
94
|
trackedTxns.add(this);
|
|
@@ -106,8 +116,12 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
106
116
|
this.readTxn.done();
|
|
107
117
|
}
|
|
108
118
|
if (--this.readTxnsUsed === 0) {
|
|
109
|
-
|
|
119
|
+
// A submitted write remains monitor-visible after its separate read snapshot is released.
|
|
120
|
+
// nativeCommitAttemptEnded() removes this enrollment once the outcome is known.
|
|
121
|
+
if (!this.nativeCommitSubmitted)
|
|
122
|
+
trackedTxns.delete(this);
|
|
110
123
|
this.readTxn = null;
|
|
124
|
+
this.completeDeferredContextRelease();
|
|
111
125
|
}
|
|
112
126
|
}
|
|
113
127
|
disregardReadTxn() {
|
|
@@ -116,14 +130,16 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
116
130
|
}
|
|
117
131
|
}
|
|
118
132
|
addWrite(operation) {
|
|
119
|
-
if (this.timedOut)
|
|
133
|
+
if (this.timedOut || this.postSubmitPoisoned)
|
|
120
134
|
throw (0, DatabaseTransaction_1.transactionOpenTooLongError)();
|
|
121
|
-
if (this.
|
|
122
|
-
throw
|
|
123
|
-
}
|
|
135
|
+
if (this.disconnected)
|
|
136
|
+
throw (0, DatabaseTransaction_1.requestAbortedError)();
|
|
124
137
|
if (this.open === exports.TRANSACTION_STATE.LINGERING) {
|
|
125
138
|
// if the transaction is lingering, it is already committed, so we need to commit the write immediately
|
|
126
139
|
const immediateTxn = new ImmediateTransaction(this.db);
|
|
140
|
+
// The throwaway owns this write, so it owns the request's cancellation too: this settled chain
|
|
141
|
+
// would neither refuse on its behalf nor ever release a subscription taken for it.
|
|
142
|
+
immediateTxn.requestSignal = (this.root ?? this).requestSignal;
|
|
127
143
|
immediateTxn.addWrite(operation);
|
|
128
144
|
const result = immediateTxn.commit({});
|
|
129
145
|
// Nothing may be sent back to this throwaway: the write is already committed, and its
|
|
@@ -137,6 +153,10 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
137
153
|
}
|
|
138
154
|
return result;
|
|
139
155
|
}
|
|
156
|
+
this.admitRequestWrite();
|
|
157
|
+
if (this.open === exports.TRANSACTION_STATE.CLOSED) {
|
|
158
|
+
throw new Error('Can not use a transaction that is no longer open');
|
|
159
|
+
}
|
|
140
160
|
this.linkWrite(operation);
|
|
141
161
|
this.writes.push(operation); // standard path, add to current transaction
|
|
142
162
|
(this.ownedWrites ??= new WeakSet()).add(operation);
|
|
@@ -151,9 +171,21 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
151
171
|
/**
|
|
152
172
|
* Resolves with information on the timestamp and success of the commit
|
|
153
173
|
*/
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
174
|
+
performCommit(options = {}) {
|
|
175
|
+
const next = this.next;
|
|
176
|
+
let result;
|
|
177
|
+
try {
|
|
178
|
+
result = this.performCommitAttempt(options);
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
this.abortCommitFailure(error, next);
|
|
182
|
+
}
|
|
183
|
+
if (typeof result?.then === 'function')
|
|
184
|
+
return result.catch((error) => this.abortCommitFailure(error, next));
|
|
185
|
+
return result;
|
|
186
|
+
}
|
|
187
|
+
/** Preserve the synchronous empty-commit path while the outer method funnels every failure once. */
|
|
188
|
+
performCommitAttempt(options = {}) {
|
|
157
189
|
options = options || {};
|
|
158
190
|
let txnTime = this.timestamp;
|
|
159
191
|
if (!txnTime)
|
|
@@ -163,88 +195,86 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
163
195
|
const retries = options.retries || 0;
|
|
164
196
|
// now validate
|
|
165
197
|
if (this.validated < this.writes.length) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
(0, DatabaseTransaction_1.validateWrite)(write, this.timestamp, this);
|
|
176
|
-
}
|
|
177
|
-
finally {
|
|
178
|
-
(0, DatabaseTransaction_1.closeWriteInstance)(write);
|
|
179
|
-
}
|
|
198
|
+
const start = this.validated;
|
|
199
|
+
// record the number of writes that have been validated so if we re-execute
|
|
200
|
+
// and the number is increased we can validate the new entries
|
|
201
|
+
this.validated = this.writes.length;
|
|
202
|
+
for (let i = start; i < this.validated; i++) {
|
|
203
|
+
const write = this.writes[i];
|
|
204
|
+
try {
|
|
205
|
+
if (write)
|
|
206
|
+
(0, DatabaseTransaction_1.validateWrite)(write, this.timestamp, this);
|
|
180
207
|
}
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
208
|
+
finally {
|
|
209
|
+
(0, DatabaseTransaction_1.closeWriteInstance)(write);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
let hasBefore;
|
|
213
|
+
for (let i = start; i < this.validated; i++) {
|
|
214
|
+
const write = this.writes[i];
|
|
215
|
+
if (!write)
|
|
216
|
+
continue;
|
|
217
|
+
if (write.before || write.beforeIntermediate) {
|
|
218
|
+
hasBefore = true;
|
|
189
219
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
completion = [completion, nextCompletion];
|
|
214
|
-
}
|
|
220
|
+
}
|
|
221
|
+
// Now we need to let any "before" actions execute. These are calls to the sources,
|
|
222
|
+
// and we want to follow the order of the source sequence so that later, more canonical
|
|
223
|
+
// source writes will finish (with right to refuse/abort) before proceeeding to less
|
|
224
|
+
// canonical sources.
|
|
225
|
+
if (hasBefore) {
|
|
226
|
+
// see `committing` in DatabaseTransaction (issue #2062)
|
|
227
|
+
this.setCommitPhase(true);
|
|
228
|
+
const stagedWrites = this.writes.length;
|
|
229
|
+
return (async () => {
|
|
230
|
+
try {
|
|
231
|
+
for (let phase = 0; phase < 2; phase++) {
|
|
232
|
+
let completion;
|
|
233
|
+
for (let i = start; i < this.validated; i++) {
|
|
234
|
+
const write = this.writes[i];
|
|
235
|
+
if (!write)
|
|
236
|
+
continue;
|
|
237
|
+
const before = write[phase === 0 ? 'before' : 'beforeIntermediate'];
|
|
238
|
+
if (before) {
|
|
239
|
+
const nextCompletion = before();
|
|
240
|
+
if (completion) {
|
|
241
|
+
if (completion.push)
|
|
242
|
+
completion.push(nextCompletion);
|
|
215
243
|
else
|
|
216
|
-
completion = nextCompletion;
|
|
244
|
+
completion = [completion, nextCompletion];
|
|
217
245
|
}
|
|
246
|
+
else
|
|
247
|
+
completion = nextCompletion;
|
|
218
248
|
}
|
|
219
|
-
if (completion)
|
|
220
|
-
await (completion.push ? Promise.all(completion) : completion);
|
|
221
249
|
}
|
|
250
|
+
if (completion)
|
|
251
|
+
await (completion.push ? Promise.all(completion) : completion);
|
|
222
252
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
this.abort();
|
|
226
|
-
throw error;
|
|
227
|
-
}
|
|
253
|
+
}
|
|
254
|
+
finally {
|
|
228
255
|
this.setCommitPhase(false);
|
|
229
|
-
|
|
256
|
+
}
|
|
257
|
+
// aborted underneath us while parked above — see DatabaseTransaction's twin guard. A chain
|
|
258
|
+
// poisoned after one of its stores submitted rides the cascade instead (abortAndPoison).
|
|
259
|
+
if (!this.poisonedMidCommit) {
|
|
230
260
|
if (this.timedOut)
|
|
231
261
|
throw (0, DatabaseTransaction_1.transactionOpenTooLongError)();
|
|
232
|
-
if (
|
|
233
|
-
throw
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
this.abort();
|
|
240
|
-
throw error;
|
|
262
|
+
if (this.disconnected)
|
|
263
|
+
throw (0, DatabaseTransaction_1.requestAbortedError)();
|
|
264
|
+
}
|
|
265
|
+
if (stagedWrites > 0 && this.writes.length === 0 && this.open === exports.TRANSACTION_STATE.CLOSED)
|
|
266
|
+
throw new hdbError_ts_1.ServerError('Transaction was aborted while its commit was waiting on pre-commit work', 500);
|
|
267
|
+
return this.commit({ ...options, continuation: true });
|
|
268
|
+
})();
|
|
241
269
|
}
|
|
242
270
|
}
|
|
243
271
|
if (!retries && this.writes.some((write) => write))
|
|
244
272
|
this.renewChainForNativeCommit();
|
|
245
273
|
// release the read snapshot so we don't keep it open longer than necessary
|
|
246
|
-
if (!retries)
|
|
274
|
+
if (!retries && !this.baseReadRefConsumed) {
|
|
275
|
+
this.baseReadRefConsumed = true;
|
|
247
276
|
this.doneReadTxn();
|
|
277
|
+
}
|
|
248
278
|
this.open = options?.doneWriting ? exports.TRANSACTION_STATE.LINGERING : exports.TRANSACTION_STATE.OPEN;
|
|
249
279
|
let resolution;
|
|
250
280
|
const completions = [];
|
|
@@ -298,6 +328,7 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
298
328
|
if (db?.retryRisk)
|
|
299
329
|
db.retryRisk *= 0.99; // gradually decay the retry risk
|
|
300
330
|
if (this.writes.length + (db?.retryRisk || 0) < MAX_OPTIMISTIC_SIZE >> retries) {
|
|
331
|
+
this.markNativeCommitSubmitted();
|
|
301
332
|
nextCondition();
|
|
302
333
|
if (commitCompletions) {
|
|
303
334
|
if (resolution) {
|
|
@@ -312,6 +343,7 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
312
343
|
else {
|
|
313
344
|
// if it is too big to expect optimistic writes to work, or we have done too many retries we use
|
|
314
345
|
// a real LMDB transaction to get exclusive access to reading and writing
|
|
346
|
+
this.markNativeCommitSubmitted();
|
|
315
347
|
const transactionResolution = this.writes[0].store.transaction(() => {
|
|
316
348
|
for (const write of this.writes) {
|
|
317
349
|
// we load latest data while in the transaction
|
|
@@ -327,17 +359,19 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
327
359
|
return resolution.then((resolution) => {
|
|
328
360
|
if (resolution) {
|
|
329
361
|
if (this.next) {
|
|
330
|
-
completions.push(this.next.commit(options));
|
|
362
|
+
completions.push(this.next.commit({ ...options, continuation: true }));
|
|
331
363
|
}
|
|
332
364
|
if (options?.flush) {
|
|
333
|
-
|
|
365
|
+
const store = this.writes[0]?.store;
|
|
366
|
+
if (store)
|
|
367
|
+
completions.push(store.flushed);
|
|
334
368
|
}
|
|
335
369
|
if (this.replicatedConfirmation) {
|
|
336
370
|
// if we want to wait for replication confirmation, we need to track the transaction times
|
|
337
371
|
// and when replication notifications come in, we count the number of confirms until we reach the desired number
|
|
338
|
-
const databaseName = this.writes[0]
|
|
372
|
+
const databaseName = this.writes[0]?.store.rootStore.databaseName;
|
|
339
373
|
const lastEntry = this.lastConfirmableEntry();
|
|
340
|
-
if (confirmReplication && lastEntry)
|
|
374
|
+
if (confirmReplication && databaseName && lastEntry)
|
|
341
375
|
completions.push(confirmReplication(databaseName, lastEntry.localTime, this.replicatedConfirmation));
|
|
342
376
|
}
|
|
343
377
|
// commit succeeded; clean up files for any writes whose commit-handler took an early-return,
|
|
@@ -369,7 +403,8 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
369
403
|
options.retries = retries + 1;
|
|
370
404
|
else
|
|
371
405
|
options = { retries: 1 };
|
|
372
|
-
|
|
406
|
+
// A continuation: a poison that landed mid-commit must not abandon the retry ladder.
|
|
407
|
+
return this.commit({ ...options, continuation: true }); // try again
|
|
373
408
|
}
|
|
374
409
|
});
|
|
375
410
|
}
|
|
@@ -378,7 +413,7 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
378
413
|
};
|
|
379
414
|
if (this.next) {
|
|
380
415
|
// now run any other transactions
|
|
381
|
-
const nextResolution = this.next?.commit(options);
|
|
416
|
+
const nextResolution = this.next?.commit({ ...options, continuation: true });
|
|
382
417
|
if (nextResolution?.then)
|
|
383
418
|
return nextResolution?.then((nextResolution) => ({
|
|
384
419
|
txnTime,
|
|
@@ -388,20 +423,86 @@ class LMDBTransaction extends DatabaseTransaction_1.DatabaseTransaction {
|
|
|
388
423
|
}
|
|
389
424
|
return txnResolution;
|
|
390
425
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
426
|
+
abortCommitFailure(error, next) {
|
|
427
|
+
const nextWasAttached = Boolean(next && this.next === next);
|
|
428
|
+
try {
|
|
429
|
+
this.abort(true);
|
|
430
|
+
}
|
|
431
|
+
catch (abortError) {
|
|
432
|
+
harperLogger.debug?.('aborting LMDB transaction after a failed commit', abortError);
|
|
433
|
+
}
|
|
434
|
+
// A detached pre-submit child has no other cleanup path. A submitted child owns an unknown native
|
|
435
|
+
// outcome and will clean itself when its own commit promise settles.
|
|
436
|
+
if (next && !nextWasAttached && !next.nativeCommitSubmitted) {
|
|
437
|
+
try {
|
|
438
|
+
next.abort(true);
|
|
439
|
+
}
|
|
440
|
+
catch (abortError) {
|
|
441
|
+
harperLogger.debug?.('aborting a detached LMDB transaction after a failed commit', abortError);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
throw error;
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Force-release the retained read snapshot without touching staged writes. The base class's
|
|
448
|
+
* version acts on `this.transaction`; LMDB's snapshot lives on `this.readTxn`, so the monitor
|
|
449
|
+
* would otherwise have nothing that can reclaim a handle abort(true) retained.
|
|
450
|
+
*/
|
|
451
|
+
releaseReadTxn() {
|
|
452
|
+
while (this.readTxn && this.readTxnsUsed > 0)
|
|
453
|
+
this.doneReadTxn();
|
|
454
|
+
this.completeDeferredContextRelease();
|
|
455
|
+
}
|
|
456
|
+
abort(retainReadTransaction = false, cascade = true) {
|
|
457
|
+
const next = cascade ? this.next : undefined;
|
|
458
|
+
if (cascade && !retainReadTransaction)
|
|
459
|
+
this.next = null;
|
|
460
|
+
try {
|
|
461
|
+
const hasOpenReadIterator = retainReadTransaction &&
|
|
462
|
+
this.readTxn &&
|
|
463
|
+
(this.readTxnsUsed > 1 || (this.baseReadRefConsumed && this.readTxnsUsed > 0));
|
|
464
|
+
if (hasOpenReadIterator) {
|
|
465
|
+
if (!this.baseReadRefConsumed) {
|
|
466
|
+
this.doneReadTxn();
|
|
467
|
+
this.baseReadRefConsumed = true;
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
else {
|
|
471
|
+
while (this.readTxnsUsed > 0)
|
|
472
|
+
this.doneReadTxn(); // release the read snapshot when we abort, we assume we don't need it
|
|
473
|
+
}
|
|
474
|
+
this.open = exports.TRANSACTION_STATE.CLOSED;
|
|
475
|
+
this.drainCompletions();
|
|
476
|
+
// Any blobs that were pre-saved as part of these writes will never be referenced; schedule deletion
|
|
477
|
+
// (retaining any fileId the current on-disk record still references — an aborted write may carry an
|
|
478
|
+
// already-saved blob shared with the surviving record; see harper-pro#406).
|
|
479
|
+
for (const write of this.writes) {
|
|
480
|
+
if (write?.savedBlobs)
|
|
481
|
+
(0, blob_ts_1.cleanupUnusedBlobs)(write.savedBlobs, (0, blob_ts_1.collectRetainedFileIds)(write.store.getEntry(write.key)?.value));
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
finally {
|
|
485
|
+
try {
|
|
486
|
+
this.open = exports.TRANSACTION_STATE.CLOSED;
|
|
487
|
+
this.endScopeOwnership();
|
|
488
|
+
this.clearWrites();
|
|
489
|
+
this.releaseContext(!this.timedOut && !this.disconnected);
|
|
490
|
+
if (!this.root)
|
|
491
|
+
this.releaseRequestAbortListener();
|
|
492
|
+
}
|
|
493
|
+
finally {
|
|
494
|
+
// Same guard as DatabaseTransaction.abort(): a child whose native commit is outstanding owns
|
|
495
|
+
// its own cleanup, and clearing its writes here would unlink blobs that commit still references.
|
|
496
|
+
if (next && !(next.nativeCommitSubmitted && next.commitsInFlight)) {
|
|
497
|
+
try {
|
|
498
|
+
next.abort(retainReadTransaction);
|
|
499
|
+
}
|
|
500
|
+
catch (error) {
|
|
501
|
+
harperLogger.debug?.('cleaning up a chained LMDB transaction during abort', error);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
}
|
|
402
505
|
}
|
|
403
|
-
// reset the transaction
|
|
404
|
-
this.clearWrites();
|
|
405
506
|
}
|
|
406
507
|
save(..._args) {
|
|
407
508
|
// noop for LMDB
|
|
@@ -415,6 +516,7 @@ class ImmediateTransaction extends LMDBTransaction {
|
|
|
415
516
|
this.db = db;
|
|
416
517
|
}
|
|
417
518
|
save(..._args) {
|
|
519
|
+
this.admitRequestWrite(); // a deferred save reaches here without passing through addWrite()
|
|
418
520
|
return this.commit();
|
|
419
521
|
}
|
|
420
522
|
// @ts-expect-error accessor overriding property
|
|
@@ -438,6 +540,30 @@ function startMonitoringTxns() {
|
|
|
438
540
|
const commitChainHead = txn.commitChainHead ?? txn;
|
|
439
541
|
if (txn.timeout <= 0) {
|
|
440
542
|
const url = txn.getContext()?.url;
|
|
543
|
+
if ((0, DatabaseTransaction_1.deferForCommitInFlight)(txn, url, txnExpiration))
|
|
544
|
+
continue;
|
|
545
|
+
if (txn.open === exports.TRANSACTION_STATE.CLOSED &&
|
|
546
|
+
!txn.commitAttemptDoomedByPoison() &&
|
|
547
|
+
(0, DatabaseTransaction_1.shouldSpareCommitPhase)(txn, checkedCommitPhaseChains)) {
|
|
548
|
+
harperLogger.warn?.(`Transaction has been in its commit phase past the open-transaction limit, waiting on pre-commit work; letting it complete, from table: ${txn.db?.name + (url ? ' path: ' + url : '')}`);
|
|
549
|
+
txn.timeout = Math.max(txnExpiration, txn.timeoutBudget ?? 0);
|
|
550
|
+
continue;
|
|
551
|
+
}
|
|
552
|
+
if (txn.open === exports.TRANSACTION_STATE.CLOSED) {
|
|
553
|
+
// Only reachable through abort(true), which retained the snapshot for read iterators
|
|
554
|
+
// that own it. Nothing else here can reclaim it: the branches below would re-enter
|
|
555
|
+
// commit() on a poisoned transaction every tick, throw on its own poison check, and
|
|
556
|
+
// re-arm the timer — pinning an LMDB read snapshot, which blocks free-page reuse and
|
|
557
|
+
// grows the data file, for the life of the process. Close the owning iterators first so
|
|
558
|
+
// the reference comes back through doneReadTxn(), and force the release if it does not.
|
|
559
|
+
const closedIterators = txn.closeOwnedReadIterators();
|
|
560
|
+
if (closedIterators > 0 || txn.readTxn)
|
|
561
|
+
harperLogger.warn?.(`Read iterators held a closed transaction's snapshot past the open-transaction limit; ${txn.readTxn ? 'releasing it' : `closed ${closedIterators} abandoned iterator(s)`}, from table: ${txn.db?.name + (url ? ' path: ' + url : '')}`);
|
|
562
|
+
if (txn.readTxn)
|
|
563
|
+
txn.releaseReadTxn();
|
|
564
|
+
trackedTxns.delete(txn);
|
|
565
|
+
continue;
|
|
566
|
+
}
|
|
441
567
|
if ((0, DatabaseTransaction_1.shouldSpareCommitPhase)(txn, checkedCommitPhaseChains)) {
|
|
442
568
|
// see DatabaseTransaction's monitor (issue #2062)
|
|
443
569
|
harperLogger.warn?.(`Transaction has been in its commit phase past the open-transaction limit, waiting on pre-commit work (e.g. a large blob write); letting it complete, from table: ${txn.db?.name + (url ? ' path: ' + url : '')}`, ...(txn.startedFrom ? [`was started from ${txn.startedFrom.resourceName}.${txn.startedFrom.method}`] : []));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LMDBTransaction.js","sourceRoot":"","sources":["../../resources/LMDBTransaction.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"LMDBTransaction.js","sourceRoot":"","sources":["../../resources/LMDBTransaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -945,10 +945,9 @@ function recordUpdater(store, tableId, auditStore) {
|
|
|
945
945
|
extendedType |= auditStore_ts_1.HAS_ADDITIONAL_AUDIT_REFS;
|
|
946
946
|
}
|
|
947
947
|
if (options?.localOnly) {
|
|
948
|
-
// Mark this write as local-only: set the bit in BOTH the persisted record metadata
|
|
949
|
-
// (so the full-copy send loop, which reads entry.metadataFlags, skips it) AND the audit
|
|
950
|
-
// entry's extendedType (so the audit-forward send path skips it by bitmask without decode).
|
|
951
948
|
metadataInNextEncoding |= auditStore_ts_1.LOCAL_ONLY;
|
|
949
|
+
}
|
|
950
|
+
if (options?.localOnly || options?.auditLocalOnly) {
|
|
952
951
|
extendedType |= auditStore_ts_1.LOCAL_ONLY;
|
|
953
952
|
}
|
|
954
953
|
if (previousResidencyId !== residencyId) {
|