axiodb 12.10.26 → 12.11.27
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/lib/Services/CRUD Operation/Delete.operation.js +2 -2
- package/lib/Services/CRUD Operation/Delete.operation.js.map +1 -1
- package/lib/Services/CRUD Operation/Update.operation.js +34 -2
- package/lib/Services/CRUD Operation/Update.operation.js.map +1 -1
- package/lib/Services/Collection/collection.operation.d.ts +6 -1
- package/lib/Services/Collection/collection.operation.js +17 -24
- package/lib/Services/Collection/collection.operation.js.map +1 -1
- package/lib/Services/Database/database.operation.js +4 -0
- package/lib/Services/Database/database.operation.js.map +1 -1
- package/lib/Services/Index/DeleteIndex.service.js +1 -1
- package/lib/Services/Index/DeleteIndex.service.js.map +1 -1
- package/lib/Services/Index/IndexCache.service.d.ts +32 -12
- package/lib/Services/Index/IndexCache.service.js +64 -24
- package/lib/Services/Index/IndexCache.service.js.map +1 -1
- package/lib/Services/Index/InsertIndex.service.js +1 -1
- package/lib/Services/Index/InsertIndex.service.js.map +1 -1
- package/lib/Services/Index/ReadIndex.service.js +1 -1
- package/lib/Services/Index/ReadIndex.service.js.map +1 -1
- package/lib/Services/Transaction/LockManager.service.d.ts +6 -1
- package/lib/Services/Transaction/LockManager.service.js +36 -26
- package/lib/Services/Transaction/LockManager.service.js.map +1 -1
- package/lib/Services/Transaction/Transaction.service.js +22 -3
- package/lib/Services/Transaction/Transaction.service.js.map +1 -1
- package/lib/Services/Transaction/TransactionIndexManager.service.d.ts +2 -2
- package/lib/Services/Transaction/TransactionIndexManager.service.js +23 -28
- package/lib/Services/Transaction/TransactionIndexManager.service.js.map +1 -1
- package/lib/engine/Filesystem/FileManager.d.ts +2 -0
- package/lib/engine/Filesystem/FileManager.js +12 -0
- package/lib/engine/Filesystem/FileManager.js.map +1 -1
- package/package.json +1 -1
|
@@ -72,7 +72,7 @@ class DeleteOperation {
|
|
|
72
72
|
deleteOne() {
|
|
73
73
|
return __awaiter(this, void 0, void 0, function* () {
|
|
74
74
|
var _a;
|
|
75
|
-
const lockManager =
|
|
75
|
+
const lockManager = LockManager_service_1.default.getInstance(this.path);
|
|
76
76
|
const operationId = (0, crypto_1.randomUUID)();
|
|
77
77
|
const timestamp = Date.now();
|
|
78
78
|
let documentId = null;
|
|
@@ -163,7 +163,7 @@ class DeleteOperation {
|
|
|
163
163
|
*/
|
|
164
164
|
deleteMany() {
|
|
165
165
|
return __awaiter(this, void 0, void 0, function* () {
|
|
166
|
-
const lockManager =
|
|
166
|
+
const lockManager = LockManager_service_1.default.getInstance(this.path);
|
|
167
167
|
const operationId = (0, crypto_1.randomUUID)();
|
|
168
168
|
const timestamp = Date.now();
|
|
169
169
|
const acquiredLocks = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Delete.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Delete.operation.ts"],"names":[],"mappings":";AAAA,uDAAuD;;;;;;;;;;;;;;AAMvD,qFAAsD;AACtD,8DAA0D;AAC1D,mFAA0D;AAC1D,+FAAgE;AAChE,sFAA8D;AAC9D,mCAAoC;AAEpC,qBAAqB;AACrB,kFAAoD;AACpD,kFAAmD;AACnD,qFAA0D;AAC1D,iDAAiD;AACjD,kEAAuD;AACvD,uFAAuD;AACvD,6FAA6D;AAC7D;;;GAGG;AACH;IAcE,YACE,cAAsB,EACtB,IAAY,EACZ,SAAuB,EACvB,WAAW,GAAY,KAAK,EAC5B,aAAsB;QARhB,wBAAmB,GAAU,EAAE,CAAC;QAUtC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,cAAc,GAAG,IAAI,yBAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAS,EAAE,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,2DAA2D,CAC5D,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,IAAI,4BAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC,mCAAmC;IACpE,CAAC;IAED,UAAU;IACV;;;;;;;;;;;;;;;;OAgBG;IACU,SAAS;;;YACpB,MAAM,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"Delete.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Delete.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,8 @@ const Create_operation_1 = __importDefault(require("./Create.operation"));
|
|
|
25
25
|
const memory_operation_1 = __importDefault(require("../../Memory/memory.operation"));
|
|
26
26
|
const Keys_1 = require("../../config/Keys/Keys");
|
|
27
27
|
const ReadIndex_service_1 = require("../Index/ReadIndex.service");
|
|
28
|
+
const DeleteIndex_service_1 = __importDefault(require("../Index/DeleteIndex.service"));
|
|
29
|
+
const InsertIndex_service_1 = __importDefault(require("../Index/InsertIndex.service"));
|
|
28
30
|
const LockManager_service_1 = __importDefault(require("../Transaction/LockManager.service"));
|
|
29
31
|
class UpdateOperation {
|
|
30
32
|
constructor(collectionName, path, baseQuery, isEncrypted = false, encryptionKey) {
|
|
@@ -65,7 +67,7 @@ class UpdateOperation {
|
|
|
65
67
|
UpdateOne(newData) {
|
|
66
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
69
|
var _a;
|
|
68
|
-
const lockManager =
|
|
70
|
+
const lockManager = LockManager_service_1.default.getInstance(this.path);
|
|
69
71
|
const operationId = (0, crypto_1.randomUUID)();
|
|
70
72
|
const timestamp = Date.now();
|
|
71
73
|
let documentId = null;
|
|
@@ -137,6 +139,19 @@ class UpdateOperation {
|
|
|
137
139
|
if (!("data" in InsertResponse)) {
|
|
138
140
|
return this.ResponseHelper.Error("Failed to insert data");
|
|
139
141
|
}
|
|
142
|
+
// Keep indexes in sync - but only for fields whose value actually changed.
|
|
143
|
+
const changedOldValues = { documentId };
|
|
144
|
+
const changedNewValues = { documentId };
|
|
145
|
+
for (const key in newData) {
|
|
146
|
+
if (dataForRest[key] !== documentOldData[key]) {
|
|
147
|
+
changedOldValues[key] = dataForRest[key];
|
|
148
|
+
changedNewValues[key] = documentOldData[key];
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (Object.keys(changedOldValues).length > 1) {
|
|
152
|
+
yield new DeleteIndex_service_1.default(this.path).RemoveFromIndex(documentId, changedOldValues).catch(() => { });
|
|
153
|
+
yield new InsertIndex_service_1.default(this.path).InsertToIndex(changedNewValues).catch(() => { });
|
|
154
|
+
}
|
|
140
155
|
// Fire-and-forget: Invalidate cache asynchronously
|
|
141
156
|
memory_operation_1.default.invalidateByDocument(this.path, documentId).catch(() => { });
|
|
142
157
|
return this.ResponseHelper.Success({
|
|
@@ -176,7 +191,7 @@ class UpdateOperation {
|
|
|
176
191
|
*/
|
|
177
192
|
UpdateMany(newData) {
|
|
178
193
|
return __awaiter(this, void 0, void 0, function* () {
|
|
179
|
-
const lockManager =
|
|
194
|
+
const lockManager = LockManager_service_1.default.getInstance(this.path);
|
|
180
195
|
const operationId = (0, crypto_1.randomUUID)();
|
|
181
196
|
const timestamp = Date.now();
|
|
182
197
|
const acquiredLocks = [];
|
|
@@ -226,10 +241,13 @@ class UpdateOperation {
|
|
|
226
241
|
acquiredLocks.push(docId);
|
|
227
242
|
}
|
|
228
243
|
// STEP 4: All locks acquired - now perform updates safely
|
|
244
|
+
const deleteIndexService = new DeleteIndex_service_1.default(this.path);
|
|
245
|
+
const insertIndexService = new InsertIndex_service_1.default(this.path);
|
|
229
246
|
for (let i = 0; i < SearchedData.length; i++) {
|
|
230
247
|
let selectedData = SearchedData[i];
|
|
231
248
|
let fileName = selectedData === null || selectedData === void 0 ? void 0 : selectedData.fileName;
|
|
232
249
|
const documentOldData = selectedData.data;
|
|
250
|
+
const previousData = Object.assign({}, documentOldData);
|
|
233
251
|
// Sort the data if sort is provided
|
|
234
252
|
if (Object.keys(this.sort).length !== 0) {
|
|
235
253
|
const Sorter = new SortData_utils_1.default(SearchedData, this.sort);
|
|
@@ -253,6 +271,20 @@ class UpdateOperation {
|
|
|
253
271
|
if (!("data" in InsertResponse)) {
|
|
254
272
|
return this.ResponseHelper.Error(`Failed to insert data for document ${documentId}`);
|
|
255
273
|
}
|
|
274
|
+
// Keep indexes in sync - only for fields whose value actually changed (see
|
|
275
|
+
// UpdateOne for why: touching unchanged fields reorders their index bucket).
|
|
276
|
+
const changedOldValues = { documentId };
|
|
277
|
+
const changedNewValues = { documentId };
|
|
278
|
+
for (const key in newData) {
|
|
279
|
+
if (previousData[key] !== documentOldData[key]) {
|
|
280
|
+
changedOldValues[key] = previousData[key];
|
|
281
|
+
changedNewValues[key] = documentOldData[key];
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
if (Object.keys(changedOldValues).length > 1) {
|
|
285
|
+
yield deleteIndexService.RemoveFromIndex(documentId, changedOldValues).catch(() => { });
|
|
286
|
+
yield insertIndexService.InsertToIndex(changedNewValues).catch(() => { });
|
|
287
|
+
}
|
|
256
288
|
}
|
|
257
289
|
// Fire-and-forget: Invalidate cache asynchronously
|
|
258
290
|
memory_operation_1.default.invalidateByDocuments(this.path, documentIds).catch(() => { });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Update.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Update.operation.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Update.operation.js","sourceRoot":"","sources":["../../../source/Services/CRUD Operation/Update.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,6 @@ export default class Collection {
|
|
|
17
17
|
private readonly isEncrypted;
|
|
18
18
|
private readonly cryptoInstance?;
|
|
19
19
|
private Converter;
|
|
20
|
-
private Insertion;
|
|
21
20
|
private readonly encryptionKey;
|
|
22
21
|
private readonly IndexManager;
|
|
23
22
|
private readonly indexCache;
|
|
@@ -57,6 +56,12 @@ export default class Collection {
|
|
|
57
56
|
getIndexes(): Promise<ErrorInterface | SuccessInterface>;
|
|
58
57
|
/**
|
|
59
58
|
* Inserts a document into the collection.
|
|
59
|
+
*
|
|
60
|
+
* Routed through a single-operation Transaction so the insert is WAL-backed: if the
|
|
61
|
+
* process crashes between writing the document and updating its index, Transaction.recoverTransactions()
|
|
62
|
+
* (run at collection startup) redoes or undoes it from the WAL instead of leaving a
|
|
63
|
+
* half-written document.
|
|
64
|
+
*
|
|
60
65
|
* @param {object} data - The data to be inserted.
|
|
61
66
|
* @returns {Promise<any>} - A promise that resolves with the response of the insertion operation.
|
|
62
67
|
*/
|
|
@@ -14,7 +14,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
const response_helper_1 = __importDefault(require("../../Helper/response.helper"));
|
|
16
16
|
// Operations
|
|
17
|
-
const Create_operation_1 = __importDefault(require("../CRUD Operation/Create.operation"));
|
|
18
17
|
const Reader_operation_1 = __importDefault(require("../CRUD Operation/Reader.operation"));
|
|
19
18
|
const Delete_operation_1 = __importDefault(require("../CRUD Operation/Delete.operation"));
|
|
20
19
|
const Update_operation_1 = __importDefault(require("../CRUD Operation/Update.operation"));
|
|
@@ -28,7 +27,6 @@ const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helpe
|
|
|
28
27
|
const FolderManager_1 = __importDefault(require("../../engine/Filesystem/FolderManager"));
|
|
29
28
|
const InsertIndex_service_1 = __importDefault(require("../Index/InsertIndex.service"));
|
|
30
29
|
const IndexCache_service_1 = require("../Index/IndexCache.service");
|
|
31
|
-
const memory_operation_1 = __importDefault(require("../../Memory/memory.operation"));
|
|
32
30
|
/**
|
|
33
31
|
* Represents a collection inside a database.
|
|
34
32
|
*/
|
|
@@ -41,11 +39,9 @@ class Collection {
|
|
|
41
39
|
this.Converter = new Converter_helper_1.default();
|
|
42
40
|
this.updatedAt = new Date().toISOString();
|
|
43
41
|
this.encryptionKey = encryptionKey;
|
|
44
|
-
// Initialize the Insertion class
|
|
45
|
-
this.Insertion = new Create_operation_1.default(this.name, this.path);
|
|
46
42
|
this.IndexManager = new InsertIndex_service_1.default(this.path);
|
|
47
43
|
// Initialize and eagerly load index cache for maximum query performance
|
|
48
|
-
this.indexCache =
|
|
44
|
+
this.indexCache = IndexCache_service_1.IndexCache.getInstance(this.path);
|
|
49
45
|
this.indexCache.loadAllIndexes().catch(() => {
|
|
50
46
|
// Silent failure - indexes will load on demand from disk (cold start recovery)
|
|
51
47
|
});
|
|
@@ -124,11 +120,18 @@ class Collection {
|
|
|
124
120
|
}
|
|
125
121
|
/**
|
|
126
122
|
* Inserts a document into the collection.
|
|
123
|
+
*
|
|
124
|
+
* Routed through a single-operation Transaction so the insert is WAL-backed: if the
|
|
125
|
+
* process crashes between writing the document and updating its index, Transaction.recoverTransactions()
|
|
126
|
+
* (run at collection startup) redoes or undoes it from the WAL instead of leaving a
|
|
127
|
+
* half-written document.
|
|
128
|
+
*
|
|
127
129
|
* @param {object} data - The data to be inserted.
|
|
128
130
|
* @returns {Promise<any>} - A promise that resolves with the response of the insertion operation.
|
|
129
131
|
*/
|
|
130
132
|
insert(data) {
|
|
131
133
|
return __awaiter(this, void 0, void 0, function* () {
|
|
134
|
+
var _a;
|
|
132
135
|
// Check if data is empty or not
|
|
133
136
|
if (!data) {
|
|
134
137
|
throw new Error("Data cannot be empty");
|
|
@@ -137,26 +140,16 @@ class Collection {
|
|
|
137
140
|
if (typeof data !== "object") {
|
|
138
141
|
throw new Error("Data must be an object.");
|
|
139
142
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
// Encrypt the data if crypto is enabled
|
|
146
|
-
if (this.cryptoInstance && this.isEncrypted) {
|
|
147
|
-
data = yield this.cryptoInstance.encrypt(this.Converter.ToString(data));
|
|
143
|
+
const txn = this.beginTransaction();
|
|
144
|
+
txn.insert(data);
|
|
145
|
+
const commitResult = yield txn.commit();
|
|
146
|
+
if (!("data" in commitResult) || !((_a = commitResult.data.documentIds) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
147
|
+
return commitResult;
|
|
148
148
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
// Fire-and-forget: Invalidate cache asynchronously for faster response.
|
|
154
|
-
// A brand-new document was never part of any cached result, so per-document invalidation
|
|
155
|
-
// would be a no-op here - a cached "list"/filter query could now be missing it, so the
|
|
156
|
-
// whole collection's cache needs to be dropped (unlike update/delete, which target only
|
|
157
|
-
// the cache entries that already contained the mutated document).
|
|
158
|
-
memory_operation_1.default.invalidateByCollection(this.path).catch(() => { });
|
|
159
|
-
return saveResult;
|
|
149
|
+
return new response_helper_1.default().Success({
|
|
150
|
+
Message: "Data Inserted Successfully",
|
|
151
|
+
documentId: commitResult.data.documentIds[0],
|
|
152
|
+
});
|
|
160
153
|
});
|
|
161
154
|
}
|
|
162
155
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Services/Collection/collection.operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAMA,mFAA0D;AAC1D,aAAa;AACb,
|
|
1
|
+
{"version":3,"file":"collection.operation.js","sourceRoot":"","sources":["../../../source/Services/Collection/collection.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,7 @@ const response_helper_1 = __importDefault(require("../../Helper/response.helper"
|
|
|
34
34
|
const PathSanitizer_helper_1 = __importDefault(require("../../Helper/PathSanitizer.helper"));
|
|
35
35
|
const StatusCode_1 = require("../../config/Keys/StatusCode");
|
|
36
36
|
const Index_service_1 = require("../Index/Index.service");
|
|
37
|
+
const IndexCache_service_1 = require("../Index/IndexCache.service");
|
|
37
38
|
/**
|
|
38
39
|
* Represents a database instance.
|
|
39
40
|
* This class provides methods to create, delete, and manage collections within a database.
|
|
@@ -130,6 +131,9 @@ class Database {
|
|
|
130
131
|
return status;
|
|
131
132
|
}
|
|
132
133
|
yield this.folderManager.DeleteDirectory(collectionPath);
|
|
134
|
+
// Drop the shared index cache for this path - otherwise its cleanup timer
|
|
135
|
+
// keeps running and the registry keeps a stale entry for a deleted collection.
|
|
136
|
+
IndexCache_service_1.IndexCache.releaseInstance(collectionPath);
|
|
133
137
|
return this.ResponseHelper.Success(`Collection: ${collectionName} deleted successfully`);
|
|
134
138
|
}
|
|
135
139
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.operation.js","sourceRoot":"","sources":["../../../source/Services/Database/database.operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,8FAA4D;AAC5D,sFAA8D;AAC9D,0FAAkE;AAClE,gDAAwB;AAExB,qBAAqB;AACrB,8DAA0D;AAC1D,mFAA0D;AAC1D,6FAA8D;AAC9D,6DAA2D;AAM3D,0DAAsD;
|
|
1
|
+
{"version":3,"file":"database.operation.js","sourceRoot":"","sources":["../../../source/Services/Database/database.operation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,8FAA4D;AAC5D,sFAA8D;AAC9D,0FAAkE;AAClE,gDAAwB;AAExB,qBAAqB;AACrB,8DAA0D;AAC1D,mFAA0D;AAC1D,6FAA8D;AAC9D,6DAA2D;AAM3D,0DAAsD;AACtD,oEAAyD;AAUzD;;;GAGG;AACH;IAOE,YAAY,IAAY,EAAE,IAAY;QACpC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;QACzC,IAAI,CAAC,cAAc,GAAG,IAAI,yBAAc,EAAE,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACU,gBAAgB;6DAC3B,cAAsB,EACtB,MAAM,GAAY,KAAK,EACvB,GAAwB;YAExB,kEAAkE;YAClE,MAAM,uBAAuB,GAAG,8BAAa,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;YAEpF,yCAAyC;YACzC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAC/D,8BAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAC3D,CAAC;YACF,MAAM,cAAc,GAAG,8BAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;YAElF,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC,CAAC;YAE3E,IAAI,cAAc,EAAE,CAAC;gBACnB,MAAM,GAAG,cAAc,CAAC,WAAW;oBACjC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC;oBACrC,CAAC,CAAC,KAAK,CAAC;gBACV,GAAG,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;YAC1E,CAAC;YAED,8CAA8C;YAC9C,IAAI,gBAAgB,CAAC,UAAU,KAAK,wBAAW,CAAC,EAAE,EAAE,CAAC;gBACnD,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,uBAAuB,cAAc,EAAE,CAAC,CAAC;YACvD,CAAC;YAED,2CAA2C;YAC3C,MAAM,KAAK,GAAG,IAAI,4BAAY,CAAC,cAAc,CAAC,CAAC;YAC/C,MAAM,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAEhC,iDAAiD;YACjD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBACpB,MAAM,iBAAiB,GAAG,IAAI,4BAAY,CAAC,GAAG,CAAC,CAAC;gBAChD,MAAM,UAAU,GAAG,IAAI,8BAAU,CAC/B,cAAc,EACd,cAAc,EACd,MAAM,EACN,iBAAiB,EACjB,GAAG,CACJ,CAAC;gBACF,iDAAiD;gBACjD,MAAM,IAAI,CAAC,qBAAqB,CAAC;oBAC/B,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,cAAc;oBACpB,aAAa,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;oBAC3C,WAAW,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;iBACnD,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,UAAU,GAAG,IAAI,8BAAU,CAC/B,cAAc,EACd,cAAc,CACf,CAAC;gBACF,iDAAiD;gBACjD,MAAM,IAAI,CAAC,qBAAqB,CAAC;oBAC/B,IAAI,EAAE,cAAc;oBACpB,IAAI,EAAE,cAAc;oBACpB,aAAa,EAAE,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG;oBAC3C,WAAW,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;iBACnD,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC;YACpB,CAAC;QACH,CAAC;KAAA;IAED;;;;QAII;IACS,kBAAkB,CAAC,cAAsB;;YACpD,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC,UAAU,KAAK,wBAAW,CAAC,EAAE,CAAC;QAC9C,CAAC;KAAA;IAED;;;;;OAKG;IACU,gBAAgB,CAC3B,cAAsB;;YAEtB,MAAM,cAAc,GAAG,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YAC5D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YACxE,IAAI,MAAM,CAAC,UAAU,KAAK,wBAAW,CAAC,EAAE,EAAE,CAAC;gBACzC,6BAA6B;gBAC7B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;gBACjE,IAAI,MAAM,IAAI,YAAY,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;oBAClE,OAAO,MAAM,CAAC;gBAChB,CAAC;gBACD,MAAM,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBACzD,0EAA0E;gBAC1E,+EAA+E;gBAC/E,+BAAU,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBAC3C,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAChC,eAAe,cAAc,uBAAuB,CACrD,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAC9B,eAAe,cAAc,iBAAiB,CAC/C,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAED;;;;OAIG;IACU,iBAAiB;;YAC5B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtE,kCAAkC;YAClC,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CACxC,CAAC,UAAkB,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CACtD,CAAC;YACF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CACzD,cAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CACxB,CAAC;YAEF,wBAAwB;YACxB,MAAM,gBAAgB,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAkB,EAAE,EAAE,CAC1C,IAAI,CAAC,wBAAwB,CAAC,UAAU,CAAC,CAC1C,CACF,CAAC;YAEF,uFAAuF;YACvF,qFAAqF;YACrF,oFAAoF;YACpF,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,EAAE,aAAa,EAAE,cAAc,KAAkB,IAAI,EAAjB,QAAQ,UAAK,IAAI,EAArD,iBAA8C,CAAO,CAAC;gBAC5D,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC,CAAC;YAEH,IAAI,MAAM,IAAI,WAAW,IAAI,MAAM,IAAI,SAAS,EAAE,CAAC;gBACjD,MAAM,gBAAgB,GAAyB;oBAC7C,WAAW,EAAE,IAAI,CAAC,IAAI;oBACtB,QAAQ,EAAE,IAAI,CAAC,IAAI;oBACnB,WAAW,EAAE,IAAI;oBACjB,gBAAgB,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,cAAc;oBAC1D,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBAC9D,iBAAiB,EAAE,WAAW,CAAC,IAAI;oBACnC,oBAAoB,EAAE,wBAAwB;oBAC9C,mBAAmB,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,UAAkB,EAAE,EAAE,CAC/D,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CACjC;iBACF,CAAC;gBACF,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,sBAAsB,CACjC,cAAsB;;YAEtB,MAAM,cAAc,GAAgB,IAAI,qBAAW,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,UAAU,CACjD,GAAG,IAAI,CAAC,IAAI,kBAAkB,CAC/B,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;YAC9E,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CACrE,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBACzE,CAAC;gBACD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CACjC,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAC3D,CAAC;gBACF,MAAM,cAAc,CAAC,SAAS,CAC5B,GAAG,IAAI,CAAC,IAAI,kBAAkB,EAC9B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAC5B,CAAC;gBACF,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAChC,2BAA2B,cAAc,uBAAuB,CACjE,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;;;;;OAaG;IACW,qBAAqB,CAAC,cAAkC;;YACpE,MAAM,cAAc,GAAgB,IAAI,qBAAW,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,UAAU,CACjD,GAAG,IAAI,CAAC,IAAI,kBAAkB,CAC/B,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAChC,MAAM,cAAc,CAAC,SAAS,CAC5B,GAAG,IAAI,CAAC,IAAI,kBAAkB,EAC9B,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,CAAC,CAAC,CACjC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CACrE,CAAC;gBACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC7B,OAAO,IAAI,yBAAc,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;gBAC1E,CAAC;gBACD,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CACjC,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAChE,CAAC;gBACF,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC5B,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC9B,MAAM,cAAc,CAAC,SAAS,CAC5B,GAAG,IAAI,CAAC,IAAI,kBAAkB,EAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CACzB,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAED;;;;;;;;;;;;OAYG;IACW,wBAAwB,CACpC,cAAsB;;YAEtB,MAAM,cAAc,GAAgB,IAAI,qBAAW,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,UAAU,CACjD,GAAG,IAAI,CAAC,IAAI,kBAAkB,CAC/B,CAAC;YACF,IAAI,WAAW,CAAC,MAAM,IAAI,KAAK,EAAE,CAAC;gBAChC,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CACzB,CAAC,MAAM,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,IAAI,CACrE,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAClC,CAAC,IAAwB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,cAAc,CAC3D,CAAC;YACF,OAAO,cAAc,CAAC;QACxB,CAAC;KAAA;CACF"}
|
|
@@ -28,7 +28,7 @@ const IndexCache_service_1 = require("./IndexCache.service");
|
|
|
28
28
|
class DeleteIndex extends Index_service_1.IndexManager {
|
|
29
29
|
constructor(path) {
|
|
30
30
|
super(path);
|
|
31
|
-
this.indexCache =
|
|
31
|
+
this.indexCache = IndexCache_service_1.IndexCache.getInstance(path);
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Removes a document from all matching indexes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeleteIndex.service.js","sourceRoot":"","sources":["../../../source/Services/Index/DeleteIndex.service.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAuD;AACvD,iDAAiD;AACjD,mDAA+C;AAC/C,6DAAkD;AAElD;;;;;;;;;;;GAWG;AACH,iBAAiC,SAAQ,4BAAY;IAGnD,YAAY,IAAY;QACtB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"DeleteIndex.service.js","sourceRoot":"","sources":["../../../source/Services/Index/DeleteIndex.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,23 +19,44 @@ interface IndexData {
|
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
21
|
* ```typescript
|
|
22
|
-
* const indexCache =
|
|
22
|
+
* const indexCache = IndexCache.getInstance('/path/to/collection');
|
|
23
23
|
* await indexCache.loadAllIndexes(); // Eager load
|
|
24
24
|
* const indexData = await indexCache.getIndex('email'); // O(1) memory access
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
export declare class IndexCache {
|
|
28
|
+
private static instances;
|
|
28
29
|
private cache;
|
|
29
30
|
private readonly indexFolderPath;
|
|
30
31
|
private readonly indexMetaPath;
|
|
31
32
|
private readonly fileManager;
|
|
32
33
|
private readonly converter;
|
|
33
|
-
private
|
|
34
|
+
private lockChains;
|
|
34
35
|
private cleanupInterval;
|
|
35
36
|
private static readonly MIN_TTL_MS;
|
|
36
37
|
private static readonly MAX_TTL_MS;
|
|
37
38
|
private static readonly CLEANUP_INTERVAL_MS;
|
|
38
|
-
constructor(
|
|
39
|
+
private constructor();
|
|
40
|
+
/**
|
|
41
|
+
* Returns the shared IndexCache for a collection path, creating it on first use.
|
|
42
|
+
* All index services (Insert/Read/Delete/Collection) must go through this instead of
|
|
43
|
+
* constructing their own instance, otherwise locking and caching are per-call and
|
|
44
|
+
* provide no real coordination.
|
|
45
|
+
*
|
|
46
|
+
* @param collectionPath - Absolute path of the collection this cache belongs to
|
|
47
|
+
*/
|
|
48
|
+
static getInstance(collectionPath: string): IndexCache;
|
|
49
|
+
/**
|
|
50
|
+
* Releases the shared IndexCache for a collection path (e.g. when the collection
|
|
51
|
+
* itself is deleted), stopping its cleanup timer and dropping it from the registry.
|
|
52
|
+
*
|
|
53
|
+
* @param collectionPath - Absolute path of the collection whose cache should be released
|
|
54
|
+
*/
|
|
55
|
+
static releaseInstance(collectionPath: string): void;
|
|
56
|
+
/**
|
|
57
|
+
* Stops the cleanup timer and clears cached state. Called via releaseInstance().
|
|
58
|
+
*/
|
|
59
|
+
dispose(): void;
|
|
39
60
|
/**
|
|
40
61
|
* Generates a random TTL between 5-15 minutes
|
|
41
62
|
* Randomization prevents cache stampede (thundering herd problem)
|
|
@@ -91,20 +112,19 @@ export declare class IndexCache {
|
|
|
91
112
|
*/
|
|
92
113
|
invalidateAll(): Promise<void>;
|
|
93
114
|
/**
|
|
94
|
-
*
|
|
95
|
-
*
|
|
115
|
+
* Acquires a per-field mutex, queuing behind any in-flight holder for the same key.
|
|
116
|
+
*
|
|
117
|
+
* Implemented as a chained promise queue: each call captures the current tail of the
|
|
118
|
+
* chain, awaits it (so it truly blocks until every earlier holder has released), then
|
|
119
|
+
* appends its own pending promise as the new tail. The caller MUST invoke the returned
|
|
120
|
+
* release function exactly once (typically in a `finally` block) to hand the lock to
|
|
121
|
+
* the next queued waiter.
|
|
96
122
|
*
|
|
97
123
|
* @param key - The lock key (typically field name)
|
|
124
|
+
* @returns A release function that unblocks the next waiter for this key
|
|
98
125
|
* @private
|
|
99
126
|
*/
|
|
100
127
|
private acquireLock;
|
|
101
|
-
/**
|
|
102
|
-
* Releases the lock for a specific key
|
|
103
|
-
*
|
|
104
|
-
* @param key - The lock key to release
|
|
105
|
-
* @private
|
|
106
|
-
*/
|
|
107
|
-
private releaseLock;
|
|
108
128
|
/**
|
|
109
129
|
* Gets current cache statistics for monitoring
|
|
110
130
|
*
|
|
@@ -30,7 +30,7 @@ const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helpe
|
|
|
30
30
|
*
|
|
31
31
|
* @example
|
|
32
32
|
* ```typescript
|
|
33
|
-
* const indexCache =
|
|
33
|
+
* const indexCache = IndexCache.getInstance('/path/to/collection');
|
|
34
34
|
* await indexCache.loadAllIndexes(); // Eager load
|
|
35
35
|
* const indexData = await indexCache.getIndex('email'); // O(1) memory access
|
|
36
36
|
* ```
|
|
@@ -43,9 +43,49 @@ class IndexCache {
|
|
|
43
43
|
this.indexMetaPath = `${this.indexFolderPath}/index.meta.json`;
|
|
44
44
|
this.fileManager = new FileManager_1.default();
|
|
45
45
|
this.converter = new Converter_helper_1.default();
|
|
46
|
-
this.
|
|
46
|
+
this.lockChains = new Map();
|
|
47
47
|
this.startCleanupInterval();
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns the shared IndexCache for a collection path, creating it on first use.
|
|
51
|
+
* All index services (Insert/Read/Delete/Collection) must go through this instead of
|
|
52
|
+
* constructing their own instance, otherwise locking and caching are per-call and
|
|
53
|
+
* provide no real coordination.
|
|
54
|
+
*
|
|
55
|
+
* @param collectionPath - Absolute path of the collection this cache belongs to
|
|
56
|
+
*/
|
|
57
|
+
static getInstance(collectionPath) {
|
|
58
|
+
let instance = IndexCache.instances.get(collectionPath);
|
|
59
|
+
if (!instance) {
|
|
60
|
+
instance = new IndexCache(collectionPath);
|
|
61
|
+
IndexCache.instances.set(collectionPath, instance);
|
|
62
|
+
}
|
|
63
|
+
return instance;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Releases the shared IndexCache for a collection path (e.g. when the collection
|
|
67
|
+
* itself is deleted), stopping its cleanup timer and dropping it from the registry.
|
|
68
|
+
*
|
|
69
|
+
* @param collectionPath - Absolute path of the collection whose cache should be released
|
|
70
|
+
*/
|
|
71
|
+
static releaseInstance(collectionPath) {
|
|
72
|
+
const instance = IndexCache.instances.get(collectionPath);
|
|
73
|
+
if (instance) {
|
|
74
|
+
instance.dispose();
|
|
75
|
+
IndexCache.instances.delete(collectionPath);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Stops the cleanup timer and clears cached state. Called via releaseInstance().
|
|
80
|
+
*/
|
|
81
|
+
dispose() {
|
|
82
|
+
if (this.cleanupInterval) {
|
|
83
|
+
clearInterval(this.cleanupInterval);
|
|
84
|
+
this.cleanupInterval = null;
|
|
85
|
+
}
|
|
86
|
+
this.cache.clear();
|
|
87
|
+
this.lockChains.clear();
|
|
88
|
+
}
|
|
49
89
|
/**
|
|
50
90
|
* Generates a random TTL between 5-15 minutes
|
|
51
91
|
* Randomization prevents cache stampede (thundering herd problem)
|
|
@@ -193,7 +233,7 @@ class IndexCache {
|
|
|
193
233
|
updateIndex(fieldName, indexData) {
|
|
194
234
|
return __awaiter(this, void 0, void 0, function* () {
|
|
195
235
|
// Acquire lock for this field to prevent concurrent writes
|
|
196
|
-
yield this.acquireLock(fieldName);
|
|
236
|
+
const release = yield this.acquireLock(fieldName);
|
|
197
237
|
try {
|
|
198
238
|
const indexPath = `${this.indexFolderPath}/${fieldName}${Keys_1.General.DBMS_File_EXT}`;
|
|
199
239
|
// Write to disk first for durability (disk = source of truth)
|
|
@@ -211,7 +251,7 @@ class IndexCache {
|
|
|
211
251
|
return true;
|
|
212
252
|
}
|
|
213
253
|
finally {
|
|
214
|
-
|
|
254
|
+
release();
|
|
215
255
|
}
|
|
216
256
|
});
|
|
217
257
|
}
|
|
@@ -237,35 +277,31 @@ class IndexCache {
|
|
|
237
277
|
});
|
|
238
278
|
}
|
|
239
279
|
/**
|
|
240
|
-
*
|
|
241
|
-
*
|
|
280
|
+
* Acquires a per-field mutex, queuing behind any in-flight holder for the same key.
|
|
281
|
+
*
|
|
282
|
+
* Implemented as a chained promise queue: each call captures the current tail of the
|
|
283
|
+
* chain, awaits it (so it truly blocks until every earlier holder has released), then
|
|
284
|
+
* appends its own pending promise as the new tail. The caller MUST invoke the returned
|
|
285
|
+
* release function exactly once (typically in a `finally` block) to hand the lock to
|
|
286
|
+
* the next queued waiter.
|
|
242
287
|
*
|
|
243
288
|
* @param key - The lock key (typically field name)
|
|
289
|
+
* @returns A release function that unblocks the next waiter for this key
|
|
244
290
|
* @private
|
|
245
291
|
*/
|
|
246
292
|
acquireLock(key) {
|
|
247
293
|
return __awaiter(this, void 0, void 0, function* () {
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
let releaseFn;
|
|
254
|
-
const lockPromise = new Promise((resolve) => {
|
|
255
|
-
releaseFn = resolve;
|
|
294
|
+
var _a;
|
|
295
|
+
const previousTail = (_a = this.lockChains.get(key)) !== null && _a !== void 0 ? _a : Promise.resolve();
|
|
296
|
+
let release;
|
|
297
|
+
const currentLock = new Promise((resolve) => {
|
|
298
|
+
release = resolve;
|
|
256
299
|
});
|
|
257
|
-
this.
|
|
300
|
+
this.lockChains.set(key, previousTail.then(() => currentLock));
|
|
301
|
+
yield previousTail;
|
|
302
|
+
return release;
|
|
258
303
|
});
|
|
259
304
|
}
|
|
260
|
-
/**
|
|
261
|
-
* Releases the lock for a specific key
|
|
262
|
-
*
|
|
263
|
-
* @param key - The lock key to release
|
|
264
|
-
* @private
|
|
265
|
-
*/
|
|
266
|
-
releaseLock(key) {
|
|
267
|
-
this.locks.delete(key);
|
|
268
|
-
}
|
|
269
305
|
/**
|
|
270
306
|
* Gets current cache statistics for monitoring
|
|
271
307
|
*
|
|
@@ -279,6 +315,10 @@ class IndexCache {
|
|
|
279
315
|
}
|
|
280
316
|
}
|
|
281
317
|
exports.IndexCache = IndexCache;
|
|
318
|
+
// One IndexCache per collection path - shared across Insert/Read/Delete/Collection
|
|
319
|
+
// so the lock and the memory cache actually serialize/coordinate across operations
|
|
320
|
+
// instead of each call site racing on its own private state.
|
|
321
|
+
IndexCache.instances = new Map();
|
|
282
322
|
// TTL constants (5-15 minutes in milliseconds)
|
|
283
323
|
IndexCache.MIN_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
284
324
|
IndexCache.MAX_TTL_MS = 15 * 60 * 1000; // 15 minutes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IndexCache.service.js","sourceRoot":"","sources":["../../../source/Services/Index/IndexCache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,uDAAuD;AACvD,iDAAiD;AACjD,sFAA8D;AAC9D,qFAAsD;AAoBtD;;;;;;;;;;;;;;;;GAgBG;AACH;
|
|
1
|
+
{"version":3,"file":"IndexCache.service.js","sourceRoot":"","sources":["../../../source/Services/Index/IndexCache.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,sDAAsD;AACtD,uDAAuD;AACvD,iDAAiD;AACjD,sFAA8D;AAC9D,qFAAsD;AAoBtD;;;;;;;;;;;;;;;;GAgBG;AACH;IAmBE,YAAoB,cAAsB;QAPlC,oBAAe,GAA0C,IAAI,CAAC;QAQpE,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,GAAG,cAAc,UAAU,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,CAAC,eAAe,kBAAkB,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAS,EAAE,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC9B,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,WAAW,CAAC,cAAsB;QAC9C,IAAI,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,UAAU,CAAC,cAAc,CAAC,CAAC;YAC1C,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,eAAe,CAAC,cAAsB;QAClD,MAAM,QAAQ,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1D,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,OAAO,IAAI,CAAC,KAAK,CACf,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAC5F,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,oBAAoB;QAC1B,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO;QAEjC,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;YACtC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,CAAC,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAEnC,8CAA8C;QAC9C,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,qBAAqB;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,MAAmB;QACnC,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACU,cAAc;;YACzB,IAAI,CAAC;gBACH,iCAAiC;gBACjC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;oBACvB,OAAO,CAAC,yBAAyB;gBACnC,CAAC;gBAED,2BAA2B;gBAC3B,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACxE,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBACxB,OAAO;gBACT,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBAE5D,+CAA+C;gBAC/C,MAAM,YAAY,GAAG,SAAS,CAAC,GAAG,CAAC,CAAO,IAAS,EAAE,EAAE;oBACrD,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC;wBAC5B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;wBAEhE,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;4BACxB,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;4BAC7D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE;gCAClC,IAAI,EAAE,SAAS;gCACf,QAAQ,EAAE,IAAI,IAAI,EAAE;gCACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;gCAChD,IAAI,EAAE,SAAS;6BAChB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,4DAA4D;wBAC5D,OAAO,CAAC,KAAK,CAAC,wBAAwB,IAAI,CAAC,cAAc,GAAG,EAAE,KAAK,CAAC,CAAC;oBACvE,CAAC;gBACH,CAAC,CAAA,CAAC,CAAC;gBAEH,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAClC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,+EAA+E;gBAC/E,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;KAAA;IAED;;;;;;OAMG;IACU,QAAQ,CAAC,SAAiB;;YACrC,0CAA0C;YAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,MAAM,EAAE,CAAC;gBACX,4BAA4B;gBAC5B,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;oBAC7B,mCAAmC;gBACrC,CAAC;qBAAM,CAAC;oBACN,OAAO,MAAM,CAAC,IAAI,CAAC;gBACrB,CAAC;YACH,CAAC;YAED,+DAA+D;YAC/D,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,eAAe,IAAI,SAAS,GAAG,cAAO,CAAC,aAAa,EAAE,CAAC;gBACjF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;gBAEhE,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;oBACxB,IAAI,CAAC;wBACH,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBAE7D,kDAAkD;wBAClD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;4BACxB,IAAI,EAAE,SAAS;4BACf,QAAQ,EAAE,IAAI,IAAI,EAAE;4BACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;4BAChD,IAAI,EAAE,SAAS;yBAChB,CAAC,CAAC;wBAEH,OAAO,SAAS,CAAC;oBACnB,CAAC;oBAAC,OAAO,UAAU,EAAE,CAAC;wBACpB,+DAA+D;wBAC/D,OAAO,CAAC,KAAK,CAAC,4BAA4B,SAAS,kBAAkB,CAAC,CAAC;wBACvE,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,4DAA4D;YAC9D,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;KAAA;IAED;;;;;;;OAOG;IACU,WAAW,CAAC,SAAiB,EAAE,SAAoB;;YAC9D,2DAA2D;YAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAElD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,eAAe,IAAI,SAAS,GAAG,cAAO,CAAC,aAAa,EAAE,CAAC;gBAEjF,8DAA8D;gBAC9D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAClD,SAAS,EACT,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CACnC,CAAC;gBAEF,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBACxB,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,iEAAiE;gBACjE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE;oBACxB,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,IAAI,IAAI,EAAE;oBACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,iBAAiB,EAAE;oBAChD,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;gBAEH,OAAO,IAAI,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;KAAA;IAED;;;;;OAKG;IACU,eAAe,CAAC,SAAiB;;YAC5C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC/B,CAAC;KAAA;IAED;;;;OAIG;IACU,aAAa;;YACxB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;KAAA;IAED;;;;;;;;;;;;OAYG;IACW,WAAW,CAAC,GAAW;;;YACnC,MAAM,YAAY,SAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,mCAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAEnE,IAAI,OAAmB,CAAC;YACxB,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;gBAChD,OAAO,GAAG,OAAO,CAAC;YACpB,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAE/D,MAAM,YAAY,CAAC;YACnB,OAAO,OAAQ,CAAC;QAClB,CAAC;KAAA;IAED;;;;OAIG;IACI,aAAa;QAClB,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YAC3B,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SAC1C,CAAC;IACJ,CAAC;CACF;;AAzTC,mFAAmF;AACnF,mFAAmF;AACnF,6DAA6D;AAC9C,oBAAS,GAA4B,IAAI,GAAG,EAAE,AAArC,CAAsC;AAU9D,+CAA+C;AACvB,qBAAU,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,AAAhB,CAAiB,CAAG,YAAY;AAC1C,qBAAU,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,AAAjB,CAAkB,CAAE,aAAa;AAC3C,8BAAmB,GAAG,EAAE,GAAG,IAAI,AAAZ,CAAa,CAAC,uBAAuB"}
|
|
@@ -16,7 +16,7 @@ const IndexCache_service_1 = require("./IndexCache.service");
|
|
|
16
16
|
class InsertIndex extends Index_service_1.IndexManager {
|
|
17
17
|
constructor(path) {
|
|
18
18
|
super(path);
|
|
19
|
-
this.indexCache =
|
|
19
|
+
this.indexCache = IndexCache_service_1.IndexCache.getInstance(path);
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Inserts a document identifier into one or more index files as defined by the global index meta.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InsertIndex.service.js","sourceRoot":"","sources":["../../../source/Services/Index/InsertIndex.service.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAuD;AACvD,iDAAiD;AACjD,mDAA+C;AAC/C,6DAAkD;AAElD,iBAAiC,SAAQ,4BAAY;IAGnD,YAAa,IAAY;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"InsertIndex.service.js","sourceRoot":"","sources":["../../../source/Services/Index/InsertIndex.service.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,uDAAuD;AACvD,iDAAiD;AACjD,mDAA+C;AAC/C,6DAAkD;AAElD,iBAAiC,SAAQ,4BAAY;IAGnD,YAAa,IAAY;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,GAAG,+BAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACjD,CAAC;IAGD;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA4BC;IACY,aAAa,CAAC,QAAa;;YACpC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;YAEhE,IAAI,YAAY,EAAC,CAAC;gBAElB,IAAI,YAAY,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBAC7B,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,IAAI,MAAM,GAAY,KAAK,CAAC;gBAC5B,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACnC,MAAM,SAAS,GAAW,OAAO,CAAC,cAAc,CAAC;oBACjD,MAAM,gBAAgB,GAAG,GAAG,QAAQ,CAAC,UAAU,GAAG,cAAO,CAAC,aAAa,EAAE,CAAC;oBAE1E,6EAA6E;oBAC7E,IAAI,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAE1D,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,iEAAiE;wBACjE,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;wBACnE,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;4BACxB,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;wBACzD,CAAC;6BAAM,CAAC;4BACN,6CAA6C;4BAC7C,SAAS;wBACX,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,SAAS;oBACX,CAAC;oBAED,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAEvC,gCAAgC;oBAChC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,UAAU,CAAC,CAAC;oBACzF,IAAI,WAAW,EAAC,CAAC;wBACf,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;oBAC5D,CAAC;yBACI,CAAC;wBACJ,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBAC1D,CAAC;oBAED,+CAA+C;oBAC/C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBAC9E,MAAM,GAAG,aAAa,CAAC;gBACzB,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KAAA;CAEF"}
|
|
@@ -16,7 +16,7 @@ const IndexCache_service_1 = require("./IndexCache.service");
|
|
|
16
16
|
class ReadIndex extends Index_service_1.IndexManager {
|
|
17
17
|
constructor(path) {
|
|
18
18
|
super(path);
|
|
19
|
-
this.indexCache =
|
|
19
|
+
this.indexCache = IndexCache_service_1.IndexCache.getInstance(path);
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Retrieve file path(s) from an index that match the provided query.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadIndex.service.js","sourceRoot":"","sources":["../../../source/Services/Index/ReadIndex.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAuD;AACvD,mDAA+C;AAC/C,6DAAkD;AAElD,eAAuB,SAAQ,4BAAY;IAGzC,YAAa,IAAY;QACvB,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"ReadIndex.service.js","sourceRoot":"","sources":["../../../source/Services/Index/ReadIndex.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ErrorInterface, SuccessInterface } from "../../config/Interfaces/Helper/response.helper.interface";
|
|
2
2
|
import { LockInfo } from "../../config/Interfaces/Transaction/transaction.interface";
|
|
3
3
|
export default class LockManager {
|
|
4
|
+
private static instances;
|
|
4
5
|
private readonly collectionPath;
|
|
5
6
|
private readonly lockDir;
|
|
6
7
|
private readonly FileManager;
|
|
@@ -9,8 +10,12 @@ export default class LockManager {
|
|
|
9
10
|
private readonly ResponseHelper;
|
|
10
11
|
private readonly maxWaitTime;
|
|
11
12
|
private readonly pollInterval;
|
|
12
|
-
constructor(
|
|
13
|
+
private constructor();
|
|
14
|
+
/** Returns the shared LockManager for a collection path, creating it on first use. */
|
|
15
|
+
static getInstance(collectionPath: string): LockManager;
|
|
13
16
|
acquireLock(documentId: string, transactionId: string, transactionTimestamp: number): Promise<SuccessInterface | ErrorInterface>;
|
|
17
|
+
/** Builds the checksummed lock-file content; keeps format in sync with getLockOwner(). */
|
|
18
|
+
private buildLockContent;
|
|
14
19
|
releaseLock(documentId: string): Promise<SuccessInterface | ErrorInterface>;
|
|
15
20
|
releaseAllLocks(documentIds: string[]): Promise<void>;
|
|
16
21
|
isLocked(documentId: string): Promise<boolean>;
|
|
@@ -29,6 +29,15 @@ class LockManager {
|
|
|
29
29
|
this.Converter = new Converter_helper_1.default();
|
|
30
30
|
this.ResponseHelper = new response_helper_1.default();
|
|
31
31
|
}
|
|
32
|
+
/** Returns the shared LockManager for a collection path, creating it on first use. */
|
|
33
|
+
static getInstance(collectionPath) {
|
|
34
|
+
let instance = LockManager.instances.get(collectionPath);
|
|
35
|
+
if (!instance) {
|
|
36
|
+
instance = new LockManager(collectionPath);
|
|
37
|
+
LockManager.instances.set(collectionPath, instance);
|
|
38
|
+
}
|
|
39
|
+
return instance;
|
|
40
|
+
}
|
|
32
41
|
acquireLock(documentId, transactionId, transactionTimestamp) {
|
|
33
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
34
43
|
try {
|
|
@@ -37,36 +46,22 @@ class LockManager {
|
|
|
37
46
|
yield this.FolderManager.CreateDirectory(this.lockDir);
|
|
38
47
|
}
|
|
39
48
|
const lockFilePath = `${this.lockDir}/${documentId}.lock`;
|
|
49
|
+
const lockContent = this.buildLockContent(documentId, transactionId, transactionTimestamp);
|
|
40
50
|
const startTime = Date.now();
|
|
41
51
|
while (Date.now() - startTime < this.maxWaitTime) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
transactionId,
|
|
47
|
-
lockType: 'WRITE',
|
|
48
|
-
timestamp: transactionTimestamp,
|
|
49
|
-
};
|
|
50
|
-
const lockData = this.Converter.ToString(lockInfo);
|
|
51
|
-
const checksum = (0, crypto_1.createHash)('sha256').update(lockData).digest('hex');
|
|
52
|
-
const lockContent = this.Converter.ToString({ lockInfo, checksum });
|
|
53
|
-
const writeResult = yield this.FileManager.WriteFile(lockFilePath, lockContent);
|
|
54
|
-
if (writeResult.status) {
|
|
55
|
-
return this.ResponseHelper.Success({ message: "Lock acquired", documentId });
|
|
56
|
-
}
|
|
52
|
+
// Atomic acquire-if-free - avoids the FileExists-then-WriteFile race.
|
|
53
|
+
const acquired = yield this.FileManager.WriteFileExclusive(lockFilePath, lockContent);
|
|
54
|
+
if (acquired.status) {
|
|
55
|
+
return this.ResponseHelper.Success({ message: "Lock acquired", documentId });
|
|
57
56
|
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
return this.ResponseHelper.Error(`Deadlock detected: Transaction ${transactionId} aborted (Wait-Die)`);
|
|
68
|
-
}
|
|
57
|
+
// Wait-Die: older transactions wait, younger ones abort.
|
|
58
|
+
const lockOwner = yield this.getLockOwner(documentId);
|
|
59
|
+
if (lockOwner) {
|
|
60
|
+
if (transactionTimestamp < lockOwner.timestamp) {
|
|
61
|
+
yield this.sleep(this.pollInterval);
|
|
62
|
+
continue;
|
|
69
63
|
}
|
|
64
|
+
return this.ResponseHelper.Error(`Deadlock detected: Transaction ${transactionId} aborted (Wait-Die)`);
|
|
70
65
|
}
|
|
71
66
|
yield this.sleep(this.pollInterval);
|
|
72
67
|
}
|
|
@@ -77,6 +72,19 @@ class LockManager {
|
|
|
77
72
|
}
|
|
78
73
|
});
|
|
79
74
|
}
|
|
75
|
+
/** Builds the checksummed lock-file content; keeps format in sync with getLockOwner(). */
|
|
76
|
+
buildLockContent(documentId, transactionId, transactionTimestamp) {
|
|
77
|
+
const lockInfo = {
|
|
78
|
+
documentId,
|
|
79
|
+
transactionId,
|
|
80
|
+
lockType: 'WRITE',
|
|
81
|
+
timestamp: transactionTimestamp,
|
|
82
|
+
};
|
|
83
|
+
const checksum = (0, crypto_1.createHash)('sha256')
|
|
84
|
+
.update(this.Converter.ToString(lockInfo))
|
|
85
|
+
.digest('hex');
|
|
86
|
+
return this.Converter.ToString({ lockInfo, checksum });
|
|
87
|
+
}
|
|
80
88
|
releaseLock(documentId) {
|
|
81
89
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
90
|
try {
|
|
@@ -147,5 +155,7 @@ class LockManager {
|
|
|
147
155
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
148
156
|
}
|
|
149
157
|
}
|
|
158
|
+
// One LockManager per collection path, shared across every caller.
|
|
159
|
+
LockManager.instances = new Map();
|
|
150
160
|
exports.default = LockManager;
|
|
151
161
|
//# sourceMappingURL=LockManager.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LockManager.service.js","sourceRoot":"","sources":["../../../source/Services/Transaction/LockManager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uDAAuD;AACvD,mCAAoC;AAMpC,sFAA8D;AAC9D,0FAAkE;AAClE,qFAAsD;AACtD,mFAA0D;AAE1D;
|
|
1
|
+
{"version":3,"file":"LockManager.service.js","sourceRoot":"","sources":["../../../source/Services/Transaction/LockManager.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,9 +71,9 @@ class Transaction {
|
|
|
71
71
|
this.encryptionKey = encryptionKey;
|
|
72
72
|
this.startTime = Date.now();
|
|
73
73
|
this.WAL = new WriteAheadLog_service_1.default(collectionPath, this.transactionId, isEncrypted, encryptionKey);
|
|
74
|
-
this.LockManager =
|
|
74
|
+
this.LockManager = LockManager_service_1.default.getInstance(collectionPath);
|
|
75
75
|
this.Registry = new TransactionRegistry_service_1.default(collectionPath);
|
|
76
|
-
this.IndexManager = new TransactionIndexManager_service_1.default(collectionPath,
|
|
76
|
+
this.IndexManager = new TransactionIndexManager_service_1.default(collectionPath, isEncrypted, encryptionKey);
|
|
77
77
|
this.ResponseHelper = new response_helper_1.default();
|
|
78
78
|
this.Converter = new Converter_helper_1.default();
|
|
79
79
|
this.FileManager = new FileManager_1.default();
|
|
@@ -218,6 +218,9 @@ class Transaction {
|
|
|
218
218
|
message: "Transaction committed successfully",
|
|
219
219
|
transactionId: this.transactionId,
|
|
220
220
|
operationsCount: this.operations.length,
|
|
221
|
+
documentIds: this.resolvedOperations
|
|
222
|
+
.filter((op) => op.type === 'INSERT' && op.documentId)
|
|
223
|
+
.map((op) => op.documentId),
|
|
221
224
|
});
|
|
222
225
|
}
|
|
223
226
|
catch (error) {
|
|
@@ -271,6 +274,22 @@ class Transaction {
|
|
|
271
274
|
const resolvedOperations = [];
|
|
272
275
|
for (const op of this.operations) {
|
|
273
276
|
if (op.type === 'INSERT') {
|
|
277
|
+
// Guard against documentId collisions. insert() must stay synchronous to
|
|
278
|
+
// keep the chainable API (txn.insert(a).update(b)...), so it can't await
|
|
279
|
+
// a FileExists check itself - do it here instead, before commit() writes
|
|
280
|
+
// anything to disk.
|
|
281
|
+
let documentId = op.documentId;
|
|
282
|
+
let filePath = `${this.collectionPath}/${documentId}${Keys_1.General.DBMS_File_EXT}`;
|
|
283
|
+
while ((yield this.FileManager.FileExists(filePath)).status) {
|
|
284
|
+
documentId = new UniqueGenerator_helper_1.default(15).RandomWord(true);
|
|
285
|
+
filePath = `${this.collectionPath}/${documentId}${Keys_1.General.DBMS_File_EXT}`;
|
|
286
|
+
}
|
|
287
|
+
if (documentId !== op.documentId) {
|
|
288
|
+
op.documentId = documentId;
|
|
289
|
+
if (op.data) {
|
|
290
|
+
op.data = Object.assign(Object.assign({}, op.data), { documentId });
|
|
291
|
+
}
|
|
292
|
+
}
|
|
274
293
|
resolvedOperations.push(op);
|
|
275
294
|
}
|
|
276
295
|
else if (op.type === 'UPDATE' && op.query && op.data) {
|
|
@@ -396,7 +415,7 @@ class Transaction {
|
|
|
396
415
|
const activeTransactions = yield registry.getActiveTransactions();
|
|
397
416
|
for (const txnMeta of activeTransactions) {
|
|
398
417
|
const wal = new WriteAheadLog_service_1.default(collectionPath, txnMeta.transactionId);
|
|
399
|
-
const lockManager =
|
|
418
|
+
const lockManager = LockManager_service_1.default.getInstance(collectionPath);
|
|
400
419
|
if (txnMeta.status === 'COMMITTED' || txnMeta.status === 'PREPARING') {
|
|
401
420
|
yield wal.redo();
|
|
402
421
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.service.js","sourceRoot":"","sources":["../../../source/Services/Transaction/Transaction.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Transaction.service.js","sourceRoot":"","sources":["../../../source/Services/Transaction/Transaction.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,11 @@ export default class TransactionIndexManager {
|
|
|
8
8
|
private readonly Converter;
|
|
9
9
|
private readonly ResponseHelper;
|
|
10
10
|
private readonly ReadIndexService;
|
|
11
|
-
private readonly
|
|
11
|
+
private readonly indexCache;
|
|
12
12
|
private stagedIndexUpdates;
|
|
13
13
|
private readonly isEncrypted;
|
|
14
14
|
private readonly encryptionKey?;
|
|
15
|
-
constructor(collectionPath: string,
|
|
15
|
+
constructor(collectionPath: string, isEncrypted?: boolean, encryptionKey?: string);
|
|
16
16
|
resolveQueryToDocumentIds(query: object): Promise<string[]>;
|
|
17
17
|
stageIndexUpdates(operations: TransactionOperation[]): Promise<void>;
|
|
18
18
|
commitIndexUpdates(): Promise<SuccessInterface | ErrorInterface>;
|
|
@@ -50,19 +50,25 @@ const FileManager_1 = __importDefault(require("../../engine/Filesystem/FileManag
|
|
|
50
50
|
const Converter_helper_1 = __importDefault(require("../../Helper/Converter.helper"));
|
|
51
51
|
const response_helper_1 = __importDefault(require("../../Helper/response.helper"));
|
|
52
52
|
const ReadIndex_service_1 = require("../Index/ReadIndex.service");
|
|
53
|
+
const IndexCache_service_1 = require("../Index/IndexCache.service");
|
|
53
54
|
const Searcher_utils_1 = __importDefault(require("../../utility/Searcher.utils"));
|
|
54
55
|
const BufferLoaderWithWorker_utils_1 = __importDefault(require("../../utility/BufferLoaderWithWorker.utils"));
|
|
55
56
|
class TransactionIndexManager {
|
|
56
|
-
constructor(collectionPath,
|
|
57
|
+
constructor(collectionPath, isEncrypted = false, encryptionKey) {
|
|
58
|
+
// Keyed by fieldName (not file path) - IndexCache.updateIndex() takes the field name
|
|
57
59
|
this.stagedIndexUpdates = new Map();
|
|
58
60
|
this.collectionPath = collectionPath;
|
|
59
|
-
this.transactionId = transactionId;
|
|
60
61
|
this.indexFolderPath = `${collectionPath}/indexes`;
|
|
61
62
|
this.indexMetaPath = `${this.indexFolderPath}/index.meta.json`;
|
|
62
63
|
this.FileManager = new FileManager_1.default();
|
|
63
64
|
this.Converter = new Converter_helper_1.default();
|
|
64
65
|
this.ResponseHelper = new response_helper_1.default();
|
|
65
66
|
this.ReadIndexService = new ReadIndex_service_1.ReadIndex(collectionPath);
|
|
67
|
+
// Same shared cache InsertIndex/DeleteIndex/ReadIndex use - staging reads and
|
|
68
|
+
// committing writes through it (instead of raw file I/O) keeps transactional
|
|
69
|
+
// index changes visible to every other index consumer instead of leaving the
|
|
70
|
+
// cache holding a stale pre-transaction copy.
|
|
71
|
+
this.indexCache = IndexCache_service_1.IndexCache.getInstance(collectionPath);
|
|
66
72
|
this.isEncrypted = isEncrypted;
|
|
67
73
|
this.encryptionKey = encryptionKey;
|
|
68
74
|
}
|
|
@@ -94,13 +100,13 @@ class TransactionIndexManager {
|
|
|
94
100
|
}
|
|
95
101
|
const indexMeta = this.Converter.ToObject(indexMetaContent.data);
|
|
96
102
|
for (const indexMetaEntry of indexMeta) {
|
|
97
|
-
const indexFilePath = indexMetaEntry.path;
|
|
98
103
|
const fieldName = indexMetaEntry.indexFieldName;
|
|
99
|
-
|
|
100
|
-
|
|
104
|
+
// Read through the shared cache (memory hit, or disk on cold start) so
|
|
105
|
+
// staging sees the same up-to-date state every other index consumer does.
|
|
106
|
+
const indexData = yield this.indexCache.getIndex(fieldName);
|
|
107
|
+
if (!indexData) {
|
|
101
108
|
continue;
|
|
102
109
|
}
|
|
103
|
-
const indexData = this.Converter.ToObject(indexContent.data);
|
|
104
110
|
const indexEntries = indexData.indexEntries || {};
|
|
105
111
|
for (const op of operations) {
|
|
106
112
|
if (op.type === 'INSERT' && op.data && op.documentId) {
|
|
@@ -148,7 +154,7 @@ class TransactionIndexManager {
|
|
|
148
154
|
}
|
|
149
155
|
}
|
|
150
156
|
indexData.indexEntries = indexEntries;
|
|
151
|
-
this.stagedIndexUpdates.set(
|
|
157
|
+
this.stagedIndexUpdates.set(fieldName, indexData);
|
|
152
158
|
}
|
|
153
159
|
}
|
|
154
160
|
catch (_a) {
|
|
@@ -159,15 +165,13 @@ class TransactionIndexManager {
|
|
|
159
165
|
commitIndexUpdates() {
|
|
160
166
|
return __awaiter(this, void 0, void 0, function* () {
|
|
161
167
|
try {
|
|
162
|
-
for (const [
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
const
|
|
166
|
-
if (!
|
|
167
|
-
return this.ResponseHelper.Error(
|
|
168
|
+
for (const [fieldName, indexData] of this.stagedIndexUpdates) {
|
|
169
|
+
// updateIndex() writes disk + refreshes the shared in-memory cache under
|
|
170
|
+
// its per-field lock, so every other index consumer sees this immediately.
|
|
171
|
+
const updated = yield this.indexCache.updateIndex(fieldName, indexData);
|
|
172
|
+
if (!updated) {
|
|
173
|
+
return this.ResponseHelper.Error(`Failed to commit index update for field: ${fieldName}`);
|
|
168
174
|
}
|
|
169
|
-
const fs = yield Promise.resolve().then(() => __importStar(require('fs/promises')));
|
|
170
|
-
yield fs.rename(tempFilePath, indexFilePath);
|
|
171
175
|
}
|
|
172
176
|
this.stagedIndexUpdates.clear();
|
|
173
177
|
return this.ResponseHelper.Success({ message: "Index updates committed" });
|
|
@@ -179,19 +183,10 @@ class TransactionIndexManager {
|
|
|
179
183
|
}
|
|
180
184
|
rollbackIndexUpdates() {
|
|
181
185
|
return __awaiter(this, void 0, void 0, function* () {
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
if (fileExists.status) {
|
|
187
|
-
yield this.FileManager.DeleteFile(tempFilePath);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
this.stagedIndexUpdates.clear();
|
|
191
|
-
}
|
|
192
|
-
catch (_a) {
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
186
|
+
// Staged updates only ever lived in memory (this.stagedIndexUpdates) until
|
|
187
|
+
// commitIndexUpdates() wrote them - nothing was persisted, so rolling back is
|
|
188
|
+
// just discarding the staged map.
|
|
189
|
+
this.stagedIndexUpdates.clear();
|
|
195
190
|
});
|
|
196
191
|
}
|
|
197
192
|
getAllDocumentFiles() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionIndexManager.service.js","sourceRoot":"","sources":["../../../source/Services/Transaction/TransactionIndexManager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,iDAAiD;AACjD,sFAA8D;AAC9D,qFAAsD;AACtD,mFAA0D;AAC1D,kEAAuD;AACvD,kFAAoD;AACpD,8GAA0E;AAE1E;
|
|
1
|
+
{"version":3,"file":"TransactionIndexManager.service.js","sourceRoot":"","sources":["../../../source/Services/Transaction/TransactionIndexManager.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,iDAAiD;AACjD,sFAA8D;AAC9D,qFAAsD;AACtD,mFAA0D;AAC1D,kEAAuD;AACvD,oEAAyD;AACzD,kFAAoD;AACpD,8GAA0E;AAE1E;IAcE,YACE,cAAsB,EACtB,WAAW,GAAY,KAAK,EAC5B,aAAsB;QARxB,qFAAqF;QAC7E,uBAAkB,GAAqB,IAAI,GAAG,EAAE,CAAC;QASvD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,GAAG,cAAc,UAAU,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,CAAC,eAAe,kBAAkB,CAAC;QAC/D,IAAI,CAAC,WAAW,GAAG,IAAI,qBAAW,EAAE,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,0BAAS,EAAE,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,IAAI,yBAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,IAAI,6BAAS,CAAC,cAAc,CAAC,CAAC;QACtD,8EAA8E;QAC9E,6EAA6E;QAC7E,6EAA6E;QAC7E,8CAA8C;QAC9C,IAAI,CAAC,UAAU,GAAG,+BAAU,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IAEY,yBAAyB,CAAC,KAAa;;YAClD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAEtE,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,MAAM,QAAQ,GAAG,MAAM,IAAA,sCAAgB,EACrC,SAAS,EACT,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,WAAW,EAChB,IAAI,CACL,CAAC;oBAEF,MAAM,YAAY,GAAG,MAAM,IAAI,wBAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;oBAC5E,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC/D,CAAC;gBAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAClD,MAAM,OAAO,GAAG,MAAM,IAAA,sCAAgB,EACpC,QAAQ,EACR,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,WAAW,EAChB,IAAI,CACL,CAAC;gBAEF,MAAM,YAAY,GAAG,MAAM,IAAI,wBAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;gBAC3E,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/D,CAAC;uBAAO,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;KAAA;IAEY,iBAAiB,CAAC,UAAkC;;YAC/D,IAAI,CAAC;gBACH,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7E,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC;oBAC7B,OAAO;gBACT,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBAEjE,KAAK,MAAM,cAAc,IAAI,SAAS,EAAE,CAAC;oBACvC,MAAM,SAAS,GAAG,cAAc,CAAC,cAAc,CAAC;oBAEhD,uEAAuE;oBACvE,0EAA0E;oBAC1E,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;oBAC5D,IAAI,CAAC,SAAS,EAAE,CAAC;wBACf,SAAS;oBACX,CAAC;oBAED,MAAM,YAAY,GAAG,SAAS,CAAC,YAAY,IAAI,EAAE,CAAC;oBAElD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;wBAC5B,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;4BACrD,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;gCAC7D,MAAM,UAAU,GAAI,EAAE,CAAC,IAAY,CAAC,SAAS,CAAC,CAAC;gCAC/C,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,GAAG,cAAO,CAAC,aAAa,EAAE,CAAC;gCAE5D,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;oCAC9B,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;gCAChC,CAAC;gCACD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oCACjD,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCAC1C,CAAC;4BACH,CAAC;wBACH,CAAC;6BAAM,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;4BAC1E,MAAM,aAAa,GAAI,EAAE,CAAC,OAAe,CAAC,SAAS,CAAC,CAAC;4BACrD,MAAM,aAAa,GAAI,EAAE,CAAC,IAAY,CAAC,SAAS,CAAC,CAAC;4BAClD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,GAAG,cAAO,CAAC,aAAa,EAAE,CAAC;4BAE5D,IAAI,aAAa,KAAK,SAAS,IAAI,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gCAC/D,YAAY,CAAC,aAAa,CAAC,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC,MAAM,CAC9D,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAC9B,CAAC;gCACF,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oCAC7C,OAAO,YAAY,CAAC,aAAa,CAAC,CAAC;gCACrC,CAAC;4BACH,CAAC;4BAED,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gCAChC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;oCACjC,YAAY,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;gCACnC,CAAC;gCACD,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oCACpD,YAAY,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gCAC7C,CAAC;4BACH,CAAC;wBACH,CAAC;6BAAM,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;4BAC/D,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;gCAChE,MAAM,UAAU,GAAI,EAAE,CAAC,OAAe,CAAC,SAAS,CAAC,CAAC;gCAClD,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,UAAU,GAAG,cAAO,CAAC,aAAa,EAAE,CAAC;gCAE5D,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;oCAC7B,YAAY,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,CACxD,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAC9B,CAAC;oCACF,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wCAC1C,OAAO,YAAY,CAAC,UAAU,CAAC,CAAC;oCAClC,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;oBACtC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;uBAAO,CAAC;gBACP,OAAO;YACT,CAAC;QACH,CAAC;KAAA;IAEY,kBAAkB;;YAC7B,IAAI,CAAC;gBACH,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBAC7D,yEAAyE;oBACzE,2EAA2E;oBAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBACxE,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,4CAA4C,SAAS,EAAE,CAAC,CAAC;oBAC5F,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;gBAChC,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAC7E,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;KAAA;IAEY,oBAAoB;;YAC/B,2EAA2E;YAC3E,8EAA8E;YAC9E,kCAAkC;YAClC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAClC,CAAC;KAAA;IAEa,mBAAmB;;YAC/B,IAAI,CAAC;gBACH,MAAM,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBACpD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAO,CAAC,aAAa,CAAC,CAAC,CAAC;YACtE,CAAC;uBAAO,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;KAAA;CACF"}
|
|
@@ -4,6 +4,8 @@ export default class FileManager {
|
|
|
4
4
|
private readonly WorkerProcess;
|
|
5
5
|
constructor();
|
|
6
6
|
WriteFile(path: string, data: string): Promise<SuccessInterface | ErrorInterface>;
|
|
7
|
+
/** Atomically creates a file only if absent (OS-level 'wx' flag) - safe for lock files. */
|
|
8
|
+
WriteFileExclusive(path: string, data: string): Promise<SuccessInterface | ErrorInterface>;
|
|
7
9
|
ReadFile(path: string): Promise<SuccessInterface | ErrorInterface>;
|
|
8
10
|
DeleteFile(path: string): Promise<SuccessInterface | ErrorInterface>;
|
|
9
11
|
FileExists(path: string): Promise<SuccessInterface | ErrorInterface>;
|
|
@@ -32,6 +32,18 @@ class FileManager {
|
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
+
/** Atomically creates a file only if absent (OS-level 'wx' flag) - safe for lock files. */
|
|
36
|
+
WriteFileExclusive(path, data) {
|
|
37
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
38
|
+
try {
|
|
39
|
+
yield promises_1.default.writeFile(path, data, { encoding: "utf-8", flag: "wx" });
|
|
40
|
+
return this.responseHelper.Success("File created exclusively.");
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
return this.responseHelper.Error(error);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
35
47
|
ReadFile(path) {
|
|
36
48
|
return __awaiter(this, void 0, void 0, function* () {
|
|
37
49
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../source/engine/Filesystem/FileManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FileManager.js","sourceRoot":"","sources":["../../../source/engine/Filesystem/FileManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "axiodb",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.11.27",
|
|
4
4
|
"description": "The Pure JavaScript Alternative to SQLite. Embedded NoSQL database for Node.js with MongoDB-style queries, zero native dependencies, built-in InMemoryCache, and web GUI. Perfect for desktop apps, CLI tools, and embedded systems. No compilation, no platform issues—pure JavaScript from npm install to production.",
|
|
5
5
|
"main": "./lib/config/DB.js",
|
|
6
6
|
"types": "./lib/config/DB.d.ts",
|