@lossless.org/client 1.23.0 → 1.23.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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/nosqldb/classes.db.js +4 -7
- package/dist_ts/nosqldb/classes.session.js +17 -12
- package/dist_ts/nosqldb/classes.writerevisions.d.ts +39 -17
- package/dist_ts/nosqldb/classes.writerevisions.js +163 -126
- package/package.json +1 -1
- package/readme.md +1 -1
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/nosqldb/classes.db.ts +2 -6
- package/ts/nosqldb/classes.session.ts +20 -12
- package/ts/nosqldb/classes.writerevisions.ts +214 -156
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@lossless.org/client',
|
|
6
|
-
version: '1.23.
|
|
6
|
+
version: '1.23.1',
|
|
7
7
|
description: 'One typed client for NoSQLDB, MongoDB, SQLDB, MariaDB, ClickHouse and S3 object storage.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxzQkFBc0I7SUFDNUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLDBGQUEwRjtDQUN4RyxDQUFBIn0=
|
|
@@ -8,7 +8,7 @@ import { collectionTopologyDbInspectionSymbol } from './classes.collectiontopolo
|
|
|
8
8
|
import { inspectSmartdataNamespace, } from './classes.namespaceinspection.js';
|
|
9
9
|
import { addSmartdataWriteObserver, } from './classes.writeobserver.js';
|
|
10
10
|
import { changeSmartdataReadSetsOfDb, trackSmartdataReads, } from './classes.readtracker.js';
|
|
11
|
-
import { bumpSmartdataWriteRevisionEpoch, configureSmartdataWriteRevisions, ensureSmartdataWriteRevisions, isSmartdataWriteRevisionsActive,
|
|
11
|
+
import { bumpSmartdataWriteRevisionEpoch, configureSmartdataWriteRevisions, ensureSmartdataWriteRevisions, isSmartdataWriteRevisionsActive, } from './classes.writerevisions.js';
|
|
12
12
|
import { configureSmartdataWriteLog, ensureSmartdataWriteLog, followSmartdataWrites, isSmartdataWriteLogActive, stopSmartdataWriteFollowers, } from './classes.writelog.js';
|
|
13
13
|
import { requireOperationSignal, requireOperationTimeoutMS, } from './classes.operationdeadline.js';
|
|
14
14
|
export { SmartdataSession } from './classes.session.js';
|
|
@@ -212,11 +212,8 @@ export class SmartdataDb {
|
|
|
212
212
|
try {
|
|
213
213
|
const closeErrors = [];
|
|
214
214
|
try {
|
|
215
|
-
// Followers
|
|
216
|
-
const backgroundStop =
|
|
217
|
-
stopSmartdataWriteFollowers(this),
|
|
218
|
-
stopSmartdataWriteRevisionCompactions(this),
|
|
219
|
-
]);
|
|
215
|
+
// Followers abort at once; their reads end with the client otherwise.
|
|
216
|
+
const backgroundStop = stopSmartdataWriteFollowers(this);
|
|
220
217
|
if (budget)
|
|
221
218
|
await budget.waitFor(backgroundStop);
|
|
222
219
|
await backgroundStop;
|
|
@@ -604,4 +601,4 @@ export class SmartdataDb {
|
|
|
604
601
|
};
|
|
605
602
|
}
|
|
606
603
|
}
|
|
607
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25vc3FsZGIvY2xhc3Nlcy5kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIseUJBQXlCLEdBQzFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEYsT0FBTyxFQUNMLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLHdDQUF3QyxHQUN6QyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCx5QkFBeUIsR0FHMUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQ0wseUJBQXlCLEdBRTFCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixtQkFBbUIsR0FFcEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGdDQUFnQyxFQUNoQyw2QkFBNkIsRUFDN0IsK0JBQStCLEVBQy9CLHFDQUFxQyxHQUV0QyxNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLHFCQUFxQixFQUNyQix5QkFBeUIsRUFDekIsMkJBQTJCLEdBSTVCLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qix5QkFBeUIsR0FDMUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV4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
|
|
604
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kYi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL25vc3FsZGIvY2xhc3Nlcy5kYi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUV4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixvQkFBb0IsRUFDcEIseUJBQXlCLEdBQzFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEYsT0FBTyxFQUNMLHNCQUFzQixFQUN0QiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBQ2hCLHdDQUF3QyxHQUN6QyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3ZGLE9BQU8sRUFDTCx5QkFBeUIsR0FHMUIsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxQyxPQUFPLEVBQ0wseUJBQXlCLEdBRTFCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLDJCQUEyQixFQUMzQixtQkFBbUIsR0FFcEIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGdDQUFnQyxFQUNoQyw2QkFBNkIsRUFDN0IsK0JBQStCLEdBRWhDLE1BQU0sNkJBQTZCLENBQUM7QUFDckMsT0FBTyxFQUNMLDBCQUEwQixFQUMxQix1QkFBdUIsRUFDdkIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QiwyQkFBMkIsR0FJNUIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLHlCQUF5QixHQUMxQixNQUFNLGdDQUFnQyxDQUFDO0FBRXhDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBeUI1RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNGLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIsMkJBQTJCLEdBRTVCLE1BQU0scUJBQXFCLENBQUM7QUF5SDdCLE1BQU0seUJBQXlCLEdBQUcsS0FBSyxDQUFDO0FBQ3hDLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDO0FBRXpDLE1BQU0scUJBQXFCLEdBQUcsQ0FDNUIsUUFBaUIsRUFDakIsZUFBa0MsRUFDbEMsY0FBc0IsRUFDdEIsYUFBYSxHQUFHLEtBQUssRUFDSSxFQUFFO0lBQzNCLElBQ0UsUUFBUSxLQUFLLElBQUk7UUFDakIsT0FBTyxRQUFRLEtBQUssUUFBUTtRQUM1QixLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUN2QixNQUFNLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQ3BELENBQUM7UUFDRCxNQUFNLElBQUkseUJBQXlCLENBQ2pDLGtCQUFrQixFQUNsQixHQUFHLGNBQWMsMEJBQTBCLENBQzVDLENBQUM7SUFDSixDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxJQUNFLENBQUMsQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQzFELENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssZUFBZSxDQUFDLE1BQU0sQ0FBQztRQUM5RSxJQUFJLENBQUMsSUFBSSxDQUNQLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDVCxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUNsRSxFQUNELENBQUM7UUFDRCxNQUFNLElBQUkseUJBQXlCLENBQ2pDLGtCQUFrQixFQUNsQixHQUFHLGNBQWMsd0JBQXdCLENBQzFDLENBQUM7SUFDSixDQUFDO0lBQ0QsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFnQixFQUFFLENBQUM7UUFDbkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxPQUFPLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUM1QyxNQUFNLElBQUkseUJBQXlCLENBQ2pDLGtCQUFrQixFQUNsQixHQUFHLGNBQWMscUNBQXFDLENBQ3ZELENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sUUFBbUMsQ0FBQztBQUM3QyxDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sV0FBVztJQUN0QixnQkFBZ0IsQ0FBc0I7SUFDdEMsYUFBYSxDQUErQjtJQUM1QyxPQUFPLENBQXNCO0lBQzdCLE1BQU0sQ0FBb0I7SUFDMUIsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2RCxzQkFBc0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUE0QixDQUFDO0lBQ3ZFLGNBQWMsR0FBK0IsU0FBUyxDQUFDO0lBQ3ZELGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbkIsd0JBQXdCLEdBQTBDLElBQUksQ0FBQztJQUN2RSxhQUFhLENBQStCO0lBQ3BELHVGQUF1RjtJQUMvRSxhQUFhLENBQXlDO0lBQ3RELG1CQUFtQixHQUE2QiwyQkFBMkIsQ0FBQztJQUM1RSxpQkFBaUIsQ0FBNEI7SUFFckQsWUFBWSxnQkFBcUM7UUFDL0MsZ0NBQWdDLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hFLDBCQUEwQixDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsS0FBSyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsaUVBQWlFO0lBQ2pFLElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2hDLENBQUM7SUFFRCxtRkFBbUY7SUFDekUsbUJBQW1CLENBQUMsV0FBcUM7UUFDakUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFdBQVcsQ0FBQztRQUN2QyxNQUFNLE9BQU8sR0FBRyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxLQUFLLFNBQVM7WUFDNUMsQ0FBQyxDQUFDLFNBQVM7WUFDWCxDQUFDLENBQUMsNEJBQTRCLENBQUMsT0FBTyxFQUFFLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVELFlBQVk7SUFDTCxLQUFLLENBQUMsZUFBZSxDQUFjLFNBQWlCO1FBQ3pELE1BQU0sU0FBUyxHQUFHLElBQUksU0FBUyxDQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsd0VBQXdFO0lBRXhFOztPQUVHO0lBQ0ksS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQTBCLEVBQUU7UUFDdEQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTTtZQUN4QyxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUMxRixJQUFJLENBQUM7WUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFBQyxDQUFDO1FBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztZQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUFDLE1BQU0sUUFBUSxDQUFDO1FBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLHdGQUF3RjtRQUN4RixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxlQUF3RCxDQUFDO1FBQzdELElBQUksQ0FBQztZQUNILElBQUksQ0FBQztnQkFDSCxNQUFNLGFBQWEsR0FBdUM7b0JBQ3hELFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVyxJQUFJLEdBQUc7b0JBQzFDLGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYSxJQUFJLE1BQU07b0JBQ2pELHdCQUF3QixFQUN0QixNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksVUFBVSxDQUFDLHdCQUF3QixJQUFJLEtBQUs7b0JBQ3ZFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztvQkFDN0QsZUFBZSxFQUFFLFVBQVUsQ0FBQyxlQUFlLElBQUksS0FBSztvQkFDcEQsV0FBVyxFQUFFLElBQUk7aUJBQ2xCLENBQUM7Z0JBRUYsZUFBZSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQy9DLDJCQUEyQixDQUFDLFVBQVUsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUMxRCxJQUFJLENBQUMsYUFBYSxHQUFHLGVBQWUsQ0FBQztnQkFDckMsTUFBTSxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7Z0JBQ3pDLElBQUksbUJBQThDLENBQUM7Z0JBQ25ELE1BQU0sT0FBTyxHQUFHLEdBQUcsRUFBRTtvQkFDbkIsbUJBQW1CLEtBQUssZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2pELHlEQUF5RDtvQkFDekQsS0FBSyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzNDLENBQUMsQ0FBQztnQkFDRixNQUFNLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDbEUsSUFBSSxDQUFDO29CQUNILE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztvQkFDaEIsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDakMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNsQixDQUFDO3dCQUFTLENBQUM7b0JBQ1QsTUFBTSxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7b0JBQ3JELElBQUksbUJBQW1CO3dCQUFFLE1BQU0sbUJBQW1CLENBQUM7Z0JBQ3JELENBQUM7Z0JBQ0QsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLEVBQUUsQ0FDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsQ0FDbEMsQ0FBQztnQkFDRixLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO29CQUNoRSxVQUFVLENBQUMseUJBQXlCLEVBQUUsQ0FBQztnQkFDekMsQ0FBQztnQkFDRCxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLHdFQUF3RTtnQkFDeEUsd0VBQXdFO2dCQUN4RSxJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSw0QkFBNEIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDbEYsaUdBQWlHO2dCQUNqRyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksK0JBQStCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDMUMsTUFBTSw2QkFBNkIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztvQkFDN0UsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNsQixDQUFDO2dCQUNELElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDcEMsTUFBTSx1QkFBdUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixFQUFFLENBQUMsQ0FBQztvQkFDdkUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNsQixDQUFDO2dCQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsZUFBZSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQztnQkFDM0IsZUFBZSxHQUFHLFNBQVMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDO2dCQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDdkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUseUJBQXlCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1lBQ25GLENBQUM7WUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO2dCQUNmLElBQUksWUFBcUIsQ0FBQztnQkFDMUIsSUFBSSxlQUFlLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDO3dCQUNILHFFQUFxRTt3QkFDckUsTUFBTSxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7d0JBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO29CQUNqQyxDQUFDO29CQUFDLE9BQU8sUUFBUSxFQUFFLENBQUM7d0JBQ2xCLFlBQVksR0FBRyxRQUFRLENBQUM7b0JBQzFCLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsQ0FBQztnQkFDcEYsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsOENBQThDLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxNQUFNLElBQUkseUJBQXlCLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLGFBQWE7d0JBQzdFLENBQUMsQ0FBQyx1RUFBdUU7d0JBQ3pFLENBQUMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO2dCQUM3RCxDQUFDO2dCQUNELE1BQU0sVUFBVSxHQUFHLElBQUkseUJBQXlCLENBQUMsdUJBQXVCLEVBQ3RFLG9DQUFvQyxFQUNwQyxFQUFFLEtBQUssRUFBRSw4QkFBOEIsQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLFlBQVk7b0JBQUUsTUFBTSxJQUFJLGNBQWMsQ0FDeEMsQ0FBQyxVQUFVLEVBQUUsOEJBQThCLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDLEVBQ3RFLHVFQUF1RSxDQUFDLENBQUM7Z0JBQzNFLE1BQU0sVUFBVSxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbkMsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQTJCLEVBQUU7UUFDeEQsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQzVGLE1BQU0sTUFBTSxHQUFHLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDO1FBQzdCLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUMvRCxJQUFJLENBQUM7WUFDSCxNQUFNLFdBQVcsR0FBYyxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDO2dCQUNILHNFQUFzRTtnQkFDdEUsTUFBTSxjQUFjLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3pELElBQUksTUFBTTtvQkFBRSxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQ2pELE1BQU0sY0FBYyxDQUFDO1lBQ3ZCLENBQUM7WUFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdCLENBQUM7WUFDRCxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxZQUFZLEdBQUcsMkJBQTJCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRiw0RUFBNEU7Z0JBQzVFLHFFQUFxRTtnQkFDckUsMEVBQTBFO2dCQUMxRSx3QkFBd0I7Z0JBQ3hCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLElBQUksTUFBTTtvQkFBRSxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQy9DLE1BQU0sWUFBWSxDQUFDO1lBQ3JCLENBQUM7WUFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO2dCQUNsQixXQUFXLENBQUMsSUFBSSxDQUNkLEdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQ3RFLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDO29CQUNILE1BQU0sZUFBZSxHQUFHLE1BQU0sY0FBYyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO29CQUN0RixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7d0JBQ3JCLE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsdUJBQXVCLEVBQ3ZCLDZEQUE2RCxDQUM5RCxDQUFDO29CQUNKLENBQUM7Z0JBQ0gsQ0FBQztnQkFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO29CQUNsQixXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM3QixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDO29CQUNILElBQUksTUFBTTt3QkFBRSxNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7b0JBQ2hELG1GQUFtRjtvQkFDbkYsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUM7b0JBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO29CQUMvQixJQUFJLE9BQU8sQ0FBQyxNQUFNO3dCQUFFLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQztvQkFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQ2pDLENBQUM7Z0JBQUMsT0FBTyxRQUFRLEVBQUUsQ0FBQztvQkFDbEIsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztnQkFDekMsSUFBSSxNQUFNLEVBQUUsQ0FBQztvQkFDWCxNQUFNLE1BQU0sQ0FBQyxPQUFPLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDO3dCQUM5RCxDQUFDLENBQUMsMkJBQTJCLENBQzNCLHdFQUF3RSxDQUFDO3dCQUMzRSxDQUFDLENBQUMsSUFBSSx5QkFBeUIsQ0FBQyx1QkFBdUIsRUFDckQsMkRBQTJELENBQUMsQ0FBQztnQkFDbkUsQ0FBQztnQkFDRCxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7b0JBQzdCLE1BQU0sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN2QixDQUFDO2dCQUNELE1BQU0sSUFBSSxjQUFjLENBQ3RCLFdBQVcsRUFDWCx3REFBd0QsQ0FDekQsQ0FBQztZQUNKLENBQUM7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDbkMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsOEJBQThCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQ3pCLFVBQVUsR0FBK0IsRUFBRTtRQUUzQyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDcEMsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsSUFBSSx5QkFBeUIsQ0FBQztRQUNwRSxJQUNFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7WUFDaEMsU0FBUyxJQUFJLENBQUM7WUFDZCxTQUFTLEdBQUcseUJBQXlCLEVBQ3JDLENBQUM7WUFDRCxNQUFNLElBQUkseUJBQXlCLENBQ2pDLGtCQUFrQixFQUNsQix1RUFBdUUseUJBQXlCLEdBQUcsQ0FDcEcsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztRQUMzRCxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBRUQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUNqQyxJQUFJLE1BQU0sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNwQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3pDLElBQUksUUFBdUMsQ0FBQztRQUM1QyxJQUFJLENBQUM7WUFDSCxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUM5QixFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFDWDtnQkFDRSxTQUFTLEVBQUUsU0FBUztnQkFDcEIsTUFBTTthQUNQLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMzRCxDQUFDO1lBQ0QsSUFDRSxJQUFJLENBQUMsY0FBYyxLQUFLLGNBQWM7Z0JBQ3RDLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTztnQkFDeEIsSUFBSSxDQUFDLGFBQWEsS0FBSyxhQUFhLEVBQ3BDLENBQUM7Z0JBQ0QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQ2hDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLGFBQWEsRUFDbkQsU0FBUyxDQUNWLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxLQUFLLFlBQVksT0FBTyxDQUFDLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxDQUFDO2dCQUNoRSxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDM0QsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsSUFDRSxJQUFJLENBQUMsY0FBYyxLQUFLLGNBQWM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEtBQUssYUFBYSxFQUNwQyxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQ2hDLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLGFBQWEsRUFDbkQsU0FBUyxDQUNWLENBQUM7UUFDSixDQUFDO1FBRUQsSUFBSSxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMvRCxDQUFDO1FBRUQsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJO1lBQ1gsTUFBTSxFQUFFLE9BQU87WUFDZixVQUFVLEVBQUUsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLFNBQVM7U0FDMUMsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7Ozs7Ozs7Ozs7Ozs7T0FlRztJQUNJLGFBQWEsQ0FBQyxVQUEwQztRQUM3RCxPQUFPLHlCQUF5QixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0ksS0FBSyxDQUFDLFlBQVksQ0FBQyxVQUEwQztRQUNsRSxPQUFPLHFCQUFxQixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O09Bb0JHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FDckIsS0FBdUM7UUFFdkMsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLEtBQUssQ0FBQyxzQkFBc0IsQ0FDakMsVUFBVSxHQUE0QyxFQUFFO1FBRXhELE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDckYsTUFBTSxPQUFPLEdBQUc7WUFDZCxTQUFTLEVBQUUseUJBQXlCLENBQUMsU0FBUyxFQUFFLGtDQUFrQyxDQUFDO1lBQ25GLE1BQU0sRUFBRSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsK0JBQStCLENBQUM7U0FDeEUsQ0FBQztRQUNGLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxJQUFJLENBQUM7WUFBRSxPQUFPO1FBQ25ELElBQUksQ0FBQztZQUNILE1BQU0sK0JBQStCLENBQUMsSUFBSSxFQUFFO2dCQUMxQyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM1RSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2FBQ3BFLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksb0JBQW9CLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsTUFBTSwyQkFBMkIsQ0FBQyxnRUFBZ0UsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUNoSCxDQUFDO1lBQ0QsTUFBTSxRQUFRLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSSx5QkFBeUI7UUFDOUIsT0FBTyxJQUFJLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxzRkFBc0Y7SUFDL0UsS0FBSyxDQUFDLGdCQUFnQixDQUMzQixVQUFpRDtRQUVqRCxPQUFPLHlCQUF5QixDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsaUdBQWlHO0lBQzFGLEtBQUssQ0FBQyxDQUFDLG9DQUFvQyxDQUFDLENBQ2pELFlBQWdHO1FBRWhHLElBQ0UsSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXO1lBQ25DLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVztZQUMzQixDQUFDLElBQUksQ0FBQyxPQUFPO1lBQ2IsQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUNuQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsYUFBYSxFQUMxQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLHlCQUF5QixDQUNqQyx1QkFBdUIsRUFDdkIsa0VBQWtFLENBQ25FLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQztRQUMzQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDekMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLEVBQUUsQ0FDL0IsSUFBSSxDQUFDLGNBQWMsS0FBSyxXQUFXO1lBQ25DLElBQUksQ0FBQyxNQUFNLEtBQUssV0FBVztZQUMzQixJQUFJLENBQUMsY0FBYyxLQUFLLGNBQWM7WUFDdEMsSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPO1lBQ3hCLElBQUksQ0FBQyxhQUFhLEtBQUssYUFBYTtZQUNwQyxPQUFPLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQztRQUNuQyxJQUFJLE1BQWUsQ0FBQztRQUNwQixJQUFJLENBQUM7WUFDSCxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztvQkFDM0IsTUFBTSxJQUFJLHlCQUF5QixDQUFDLHVCQUF1QixFQUFFLGdEQUFnRCxDQUFDLENBQUM7Z0JBQ2pILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO2dCQUMzQixNQUFNLElBQUkseUJBQXlCLENBQ2pDLHVCQUF1QixFQUN2QixxRUFBcUUsQ0FDdEUsQ0FBQztZQUNKLENBQUM7WUFDRCxNQUFNLElBQUkseUJBQXlCLENBQ2pDLHVCQUF1QixFQUN2Qix3Q0FBd0MsQ0FDekMsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUFDO1lBQzNCLE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsdUJBQXVCLEVBQ3ZCLHFFQUFxRSxDQUN0RSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxxQ0FBcUM7SUFFOUIsYUFBYSxDQUFDLHNCQUFnRDtRQUNuRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsNEJBQTRCLENBQUksT0FBZTtRQUMxRCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLEVBQUU7WUFDbkYsT0FBTyxVQUFVLENBQUMsY0FBYyxLQUFLLE9BQU8sQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVPLHVCQUF1QixDQUFDLFlBQTRDO1FBQzFFLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsWUFBWSxDQUFDO0lBQy9DLENBQUM7SUFFTyxnQ0FBZ0MsQ0FDdEMsWUFBNEM7UUFFNUMsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUkseUJBQXlCLENBQ2pDLHVCQUF1QixFQUN2QixtQ0FBbUMsWUFBWSxVQUFVLElBQUksQ0FBQyx3QkFBd0Isb0JBQW9CLENBQzNHLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFDRSxZQUFZLEtBQUssTUFBTTtZQUN2QixDQUFDLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVztnQkFDbEMsSUFBSSxDQUFDLGNBQWMsS0FBSyxjQUFjLENBQUMsRUFDekMsQ0FBQztZQUNELE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsdUJBQXVCLEVBQ3ZCLHFFQUFxRSxJQUFJLENBQUMsY0FBYyxHQUFHLENBQzVGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVPLHFCQUFxQixDQUMzQixVQUFrQztRQUVsQyxNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUM3RSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsTUFBTSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FDL0MsT0FBTyxDQUFDLFlBQVksRUFDcEIsQ0FBQyxzQkFBc0IsQ0FBQyxFQUN4QixnQ0FBZ0MsQ0FDakMsQ0FBQztRQUNGLE1BQU0sb0JBQW9CLEdBQUcsbUJBQW1CLENBQUMsb0JBQW9CLENBQUM7UUFDdEUsSUFDRSxPQUFPLG9CQUFvQixLQUFLLFFBQVE7WUFDeEMsb0JBQW9CLENBQUMsTUFBTSxLQUFLLENBQUM7WUFDakMsb0JBQW9CLENBQUMsSUFBSSxFQUFFLEtBQUssb0JBQW9CLEVBQ3BELENBQUM7WUFDRCxNQUFNLElBQUkseUJBQXlCLENBQ2pDLGtCQUFrQixFQUNsQiwyRkFBMkYsQ0FDNUYsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUNFLElBQUksQ0FBQyxjQUFjLEtBQUssV0FBVztZQUNuQyxJQUFJLENBQUMsTUFBTSxLQUFLLFdBQVc7WUFDM0IsQ0FBQyxJQUFJLENBQUMsYUFBYTtZQUNuQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQ2IsQ0FBQztZQUNELE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsdUJBQXVCLEVBQ3ZCLGtFQUFrRSxDQUNuRSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsdUJBQXVCLEVBQ3ZCLDBEQUEwRCxDQUMzRCxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDcEQsSUFBSSxvQkFBb0IsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsa0JBQWtCLEVBQ2xCLHVFQUF1RSxDQUN4RSxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsS0FBSyxpQkFBaUIsRUFBRSxDQUFDO1lBQzVELE1BQU0sSUFBSSx5QkFBeUIsQ0FDakMsdUJBQXVCLEVBQ3ZCLHlFQUF5RSxDQUMxRSxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSyxnQkFBZ0IsQ0FDdEIsU0FBc0M7UUFFdEMsSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUMzQyxHQUFpQyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUN2RCxDQUFDLFFBQWlCLEVBQWdDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FDekYsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRU8scUJBQXFCLENBQUMsWUFBNEM7UUFDeEUsSUFBSSxJQUFJLENBQUMsd0JBQXdCLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQztRQUN2QyxDQUFDO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQixDQUFDLFFBQW9DO1FBQzlELElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRU8sMkJBQTJCO1FBTWpDLFFBQVEsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVCLEtBQUssU0FBUztnQkFDWixPQUFPLGlCQUFpQixDQUFDO1lBQzNCLEtBQUssWUFBWTtnQkFDZixPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLG1CQUFtQjtnQkFDdEIsT0FBTyxtQkFBbUIsQ0FBQztZQUM3QixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxTQUFTLENBQUM7WUFDbkIsS0FBSyxRQUFRO2dCQUNYLE9BQU8sUUFBUSxDQUFDO1lBQ2xCLEtBQUssY0FBYztnQkFDakIsT0FBTyxjQUFjLENBQUM7WUFDeEIsS0FBSyxXQUFXO2dCQUNkLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRU8sc0JBQXNCLENBQzVCLFNBQTJDLEVBQzNDLFlBQW9CO1FBRXBCLE9BQU87WUFDTCxLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxhQUFhO1lBQ3JCLE1BQU0sRUFBRSxTQUFTO1lBQ2pCLFVBQVUsRUFBRSxXQUFXLENBQUMsR0FBRyxFQUFFLEdBQUcsWUFBWTtTQUM3QyxDQUFDO0lBQ0osQ0FBQztDQUNGIn0=
|
|
@@ -5,7 +5,7 @@ import { assertDataOptions } from './classes.operationbudget.js';
|
|
|
5
5
|
import { SmartdataPersistenceError, createSmartdataTimeoutError, isMongoDeadlineError, isMongoTransientTransactionError, normalizeDeadlineError, normalizeOrdinaryPersistenceError, } from './classes.persistence.js';
|
|
6
6
|
import { captureSmartdataWrite, hasSmartdataWriteObservers, } from './classes.writeobserver.js';
|
|
7
7
|
import { accountSmartdataOwnWriteRevisions, captureSmartdataCollectionChange, captureSmartdataReadChange, hasSmartdataReadScope, hasSmartdataReadSets, observeSmartdataRead, runSmartdataWrite, writeRevisionIdsOfWrite, } from './classes.readtracker.js';
|
|
8
|
-
import {
|
|
8
|
+
import { beginSmartdataWriteRevisionAttempt, flushSmartdataWriteRevisions, isSmartdataWriteRevisionsActive, readPreviousRevisionIds, sharedRevisionId, writeRevisionsPartitionField, } from './classes.writerevisions.js';
|
|
9
9
|
import { deliverSmartdataWriteLogCommit, flushSmartdataWriteLog, isSmartdataWriteLogActive, requiresSmartdataWriteTransactions, writeLogReportOf, } from './classes.writelog.js';
|
|
10
10
|
/** A transaction whose commit outcome is unknown may have applied its writes. */
|
|
11
11
|
const changeReadsOfTransaction = (writesArg) => {
|
|
@@ -166,12 +166,14 @@ export class SmartdataSession {
|
|
|
166
166
|
let attemptInterruption;
|
|
167
167
|
/** The session-ended rejection the last attempt failed with, and how far that transaction had got. */
|
|
168
168
|
let sessionEnded;
|
|
169
|
-
let
|
|
169
|
+
let revisionAttempt;
|
|
170
170
|
/** The last attempt's write-log entry until the transaction's outcome is known. */
|
|
171
171
|
let logCommit;
|
|
172
172
|
const runAttempt = async () => {
|
|
173
|
-
|
|
174
|
-
|
|
173
|
+
// The last attempt's slots end after this one starts, so it bumps others.
|
|
174
|
+
const attemptStartedAt = performance.now();
|
|
175
|
+
revisionAttempt?.finish(false);
|
|
176
|
+
revisionAttempt = beginSmartdataWriteRevisionAttempt(binding.owner, attemptStartedAt);
|
|
175
177
|
// The driver starts another attempt only once the last one was aborted.
|
|
176
178
|
logCommit?.settle();
|
|
177
179
|
logCommit = undefined;
|
|
@@ -183,6 +185,7 @@ export class SmartdataSession {
|
|
|
183
185
|
binding.transactionCommitReached = false;
|
|
184
186
|
binding.transactionWrites = [];
|
|
185
187
|
binding.revisionBumps = new Set();
|
|
188
|
+
binding.revisionAttempt = revisionAttempt;
|
|
186
189
|
binding.logReports = [];
|
|
187
190
|
binding.logUnplaced = new Set();
|
|
188
191
|
callbackError = undefined;
|
|
@@ -234,8 +237,8 @@ export class SmartdataSession {
|
|
|
234
237
|
// retried with it.
|
|
235
238
|
const mongoDb = binding.client.db(binding.owner.smartdataOptions.mongoDbName);
|
|
236
239
|
if (binding.revisionBumps.size > 0) {
|
|
237
|
-
|
|
238
|
-
await flushSmartdataWriteRevisions(mongoDb, binding.rawSession,
|
|
240
|
+
revisionAttempt.commit();
|
|
241
|
+
await flushSmartdataWriteRevisions(mongoDb, binding.rawSession, revisionAttempt.slots, signal);
|
|
239
242
|
}
|
|
240
243
|
logCommit = await flushSmartdataWriteLog(binding.owner, mongoDb, binding.rawSession, binding.logReports, binding.logUnplaced, signal);
|
|
241
244
|
// The driver commits next; a deadline that expires or a session that
|
|
@@ -326,7 +329,7 @@ export class SmartdataSession {
|
|
|
326
329
|
}
|
|
327
330
|
finally {
|
|
328
331
|
if (!returnedFromCommit) {
|
|
329
|
-
|
|
332
|
+
revisionAttempt?.finish(false);
|
|
330
333
|
logCommit?.settle();
|
|
331
334
|
}
|
|
332
335
|
binding.transactionActive = false;
|
|
@@ -338,6 +341,7 @@ export class SmartdataSession {
|
|
|
338
341
|
binding.transactionEnded = undefined;
|
|
339
342
|
binding.transactionWrites = [];
|
|
340
343
|
binding.revisionBumps = new Set();
|
|
344
|
+
binding.revisionAttempt = undefined;
|
|
341
345
|
binding.logReports = [];
|
|
342
346
|
binding.logUnplaced = new Set();
|
|
343
347
|
}
|
|
@@ -349,7 +353,7 @@ export class SmartdataSession {
|
|
|
349
353
|
changeReadsOfTransaction(committedWrites);
|
|
350
354
|
}
|
|
351
355
|
finally {
|
|
352
|
-
|
|
356
|
+
revisionAttempt?.finish(false);
|
|
353
357
|
}
|
|
354
358
|
throw rejectTransaction(createTransactionSessionEndedError(transactionEnded), outcome);
|
|
355
359
|
}
|
|
@@ -358,9 +362,8 @@ export class SmartdataSession {
|
|
|
358
362
|
accountSmartdataOwnWriteRevisions(binding.owner, committedRevisionBumps);
|
|
359
363
|
}
|
|
360
364
|
finally {
|
|
361
|
-
|
|
365
|
+
revisionAttempt?.finish(true);
|
|
362
366
|
}
|
|
363
|
-
noteSmartdataWriteRevisionEntries(binding.owner, committedRevisionBumps);
|
|
364
367
|
for (const write of committedWrites) {
|
|
365
368
|
write.deliver?.();
|
|
366
369
|
}
|
|
@@ -700,8 +703,10 @@ const bumpTransactionRevisions = (bindingArg, idsArg) => {
|
|
|
700
703
|
const attempt = transactionContext.getStore()?.attempt;
|
|
701
704
|
if (attempt === undefined || attempt !== bindingArg.transactionAttempt)
|
|
702
705
|
return;
|
|
703
|
-
for (const id of idsArg)
|
|
706
|
+
for (const id of idsArg) {
|
|
704
707
|
bindingArg.revisionBumps.add(id);
|
|
708
|
+
bindingArg.revisionAttempt?.bump(id);
|
|
709
|
+
}
|
|
705
710
|
};
|
|
706
711
|
/**
|
|
707
712
|
* Reads, in the write's transaction, the write-revision partitions of the
|
|
@@ -888,4 +893,4 @@ const closeSessionBinding = async (bindingArg, endOptionsArg) => {
|
|
|
888
893
|
export const unwrapSmartdataSessionInvalidationErrors = (errorArg) => errorArg instanceof SmartdataSessionInvalidationAggregateError
|
|
889
894
|
? errorArg.errors
|
|
890
895
|
: undefined;
|
|
891
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLnNlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFHeEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIseUJBQXlCLEdBQzFCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLGdDQUFnQyxFQUNoQyxzQkFBc0IsRUFDdEIsaUNBQWlDLEdBQ2xDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQiwwQkFBMEIsR0FJM0IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLGdDQUFnQyxFQUNoQywwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLHVCQUF1QixHQUd4QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsNEJBQTRCLEVBQzVCLCtCQUErQixFQUMvQixpQ0FBaUMsRUFDakMsdUJBQXVCLEVBQ3ZCLGdCQUFnQixFQUNoQiw0QkFBNEIsR0FDN0IsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQ0wsOEJBQThCLEVBQzlCLHNCQUFzQixFQUN0Qix5QkFBeUIsRUFDekIsa0NBQWtDLEVBQ2xDLGdCQUFnQixHQUVqQixNQUFNLHVCQUF1QixDQUFDO0FBNkMvQixpRkFBaUY7QUFDakYsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLFNB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
|
|
896
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5zZXNzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdHMvbm9zcWxkYi9jbGFzc2VzLnNlc3Npb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFHeEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFNUUsT0FBTyxFQUNMLDBCQUEwQixFQUMxQixzQkFBc0IsRUFDdEIseUJBQXlCLEdBQzFCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDakUsT0FBTyxFQUNMLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0Isb0JBQW9CLEVBQ3BCLGdDQUFnQyxFQUNoQyxzQkFBc0IsRUFDdEIsaUNBQWlDLEdBQ2xDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUNMLHFCQUFxQixFQUNyQiwwQkFBMEIsR0FJM0IsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLGdDQUFnQyxFQUNoQywwQkFBMEIsRUFDMUIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLHVCQUF1QixHQUd4QixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsNEJBQTRCLEVBQzVCLCtCQUErQixFQUUvQix1QkFBdUIsRUFDdkIsZ0JBQWdCLEVBQ2hCLDRCQUE0QixHQUM3QixNQUFNLDZCQUE2QixDQUFDO0FBQ3JDLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3RCLHlCQUF5QixFQUN6QixrQ0FBa0MsRUFDbEMsZ0JBQWdCLEdBRWpCLE1BQU0sdUJBQXVCLENBQUM7QUErQy9CLGlGQUFpRjtBQUNqRixNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBZ0QsRUFBUSxFQUFF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
|
|
@@ -7,10 +7,12 @@ import type { SmartdataOperationDeadline } from './classes.operationdeadline.js'
|
|
|
7
7
|
* partition in the same transaction, and a read set compares the counters it
|
|
8
8
|
* read before its reads with the current ones.
|
|
9
9
|
*
|
|
10
|
-
* A
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* A counter is its base document, which a writer bumps alone, and up to
|
|
11
|
+
* `counterShards - 1` shard documents that overlapping transactions bump
|
|
12
|
+
* instead, so they do not conflict on the base. A list document beside the
|
|
13
|
+
* base holds how many slots are in use, and the transaction that first bumps
|
|
14
|
+
* a slot raises it, so a snapshot reads the bases and lists in one query and
|
|
15
|
+
* only the listed shards of the counters that have any.
|
|
14
16
|
*/
|
|
15
17
|
export interface ISmartdataWriteRevisionsOptions {
|
|
16
18
|
/**
|
|
@@ -35,13 +37,39 @@ export declare const isSmartdataWriteRevisionsActive: (dbArg: SmartdataDb) => bo
|
|
|
35
37
|
export declare const partitionRevisionId: (collectionArg: string, partitionArg: string) => string;
|
|
36
38
|
/** @internal The counter of a collection's writes that no partition can place. */
|
|
37
39
|
export declare const sharedRevisionId: (collectionArg: string) => string;
|
|
40
|
+
/** @internal The document of a counter's slot: the base for slot 0, a shard otherwise. */
|
|
41
|
+
export declare const revisionSlotId: (idArg: string, slotArg: number) => string;
|
|
42
|
+
/** @internal The document that lists how many slots of a counter are in use; none means only the base. */
|
|
43
|
+
export declare const revisionSlotListId: (idArg: string) => string;
|
|
38
44
|
/**
|
|
39
45
|
* @internal The counter a stored value of the partition field belongs to:
|
|
40
46
|
* its partition's for a string the counters can name, the shared one otherwise.
|
|
41
47
|
*/
|
|
42
48
|
export declare const revisionIdOfValue: (collectionArg: string, valueArg: unknown) => string;
|
|
43
49
|
export declare const writeRevisionBumpsOfKey: (keyArg: string, idsArg: ReadonlySet<string>) => number;
|
|
44
|
-
|
|
50
|
+
/**
|
|
51
|
+
* @internal The slots one attempt of a transaction bumps. A counter takes its
|
|
52
|
+
* slot at its first bump in the attempt and holds it until the attempt ends,
|
|
53
|
+
* so no other attempt of this instance commits to it in between.
|
|
54
|
+
*/
|
|
55
|
+
export interface ISmartdataWriteRevisionAttempt {
|
|
56
|
+
/** The slot of each counter the attempt bumps. */
|
|
57
|
+
readonly slots: ReadonlyMap<string, number>;
|
|
58
|
+
/** Takes a slot of a counter the attempt has not bumped yet; once the attempt ended, none. */
|
|
59
|
+
bump(idArg: string): void;
|
|
60
|
+
/**
|
|
61
|
+
* Right before the commit: until the attempt ends, a snapshot of this
|
|
62
|
+
* instance that depends on its counters cannot tell its bumps from those of
|
|
63
|
+
* other processes.
|
|
64
|
+
*/
|
|
65
|
+
commit(): void;
|
|
66
|
+
/**
|
|
67
|
+
* Ends the attempt: releases its slots and, after a commit, makes them the
|
|
68
|
+
* counters' preferred ones. Later calls do nothing.
|
|
69
|
+
*/
|
|
70
|
+
finish(committedArg: boolean): void;
|
|
71
|
+
}
|
|
72
|
+
export declare const beginSmartdataWriteRevisionAttempt: (dbArg: SmartdataDb, attemptStartedAtArg: number) => ISmartdataWriteRevisionAttempt;
|
|
45
73
|
/**
|
|
46
74
|
* @internal The snapshot keys one read depends on. A read the field pins
|
|
47
75
|
* depends on its partitions and the shared counter, which holds every
|
|
@@ -70,19 +98,13 @@ export declare const bumpSmartdataWriteRevisionEpoch: (dbArg: SmartdataDb, optio
|
|
|
70
98
|
}) => Promise<void>;
|
|
71
99
|
/**
|
|
72
100
|
* @internal Bumps the counters a transaction's writes touched, inside that
|
|
73
|
-
* transaction, right before its commit:
|
|
74
|
-
*
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
* @internal Counts the entries a committed transaction of this process added,
|
|
79
|
-
* and starts a compaction of each counter that reached `compactionEntries`.
|
|
80
|
-
* Compactions run in the background; `stopSmartdataWriteRevisionCompactions`
|
|
81
|
-
* ends them.
|
|
101
|
+
* transaction, right before its commit: each in the slot it took. A shard
|
|
102
|
+
* bump first makes sure the counter's list exists and holds the slot; once it
|
|
103
|
+
* does, neither update changes it, so later bumps of listed slots write only
|
|
104
|
+
* their own document. A slot whose value is no number stays as it is, which
|
|
105
|
+
* keeps its counter unknown, and the write still commits.
|
|
82
106
|
*/
|
|
83
|
-
export declare const
|
|
84
|
-
/** @internal Aborts the database's compactions and waits until they settled; `close()` calls it. */
|
|
85
|
-
export declare const stopSmartdataWriteRevisionCompactions: (dbArg: SmartdataDb) => Promise<void>;
|
|
107
|
+
export declare const flushSmartdataWriteRevisions: (mongoDbArg: plugins.mongodb.Db, rawSessionArg: plugins.mongodb.ClientSession, slotsArg: ReadonlyMap<string, number>, signalArg: AbortSignal | undefined) => Promise<void>;
|
|
86
108
|
/**
|
|
87
109
|
* @internal The counters of the documents a write by selector is about to
|
|
88
110
|
* change, read in its transaction before it runs. Snapshot isolation makes
|