@yydb/light-db 0.0.0 → 0.0.10

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.
Files changed (230) hide show
  1. package/dist/api/database.d.ts +48 -0
  2. package/dist/api/database.d.ts.map +1 -0
  3. package/dist/api/database.js +120 -0
  4. package/dist/api/database.js.map +1 -0
  5. package/dist/api/index.d.ts +7 -22
  6. package/dist/api/index.d.ts.map +1 -1
  7. package/dist/api/index.js +5 -52
  8. package/dist/api/index.js.map +1 -1
  9. package/dist/api/schema.d.ts +33 -0
  10. package/dist/api/schema.d.ts.map +1 -0
  11. package/dist/api/schema.js +80 -0
  12. package/dist/api/schema.js.map +1 -0
  13. package/dist/api/transaction.d.ts +26 -0
  14. package/dist/api/transaction.d.ts.map +1 -0
  15. package/dist/api/transaction.js +52 -0
  16. package/dist/api/transaction.js.map +1 -0
  17. package/dist/api/types.d.ts +55 -148
  18. package/dist/api/types.d.ts.map +1 -1
  19. package/dist/api/types.js +6 -5
  20. package/dist/api/types.js.map +1 -1
  21. package/dist/codec/binary.d.ts +196 -0
  22. package/dist/codec/binary.d.ts.map +1 -0
  23. package/dist/codec/binary.js +342 -0
  24. package/dist/codec/binary.js.map +1 -0
  25. package/dist/codec/checksum.d.ts +21 -0
  26. package/dist/codec/checksum.d.ts.map +1 -0
  27. package/dist/codec/checksum.js +46 -0
  28. package/dist/codec/checksum.js.map +1 -0
  29. package/dist/codec/index.d.ts +12 -0
  30. package/dist/codec/index.d.ts.map +1 -0
  31. package/dist/codec/index.js +10 -0
  32. package/dist/codec/index.js.map +1 -0
  33. package/dist/codec/page.d.ts +114 -0
  34. package/dist/codec/page.d.ts.map +1 -0
  35. package/dist/codec/page.js +225 -0
  36. package/dist/codec/page.js.map +1 -0
  37. package/dist/codec/record.d.ts +62 -0
  38. package/dist/codec/record.d.ts.map +1 -0
  39. package/dist/codec/record.js +82 -0
  40. package/dist/codec/record.js.map +1 -0
  41. package/dist/core/broadcast.d.ts +39 -0
  42. package/dist/core/broadcast.d.ts.map +1 -0
  43. package/dist/core/broadcast.js +54 -0
  44. package/dist/core/broadcast.js.map +1 -0
  45. package/dist/core/checkpoint.d.ts +23 -0
  46. package/dist/core/checkpoint.d.ts.map +1 -0
  47. package/dist/core/checkpoint.js +49 -0
  48. package/dist/core/checkpoint.js.map +1 -0
  49. package/dist/core/engine.d.ts +142 -0
  50. package/dist/core/engine.d.ts.map +1 -0
  51. package/dist/core/engine.js +304 -0
  52. package/dist/core/engine.js.map +1 -0
  53. package/dist/core/index.d.ts +17 -0
  54. package/dist/core/index.d.ts.map +1 -0
  55. package/dist/core/index.js +13 -0
  56. package/dist/core/index.js.map +1 -0
  57. package/dist/core/lease.d.ts +32 -0
  58. package/dist/core/lease.d.ts.map +1 -0
  59. package/dist/core/lease.js +81 -0
  60. package/dist/core/lease.js.map +1 -0
  61. package/dist/core/records.d.ts +49 -0
  62. package/dist/core/records.d.ts.map +1 -0
  63. package/dist/core/records.js +70 -0
  64. package/dist/core/records.js.map +1 -0
  65. package/dist/core/recovery.d.ts +43 -0
  66. package/dist/core/recovery.d.ts.map +1 -0
  67. package/dist/core/recovery.js +99 -0
  68. package/dist/core/recovery.js.map +1 -0
  69. package/dist/core/wal.d.ts +50 -0
  70. package/dist/core/wal.d.ts.map +1 -0
  71. package/dist/core/wal.js +114 -0
  72. package/dist/core/wal.js.map +1 -0
  73. package/dist/errors/index.d.ts +44 -66
  74. package/dist/errors/index.d.ts.map +1 -1
  75. package/dist/errors/index.js +43 -128
  76. package/dist/errors/index.js.map +1 -1
  77. package/dist/index.d.ts +14 -215
  78. package/dist/index.d.ts.map +1 -1
  79. package/dist/index.js +14 -724
  80. package/dist/index.js.map +1 -1
  81. package/dist/storage/StorageAdapter.d.ts +97 -0
  82. package/dist/storage/StorageAdapter.d.ts.map +1 -0
  83. package/dist/storage/StorageAdapter.js +9 -0
  84. package/dist/storage/StorageAdapter.js.map +1 -0
  85. package/dist/storage/index.d.ts +9 -8
  86. package/dist/storage/index.d.ts.map +1 -1
  87. package/dist/storage/index.js +8 -151
  88. package/dist/storage/index.js.map +1 -1
  89. package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts +140 -0
  90. package/dist/storage/indexeddb/IndexedDbStorageAdapter.d.ts.map +1 -0
  91. package/dist/storage/indexeddb/IndexedDbStorageAdapter.js +403 -0
  92. package/dist/storage/indexeddb/IndexedDbStorageAdapter.js.map +1 -0
  93. package/dist/storage/memory/MemoryStorageAdapter.d.ts +76 -0
  94. package/dist/storage/memory/MemoryStorageAdapter.d.ts.map +1 -0
  95. package/dist/storage/memory/MemoryStorageAdapter.js +212 -0
  96. package/dist/storage/memory/MemoryStorageAdapter.js.map +1 -0
  97. package/dist/storage/opfs/OpfsStorageAdapter.d.ts +141 -0
  98. package/dist/storage/opfs/OpfsStorageAdapter.d.ts.map +1 -0
  99. package/dist/storage/opfs/OpfsStorageAdapter.js +400 -0
  100. package/dist/storage/opfs/OpfsStorageAdapter.js.map +1 -0
  101. package/package.json +48 -36
  102. package/readme.md +80 -94
  103. package/dist/api/LightDB.d.ts +0 -194
  104. package/dist/api/LightDB.d.ts.map +0 -1
  105. package/dist/api/LightDB.js +0 -299
  106. package/dist/api/LightDB.js.map +0 -1
  107. package/dist/api/Transaction.d.ts +0 -100
  108. package/dist/api/Transaction.d.ts.map +0 -1
  109. package/dist/api/Transaction.js +0 -263
  110. package/dist/api/Transaction.js.map +0 -1
  111. package/dist/collection/Collection.d.ts +0 -235
  112. package/dist/collection/Collection.d.ts.map +0 -1
  113. package/dist/collection/Collection.js +0 -671
  114. package/dist/collection/Collection.js.map +0 -1
  115. package/dist/collection/QueryBuilder.d.ts +0 -225
  116. package/dist/collection/QueryBuilder.d.ts.map +0 -1
  117. package/dist/collection/QueryBuilder.js +0 -475
  118. package/dist/collection/QueryBuilder.js.map +0 -1
  119. package/dist/collection/QueryParser.d.ts +0 -117
  120. package/dist/collection/QueryParser.d.ts.map +0 -1
  121. package/dist/collection/QueryParser.js +0 -438
  122. package/dist/collection/QueryParser.js.map +0 -1
  123. package/dist/collection/index.d.ts +0 -42
  124. package/dist/collection/index.d.ts.map +0 -1
  125. package/dist/collection/index.js +0 -41
  126. package/dist/collection/index.js.map +0 -1
  127. package/dist/collection/types.d.ts +0 -365
  128. package/dist/collection/types.d.ts.map +0 -1
  129. package/dist/collection/types.js +0 -7
  130. package/dist/collection/types.js.map +0 -1
  131. package/dist/constants/index.d.ts +0 -51
  132. package/dist/constants/index.d.ts.map +0 -1
  133. package/dist/constants/index.js +0 -68
  134. package/dist/constants/index.js.map +0 -1
  135. package/dist/indexes/BPlusTree.d.ts +0 -181
  136. package/dist/indexes/BPlusTree.d.ts.map +0 -1
  137. package/dist/indexes/BPlusTree.js +0 -528
  138. package/dist/indexes/BPlusTree.js.map +0 -1
  139. package/dist/indexes/IndexManager.d.ts +0 -236
  140. package/dist/indexes/IndexManager.d.ts.map +0 -1
  141. package/dist/indexes/IndexManager.js +0 -502
  142. package/dist/indexes/IndexManager.js.map +0 -1
  143. package/dist/indexes/PrimaryIndex.d.ts +0 -240
  144. package/dist/indexes/PrimaryIndex.d.ts.map +0 -1
  145. package/dist/indexes/PrimaryIndex.js +0 -354
  146. package/dist/indexes/PrimaryIndex.js.map +0 -1
  147. package/dist/indexes/SecondaryIndex.d.ts +0 -204
  148. package/dist/indexes/SecondaryIndex.d.ts.map +0 -1
  149. package/dist/indexes/SecondaryIndex.js +0 -480
  150. package/dist/indexes/SecondaryIndex.js.map +0 -1
  151. package/dist/indexes/errors.d.ts +0 -66
  152. package/dist/indexes/errors.d.ts.map +0 -1
  153. package/dist/indexes/errors.js +0 -117
  154. package/dist/indexes/errors.js.map +0 -1
  155. package/dist/indexes/index.d.ts +0 -52
  156. package/dist/indexes/index.d.ts.map +0 -1
  157. package/dist/indexes/index.js +0 -131
  158. package/dist/indexes/index.js.map +0 -1
  159. package/dist/indexes/types.d.ts +0 -246
  160. package/dist/indexes/types.d.ts.map +0 -1
  161. package/dist/indexes/types.js +0 -30
  162. package/dist/indexes/types.js.map +0 -1
  163. package/dist/performance/BatchWALWriter.d.ts +0 -185
  164. package/dist/performance/BatchWALWriter.d.ts.map +0 -1
  165. package/dist/performance/BatchWALWriter.js +0 -490
  166. package/dist/performance/BatchWALWriter.js.map +0 -1
  167. package/dist/performance/ColumnarStorage.d.ts +0 -138
  168. package/dist/performance/ColumnarStorage.d.ts.map +0 -1
  169. package/dist/performance/ColumnarStorage.js +0 -875
  170. package/dist/performance/ColumnarStorage.js.map +0 -1
  171. package/dist/performance/LazyQuery.d.ts +0 -307
  172. package/dist/performance/LazyQuery.d.ts.map +0 -1
  173. package/dist/performance/LazyQuery.js +0 -588
  174. package/dist/performance/LazyQuery.js.map +0 -1
  175. package/dist/performance/OptimizedBuffer.d.ts +0 -375
  176. package/dist/performance/OptimizedBuffer.d.ts.map +0 -1
  177. package/dist/performance/OptimizedBuffer.js +0 -730
  178. package/dist/performance/OptimizedBuffer.js.map +0 -1
  179. package/dist/performance/RWLock.d.ts +0 -260
  180. package/dist/performance/RWLock.d.ts.map +0 -1
  181. package/dist/performance/RWLock.js +0 -570
  182. package/dist/performance/RWLock.js.map +0 -1
  183. package/dist/performance/index.d.ts +0 -41
  184. package/dist/performance/index.d.ts.map +0 -1
  185. package/dist/performance/index.js +0 -162
  186. package/dist/performance/index.js.map +0 -1
  187. package/dist/performance/types.d.ts +0 -247
  188. package/dist/performance/types.d.ts.map +0 -1
  189. package/dist/performance/types.js +0 -26
  190. package/dist/performance/types.js.map +0 -1
  191. package/dist/storage/Checkpoint.d.ts +0 -128
  192. package/dist/storage/Checkpoint.d.ts.map +0 -1
  193. package/dist/storage/Checkpoint.js +0 -251
  194. package/dist/storage/Checkpoint.js.map +0 -1
  195. package/dist/storage/LightFile.d.ts +0 -227
  196. package/dist/storage/LightFile.d.ts.map +0 -1
  197. package/dist/storage/LightFile.js +0 -526
  198. package/dist/storage/LightFile.js.map +0 -1
  199. package/dist/storage/Recovery.d.ts +0 -172
  200. package/dist/storage/Recovery.d.ts.map +0 -1
  201. package/dist/storage/Recovery.js +0 -399
  202. package/dist/storage/Recovery.js.map +0 -1
  203. package/dist/storage/SHMFile.d.ts +0 -243
  204. package/dist/storage/SHMFile.d.ts.map +0 -1
  205. package/dist/storage/SHMFile.js +0 -436
  206. package/dist/storage/SHMFile.js.map +0 -1
  207. package/dist/storage/StorageEngine.d.ts +0 -146
  208. package/dist/storage/StorageEngine.d.ts.map +0 -1
  209. package/dist/storage/StorageEngine.js +0 -353
  210. package/dist/storage/StorageEngine.js.map +0 -1
  211. package/dist/storage/WALFile.d.ts +0 -248
  212. package/dist/storage/WALFile.d.ts.map +0 -1
  213. package/dist/storage/WALFile.js +0 -597
  214. package/dist/storage/WALFile.js.map +0 -1
  215. package/dist/types/index.d.ts +0 -220
  216. package/dist/types/index.d.ts.map +0 -1
  217. package/dist/types/index.js +0 -7
  218. package/dist/types/index.js.map +0 -1
  219. package/dist/utils/binary.d.ts +0 -271
  220. package/dist/utils/binary.d.ts.map +0 -1
  221. package/dist/utils/binary.js +0 -454
  222. package/dist/utils/binary.js.map +0 -1
  223. package/dist/utils/file.d.ts +0 -166
  224. package/dist/utils/file.d.ts.map +0 -1
  225. package/dist/utils/file.js +0 -346
  226. package/dist/utils/file.js.map +0 -1
  227. package/dist/utils/index.d.ts +0 -6
  228. package/dist/utils/index.d.ts.map +0 -1
  229. package/dist/utils/index.js +0 -39
  230. package/dist/utils/index.js.map +0 -1
@@ -1,570 +0,0 @@
1
- "use strict";
2
- /**
3
- * 读写锁实现
4
- * 允许多个读查询并发,写操作独占
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.ReentrantRWLock = exports.RWLockManager = exports.RWLock = exports.WriteLockHandle = exports.ReadLockHandle = void 0;
8
- /**
9
- * 读锁句柄
10
- * 用于自动释放锁
11
- */
12
- class ReadLockHandle {
13
- constructor(releaseFn) {
14
- this.released = false;
15
- this.releaseFn = releaseFn;
16
- }
17
- /**
18
- * 释放读锁
19
- */
20
- release() {
21
- if (!this.released) {
22
- this.released = true;
23
- this.releaseFn();
24
- }
25
- }
26
- /**
27
- * 检查是否已释放
28
- */
29
- isReleased() {
30
- return this.released;
31
- }
32
- }
33
- exports.ReadLockHandle = ReadLockHandle;
34
- /**
35
- * 写锁句柄
36
- * 用于自动释放锁
37
- */
38
- class WriteLockHandle {
39
- constructor(releaseFn) {
40
- this.released = false;
41
- this.releaseFn = releaseFn;
42
- }
43
- /**
44
- * 释放写锁
45
- */
46
- release() {
47
- if (!this.released) {
48
- this.released = true;
49
- this.releaseFn();
50
- }
51
- }
52
- /**
53
- * 检查是否已释放
54
- */
55
- isReleased() {
56
- return this.released;
57
- }
58
- }
59
- exports.WriteLockHandle = WriteLockHandle;
60
- /**
61
- * 读写锁
62
- * 支持多读单写,可选公平模式
63
- */
64
- class RWLock {
65
- /**
66
- * 创建读写锁
67
- * @param options 配置选项
68
- */
69
- constructor(options = {}) {
70
- this.readers = 0;
71
- this.writer = false;
72
- this.writeWaiters = [];
73
- this.readWaiters = [];
74
- this.timeout = options.timeout ?? 0;
75
- this.fair = options.fair ?? false;
76
- this.totalReadAcquires = 0;
77
- this.totalWriteAcquires = 0;
78
- }
79
- /**
80
- * 获取读锁
81
- * @returns 读锁句柄
82
- */
83
- async acquireRead() {
84
- if (this.canAcquireRead()) {
85
- this.readers++;
86
- this.totalReadAcquires++;
87
- return new ReadLockHandle(() => this.releaseRead());
88
- }
89
- return new Promise((resolve, reject) => {
90
- const waiter = {
91
- resolve: () => {
92
- this.readers++;
93
- this.totalReadAcquires++;
94
- resolve(new ReadLockHandle(() => this.releaseRead()));
95
- },
96
- reject,
97
- type: "read",
98
- timestamp: Date.now(),
99
- };
100
- this.readWaiters.push(waiter);
101
- if (this.timeout > 0) {
102
- setTimeout(() => {
103
- const index = this.readWaiters.indexOf(waiter);
104
- if (index !== -1) {
105
- this.readWaiters.splice(index, 1);
106
- reject(new Error(`Read lock acquisition timeout after ${this.timeout}ms`));
107
- }
108
- }, this.timeout);
109
- }
110
- });
111
- }
112
- /**
113
- * 尝试获取读锁(非阻塞)
114
- * @returns 读锁句柄或 null
115
- */
116
- tryAcquireRead() {
117
- if (this.canAcquireRead()) {
118
- this.readers++;
119
- this.totalReadAcquires++;
120
- return new ReadLockHandle(() => this.releaseRead());
121
- }
122
- return null;
123
- }
124
- /**
125
- * 检查是否可以获取读锁
126
- */
127
- canAcquireRead() {
128
- if (this.writer) {
129
- return false;
130
- }
131
- if (this.fair && this.writeWaiters.length > 0) {
132
- return false;
133
- }
134
- return true;
135
- }
136
- /**
137
- * 获取写锁
138
- * @returns 写锁句柄
139
- */
140
- async acquireWrite() {
141
- if (this.canAcquireWrite()) {
142
- this.writer = true;
143
- this.totalWriteAcquires++;
144
- return new WriteLockHandle(() => this.releaseWrite());
145
- }
146
- return new Promise((resolve, reject) => {
147
- const waiter = {
148
- resolve: () => {
149
- this.writer = true;
150
- this.totalWriteAcquires++;
151
- resolve(new WriteLockHandle(() => this.releaseWrite()));
152
- },
153
- reject,
154
- type: "write",
155
- timestamp: Date.now(),
156
- };
157
- this.writeWaiters.push(waiter);
158
- if (this.timeout > 0) {
159
- setTimeout(() => {
160
- const index = this.writeWaiters.indexOf(waiter);
161
- if (index !== -1) {
162
- this.writeWaiters.splice(index, 1);
163
- reject(new Error(`Write lock acquisition timeout after ${this.timeout}ms`));
164
- }
165
- }, this.timeout);
166
- }
167
- });
168
- }
169
- /**
170
- * 尝试获取写锁(非阻塞)
171
- * @returns 写锁句柄或 null
172
- */
173
- tryAcquireWrite() {
174
- if (this.canAcquireWrite()) {
175
- this.writer = true;
176
- this.totalWriteAcquires++;
177
- return new WriteLockHandle(() => this.releaseWrite());
178
- }
179
- return null;
180
- }
181
- /**
182
- * 检查是否可以获取写锁
183
- */
184
- canAcquireWrite() {
185
- if (this.writer || this.readers > 0) {
186
- return false;
187
- }
188
- return true;
189
- }
190
- /**
191
- * 释放读锁
192
- */
193
- releaseRead() {
194
- if (this.readers > 0) {
195
- this.readers--;
196
- }
197
- this.wakeWaiters();
198
- }
199
- /**
200
- * 释放写锁
201
- */
202
- releaseWrite() {
203
- this.writer = false;
204
- this.wakeWaiters();
205
- }
206
- /**
207
- * 唤醒等待者
208
- */
209
- wakeWaiters() {
210
- if (this.fair) {
211
- if (!this.writer && this.writeWaiters.length > 0 && this.readers === 0) {
212
- const waiter = this.writeWaiters.shift();
213
- if (waiter) {
214
- waiter.resolve();
215
- return;
216
- }
217
- }
218
- if (!this.writer && this.readWaiters.length > 0 && this.writeWaiters.length === 0) {
219
- while (this.readWaiters.length > 0) {
220
- const waiter = this.readWaiters.shift();
221
- if (waiter) {
222
- waiter.resolve();
223
- }
224
- }
225
- }
226
- } else {
227
- if (!this.writer && this.writeWaiters.length > 0 && this.readers === 0) {
228
- const waiter = this.writeWaiters.shift();
229
- if (waiter) {
230
- waiter.resolve();
231
- return;
232
- }
233
- }
234
- if (!this.writer && this.readWaiters.length > 0) {
235
- while (this.readWaiters.length > 0) {
236
- const waiter = this.readWaiters.shift();
237
- if (waiter) {
238
- waiter.resolve();
239
- }
240
- }
241
- }
242
- }
243
- }
244
- /**
245
- * 使用读锁执行函数
246
- * @param fn 要执行的函数
247
- * @returns 函数返回值
248
- */
249
- async withRead(fn) {
250
- const handle = await this.acquireRead();
251
- try {
252
- return await fn();
253
- } finally {
254
- handle.release();
255
- }
256
- }
257
- /**
258
- * 使用写锁执行函数
259
- * @param fn 要执行的函数
260
- * @returns 函数返回值
261
- */
262
- async withWrite(fn) {
263
- const handle = await this.acquireWrite();
264
- try {
265
- return await fn();
266
- } finally {
267
- handle.release();
268
- }
269
- }
270
- /**
271
- * 使用读锁执行同步函数
272
- * @param fn 要执行的函数
273
- * @returns 函数返回值
274
- */
275
- withReadSync(fn) {
276
- const handle = this.tryAcquireRead();
277
- if (!handle) {
278
- throw new Error("Cannot acquire read lock synchronously");
279
- }
280
- try {
281
- return fn();
282
- } finally {
283
- handle.release();
284
- }
285
- }
286
- /**
287
- * 使用写锁执行同步函数
288
- * @param fn 要执行的函数
289
- * @returns 函数返回值
290
- */
291
- withWriteSync(fn) {
292
- const handle = this.tryAcquireWrite();
293
- if (!handle) {
294
- throw new Error("Cannot acquire write lock synchronously");
295
- }
296
- try {
297
- return fn();
298
- } finally {
299
- handle.release();
300
- }
301
- }
302
- /**
303
- * 获取统计信息
304
- */
305
- getStats() {
306
- return {
307
- readLockCount: this.readers,
308
- writeLockCount: this.writer ? 1 : 0,
309
- pendingReadCount: this.readWaiters.length,
310
- pendingWriteCount: this.writeWaiters.length,
311
- totalReadAcquires: this.totalReadAcquires,
312
- totalWriteAcquires: this.totalWriteAcquires,
313
- };
314
- }
315
- /**
316
- * 检查是否有等待者
317
- */
318
- hasWaiters() {
319
- return this.readWaiters.length > 0 || this.writeWaiters.length > 0;
320
- }
321
- /**
322
- * 检查是否被读锁定
323
- */
324
- isReadLocked() {
325
- return this.readers > 0;
326
- }
327
- /**
328
- * 检查是否被写锁定
329
- */
330
- isWriteLocked() {
331
- return this.writer;
332
- }
333
- /**
334
- * 检查是否被锁定
335
- */
336
- isLocked() {
337
- return this.writer || this.readers > 0;
338
- }
339
- /**
340
- * 强制释放所有锁(危险操作,仅用于特殊场景)
341
- */
342
- forceUnlock() {
343
- this.readers = 0;
344
- this.writer = false;
345
- const allWaiters = [...this.writeWaiters, ...this.readWaiters];
346
- this.writeWaiters = [];
347
- this.readWaiters = [];
348
- for (const waiter of allWaiters) {
349
- waiter.reject(new Error("Lock was force unlocked"));
350
- }
351
- }
352
- }
353
- exports.RWLock = RWLock;
354
- /**
355
- * 读写锁管理器
356
- * 管理多个命名锁
357
- */
358
- class RWLockManager {
359
- /**
360
- * 创建读写锁管理器
361
- * @param defaultOptions 默认配置
362
- */
363
- constructor(defaultOptions = {}) {
364
- this.locks = new Map();
365
- this.defaultOptions = defaultOptions;
366
- }
367
- /**
368
- * 获取或创建锁
369
- * @param name 锁名称
370
- * @param options 配置选项
371
- */
372
- getLock(name, options) {
373
- let lock = this.locks.get(name);
374
- if (!lock) {
375
- lock = new RWLock({
376
- ...this.defaultOptions,
377
- ...options,
378
- });
379
- this.locks.set(name, lock);
380
- }
381
- return lock;
382
- }
383
- /**
384
- * 获取读锁
385
- * @param name 锁名称
386
- * @returns 读锁句柄
387
- */
388
- async acquireRead(name) {
389
- return this.getLock(name).acquireRead();
390
- }
391
- /**
392
- * 获取写锁
393
- * @param name 锁名称
394
- * @returns 写锁句柄
395
- */
396
- async acquireWrite(name) {
397
- return this.getLock(name).acquireWrite();
398
- }
399
- /**
400
- * 使用读锁执行函数
401
- * @param name 锁名称
402
- * @param fn 要执行的函数
403
- */
404
- async withRead(name, fn) {
405
- return this.getLock(name).withRead(fn);
406
- }
407
- /**
408
- * 使用写锁执行函数
409
- * @param name 锁名称
410
- * @param fn 要执行的函数
411
- */
412
- async withWrite(name, fn) {
413
- return this.getLock(name).withWrite(fn);
414
- }
415
- /**
416
- * 获取所有锁名称
417
- */
418
- getLockNames() {
419
- return Array.from(this.locks.keys());
420
- }
421
- /**
422
- * 获取锁统计信息
423
- * @param name 锁名称
424
- */
425
- getStats(name) {
426
- return this.locks.get(name)?.getStats();
427
- }
428
- /**
429
- * 获取所有锁统计信息
430
- */
431
- getAllStats() {
432
- const stats = new Map();
433
- for (const [name, lock] of this.locks) {
434
- stats.set(name, lock.getStats());
435
- }
436
- return stats;
437
- }
438
- /**
439
- * 删除锁
440
- * @param name 锁名称
441
- */
442
- deleteLock(name) {
443
- const lock = this.locks.get(name);
444
- if (lock && lock.isLocked()) {
445
- return false;
446
- }
447
- return this.locks.delete(name);
448
- }
449
- /**
450
- * 清空所有锁
451
- */
452
- clear() {
453
- for (const lock of this.locks.values()) {
454
- if (lock.isLocked()) {
455
- throw new Error("Cannot clear locks while some are still held");
456
- }
457
- }
458
- this.locks.clear();
459
- }
460
- }
461
- exports.RWLockManager = RWLockManager;
462
- /**
463
- * 可重入读写锁
464
- * 支持同一线程多次获取同一锁
465
- */
466
- class ReentrantRWLock {
467
- /**
468
- * 创建可重入读写锁
469
- * @param options 配置选项
470
- */
471
- constructor(options = {}) {
472
- this.lock = new RWLock(options);
473
- this.readOwners = new Map();
474
- this.writeOwner = null;
475
- this.currentId = 0;
476
- }
477
- /**
478
- * 生成当前上下文 ID
479
- * 在实际应用中,应该使用线程 ID 或其他唯一标识
480
- */
481
- getContextId() {
482
- return ++this.currentId;
483
- }
484
- /**
485
- * 获取读锁
486
- */
487
- async acquireRead() {
488
- const contextId = this.getContextId();
489
- const count = this.readOwners.get(contextId) ?? 0;
490
- if (count > 0) {
491
- this.readOwners.set(contextId, count + 1);
492
- return new ReadLockHandle(() => this.releaseRead(contextId));
493
- }
494
- if (this.writeOwner === contextId) {
495
- return new ReadLockHandle(() => this.releaseRead(contextId));
496
- }
497
- const handle = await this.lock.acquireRead();
498
- this.readOwners.set(contextId, 1);
499
- return new ReadLockHandle(() => {
500
- this.releaseRead(contextId);
501
- handle.release();
502
- });
503
- }
504
- /**
505
- * 释放读锁
506
- */
507
- releaseRead(contextId) {
508
- const count = this.readOwners.get(contextId);
509
- if (count !== undefined) {
510
- if (count <= 1) {
511
- this.readOwners.delete(contextId);
512
- } else {
513
- this.readOwners.set(contextId, count - 1);
514
- }
515
- }
516
- }
517
- /**
518
- * 获取写锁
519
- */
520
- async acquireWrite() {
521
- const contextId = this.getContextId();
522
- if (this.writeOwner === contextId) {
523
- return new WriteLockHandle(() => this.releaseWrite(contextId));
524
- }
525
- const handle = await this.lock.acquireWrite();
526
- this.writeOwner = contextId;
527
- return new WriteLockHandle(() => {
528
- this.releaseWrite(contextId);
529
- handle.release();
530
- });
531
- }
532
- /**
533
- * 释放写锁
534
- */
535
- releaseWrite(contextId) {
536
- if (this.writeOwner === contextId) {
537
- this.writeOwner = null;
538
- }
539
- }
540
- /**
541
- * 使用读锁执行函数
542
- */
543
- async withRead(fn) {
544
- const handle = await this.acquireRead();
545
- try {
546
- return await fn();
547
- } finally {
548
- handle.release();
549
- }
550
- }
551
- /**
552
- * 使用写锁执行函数
553
- */
554
- async withWrite(fn) {
555
- const handle = await this.acquireWrite();
556
- try {
557
- return await fn();
558
- } finally {
559
- handle.release();
560
- }
561
- }
562
- /**
563
- * 获取统计信息
564
- */
565
- getStats() {
566
- return this.lock.getStats();
567
- }
568
- }
569
- exports.ReentrantRWLock = ReentrantRWLock;
570
- //# sourceMappingURL=RWLock.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RWLock.js","sourceRoot":"","sources":["../../src/performance/RWLock.ts"],"names":[],"mappings":"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"}
@@ -1,41 +0,0 @@
1
- /**
2
- * 性能优化模块
3
- * 提供列式存储、二进制序列化优化、异步批量写入、读写锁和惰性求值查询
4
- *
5
- * @packageDocumentation
6
- */
7
- export {
8
- ColumnType,
9
- ColumnDefinition,
10
- ColumnarStorageOptions,
11
- ColumnarStorageStats,
12
- ColumnStats,
13
- BatchWriteOptions,
14
- BatchWriteStats,
15
- BatchFlushResult,
16
- FsyncStrategyType,
17
- RWLockOptions,
18
- RWLockStats,
19
- LazyQueryOptions,
20
- LazyQueryStats,
21
- AggregationType,
22
- AggregationResult,
23
- RangeCondition,
24
- BufferPoolOptions,
25
- BufferPoolStats,
26
- PerformanceOptions,
27
- PerformanceStats,
28
- } from "./types";
29
- export { ColumnarStorage } from "./ColumnarStorage";
30
- export {
31
- BufferPool,
32
- getGlobalBufferPool,
33
- OptimizedBufferWriter,
34
- OptimizedBufferReader,
35
- FastSerializer,
36
- BufferConcatenator,
37
- } from "./OptimizedBuffer";
38
- export { WalRecordEntry, BatchWalWriter, BatchWriteManager } from "./BatchWalWriter";
39
- export { ReadLockHandle, WriteLockHandle, RWLock, RWLockManager, ReentrantRWLock } from "./RWLock";
40
- export { LazyQueryIterator, LazyQueryBuilder, lazy, lazyIterator, GeneratorUtils } from "./LazyQuery";
41
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/performance/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACH,UAAU,EACV,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,gBAAgB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EACH,UAAU,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACd,kBAAkB,GACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACH,cAAc,EACd,cAAc,EACd,iBAAiB,GACpB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACH,cAAc,EACd,eAAe,EACf,MAAM,EACN,aAAa,EACb,eAAe,GAClB,MAAM,UAAU,CAAC;AAGlB,OAAO,EACH,iBAAiB,EACjB,gBAAgB,EAChB,IAAI,EACJ,YAAY,EACZ,cAAc,GACjB,MAAM,aAAa,CAAC"}