@aztec/kv-store 0.75.0-commit.c03ba01a2a4122e43e90d5133ba017e54b90e9d2 → 0.76.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/dest/config.d.ts +17 -0
- package/dest/config.d.ts.map +1 -0
- package/dest/config.js +7 -5
- package/dest/indexeddb/array.d.ts +21 -0
- package/dest/indexeddb/array.d.ts.map +1 -0
- package/dest/indexeddb/array.js +36 -44
- package/dest/indexeddb/index.d.ts +7 -0
- package/dest/indexeddb/index.d.ts.map +1 -0
- package/dest/indexeddb/index.js +4 -1
- package/dest/indexeddb/map.d.ts +26 -0
- package/dest/indexeddb/map.d.ts.map +1 -0
- package/dest/indexeddb/map.js +43 -72
- package/dest/indexeddb/set.d.ts +17 -0
- package/dest/indexeddb/set.d.ts.map +1 -0
- package/dest/indexeddb/set.js +4 -3
- package/dest/indexeddb/singleton.d.ts +16 -0
- package/dest/indexeddb/singleton.d.ts.map +1 -0
- package/dest/indexeddb/singleton.js +22 -17
- package/dest/indexeddb/store.d.ts +97 -0
- package/dest/indexeddb/store.d.ts.map +1 -0
- package/dest/indexeddb/store.js +93 -97
- package/dest/interfaces/array.d.ts +80 -0
- package/dest/interfaces/array.d.ts.map +1 -0
- package/dest/interfaces/array.js +2 -3
- package/dest/interfaces/array_test_suite.d.ts +3 -0
- package/dest/interfaces/array_test_suite.d.ts.map +1 -0
- package/dest/interfaces/array_test_suite.js +25 -29
- package/dest/interfaces/common.d.ts +23 -0
- package/dest/interfaces/common.d.ts.map +1 -0
- package/dest/interfaces/common.js +2 -3
- package/dest/interfaces/counter.d.ts +59 -0
- package/dest/interfaces/counter.d.ts.map +1 -0
- package/dest/interfaces/counter.js +2 -1
- package/dest/interfaces/index.d.ts +8 -0
- package/dest/interfaces/index.d.ts.map +1 -0
- package/dest/interfaces/index.js +1 -0
- package/dest/interfaces/map.d.ts +134 -0
- package/dest/interfaces/map.d.ts.map +1 -0
- package/dest/interfaces/map.js +2 -3
- package/dest/interfaces/map_test_suite.d.ts +3 -0
- package/dest/interfaces/map_test_suite.d.ts.map +1 -0
- package/dest/interfaces/map_test_suite.js +42 -87
- package/dest/interfaces/set.d.ts +44 -0
- package/dest/interfaces/set.d.ts.map +1 -0
- package/dest/interfaces/set.js +2 -1
- package/dest/interfaces/set_test_suite.d.ts +3 -0
- package/dest/interfaces/set_test_suite.d.ts.map +1 -0
- package/dest/interfaces/set_test_suite.js +22 -59
- package/dest/interfaces/singleton.d.ts +29 -0
- package/dest/interfaces/singleton.d.ts.map +1 -0
- package/dest/interfaces/singleton.js +2 -4
- package/dest/interfaces/singleton_test_suite.d.ts +3 -0
- package/dest/interfaces/singleton_test_suite.d.ts.map +1 -0
- package/dest/interfaces/singleton_test_suite.js +10 -7
- package/dest/interfaces/store.d.ts +145 -0
- package/dest/interfaces/store.d.ts.map +1 -0
- package/dest/interfaces/store.js +2 -1
- package/dest/interfaces/store_test_suite.d.ts +3 -0
- package/dest/interfaces/store_test_suite.d.ts.map +1 -0
- package/dest/interfaces/store_test_suite.js +9 -6
- package/dest/interfaces/utils.d.ts +16 -0
- package/dest/interfaces/utils.d.ts.map +1 -0
- package/dest/interfaces/utils.js +15 -12
- package/dest/lmdb/array.d.ts +23 -0
- package/dest/lmdb/array.d.ts.map +1 -0
- package/dest/lmdb/array.js +41 -46
- package/dest/lmdb/counter.d.ts +19 -0
- package/dest/lmdb/counter.d.ts.map +1 -0
- package/dest/lmdb/counter.js +24 -18
- package/dest/lmdb/index.d.ts +12 -0
- package/dest/lmdb/index.d.ts.map +1 -0
- package/dest/lmdb/index.js +6 -2
- package/dest/lmdb/map.d.ts +52 -0
- package/dest/lmdb/map.d.ts.map +1 -0
- package/dest/lmdb/map.js +68 -90
- package/dest/lmdb/set.d.ts +18 -0
- package/dest/lmdb/set.d.ts.map +1 -0
- package/dest/lmdb/set.js +5 -4
- package/dest/lmdb/singleton.d.ts +14 -0
- package/dest/lmdb/singleton.d.ts.map +1 -0
- package/dest/lmdb/singleton.js +14 -13
- package/dest/lmdb/store.d.ts +110 -0
- package/dest/lmdb/store.d.ts.map +1 -0
- package/dest/lmdb/store.js +134 -124
- package/dest/lmdb-v2/factory.d.ts +9 -0
- package/dest/lmdb-v2/factory.d.ts.map +1 -0
- package/dest/lmdb-v2/factory.js +19 -22
- package/dest/lmdb-v2/index.d.ts +3 -0
- package/dest/lmdb-v2/index.d.ts.map +1 -0
- package/dest/lmdb-v2/index.js +1 -0
- package/dest/lmdb-v2/map.d.ts +86 -0
- package/dest/lmdb-v2/map.d.ts.map +1 -0
- package/dest/lmdb-v2/map.js +85 -82
- package/dest/lmdb-v2/message.d.ts +112 -0
- package/dest/lmdb-v2/message.d.ts.map +1 -0
- package/dest/lmdb-v2/message.js +7 -6
- package/dest/lmdb-v2/read_transaction.d.ts +14 -0
- package/dest/lmdb-v2/read_transaction.d.ts.map +1 -0
- package/dest/lmdb-v2/read_transaction.js +53 -65
- package/dest/lmdb-v2/singleton.d.ts +12 -0
- package/dest/lmdb-v2/singleton.d.ts.map +1 -0
- package/dest/lmdb-v2/singleton.js +5 -7
- package/dest/lmdb-v2/store.d.ts +43 -0
- package/dest/lmdb-v2/store.d.ts.map +1 -0
- package/dest/lmdb-v2/store.js +26 -27
- package/dest/lmdb-v2/utils.d.ts +19 -0
- package/dest/lmdb-v2/utils.d.ts.map +1 -0
- package/dest/lmdb-v2/utils.js +30 -30
- package/dest/lmdb-v2/write_transaction.d.ts +19 -0
- package/dest/lmdb-v2/write_transaction.d.ts.map +1 -0
- package/dest/lmdb-v2/write_transaction.js +110 -130
- package/dest/stores/index.d.ts +2 -0
- package/dest/stores/index.d.ts.map +1 -0
- package/dest/stores/index.js +1 -0
- package/dest/stores/l2_tips_store.d.ts +13 -0
- package/dest/stores/l2_tips_store.d.ts.map +1 -0
- package/dest/stores/l2_tips_store.js +12 -26
- package/dest/utils.d.ts +12 -0
- package/dest/utils.d.ts.map +1 -0
- package/dest/utils.js +7 -3
- package/package.json +6 -6
- package/src/interfaces/index.ts +1 -1
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { type RootDatabase } from 'lmdb';
|
|
2
|
+
import { type AztecArray, type AztecAsyncArray } from '../interfaces/array.js';
|
|
3
|
+
import { type Key, type StoreSize } from '../interfaces/common.js';
|
|
4
|
+
import { type AztecAsyncCounter, type AztecCounter } from '../interfaces/counter.js';
|
|
5
|
+
import { type AztecAsyncMap, type AztecAsyncMultiMap, type AztecMap, type AztecMapWithSize, type AztecMultiMap, type AztecMultiMapWithSize } from '../interfaces/map.js';
|
|
6
|
+
import { type AztecAsyncSet, type AztecSet } from '../interfaces/set.js';
|
|
7
|
+
import { type AztecAsyncSingleton, type AztecSingleton } from '../interfaces/singleton.js';
|
|
8
|
+
import { type AztecAsyncKVStore, type AztecKVStore } from '../interfaces/store.js';
|
|
9
|
+
/**
|
|
10
|
+
* A key-value store backed by LMDB.
|
|
11
|
+
*/
|
|
12
|
+
export declare class AztecLmdbStore implements AztecKVStore, AztecAsyncKVStore {
|
|
13
|
+
#private;
|
|
14
|
+
readonly isEphemeral: boolean;
|
|
15
|
+
private path;
|
|
16
|
+
syncGetters: true;
|
|
17
|
+
constructor(rootDb: RootDatabase, isEphemeral: boolean, path: string);
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new AztecKVStore backed by LMDB. The path to the database is optional. If not provided,
|
|
20
|
+
* the database will be stored in a temporary location and be deleted when the process exists.
|
|
21
|
+
*
|
|
22
|
+
* The `rollupAddress` passed is checked against what is stored in the database. If they do not match,
|
|
23
|
+
* the database is cleared before returning the store. This way data is not accidentally shared between
|
|
24
|
+
* different rollup instances.
|
|
25
|
+
*
|
|
26
|
+
* @param path - A path on the disk to store the database. Optional
|
|
27
|
+
* @param ephemeral - true if the store should only exist in memory and not automatically be flushed to disk. Optional
|
|
28
|
+
* @param log - A logger to use. Optional
|
|
29
|
+
* @returns The store
|
|
30
|
+
*/
|
|
31
|
+
static open(path?: string, mapSizeKb?: number, // defaults to 1 GB map size
|
|
32
|
+
ephemeral?: boolean, log?: import("@aztec/foundation/log").Logger): AztecLmdbStore;
|
|
33
|
+
/**
|
|
34
|
+
* Forks the current DB into a new DB by backing it up to a temporary location and opening a new lmdb db.
|
|
35
|
+
* @returns A new AztecLmdbStore.
|
|
36
|
+
*/
|
|
37
|
+
fork(): Promise<AztecLmdbStore>;
|
|
38
|
+
/**
|
|
39
|
+
* Creates a new AztecMap in the store.
|
|
40
|
+
* @param name - Name of the map
|
|
41
|
+
* @returns A new AztecMap
|
|
42
|
+
*/
|
|
43
|
+
openMap<K extends Key, V>(name: string): AztecMap<K, V> & AztecAsyncMap<K, V>;
|
|
44
|
+
/**
|
|
45
|
+
* Creates a new AztecSet in the store.
|
|
46
|
+
* @param name - Name of the set
|
|
47
|
+
* @returns A new AztecSet
|
|
48
|
+
*/
|
|
49
|
+
openSet<K extends Key>(name: string): AztecSet<K> & AztecAsyncSet<K>;
|
|
50
|
+
/**
|
|
51
|
+
* Creates a new AztecMultiMap in the store. A multi-map stores multiple values for a single key automatically.
|
|
52
|
+
* @param name - Name of the map
|
|
53
|
+
* @returns A new AztecMultiMap
|
|
54
|
+
*/
|
|
55
|
+
openMultiMap<K extends Key, V>(name: string): AztecMultiMap<K, V> & AztecAsyncMultiMap<K, V>;
|
|
56
|
+
openCounter<K extends Key>(name: string): AztecCounter<K> & AztecAsyncCounter<K>;
|
|
57
|
+
/**
|
|
58
|
+
* Creates a new AztecMultiMapWithSize in the store. A multi-map with size stores multiple values for a single key automatically.
|
|
59
|
+
* @param name - Name of the map
|
|
60
|
+
* @returns A new AztecMultiMapWithSize
|
|
61
|
+
*/
|
|
62
|
+
openMultiMapWithSize<K extends Key, V>(name: string): AztecMultiMapWithSize<K, V>;
|
|
63
|
+
/**
|
|
64
|
+
* Creates a new AztecMapWithSize in the store.
|
|
65
|
+
* @param name - Name of the map
|
|
66
|
+
* @returns A new AztecMapWithSize
|
|
67
|
+
*/
|
|
68
|
+
openMapWithSize<K extends Key, V>(name: string): AztecMapWithSize<K, V>;
|
|
69
|
+
/**
|
|
70
|
+
* Creates a new AztecArray in the store.
|
|
71
|
+
* @param name - Name of the array
|
|
72
|
+
* @returns A new AztecArray
|
|
73
|
+
*/
|
|
74
|
+
openArray<T>(name: string): AztecArray<T> & AztecAsyncArray<T>;
|
|
75
|
+
/**
|
|
76
|
+
* Creates a new AztecSingleton in the store.
|
|
77
|
+
* @param name - Name of the singleton
|
|
78
|
+
* @returns A new AztecSingleton
|
|
79
|
+
*/
|
|
80
|
+
openSingleton<T>(name: string): AztecSingleton<T> & AztecAsyncSingleton<T>;
|
|
81
|
+
/**
|
|
82
|
+
* Runs a callback in a transaction.
|
|
83
|
+
* @param callback - Function to execute in a transaction
|
|
84
|
+
* @returns A promise that resolves to the return value of the callback
|
|
85
|
+
*/
|
|
86
|
+
transaction<T>(callback: () => T): Promise<T>;
|
|
87
|
+
/**
|
|
88
|
+
* Runs a callback in a transaction.
|
|
89
|
+
* @param callback - Function to execute in a transaction
|
|
90
|
+
* @returns A promise that resolves to the return value of the callback
|
|
91
|
+
*/
|
|
92
|
+
transactionAsync<T>(callback: () => Promise<T>): Promise<T>;
|
|
93
|
+
/**
|
|
94
|
+
* Clears all entries in the store & sub DBs.
|
|
95
|
+
*/
|
|
96
|
+
clear(): Promise<void>;
|
|
97
|
+
/**
|
|
98
|
+
* Drops the database & sub DBs.
|
|
99
|
+
*/
|
|
100
|
+
drop(): Promise<void>;
|
|
101
|
+
/**
|
|
102
|
+
* Close the database. Note, once this is closed we can no longer interact with the DB.
|
|
103
|
+
*/
|
|
104
|
+
close(): Promise<void>;
|
|
105
|
+
/** Deletes this store and removes the database files from disk */
|
|
106
|
+
delete(): Promise<void>;
|
|
107
|
+
estimateSize(): Promise<StoreSize>;
|
|
108
|
+
private estimateSubDBSize;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/lmdb/store.ts"],"names":[],"mappings":"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"}
|
package/dest/lmdb/store.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
var _AztecLmdbStore_rootDb, _AztecLmdbStore_data, _AztecLmdbStore_multiMapData, _AztecLmdbStore_log;
|
|
2
|
+
import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
|
|
1
3
|
import { randomBytes } from '@aztec/foundation/crypto';
|
|
2
4
|
import { createLogger } from '@aztec/foundation/log';
|
|
3
5
|
import { promises as fs, mkdirSync } from 'fs';
|
|
@@ -11,184 +13,186 @@ import { LmdbAztecSet } from './set.js';
|
|
|
11
13
|
import { LmdbAztecSingleton } from './singleton.js';
|
|
12
14
|
/**
|
|
13
15
|
* A key-value store backed by LMDB.
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
path
|
|
17
|
-
syncGetters;
|
|
18
|
-
#rootDb;
|
|
19
|
-
#data;
|
|
20
|
-
#multiMapData;
|
|
21
|
-
#log;
|
|
22
|
-
constructor(rootDb, isEphemeral, path){
|
|
16
|
+
*/
|
|
17
|
+
export class AztecLmdbStore {
|
|
18
|
+
constructor(rootDb, isEphemeral, path) {
|
|
23
19
|
this.isEphemeral = isEphemeral;
|
|
24
20
|
this.path = path;
|
|
25
21
|
this.syncGetters = true;
|
|
26
|
-
this
|
|
27
|
-
this
|
|
22
|
+
_AztecLmdbStore_rootDb.set(this, void 0);
|
|
23
|
+
_AztecLmdbStore_data.set(this, void 0);
|
|
24
|
+
_AztecLmdbStore_multiMapData.set(this, void 0);
|
|
25
|
+
_AztecLmdbStore_log.set(this, createLogger('kv-store:lmdb'));
|
|
26
|
+
__classPrivateFieldSet(this, _AztecLmdbStore_rootDb, rootDb, "f");
|
|
28
27
|
// big bucket to store all the data
|
|
29
|
-
this
|
|
28
|
+
__classPrivateFieldSet(this, _AztecLmdbStore_data, rootDb.openDB('data', {
|
|
30
29
|
encoding: 'msgpack',
|
|
31
|
-
keyEncoding: 'ordered-binary'
|
|
32
|
-
});
|
|
33
|
-
this
|
|
30
|
+
keyEncoding: 'ordered-binary',
|
|
31
|
+
}), "f");
|
|
32
|
+
__classPrivateFieldSet(this, _AztecLmdbStore_multiMapData, rootDb.openDB('data_dup_sort', {
|
|
34
33
|
encoding: 'ordered-binary',
|
|
35
34
|
keyEncoding: 'ordered-binary',
|
|
36
|
-
dupSort: true
|
|
37
|
-
});
|
|
35
|
+
dupSort: true,
|
|
36
|
+
}), "f");
|
|
38
37
|
}
|
|
39
38
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
39
|
+
* Creates a new AztecKVStore backed by LMDB. The path to the database is optional. If not provided,
|
|
40
|
+
* the database will be stored in a temporary location and be deleted when the process exists.
|
|
41
|
+
*
|
|
42
|
+
* The `rollupAddress` passed is checked against what is stored in the database. If they do not match,
|
|
43
|
+
* the database is cleared before returning the store. This way data is not accidentally shared between
|
|
44
|
+
* different rollup instances.
|
|
45
|
+
*
|
|
46
|
+
* @param path - A path on the disk to store the database. Optional
|
|
47
|
+
* @param ephemeral - true if the store should only exist in memory and not automatically be flushed to disk. Optional
|
|
48
|
+
* @param log - A logger to use. Optional
|
|
49
|
+
* @returns The store
|
|
50
|
+
*/
|
|
51
|
+
static open(path, mapSizeKb = 1 * 1024 * 1024, // defaults to 1 GB map size
|
|
52
|
+
ephemeral = false, log = createLogger('kv-store:lmdb')) {
|
|
52
53
|
const dbPath = path ?? join(tmpdir(), randomBytes(8).toString('hex'));
|
|
53
|
-
mkdirSync(dbPath, {
|
|
54
|
-
recursive: true
|
|
55
|
-
});
|
|
54
|
+
mkdirSync(dbPath, { recursive: true });
|
|
56
55
|
const mapSize = 1024 * mapSizeKb;
|
|
57
56
|
log.debug(`Opening LMDB database at ${path || 'temporary location'} with map size ${mapSize}`);
|
|
58
|
-
const rootDb = open({
|
|
59
|
-
path: dbPath,
|
|
60
|
-
noSync: ephemeral,
|
|
61
|
-
mapSize
|
|
62
|
-
});
|
|
57
|
+
const rootDb = open({ path: dbPath, noSync: ephemeral, mapSize });
|
|
63
58
|
return new AztecLmdbStore(rootDb, ephemeral, dbPath);
|
|
64
59
|
}
|
|
65
60
|
/**
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
* Forks the current DB into a new DB by backing it up to a temporary location and opening a new lmdb db.
|
|
62
|
+
* @returns A new AztecLmdbStore.
|
|
63
|
+
*/
|
|
64
|
+
async fork() {
|
|
69
65
|
const baseDir = this.path;
|
|
70
|
-
this
|
|
66
|
+
__classPrivateFieldGet(this, _AztecLmdbStore_log, "f").debug(`Forking store with basedir ${baseDir}`);
|
|
71
67
|
const forkPath = await fs.mkdtemp(join(baseDir, 'aztec-store-fork-'));
|
|
72
|
-
this
|
|
73
|
-
await this
|
|
74
|
-
const forkDb = open(forkPath, {
|
|
75
|
-
|
|
76
|
-
});
|
|
77
|
-
this.#log.debug(`Forked store at ${forkPath} opened successfully`);
|
|
68
|
+
__classPrivateFieldGet(this, _AztecLmdbStore_log, "f").verbose(`Forking store to ${forkPath}`);
|
|
69
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").backup(forkPath, false);
|
|
70
|
+
const forkDb = open(forkPath, { noSync: this.isEphemeral });
|
|
71
|
+
__classPrivateFieldGet(this, _AztecLmdbStore_log, "f").debug(`Forked store at ${forkPath} opened successfully`);
|
|
78
72
|
return new AztecLmdbStore(forkDb, this.isEphemeral, forkPath);
|
|
79
73
|
}
|
|
80
74
|
/**
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
75
|
+
* Creates a new AztecMap in the store.
|
|
76
|
+
* @param name - Name of the map
|
|
77
|
+
* @returns A new AztecMap
|
|
78
|
+
*/
|
|
79
|
+
openMap(name) {
|
|
80
|
+
return new LmdbAztecMap(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
86
81
|
}
|
|
87
82
|
/**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
* Creates a new AztecSet in the store.
|
|
84
|
+
* @param name - Name of the set
|
|
85
|
+
* @returns A new AztecSet
|
|
86
|
+
*/
|
|
87
|
+
openSet(name) {
|
|
88
|
+
return new LmdbAztecSet(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
93
89
|
}
|
|
94
90
|
/**
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
91
|
+
* Creates a new AztecMultiMap in the store. A multi-map stores multiple values for a single key automatically.
|
|
92
|
+
* @param name - Name of the map
|
|
93
|
+
* @returns A new AztecMultiMap
|
|
94
|
+
*/
|
|
95
|
+
openMultiMap(name) {
|
|
96
|
+
return new LmdbAztecMap(__classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f"), name);
|
|
100
97
|
}
|
|
101
98
|
openCounter(name) {
|
|
102
|
-
return new LmdbAztecCounter(this
|
|
99
|
+
return new LmdbAztecCounter(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
103
100
|
}
|
|
104
101
|
/**
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
102
|
+
* Creates a new AztecMultiMapWithSize in the store. A multi-map with size stores multiple values for a single key automatically.
|
|
103
|
+
* @param name - Name of the map
|
|
104
|
+
* @returns A new AztecMultiMapWithSize
|
|
105
|
+
*/
|
|
106
|
+
openMultiMapWithSize(name) {
|
|
107
|
+
return new LmdbAztecMapWithSize(__classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f"), name);
|
|
110
108
|
}
|
|
111
109
|
/**
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
110
|
+
* Creates a new AztecMapWithSize in the store.
|
|
111
|
+
* @param name - Name of the map
|
|
112
|
+
* @returns A new AztecMapWithSize
|
|
113
|
+
*/
|
|
114
|
+
openMapWithSize(name) {
|
|
115
|
+
return new LmdbAztecMapWithSize(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
117
116
|
}
|
|
118
117
|
/**
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
118
|
+
* Creates a new AztecArray in the store.
|
|
119
|
+
* @param name - Name of the array
|
|
120
|
+
* @returns A new AztecArray
|
|
121
|
+
*/
|
|
122
|
+
openArray(name) {
|
|
123
|
+
return new LmdbAztecArray(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
124
124
|
}
|
|
125
125
|
/**
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
126
|
+
* Creates a new AztecSingleton in the store.
|
|
127
|
+
* @param name - Name of the singleton
|
|
128
|
+
* @returns A new AztecSingleton
|
|
129
|
+
*/
|
|
130
|
+
openSingleton(name) {
|
|
131
|
+
return new LmdbAztecSingleton(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"), name);
|
|
131
132
|
}
|
|
132
133
|
/**
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
* Runs a callback in a transaction.
|
|
135
|
+
* @param callback - Function to execute in a transaction
|
|
136
|
+
* @returns A promise that resolves to the return value of the callback
|
|
137
|
+
*/
|
|
138
|
+
transaction(callback) {
|
|
139
|
+
return __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").transaction(callback);
|
|
138
140
|
}
|
|
139
141
|
/**
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
142
|
+
* Runs a callback in a transaction.
|
|
143
|
+
* @param callback - Function to execute in a transaction
|
|
144
|
+
* @returns A promise that resolves to the return value of the callback
|
|
145
|
+
*/
|
|
146
|
+
async transactionAsync(callback) {
|
|
147
|
+
return await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").transaction(callback);
|
|
145
148
|
}
|
|
146
149
|
/**
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
await this
|
|
151
|
-
await this
|
|
150
|
+
* Clears all entries in the store & sub DBs.
|
|
151
|
+
*/
|
|
152
|
+
async clear() {
|
|
153
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_data, "f").clearAsync();
|
|
154
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f").clearAsync();
|
|
155
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").clearAsync();
|
|
152
156
|
}
|
|
153
157
|
/**
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
await this
|
|
158
|
-
await this
|
|
158
|
+
* Drops the database & sub DBs.
|
|
159
|
+
*/
|
|
160
|
+
async drop() {
|
|
161
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_data, "f").drop();
|
|
162
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f").drop();
|
|
163
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").drop();
|
|
159
164
|
}
|
|
160
165
|
/**
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
await this
|
|
165
|
-
await this
|
|
166
|
-
|
|
167
|
-
|
|
166
|
+
* Close the database. Note, once this is closed we can no longer interact with the DB.
|
|
167
|
+
*/
|
|
168
|
+
async close() {
|
|
169
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_data, "f").close();
|
|
170
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f").close();
|
|
171
|
+
await __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").close();
|
|
172
|
+
}
|
|
173
|
+
/** Deletes this store and removes the database files from disk */
|
|
174
|
+
async delete() {
|
|
168
175
|
await this.drop();
|
|
169
176
|
await this.close();
|
|
170
177
|
if (this.path) {
|
|
171
|
-
await fs.rm(this.path, {
|
|
172
|
-
|
|
173
|
-
force: true
|
|
174
|
-
});
|
|
175
|
-
this.#log.verbose(`Deleted database files at ${this.path}`);
|
|
178
|
+
await fs.rm(this.path, { recursive: true, force: true });
|
|
179
|
+
__classPrivateFieldGet(this, _AztecLmdbStore_log, "f").verbose(`Deleted database files at ${this.path}`);
|
|
176
180
|
}
|
|
177
181
|
}
|
|
178
182
|
estimateSize() {
|
|
179
|
-
const stats = this
|
|
183
|
+
const stats = __classPrivateFieldGet(this, _AztecLmdbStore_rootDb, "f").getStats();
|
|
180
184
|
// The 'mapSize' is the total amount of virtual address space allocated to the DB (effectively the maximum possible size)
|
|
181
185
|
// http://www.lmdb.tech/doc/group__mdb.html#a4bde3c8b676457342cba2fe27aed5fbd
|
|
182
186
|
let mapSize = 0;
|
|
183
187
|
if ('mapSize' in stats && typeof stats.mapSize === 'number') {
|
|
184
188
|
mapSize = stats.mapSize;
|
|
185
189
|
}
|
|
186
|
-
const dataResult = this.estimateSubDBSize(this
|
|
187
|
-
const multiResult = this.estimateSubDBSize(this
|
|
190
|
+
const dataResult = this.estimateSubDBSize(__classPrivateFieldGet(this, _AztecLmdbStore_data, "f"));
|
|
191
|
+
const multiResult = this.estimateSubDBSize(__classPrivateFieldGet(this, _AztecLmdbStore_multiMapData, "f"));
|
|
188
192
|
return Promise.resolve({
|
|
189
193
|
mappingSize: mapSize,
|
|
190
194
|
actualSize: dataResult.actualSize + multiResult.actualSize,
|
|
191
|
-
numItems: dataResult.numItems + multiResult.numItems
|
|
195
|
+
numItems: dataResult.numItems + multiResult.numItems,
|
|
192
196
|
});
|
|
193
197
|
}
|
|
194
198
|
estimateSubDBSize(db) {
|
|
@@ -200,16 +204,22 @@ import { LmdbAztecSingleton } from './singleton.js';
|
|
|
200
204
|
numItems = stats.entryCount;
|
|
201
205
|
}
|
|
202
206
|
// The closest value we can get to the actual size of the database is the number of consumed pages * the page size
|
|
203
|
-
if ('treeBranchPageCount' in stats &&
|
|
207
|
+
if ('treeBranchPageCount' in stats &&
|
|
208
|
+
typeof stats.treeBranchPageCount === 'number' &&
|
|
209
|
+
'treeLeafPageCount' in stats &&
|
|
210
|
+
typeof stats.treeLeafPageCount === 'number' &&
|
|
211
|
+
'overflowPages' in stats &&
|
|
212
|
+
typeof stats.overflowPages === 'number' &&
|
|
213
|
+
'pageSize' in stats &&
|
|
214
|
+
typeof stats.pageSize === 'number') {
|
|
204
215
|
const branchPages = stats.treeBranchPageCount;
|
|
205
216
|
const leafPages = stats.treeLeafPageCount;
|
|
206
217
|
const overflowPages = stats.overflowPages;
|
|
207
218
|
const pageSize = stats.pageSize;
|
|
208
219
|
actualSize = (branchPages + leafPages + overflowPages) * pageSize;
|
|
209
220
|
}
|
|
210
|
-
return {
|
|
211
|
-
actualSize,
|
|
212
|
-
numItems
|
|
213
|
-
};
|
|
221
|
+
return { actualSize, numItems };
|
|
214
222
|
}
|
|
215
223
|
}
|
|
224
|
+
_AztecLmdbStore_rootDb = new WeakMap(), _AztecLmdbStore_data = new WeakMap(), _AztecLmdbStore_multiMapData = new WeakMap(), _AztecLmdbStore_log = new WeakMap();
|
|
225
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi9zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFckQsT0FBTyxFQUFFLFFBQVEsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQy9DLE9BQU8sRUFBb0MsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWdCNUIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFRekIsWUFBWSxNQUFvQixFQUFrQixXQUFvQixFQUFVLElBQVk7UUFBMUMsZ0JBQVcsR0FBWCxXQUFXLENBQVM7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBUDVGLGdCQUFXLEdBQUcsSUFBYSxDQUFDO1FBRTVCLHlDQUFzQjtRQUN0Qix1Q0FBOEI7UUFDOUIsK0NBQXNDO1FBQ3RDLDhCQUFPLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBQztRQUduQyx1QkFBQSxJQUFJLDBCQUFXLE1BQU0sTUFBQSxDQUFDO1FBRXRCLG1DQUFtQztRQUNuQyx1QkFBQSxJQUFJLHdC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
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type Logger } from '@aztec/foundation/log';
|
|
2
|
+
import { type DataStoreConfig } from '../config.js';
|
|
3
|
+
import { AztecLMDBStoreV2 } from './store.js';
|
|
4
|
+
export declare function createStore(name: string, config: DataStoreConfig, log?: Logger): Promise<AztecLMDBStoreV2>;
|
|
5
|
+
export declare function openTmpStore(name: string, ephemeral?: boolean, dbMapSizeKb?: number, // 10GB
|
|
6
|
+
maxReaders?: number, log?: Logger): Promise<AztecLMDBStoreV2>;
|
|
7
|
+
export declare function openStoreAt(dataDir: string, dbMapSizeKb?: number, // 10GB
|
|
8
|
+
maxReaders?: number, log?: Logger): Promise<AztecLMDBStoreV2>;
|
|
9
|
+
//# sourceMappingURL=factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAMlE,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAK9C,wBAAsB,WAAW,CAC/B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,eAAe,EACvB,GAAG,GAAE,MAAiD,GACrD,OAAO,CAAC,gBAAgB,CAAC,CAsC3B;AAED,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,OAAc,EACzB,WAAW,SAAqB,EAAE,OAAO;AACzC,UAAU,SAAc,EACxB,GAAG,GAAE,MAAiD,GACrD,OAAO,CAAC,gBAAgB,CAAC,CAe3B;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,WAAW,SAAqB,EAAE,OAAO;AACzC,UAAU,SAAc,EACxB,GAAG,GAAE,MAAyC,GAC7C,OAAO,CAAC,gBAAgB,CAAC,CAG3B"}
|
package/dest/lmdb-v2/factory.js
CHANGED
|
@@ -11,54 +11,51 @@ export async function createStore(name, config, log = createLogger('kv-store:lmd
|
|
|
11
11
|
let store;
|
|
12
12
|
if (typeof dataDirectory !== 'undefined') {
|
|
13
13
|
const subDir = join(dataDirectory, name);
|
|
14
|
-
await mkdir(subDir, {
|
|
15
|
-
recursive: true
|
|
16
|
-
});
|
|
14
|
+
await mkdir(subDir, { recursive: true });
|
|
17
15
|
if (l1Contracts) {
|
|
18
16
|
const { rollupAddress } = l1Contracts;
|
|
19
|
-
const localRollupAddress = await readFile(join(subDir, ROLLUP_ADDRESS_FILE), 'utf-8')
|
|
17
|
+
const localRollupAddress = await readFile(join(subDir, ROLLUP_ADDRESS_FILE), 'utf-8')
|
|
18
|
+
.then(EthAddress.fromString)
|
|
19
|
+
.catch(() => EthAddress.ZERO);
|
|
20
20
|
if (!localRollupAddress.equals(rollupAddress)) {
|
|
21
21
|
if (!localRollupAddress.isZero()) {
|
|
22
22
|
log.warn(`Rollup address mismatch. Clearing entire database...`, {
|
|
23
23
|
expected: rollupAddress,
|
|
24
|
-
found: localRollupAddress
|
|
25
|
-
});
|
|
26
|
-
await rm(subDir, {
|
|
27
|
-
recursive: true,
|
|
28
|
-
force: true
|
|
29
|
-
});
|
|
30
|
-
await mkdir(subDir, {
|
|
31
|
-
recursive: true
|
|
24
|
+
found: localRollupAddress,
|
|
32
25
|
});
|
|
26
|
+
await rm(subDir, { recursive: true, force: true });
|
|
27
|
+
await mkdir(subDir, { recursive: true });
|
|
33
28
|
}
|
|
34
29
|
await writeFile(join(subDir, ROLLUP_ADDRESS_FILE), rollupAddress.toString());
|
|
35
30
|
}
|
|
36
31
|
}
|
|
37
32
|
log.info(`Creating ${name} data store at directory ${subDir} with map size ${config.dataStoreMapSizeKB} KB (LMDB v2)`);
|
|
38
|
-
store = await AztecLMDBStoreV2.new(subDir, config.dataStoreMapSizeKB, MAX_READERS, ()=>Promise.resolve(), log);
|
|
39
|
-
}
|
|
33
|
+
store = await AztecLMDBStoreV2.new(subDir, config.dataStoreMapSizeKB, MAX_READERS, () => Promise.resolve(), log);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
40
36
|
store = await openTmpStore(name, true, config.dataStoreMapSizeKB, MAX_READERS, log);
|
|
41
37
|
}
|
|
42
38
|
return store;
|
|
43
39
|
}
|
|
44
|
-
export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 *
|
|
40
|
+
export async function openTmpStore(name, ephemeral = true, dbMapSizeKb = 10 * 1024 * 1024, // 10GB
|
|
41
|
+
maxReaders = MAX_READERS, log = createLogger('kv-store:lmdb-v2:' + name)) {
|
|
45
42
|
const dataDir = await mkdtemp(join(tmpdir(), name + '-'));
|
|
46
43
|
log.debug(`Created temporary data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
47
44
|
// pass a cleanup callback because process.on('beforeExit', cleanup) does not work under Jest
|
|
48
|
-
const cleanup = async ()=>{
|
|
45
|
+
const cleanup = async () => {
|
|
49
46
|
if (ephemeral) {
|
|
50
|
-
await rm(dataDir, {
|
|
51
|
-
recursive: true,
|
|
52
|
-
force: true
|
|
53
|
-
});
|
|
47
|
+
await rm(dataDir, { recursive: true, force: true });
|
|
54
48
|
log.debug(`Deleted temporary data store: ${dataDir}`);
|
|
55
|
-
}
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
56
51
|
log.debug(`Leaving temporary data store: ${dataDir}`);
|
|
57
52
|
}
|
|
58
53
|
};
|
|
59
54
|
return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, cleanup, log);
|
|
60
55
|
}
|
|
61
|
-
export function openStoreAt(dataDir, dbMapSizeKb = 10 *
|
|
56
|
+
export function openStoreAt(dataDir, dbMapSizeKb = 10 * 1024 * 1024, // 10GB
|
|
57
|
+
maxReaders = MAX_READERS, log = createLogger('kv-store:lmdb-v2')) {
|
|
62
58
|
log.debug(`Opening data store at: ${dataDir} with size: ${dbMapSizeKb} KB (LMDB v2)`);
|
|
63
59
|
return AztecLMDBStoreV2.new(dataDir, dbMapSizeKb, maxReaders, undefined, log);
|
|
64
60
|
}
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sbWRiLXYyL2ZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hELE9BQU8sRUFBZSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHNUIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlDLE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUM7QUFDN0MsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUMvQixJQUFZLEVBQ1osTUFBdUIsRUFDdkIsTUFBYyxZQUFZLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO0lBRXRELE1BQU0sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRTlDLElBQUksS0FBdUIsQ0FBQztJQUM1QixJQUFJLE9BQU8sYUFBYSxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsTUFBTSxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFekMsSUFBSSxXQUFXLEVBQUUsQ0FBQztZQUNoQixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsV0FBVyxDQUFDO1lBQ3RDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxR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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lmdb-v2/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC"}
|
package/dest/lmdb-v2/index.js
CHANGED
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './store.js';
|
|
2
2
|
export * from './factory.js';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG1kYi12Mi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGNBQWMsQ0FBQyJ9
|