@harperfast/rocksdb-js 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/dist/index.cjs +54 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +85 -4
- package/dist/index.d.mts +85 -4
- package/dist/index.mjs +54 -4
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -12
package/dist/index.d.cts
CHANGED
|
@@ -293,6 +293,23 @@ type CompressionInfo = {
|
|
|
293
293
|
algorithm: CompressionAlgorithm;
|
|
294
294
|
level?: number;
|
|
295
295
|
};
|
|
296
|
+
/**
|
|
297
|
+
* The informational-log settings currently in effect for a database, as
|
|
298
|
+
* returned by the `logOptions` getter. These are database-wide (`DBOptions`)
|
|
299
|
+
* settings, not per-column-family.
|
|
300
|
+
*/
|
|
301
|
+
type LogOptions = {
|
|
302
|
+
/**
|
|
303
|
+
* Per-file size cap (bytes) for informational log files (`LOG` /
|
|
304
|
+
* `LOG.old.*`).
|
|
305
|
+
*/
|
|
306
|
+
maxLogFileSize: number;
|
|
307
|
+
/**
|
|
308
|
+
* Verbosity of informational logging: `0` (debug), `1` (info), `2` (warn),
|
|
309
|
+
* `3` (error), `4` (fatal), or `5` (header-only).
|
|
310
|
+
*/
|
|
311
|
+
infoLogLevel: number;
|
|
312
|
+
};
|
|
296
313
|
/**
|
|
297
314
|
* Options for the `Store` class.
|
|
298
315
|
*/
|
|
@@ -439,6 +456,11 @@ declare class Store {
|
|
|
439
456
|
* Encoder specific option used to signal that the data should be frozen.
|
|
440
457
|
*/
|
|
441
458
|
freezeData: boolean;
|
|
459
|
+
/**
|
|
460
|
+
* Verbosity of RocksDB's informational logging (`info_log_level`). Omit to
|
|
461
|
+
* leave RocksDB's own default.
|
|
462
|
+
*/
|
|
463
|
+
infoLogLevel?: number;
|
|
442
464
|
/**
|
|
443
465
|
* Reusable buffer for encoding keys.
|
|
444
466
|
*/
|
|
@@ -451,6 +473,16 @@ declare class Store {
|
|
|
451
473
|
* The maximum key size.
|
|
452
474
|
*/
|
|
453
475
|
maxKeySize: number;
|
|
476
|
+
/**
|
|
477
|
+
* Per-file size cap (bytes) for informational log files (`LOG` /
|
|
478
|
+
* `LOG.old.*`). Bounds total informational-log footprint to roughly `5 *
|
|
479
|
+
* maxLogFileSize` (RocksDB retains up to 5 of these files). A value of `0`
|
|
480
|
+
* is RocksDB's "single unbounded log file" mode: it disables size-based
|
|
481
|
+
* rotation, so the log can grow without limit — set it only if you want that.
|
|
482
|
+
*
|
|
483
|
+
* @default 16777216 (16MB)
|
|
484
|
+
*/
|
|
485
|
+
maxLogFileSize?: number;
|
|
454
486
|
/**
|
|
455
487
|
* The maximum number of table files RocksDB keeps open. `0` (the default)
|
|
456
488
|
* derives a budget from the effective per-process open-file limit (an
|
|
@@ -470,13 +502,26 @@ declare class Store {
|
|
|
470
502
|
/**
|
|
471
503
|
* The bytes of recent memtable history to retain in memory for transaction
|
|
472
504
|
* conflict checking. `-1` derives the value from
|
|
473
|
-
* `maxWriteBufferNumber * writeBufferSize
|
|
505
|
+
* `maxWriteBufferNumber * writeBufferSize`, except under a stalling
|
|
506
|
+
* `writeBufferManager`, where it derives `0`: retained history is charged to
|
|
507
|
+
* that manager and is only trimmable down to this target, so a target the
|
|
508
|
+
* budget cannot hold stalls writes permanently. Set a number to size it
|
|
509
|
+
* yourself against the budget and the column-family count.
|
|
474
510
|
*/
|
|
475
511
|
maxWriteBufferSizeToMaintain?: number;
|
|
476
512
|
/**
|
|
477
513
|
* The total memtable budget in bytes across all column families. When the
|
|
478
|
-
* sum of memtables reaches this size, RocksDB flushes the largest one.
|
|
479
|
-
* disables the global trigger so per-CF
|
|
514
|
+
* sum of memtables reaches this size, RocksDB flushes the largest one.
|
|
515
|
+
* Defaults to `0`, which disables the global trigger so per-CF
|
|
516
|
+
* `writeBufferSize` drives flushing.
|
|
517
|
+
*
|
|
518
|
+
* Set this only if you know your column-family count: it is one budget split
|
|
519
|
+
* across all of them, so a value that suits a few families starves many. To
|
|
520
|
+
* bound total memtable memory instead, configure a WriteBufferManager.
|
|
521
|
+
*
|
|
522
|
+
* Database-wide, so it binds when the path is first opened in this process:
|
|
523
|
+
* a later open of the same path — including from another worker thread —
|
|
524
|
+
* keeps the first opener's value rather than overriding or rejecting it.
|
|
480
525
|
*/
|
|
481
526
|
dbWriteBufferSize?: number;
|
|
482
527
|
/**
|
|
@@ -1811,6 +1856,22 @@ type NativeDatabaseOptions = {
|
|
|
1811
1856
|
dbWriteBufferSize?: number;
|
|
1812
1857
|
disableWAL?: boolean;
|
|
1813
1858
|
enableStats?: boolean;
|
|
1859
|
+
/**
|
|
1860
|
+
* Verbosity of RocksDB's informational logging (`info_log_level`): `0`
|
|
1861
|
+
* (debug), `1` (info), `2` (warn), `3` (error), `4` (fatal), or `5`
|
|
1862
|
+
* (header-only). Omit to leave RocksDB's own default (`INFO_LEVEL` in a
|
|
1863
|
+
* release build of the linked RocksDB library).
|
|
1864
|
+
*/
|
|
1865
|
+
infoLogLevel?: number;
|
|
1866
|
+
/**
|
|
1867
|
+
* Per-file size cap (bytes) for informational log files (`LOG` /
|
|
1868
|
+
* `LOG.old.*`, `max_log_file_size`). RocksDB retains up to 5 of these files
|
|
1869
|
+
* (`keep_log_file_num`, not currently exposed as an option), so total
|
|
1870
|
+
* informational-log footprint is bounded at roughly `5 * maxLogFileSize`.
|
|
1871
|
+
*
|
|
1872
|
+
* @default 16777216 (16MB)
|
|
1873
|
+
*/
|
|
1874
|
+
maxLogFileSize?: number;
|
|
1814
1875
|
maxOpenFiles?: number;
|
|
1815
1876
|
maxWriteBufferNumber?: number;
|
|
1816
1877
|
maxWriteBufferSizeToMaintain?: number;
|
|
@@ -1883,6 +1944,10 @@ type NativeDatabase = {
|
|
|
1883
1944
|
getCount(options?: RangeOptions, txnId?: number): number;
|
|
1884
1945
|
getDBIntProperty(propertyName: string): number | undefined;
|
|
1885
1946
|
getDBProperty(propertyName: string): string | undefined;
|
|
1947
|
+
getLogOptions(): {
|
|
1948
|
+
maxLogFileSize: number;
|
|
1949
|
+
infoLogLevel: number;
|
|
1950
|
+
};
|
|
1886
1951
|
getMonotonicTimestamp(): number;
|
|
1887
1952
|
getOldestSnapshotTimestamp(): number;
|
|
1888
1953
|
getStat(statName: string): number | StatsHistogramData;
|
|
@@ -2259,6 +2324,22 @@ declare class RocksDatabase extends DBI<DBITransactional> {
|
|
|
2259
2324
|
* ```
|
|
2260
2325
|
*/
|
|
2261
2326
|
get compression(): CompressionInfo;
|
|
2327
|
+
/**
|
|
2328
|
+
* The informational-log settings currently in effect for this database,
|
|
2329
|
+
* read live from RocksDB, as `{ maxLogFileSize, infoLogLevel }`. These are
|
|
2330
|
+
* database-wide settings (not per-column-family): `maxLogFileSize` bounds
|
|
2331
|
+
* each retained `LOG` / `LOG.old.*` file's size (defaults to 16MB, so with
|
|
2332
|
+
* RocksDB's `keep_log_file_num = 5` the total footprint is bounded at
|
|
2333
|
+
* roughly 80MB); `infoLogLevel` is the logging verbosity. The database must
|
|
2334
|
+
* be open.
|
|
2335
|
+
*
|
|
2336
|
+
* @example
|
|
2337
|
+
* ```typescript
|
|
2338
|
+
* const db = RocksDatabase.open('/path/to/db', { maxLogFileSize: 4 * 1024 * 1024 });
|
|
2339
|
+
* db.logOptions; // { maxLogFileSize: 4194304, infoLogLevel: 1 }
|
|
2340
|
+
* ```
|
|
2341
|
+
*/
|
|
2342
|
+
get logOptions(): LogOptions;
|
|
2262
2343
|
/**
|
|
2263
2344
|
* Set global database settings.
|
|
2264
2345
|
*
|
|
@@ -2647,5 +2728,5 @@ declare const versions: {
|
|
|
2647
2728
|
"rocksdb-js": string;
|
|
2648
2729
|
};
|
|
2649
2730
|
//#endregion
|
|
2650
|
-
export { type BackupInfo, type BackupOptions, type BackupStreamOptions, type CompressionAlgorithm, type CompressionInfo, type CompressionOption, DBI, DBIterator, type GetStatsMethod, type IteratorOptions, type Key, type RestoreMode, type RestoreOptions, type RocksDBStat, type RocksDBStats, RocksDatabase, type RocksDatabaseOptions, type StatsAll, type StatsAllExtras, type StatsBasics, type StatsCurated, type StatsCuratedExtras, type StatsDefault, type StatsHistogramData, type StatsValue, Store, type StoreContext, type StoreGetOptions, type StoreIteratorOptions, type StorePutOptions, type StoreRangeOptions, type StoreRemoveOptions, Transaction, type TransactionEntry, TransactionLog, type TransactionLogFileValidation, type TransactionLogPosition, type TransactionLogStats, type TransactionLogStoreValidation, type ValidateTransactionLogStoreOptions, backups, constants, coolTransactionLogs, currentThreadId, fileLockRelease, parseTransactionLog, registryStatus, shutdown, stats, supportedCompression, tryFileLock, validateTransactionLogStore, versions };
|
|
2731
|
+
export { type BackupInfo, type BackupOptions, type BackupStreamOptions, type CompressionAlgorithm, type CompressionInfo, type CompressionOption, DBI, DBIterator, type GetStatsMethod, type IteratorOptions, type Key, type LogOptions, type RestoreMode, type RestoreOptions, type RocksDBStat, type RocksDBStats, RocksDatabase, type RocksDatabaseOptions, type StatsAll, type StatsAllExtras, type StatsBasics, type StatsCurated, type StatsCuratedExtras, type StatsDefault, type StatsHistogramData, type StatsValue, Store, type StoreContext, type StoreGetOptions, type StoreIteratorOptions, type StorePutOptions, type StoreRangeOptions, type StoreRemoveOptions, Transaction, type TransactionEntry, TransactionLog, type TransactionLogFileValidation, type TransactionLogPosition, type TransactionLogStats, type TransactionLogStoreValidation, type ValidateTransactionLogStoreOptions, backups, constants, coolTransactionLogs, currentThreadId, fileLockRelease, parseTransactionLog, registryStatus, shutdown, stats, supportedCompression, tryFileLock, validateTransactionLogStore, versions };
|
|
2651
2732
|
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.mts
CHANGED
|
@@ -293,6 +293,23 @@ type CompressionInfo = {
|
|
|
293
293
|
algorithm: CompressionAlgorithm;
|
|
294
294
|
level?: number;
|
|
295
295
|
};
|
|
296
|
+
/**
|
|
297
|
+
* The informational-log settings currently in effect for a database, as
|
|
298
|
+
* returned by the `logOptions` getter. These are database-wide (`DBOptions`)
|
|
299
|
+
* settings, not per-column-family.
|
|
300
|
+
*/
|
|
301
|
+
type LogOptions = {
|
|
302
|
+
/**
|
|
303
|
+
* Per-file size cap (bytes) for informational log files (`LOG` /
|
|
304
|
+
* `LOG.old.*`).
|
|
305
|
+
*/
|
|
306
|
+
maxLogFileSize: number;
|
|
307
|
+
/**
|
|
308
|
+
* Verbosity of informational logging: `0` (debug), `1` (info), `2` (warn),
|
|
309
|
+
* `3` (error), `4` (fatal), or `5` (header-only).
|
|
310
|
+
*/
|
|
311
|
+
infoLogLevel: number;
|
|
312
|
+
};
|
|
296
313
|
/**
|
|
297
314
|
* Options for the `Store` class.
|
|
298
315
|
*/
|
|
@@ -439,6 +456,11 @@ declare class Store {
|
|
|
439
456
|
* Encoder specific option used to signal that the data should be frozen.
|
|
440
457
|
*/
|
|
441
458
|
freezeData: boolean;
|
|
459
|
+
/**
|
|
460
|
+
* Verbosity of RocksDB's informational logging (`info_log_level`). Omit to
|
|
461
|
+
* leave RocksDB's own default.
|
|
462
|
+
*/
|
|
463
|
+
infoLogLevel?: number;
|
|
442
464
|
/**
|
|
443
465
|
* Reusable buffer for encoding keys.
|
|
444
466
|
*/
|
|
@@ -451,6 +473,16 @@ declare class Store {
|
|
|
451
473
|
* The maximum key size.
|
|
452
474
|
*/
|
|
453
475
|
maxKeySize: number;
|
|
476
|
+
/**
|
|
477
|
+
* Per-file size cap (bytes) for informational log files (`LOG` /
|
|
478
|
+
* `LOG.old.*`). Bounds total informational-log footprint to roughly `5 *
|
|
479
|
+
* maxLogFileSize` (RocksDB retains up to 5 of these files). A value of `0`
|
|
480
|
+
* is RocksDB's "single unbounded log file" mode: it disables size-based
|
|
481
|
+
* rotation, so the log can grow without limit — set it only if you want that.
|
|
482
|
+
*
|
|
483
|
+
* @default 16777216 (16MB)
|
|
484
|
+
*/
|
|
485
|
+
maxLogFileSize?: number;
|
|
454
486
|
/**
|
|
455
487
|
* The maximum number of table files RocksDB keeps open. `0` (the default)
|
|
456
488
|
* derives a budget from the effective per-process open-file limit (an
|
|
@@ -470,13 +502,26 @@ declare class Store {
|
|
|
470
502
|
/**
|
|
471
503
|
* The bytes of recent memtable history to retain in memory for transaction
|
|
472
504
|
* conflict checking. `-1` derives the value from
|
|
473
|
-
* `maxWriteBufferNumber * writeBufferSize
|
|
505
|
+
* `maxWriteBufferNumber * writeBufferSize`, except under a stalling
|
|
506
|
+
* `writeBufferManager`, where it derives `0`: retained history is charged to
|
|
507
|
+
* that manager and is only trimmable down to this target, so a target the
|
|
508
|
+
* budget cannot hold stalls writes permanently. Set a number to size it
|
|
509
|
+
* yourself against the budget and the column-family count.
|
|
474
510
|
*/
|
|
475
511
|
maxWriteBufferSizeToMaintain?: number;
|
|
476
512
|
/**
|
|
477
513
|
* The total memtable budget in bytes across all column families. When the
|
|
478
|
-
* sum of memtables reaches this size, RocksDB flushes the largest one.
|
|
479
|
-
* disables the global trigger so per-CF
|
|
514
|
+
* sum of memtables reaches this size, RocksDB flushes the largest one.
|
|
515
|
+
* Defaults to `0`, which disables the global trigger so per-CF
|
|
516
|
+
* `writeBufferSize` drives flushing.
|
|
517
|
+
*
|
|
518
|
+
* Set this only if you know your column-family count: it is one budget split
|
|
519
|
+
* across all of them, so a value that suits a few families starves many. To
|
|
520
|
+
* bound total memtable memory instead, configure a WriteBufferManager.
|
|
521
|
+
*
|
|
522
|
+
* Database-wide, so it binds when the path is first opened in this process:
|
|
523
|
+
* a later open of the same path — including from another worker thread —
|
|
524
|
+
* keeps the first opener's value rather than overriding or rejecting it.
|
|
480
525
|
*/
|
|
481
526
|
dbWriteBufferSize?: number;
|
|
482
527
|
/**
|
|
@@ -1811,6 +1856,22 @@ type NativeDatabaseOptions = {
|
|
|
1811
1856
|
dbWriteBufferSize?: number;
|
|
1812
1857
|
disableWAL?: boolean;
|
|
1813
1858
|
enableStats?: boolean;
|
|
1859
|
+
/**
|
|
1860
|
+
* Verbosity of RocksDB's informational logging (`info_log_level`): `0`
|
|
1861
|
+
* (debug), `1` (info), `2` (warn), `3` (error), `4` (fatal), or `5`
|
|
1862
|
+
* (header-only). Omit to leave RocksDB's own default (`INFO_LEVEL` in a
|
|
1863
|
+
* release build of the linked RocksDB library).
|
|
1864
|
+
*/
|
|
1865
|
+
infoLogLevel?: number;
|
|
1866
|
+
/**
|
|
1867
|
+
* Per-file size cap (bytes) for informational log files (`LOG` /
|
|
1868
|
+
* `LOG.old.*`, `max_log_file_size`). RocksDB retains up to 5 of these files
|
|
1869
|
+
* (`keep_log_file_num`, not currently exposed as an option), so total
|
|
1870
|
+
* informational-log footprint is bounded at roughly `5 * maxLogFileSize`.
|
|
1871
|
+
*
|
|
1872
|
+
* @default 16777216 (16MB)
|
|
1873
|
+
*/
|
|
1874
|
+
maxLogFileSize?: number;
|
|
1814
1875
|
maxOpenFiles?: number;
|
|
1815
1876
|
maxWriteBufferNumber?: number;
|
|
1816
1877
|
maxWriteBufferSizeToMaintain?: number;
|
|
@@ -1883,6 +1944,10 @@ type NativeDatabase = {
|
|
|
1883
1944
|
getCount(options?: RangeOptions, txnId?: number): number;
|
|
1884
1945
|
getDBIntProperty(propertyName: string): number | undefined;
|
|
1885
1946
|
getDBProperty(propertyName: string): string | undefined;
|
|
1947
|
+
getLogOptions(): {
|
|
1948
|
+
maxLogFileSize: number;
|
|
1949
|
+
infoLogLevel: number;
|
|
1950
|
+
};
|
|
1886
1951
|
getMonotonicTimestamp(): number;
|
|
1887
1952
|
getOldestSnapshotTimestamp(): number;
|
|
1888
1953
|
getStat(statName: string): number | StatsHistogramData;
|
|
@@ -2259,6 +2324,22 @@ declare class RocksDatabase extends DBI<DBITransactional> {
|
|
|
2259
2324
|
* ```
|
|
2260
2325
|
*/
|
|
2261
2326
|
get compression(): CompressionInfo;
|
|
2327
|
+
/**
|
|
2328
|
+
* The informational-log settings currently in effect for this database,
|
|
2329
|
+
* read live from RocksDB, as `{ maxLogFileSize, infoLogLevel }`. These are
|
|
2330
|
+
* database-wide settings (not per-column-family): `maxLogFileSize` bounds
|
|
2331
|
+
* each retained `LOG` / `LOG.old.*` file's size (defaults to 16MB, so with
|
|
2332
|
+
* RocksDB's `keep_log_file_num = 5` the total footprint is bounded at
|
|
2333
|
+
* roughly 80MB); `infoLogLevel` is the logging verbosity. The database must
|
|
2334
|
+
* be open.
|
|
2335
|
+
*
|
|
2336
|
+
* @example
|
|
2337
|
+
* ```typescript
|
|
2338
|
+
* const db = RocksDatabase.open('/path/to/db', { maxLogFileSize: 4 * 1024 * 1024 });
|
|
2339
|
+
* db.logOptions; // { maxLogFileSize: 4194304, infoLogLevel: 1 }
|
|
2340
|
+
* ```
|
|
2341
|
+
*/
|
|
2342
|
+
get logOptions(): LogOptions;
|
|
2262
2343
|
/**
|
|
2263
2344
|
* Set global database settings.
|
|
2264
2345
|
*
|
|
@@ -2647,5 +2728,5 @@ declare const versions: {
|
|
|
2647
2728
|
"rocksdb-js": string;
|
|
2648
2729
|
};
|
|
2649
2730
|
//#endregion
|
|
2650
|
-
export { type BackupInfo, type BackupOptions, type BackupStreamOptions, type CompressionAlgorithm, type CompressionInfo, type CompressionOption, DBI, DBIterator, type GetStatsMethod, type IteratorOptions, type Key, type RestoreMode, type RestoreOptions, type RocksDBStat, type RocksDBStats, RocksDatabase, type RocksDatabaseOptions, type StatsAll, type StatsAllExtras, type StatsBasics, type StatsCurated, type StatsCuratedExtras, type StatsDefault, type StatsHistogramData, type StatsValue, Store, type StoreContext, type StoreGetOptions, type StoreIteratorOptions, type StorePutOptions, type StoreRangeOptions, type StoreRemoveOptions, Transaction, type TransactionEntry, TransactionLog, type TransactionLogFileValidation, type TransactionLogPosition, type TransactionLogStats, type TransactionLogStoreValidation, type ValidateTransactionLogStoreOptions, backups, constants, coolTransactionLogs, currentThreadId, fileLockRelease, parseTransactionLog, registryStatus, shutdown, stats, supportedCompression, tryFileLock, validateTransactionLogStore, versions };
|
|
2731
|
+
export { type BackupInfo, type BackupOptions, type BackupStreamOptions, type CompressionAlgorithm, type CompressionInfo, type CompressionOption, DBI, DBIterator, type GetStatsMethod, type IteratorOptions, type Key, type LogOptions, type RestoreMode, type RestoreOptions, type RocksDBStat, type RocksDBStats, RocksDatabase, type RocksDatabaseOptions, type StatsAll, type StatsAllExtras, type StatsBasics, type StatsCurated, type StatsCuratedExtras, type StatsDefault, type StatsHistogramData, type StatsValue, Store, type StoreContext, type StoreGetOptions, type StoreIteratorOptions, type StorePutOptions, type StoreRangeOptions, type StoreRemoveOptions, Transaction, type TransactionEntry, TransactionLog, type TransactionLogFileValidation, type TransactionLogPosition, type TransactionLogStats, type TransactionLogStoreValidation, type ValidateTransactionLogStoreOptions, backups, constants, coolTransactionLogs, currentThreadId, fileLockRelease, parseTransactionLog, registryStatus, shutdown, stats, supportedCompression, tryFileLock, validateTransactionLogStore, versions };
|
|
2651
2732
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.mjs
CHANGED
|
@@ -1311,6 +1311,11 @@ var Store = class {
|
|
|
1311
1311
|
*/
|
|
1312
1312
|
freezeData;
|
|
1313
1313
|
/**
|
|
1314
|
+
* Verbosity of RocksDB's informational logging (`info_log_level`). Omit to
|
|
1315
|
+
* leave RocksDB's own default.
|
|
1316
|
+
*/
|
|
1317
|
+
infoLogLevel;
|
|
1318
|
+
/**
|
|
1314
1319
|
* Reusable buffer for encoding keys.
|
|
1315
1320
|
*/
|
|
1316
1321
|
keyBuffer;
|
|
@@ -1323,6 +1328,16 @@ var Store = class {
|
|
|
1323
1328
|
*/
|
|
1324
1329
|
maxKeySize;
|
|
1325
1330
|
/**
|
|
1331
|
+
* Per-file size cap (bytes) for informational log files (`LOG` /
|
|
1332
|
+
* `LOG.old.*`). Bounds total informational-log footprint to roughly `5 *
|
|
1333
|
+
* maxLogFileSize` (RocksDB retains up to 5 of these files). A value of `0`
|
|
1334
|
+
* is RocksDB's "single unbounded log file" mode: it disables size-based
|
|
1335
|
+
* rotation, so the log can grow without limit — set it only if you want that.
|
|
1336
|
+
*
|
|
1337
|
+
* @default 16777216 (16MB)
|
|
1338
|
+
*/
|
|
1339
|
+
maxLogFileSize;
|
|
1340
|
+
/**
|
|
1326
1341
|
* The maximum number of table files RocksDB keeps open. `0` (the default)
|
|
1327
1342
|
* derives a budget from the effective per-process open-file limit (an
|
|
1328
1343
|
* eighth of the limit — several databases can share one process — clamped
|
|
@@ -1341,13 +1356,26 @@ var Store = class {
|
|
|
1341
1356
|
/**
|
|
1342
1357
|
* The bytes of recent memtable history to retain in memory for transaction
|
|
1343
1358
|
* conflict checking. `-1` derives the value from
|
|
1344
|
-
* `maxWriteBufferNumber * writeBufferSize
|
|
1359
|
+
* `maxWriteBufferNumber * writeBufferSize`, except under a stalling
|
|
1360
|
+
* `writeBufferManager`, where it derives `0`: retained history is charged to
|
|
1361
|
+
* that manager and is only trimmable down to this target, so a target the
|
|
1362
|
+
* budget cannot hold stalls writes permanently. Set a number to size it
|
|
1363
|
+
* yourself against the budget and the column-family count.
|
|
1345
1364
|
*/
|
|
1346
1365
|
maxWriteBufferSizeToMaintain;
|
|
1347
1366
|
/**
|
|
1348
1367
|
* The total memtable budget in bytes across all column families. When the
|
|
1349
|
-
* sum of memtables reaches this size, RocksDB flushes the largest one.
|
|
1350
|
-
* disables the global trigger so per-CF
|
|
1368
|
+
* sum of memtables reaches this size, RocksDB flushes the largest one.
|
|
1369
|
+
* Defaults to `0`, which disables the global trigger so per-CF
|
|
1370
|
+
* `writeBufferSize` drives flushing.
|
|
1371
|
+
*
|
|
1372
|
+
* Set this only if you know your column-family count: it is one budget split
|
|
1373
|
+
* across all of them, so a value that suits a few families starves many. To
|
|
1374
|
+
* bound total memtable memory instead, configure a WriteBufferManager.
|
|
1375
|
+
*
|
|
1376
|
+
* Database-wide, so it binds when the path is first opened in this process:
|
|
1377
|
+
* a later open of the same path — including from another worker thread —
|
|
1378
|
+
* keeps the first opener's value rather than overriding or rejecting it.
|
|
1351
1379
|
*/
|
|
1352
1380
|
dbWriteBufferSize;
|
|
1353
1381
|
/**
|
|
@@ -1452,9 +1480,11 @@ var Store = class {
|
|
|
1452
1480
|
this.encoder = options?.encoder ?? null;
|
|
1453
1481
|
this.encoding = options?.encoding ?? null;
|
|
1454
1482
|
this.freezeData = options?.freezeData ?? false;
|
|
1483
|
+
this.infoLogLevel = options?.infoLogLevel;
|
|
1455
1484
|
this.keyBuffer = KEY_BUFFER;
|
|
1456
1485
|
this.keyEncoding = keyEncoding;
|
|
1457
1486
|
this.maxKeySize = options?.maxKeySize ?? MAX_KEY_SIZE;
|
|
1487
|
+
this.maxLogFileSize = options?.maxLogFileSize;
|
|
1458
1488
|
this.maxOpenFiles = options?.maxOpenFiles;
|
|
1459
1489
|
this.maxWriteBufferNumber = options?.maxWriteBufferNumber;
|
|
1460
1490
|
this.maxWriteBufferSizeToMaintain = options?.maxWriteBufferSizeToMaintain;
|
|
@@ -1762,6 +1792,8 @@ var Store = class {
|
|
|
1762
1792
|
dbWriteBufferSize: this.dbWriteBufferSize,
|
|
1763
1793
|
disableWAL: this.disableWAL,
|
|
1764
1794
|
enableStats: this.enableStats,
|
|
1795
|
+
infoLogLevel: this.infoLogLevel,
|
|
1796
|
+
maxLogFileSize: this.maxLogFileSize,
|
|
1765
1797
|
maxOpenFiles: this.maxOpenFiles,
|
|
1766
1798
|
maxWriteBufferNumber: this.maxWriteBufferNumber,
|
|
1767
1799
|
maxWriteBufferSizeToMaintain: this.maxWriteBufferSizeToMaintain,
|
|
@@ -2206,6 +2238,24 @@ var RocksDatabase = class RocksDatabase extends DBI {
|
|
|
2206
2238
|
return this.store.db.getCompression();
|
|
2207
2239
|
}
|
|
2208
2240
|
/**
|
|
2241
|
+
* The informational-log settings currently in effect for this database,
|
|
2242
|
+
* read live from RocksDB, as `{ maxLogFileSize, infoLogLevel }`. These are
|
|
2243
|
+
* database-wide settings (not per-column-family): `maxLogFileSize` bounds
|
|
2244
|
+
* each retained `LOG` / `LOG.old.*` file's size (defaults to 16MB, so with
|
|
2245
|
+
* RocksDB's `keep_log_file_num = 5` the total footprint is bounded at
|
|
2246
|
+
* roughly 80MB); `infoLogLevel` is the logging verbosity. The database must
|
|
2247
|
+
* be open.
|
|
2248
|
+
*
|
|
2249
|
+
* @example
|
|
2250
|
+
* ```typescript
|
|
2251
|
+
* const db = RocksDatabase.open('/path/to/db', { maxLogFileSize: 4 * 1024 * 1024 });
|
|
2252
|
+
* db.logOptions; // { maxLogFileSize: 4194304, infoLogLevel: 1 }
|
|
2253
|
+
* ```
|
|
2254
|
+
*/
|
|
2255
|
+
get logOptions() {
|
|
2256
|
+
return this.store.db.getLogOptions();
|
|
2257
|
+
}
|
|
2258
|
+
/**
|
|
2209
2259
|
* Set global database settings.
|
|
2210
2260
|
*
|
|
2211
2261
|
* @param options - The options for the database.
|
|
@@ -3035,7 +3085,7 @@ function loadLastPosition(transactionLog, readUncommitted) {
|
|
|
3035
3085
|
//#region src/index.ts
|
|
3036
3086
|
const versions = {
|
|
3037
3087
|
rocksdb: version,
|
|
3038
|
-
"rocksdb-js": "2.7.
|
|
3088
|
+
"rocksdb-js": "2.7.1"
|
|
3039
3089
|
};
|
|
3040
3090
|
|
|
3041
3091
|
//#endregion
|