@yydb/light-db 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/LightDB.d.ts +194 -0
- package/dist/api/LightDB.d.ts.map +1 -0
- package/dist/api/LightDB.js +299 -0
- package/dist/api/LightDB.js.map +1 -0
- package/dist/api/Transaction.d.ts +100 -0
- package/dist/api/Transaction.d.ts.map +1 -0
- package/dist/api/Transaction.js +263 -0
- package/dist/api/Transaction.js.map +1 -0
- package/dist/api/index.d.ts +24 -0
- package/dist/api/index.d.ts.map +1 -0
- package/dist/api/index.js +54 -0
- package/dist/api/index.js.map +1 -0
- package/dist/api/types.d.ts +154 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +7 -0
- package/dist/api/types.js.map +1 -0
- package/dist/collection/Collection.d.ts +235 -0
- package/dist/collection/Collection.d.ts.map +1 -0
- package/dist/collection/Collection.js +671 -0
- package/dist/collection/Collection.js.map +1 -0
- package/dist/collection/QueryBuilder.d.ts +225 -0
- package/dist/collection/QueryBuilder.d.ts.map +1 -0
- package/dist/collection/QueryBuilder.js +475 -0
- package/dist/collection/QueryBuilder.js.map +1 -0
- package/dist/collection/QueryParser.d.ts +117 -0
- package/dist/collection/QueryParser.d.ts.map +1 -0
- package/dist/collection/QueryParser.js +438 -0
- package/dist/collection/QueryParser.js.map +1 -0
- package/dist/collection/index.d.ts +42 -0
- package/dist/collection/index.d.ts.map +1 -0
- package/dist/collection/index.js +41 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/types.d.ts +365 -0
- package/dist/collection/types.d.ts.map +1 -0
- package/dist/collection/types.js +7 -0
- package/dist/collection/types.js.map +1 -0
- package/dist/constants/index.d.ts +51 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +68 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/errors/index.d.ts +69 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +132 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +220 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +729 -0
- package/dist/index.js.map +1 -0
- package/dist/indexes/BPlusTree.d.ts +181 -0
- package/dist/indexes/BPlusTree.d.ts.map +1 -0
- package/dist/indexes/BPlusTree.js +528 -0
- package/dist/indexes/BPlusTree.js.map +1 -0
- package/dist/indexes/IndexManager.d.ts +236 -0
- package/dist/indexes/IndexManager.d.ts.map +1 -0
- package/dist/indexes/IndexManager.js +502 -0
- package/dist/indexes/IndexManager.js.map +1 -0
- package/dist/indexes/PrimaryIndex.d.ts +240 -0
- package/dist/indexes/PrimaryIndex.d.ts.map +1 -0
- package/dist/indexes/PrimaryIndex.js +354 -0
- package/dist/indexes/PrimaryIndex.js.map +1 -0
- package/dist/indexes/SecondaryIndex.d.ts +204 -0
- package/dist/indexes/SecondaryIndex.d.ts.map +1 -0
- package/dist/indexes/SecondaryIndex.js +480 -0
- package/dist/indexes/SecondaryIndex.js.map +1 -0
- package/dist/indexes/errors.d.ts +66 -0
- package/dist/indexes/errors.d.ts.map +1 -0
- package/dist/indexes/errors.js +117 -0
- package/dist/indexes/errors.js.map +1 -0
- package/dist/indexes/index.d.ts +52 -0
- package/dist/indexes/index.d.ts.map +1 -0
- package/dist/indexes/index.js +131 -0
- package/dist/indexes/index.js.map +1 -0
- package/dist/indexes/types.d.ts +246 -0
- package/dist/indexes/types.d.ts.map +1 -0
- package/dist/indexes/types.js +30 -0
- package/dist/indexes/types.js.map +1 -0
- package/dist/performance/BatchWALWriter.d.ts +185 -0
- package/dist/performance/BatchWALWriter.d.ts.map +1 -0
- package/dist/performance/BatchWALWriter.js +490 -0
- package/dist/performance/BatchWALWriter.js.map +1 -0
- package/dist/performance/ColumnarStorage.d.ts +138 -0
- package/dist/performance/ColumnarStorage.d.ts.map +1 -0
- package/dist/performance/ColumnarStorage.js +875 -0
- package/dist/performance/ColumnarStorage.js.map +1 -0
- package/dist/performance/LazyQuery.d.ts +307 -0
- package/dist/performance/LazyQuery.d.ts.map +1 -0
- package/dist/performance/LazyQuery.js +588 -0
- package/dist/performance/LazyQuery.js.map +1 -0
- package/dist/performance/OptimizedBuffer.d.ts +375 -0
- package/dist/performance/OptimizedBuffer.d.ts.map +1 -0
- package/dist/performance/OptimizedBuffer.js +730 -0
- package/dist/performance/OptimizedBuffer.js.map +1 -0
- package/dist/performance/RWLock.d.ts +260 -0
- package/dist/performance/RWLock.d.ts.map +1 -0
- package/dist/performance/RWLock.js +570 -0
- package/dist/performance/RWLock.js.map +1 -0
- package/dist/performance/index.d.ts +41 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +162 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/performance/types.d.ts +247 -0
- package/dist/performance/types.d.ts.map +1 -0
- package/dist/performance/types.js +26 -0
- package/dist/performance/types.js.map +1 -0
- package/dist/storage/Checkpoint.d.ts +128 -0
- package/dist/storage/Checkpoint.d.ts.map +1 -0
- package/dist/storage/Checkpoint.js +251 -0
- package/dist/storage/Checkpoint.js.map +1 -0
- package/dist/storage/LightFile.d.ts +227 -0
- package/dist/storage/LightFile.d.ts.map +1 -0
- package/dist/storage/LightFile.js +526 -0
- package/dist/storage/LightFile.js.map +1 -0
- package/dist/storage/Recovery.d.ts +172 -0
- package/dist/storage/Recovery.d.ts.map +1 -0
- package/dist/storage/Recovery.js +399 -0
- package/dist/storage/Recovery.js.map +1 -0
- package/dist/storage/SHMFile.d.ts +243 -0
- package/dist/storage/SHMFile.d.ts.map +1 -0
- package/dist/storage/SHMFile.js +436 -0
- package/dist/storage/SHMFile.js.map +1 -0
- package/dist/storage/StorageEngine.d.ts +146 -0
- package/dist/storage/StorageEngine.d.ts.map +1 -0
- package/dist/storage/StorageEngine.js +353 -0
- package/dist/storage/StorageEngine.js.map +1 -0
- package/dist/storage/WALFile.d.ts +248 -0
- package/dist/storage/WALFile.d.ts.map +1 -0
- package/dist/storage/WALFile.js +597 -0
- package/dist/storage/WALFile.js.map +1 -0
- package/dist/storage/index.d.ts +10 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +153 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/types/index.d.ts +220 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +7 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/binary.d.ts +271 -0
- package/dist/utils/binary.d.ts.map +1 -0
- package/dist/utils/binary.js +454 -0
- package/dist/utils/binary.js.map +1 -0
- package/dist/utils/file.d.ts +166 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +346 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +39 -0
- package/dist/utils/index.js.map +1 -0
- package/package.json +37 -0
- package/readme.md +124 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAL(预写日志)文件实现
|
|
3
|
+
* 记录每一次写操作的增量日志,用于崩溃恢复与异步持久化
|
|
4
|
+
*/
|
|
5
|
+
import { WalRecord, WriteResult, BatchWriteResult, WalRecordIterator } from "../types";
|
|
6
|
+
/**
|
|
7
|
+
* WAL 记录序列化器
|
|
8
|
+
* 负责将 WAL 记录序列化为二进制格式
|
|
9
|
+
*/
|
|
10
|
+
export declare class WalRecordSerializer {
|
|
11
|
+
/**
|
|
12
|
+
* 序列化 WAL 记录
|
|
13
|
+
* @param record WAL 记录
|
|
14
|
+
*/
|
|
15
|
+
serialize(record: WalRecord): Buffer;
|
|
16
|
+
/**
|
|
17
|
+
* 反序列化 WAL 记录
|
|
18
|
+
* @param buffer 包含记录数据的 Buffer
|
|
19
|
+
* @param startOffset 起始偏移量
|
|
20
|
+
*/
|
|
21
|
+
deserialize(
|
|
22
|
+
buffer: Buffer,
|
|
23
|
+
startOffset?: number,
|
|
24
|
+
): {
|
|
25
|
+
record: WalRecord;
|
|
26
|
+
bytesRead: number;
|
|
27
|
+
} | null;
|
|
28
|
+
/**
|
|
29
|
+
* 计算记录大小
|
|
30
|
+
* @param key 键
|
|
31
|
+
* @param value 值(可选)
|
|
32
|
+
*/
|
|
33
|
+
calculateRecordSize(key: string, value: Buffer | null): number;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* WAL 文件写入器
|
|
37
|
+
* 负责将 WAL 记录追加写入文件
|
|
38
|
+
*/
|
|
39
|
+
export declare class WalWriter {
|
|
40
|
+
private readonly filePath;
|
|
41
|
+
private handle;
|
|
42
|
+
private readonly serializer;
|
|
43
|
+
private currentOffset;
|
|
44
|
+
private pendingSync;
|
|
45
|
+
private readonly syncStrategy;
|
|
46
|
+
private readonly batchSize;
|
|
47
|
+
private writeCount;
|
|
48
|
+
/**
|
|
49
|
+
* 创建 WAL 写入器
|
|
50
|
+
* @param basePath 数据库基础路径
|
|
51
|
+
* @param dbName 数据库名称
|
|
52
|
+
* @param syncStrategy 同步策略
|
|
53
|
+
* @param batchSize 批量写入大小
|
|
54
|
+
*/
|
|
55
|
+
constructor(basePath: string, dbName: string, syncStrategy?: "always" | "batch" | "interval", batchSize?: number);
|
|
56
|
+
/**
|
|
57
|
+
* 打开 WAL 文件
|
|
58
|
+
*/
|
|
59
|
+
open(): Promise<void>;
|
|
60
|
+
/**
|
|
61
|
+
* 关闭 WAL 文件
|
|
62
|
+
*/
|
|
63
|
+
close(): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* 写入单条 WAL 记录
|
|
66
|
+
* @param record WAL 记录
|
|
67
|
+
*/
|
|
68
|
+
write(record: WalRecord): Promise<WriteResult>;
|
|
69
|
+
/**
|
|
70
|
+
* 批量写入 WAL 记录
|
|
71
|
+
* @param records WAL 记录数组
|
|
72
|
+
*/
|
|
73
|
+
writeBatch(records: WalRecord[]): Promise<BatchWriteResult>;
|
|
74
|
+
/**
|
|
75
|
+
* 同步到磁盘
|
|
76
|
+
*/
|
|
77
|
+
sync(): Promise<void>;
|
|
78
|
+
/**
|
|
79
|
+
* 获取当前文件大小
|
|
80
|
+
*/
|
|
81
|
+
getFileSize(): Promise<number>;
|
|
82
|
+
/**
|
|
83
|
+
* 获取当前偏移量
|
|
84
|
+
*/
|
|
85
|
+
getCurrentOffset(): number;
|
|
86
|
+
/**
|
|
87
|
+
* 清空 WAL 文件
|
|
88
|
+
*/
|
|
89
|
+
clear(): Promise<void>;
|
|
90
|
+
/**
|
|
91
|
+
* 获取文件路径
|
|
92
|
+
*/
|
|
93
|
+
getFilePath(): string;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* WAL 文件读取器
|
|
97
|
+
* 负责顺序读取 WAL 记录
|
|
98
|
+
*/
|
|
99
|
+
export declare class WalReader {
|
|
100
|
+
private readonly filePath;
|
|
101
|
+
private handle;
|
|
102
|
+
private readonly serializer;
|
|
103
|
+
private fileSize;
|
|
104
|
+
private currentOffset;
|
|
105
|
+
private readBufferSize;
|
|
106
|
+
private readBuffer;
|
|
107
|
+
private bufferValidBytes;
|
|
108
|
+
/**
|
|
109
|
+
* 创建 WAL 读取器
|
|
110
|
+
* @param basePath 数据库基础路径
|
|
111
|
+
* @param dbName 数据库名称
|
|
112
|
+
* @param readBufferSize 读取缓冲区大小,默认 64KB
|
|
113
|
+
*/
|
|
114
|
+
constructor(basePath: string, dbName: string, readBufferSize?: number);
|
|
115
|
+
/**
|
|
116
|
+
* 打开 WAL 文件
|
|
117
|
+
*/
|
|
118
|
+
open(): Promise<void>;
|
|
119
|
+
/**
|
|
120
|
+
* 关闭 WAL 文件
|
|
121
|
+
*/
|
|
122
|
+
close(): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* 填充读取缓冲区
|
|
125
|
+
*/
|
|
126
|
+
private fillBuffer;
|
|
127
|
+
/**
|
|
128
|
+
* 读取下一条 WAL 记录
|
|
129
|
+
*/
|
|
130
|
+
readNext(): Promise<WalRecord | null>;
|
|
131
|
+
/**
|
|
132
|
+
* 创建 WAL 记录迭代器
|
|
133
|
+
*/
|
|
134
|
+
iterate(): WalRecordIterator;
|
|
135
|
+
/**
|
|
136
|
+
* 从指定偏移量开始读取
|
|
137
|
+
* @param offset 起始偏移量
|
|
138
|
+
*/
|
|
139
|
+
seek(offset: number): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* 获取当前偏移量
|
|
142
|
+
*/
|
|
143
|
+
getCurrentOffset(): number;
|
|
144
|
+
/**
|
|
145
|
+
* 获取文件大小
|
|
146
|
+
*/
|
|
147
|
+
getFileSize(): number;
|
|
148
|
+
/**
|
|
149
|
+
* 读取所有 WAL 记录
|
|
150
|
+
*/
|
|
151
|
+
readAll(): Promise<WalRecord[]>;
|
|
152
|
+
/**
|
|
153
|
+
* 获取文件路径
|
|
154
|
+
*/
|
|
155
|
+
getFilePath(): string;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* WAL 管理器
|
|
159
|
+
* 提供统一的 WAL 读写接口
|
|
160
|
+
*/
|
|
161
|
+
export declare class WalManager {
|
|
162
|
+
private readonly basePath;
|
|
163
|
+
private readonly dbName;
|
|
164
|
+
private writer;
|
|
165
|
+
private reader;
|
|
166
|
+
private currentLsn;
|
|
167
|
+
private currentTransactionId;
|
|
168
|
+
/**
|
|
169
|
+
* 创建 WAL 管理器
|
|
170
|
+
* @param basePath 数据库基础路径
|
|
171
|
+
* @param dbName 数据库名称
|
|
172
|
+
*/
|
|
173
|
+
constructor(basePath: string, dbName: string);
|
|
174
|
+
/**
|
|
175
|
+
* 初始化 WAL 管理器
|
|
176
|
+
*/
|
|
177
|
+
initialize(): Promise<void>;
|
|
178
|
+
/**
|
|
179
|
+
* 获取最后一条记录的 LSN
|
|
180
|
+
*/
|
|
181
|
+
getLastLsn(): Promise<bigint>;
|
|
182
|
+
/**
|
|
183
|
+
* 分配新的 LSN
|
|
184
|
+
*/
|
|
185
|
+
allocateLsn(): bigint;
|
|
186
|
+
/**
|
|
187
|
+
* 分配新的事务 ID
|
|
188
|
+
*/
|
|
189
|
+
allocateTransactionId(): bigint;
|
|
190
|
+
/**
|
|
191
|
+
* 写入插入记录
|
|
192
|
+
* @param key 键
|
|
193
|
+
* @param value 值
|
|
194
|
+
*/
|
|
195
|
+
writeInsert(key: string, value: Buffer): Promise<WriteResult>;
|
|
196
|
+
/**
|
|
197
|
+
* 写入更新记录
|
|
198
|
+
* @param key 键
|
|
199
|
+
* @param value 新值
|
|
200
|
+
*/
|
|
201
|
+
writeUpdate(key: string, value: Buffer): Promise<WriteResult>;
|
|
202
|
+
/**
|
|
203
|
+
* 写入删除记录
|
|
204
|
+
* @param key 键
|
|
205
|
+
*/
|
|
206
|
+
writeDelete(key: string): Promise<WriteResult>;
|
|
207
|
+
/**
|
|
208
|
+
* 写入检查点标记
|
|
209
|
+
*/
|
|
210
|
+
writeCheckpoint(): Promise<WriteResult>;
|
|
211
|
+
/**
|
|
212
|
+
* 同步 WAL 到磁盘
|
|
213
|
+
*/
|
|
214
|
+
sync(): Promise<void>;
|
|
215
|
+
/**
|
|
216
|
+
* 清空 WAL 文件
|
|
217
|
+
*/
|
|
218
|
+
clear(): Promise<void>;
|
|
219
|
+
/**
|
|
220
|
+
* 获取 WAL 文件大小
|
|
221
|
+
*/
|
|
222
|
+
getFileSize(): Promise<number>;
|
|
223
|
+
/**
|
|
224
|
+
* 创建记录迭代器
|
|
225
|
+
*/
|
|
226
|
+
iterateRecords(): WalRecordIterator;
|
|
227
|
+
/**
|
|
228
|
+
* 读取所有记录
|
|
229
|
+
*/
|
|
230
|
+
readAllRecords(): Promise<WalRecord[]>;
|
|
231
|
+
/**
|
|
232
|
+
* 关闭 WAL 管理器
|
|
233
|
+
*/
|
|
234
|
+
close(): Promise<void>;
|
|
235
|
+
/**
|
|
236
|
+
* 获取当前 LSN
|
|
237
|
+
*/
|
|
238
|
+
getCurrentLsn(): bigint;
|
|
239
|
+
/**
|
|
240
|
+
* 获取当前事务 ID
|
|
241
|
+
*/
|
|
242
|
+
getCurrentTransactionId(): bigint;
|
|
243
|
+
/**
|
|
244
|
+
* 设置当前 LSN(用于恢复)
|
|
245
|
+
*/
|
|
246
|
+
setCurrentLsn(lsn: bigint): void;
|
|
247
|
+
}
|
|
248
|
+
//# sourceMappingURL=WALFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WALFile.d.ts","sourceRoot":"","sources":["../../src/storage/WALFile.ts"],"names":[],"mappings":"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"}
|