rocksdb-native 3.5.0 → 3.5.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/CMakeLists.txt +1 -1
- package/binding.c +40 -12
- package/index.js +10 -0
- package/lib/batch.js +3 -3
- package/lib/state.js +7 -2
- package/package.json +3 -3
- package/prebuilds/android-arm/rocksdb-native.bare +0 -0
- package/prebuilds/android-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/android-ia32/rocksdb-native.bare +0 -0
- package/prebuilds/android-x64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-arm64/rocksdb-native.node +0 -0
- package/prebuilds/darwin-x64/rocksdb-native.bare +0 -0
- package/prebuilds/darwin-x64/rocksdb-native.node +0 -0
- package/prebuilds/ios-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/ios-arm64-simulator/rocksdb-native.bare +0 -0
- package/prebuilds/ios-x64-simulator/rocksdb-native.bare +0 -0
- package/prebuilds/linux-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/linux-arm64/rocksdb-native.node +0 -0
- package/prebuilds/linux-x64/rocksdb-native.bare +0 -0
- package/prebuilds/linux-x64/rocksdb-native.node +0 -0
- package/prebuilds/win32-arm64/rocksdb-native.bare +0 -0
- package/prebuilds/win32-arm64/rocksdb-native.node +0 -0
- package/prebuilds/win32-x64/rocksdb-native.bare +0 -0
- package/prebuilds/win32-x64/rocksdb-native.node +0 -0
package/CMakeLists.txt
CHANGED
package/binding.c
CHANGED
|
@@ -190,10 +190,15 @@ rocksdb_native__on_open(rocksdb_open_t *handle, int status) {
|
|
|
190
190
|
err = js_get_array_length(env, column_families, &len);
|
|
191
191
|
assert(err == 0);
|
|
192
192
|
|
|
193
|
+
js_value_t **elements = malloc(len * sizeof(js_value_t *));
|
|
194
|
+
|
|
195
|
+
uint32_t fetched;
|
|
196
|
+
err = js_get_array_elements(env, column_families, elements, len, 0, &fetched);
|
|
197
|
+
assert(err == 0);
|
|
198
|
+
assert(fetched == len);
|
|
199
|
+
|
|
193
200
|
for (uint32_t i = 0; i < len; i++) {
|
|
194
|
-
js_value_t *handle;
|
|
195
|
-
err = js_get_element(env, column_families, i, &handle);
|
|
196
|
-
assert(err == 0);
|
|
201
|
+
js_value_t *handle = elements[i];
|
|
197
202
|
|
|
198
203
|
rocksdb_native_column_family_t *column_family;
|
|
199
204
|
err = js_get_arraybuffer_info(env, handle, (void **) &column_family, NULL);
|
|
@@ -207,6 +212,8 @@ rocksdb_native__on_open(rocksdb_open_t *handle, int status) {
|
|
|
207
212
|
err = js_add_teardown_callback(env, rocksdb_native__on_column_family_teardown, (void *) column_family);
|
|
208
213
|
assert(err == 0);
|
|
209
214
|
}
|
|
215
|
+
|
|
216
|
+
free(elements);
|
|
210
217
|
}
|
|
211
218
|
|
|
212
219
|
js_call_function_with_checkpoint(env, ctx, cb, 1, (js_value_t *[]) {error}, NULL);
|
|
@@ -388,10 +395,15 @@ rocksdb_native_open(js_env_t *env, js_callback_info_t *info) {
|
|
|
388
395
|
|
|
389
396
|
rocksdb_column_family_descriptor_t *column_families = calloc(len, sizeof(rocksdb_column_family_descriptor_t));
|
|
390
397
|
|
|
398
|
+
js_value_t **elements = malloc(len * sizeof(js_value_t *));
|
|
399
|
+
|
|
400
|
+
uint32_t fetched;
|
|
401
|
+
err = js_get_array_elements(env, argv[3], elements, len, 0, &fetched);
|
|
402
|
+
assert(err == 0);
|
|
403
|
+
assert(fetched == len);
|
|
404
|
+
|
|
391
405
|
for (uint32_t i = 0; i < len; i++) {
|
|
392
|
-
js_value_t *handle;
|
|
393
|
-
err = js_get_element(env, argv[3], i, &handle);
|
|
394
|
-
assert(err == 0);
|
|
406
|
+
js_value_t *handle = elements[i];
|
|
395
407
|
|
|
396
408
|
rocksdb_native_column_family_t *column_family;
|
|
397
409
|
err = js_get_arraybuffer_info(env, handle, (void **) &column_family, NULL);
|
|
@@ -402,6 +414,8 @@ rocksdb_native_open(js_env_t *env, js_callback_info_t *info) {
|
|
|
402
414
|
column_family->db = &db->handle;
|
|
403
415
|
}
|
|
404
416
|
|
|
417
|
+
free(elements);
|
|
418
|
+
|
|
405
419
|
rocksdb_column_family_t **handles = calloc(len, sizeof(rocksdb_column_family_t *));
|
|
406
420
|
|
|
407
421
|
js_value_t *handle;
|
|
@@ -1394,10 +1408,15 @@ rocksdb_native_read(js_env_t *env, js_callback_info_t *info) {
|
|
|
1394
1408
|
err = js_create_reference(env, argv[5], 1, &req->on_status);
|
|
1395
1409
|
assert(err == 0);
|
|
1396
1410
|
|
|
1411
|
+
js_value_t **elements = malloc(len * sizeof(js_value_t *));
|
|
1412
|
+
|
|
1413
|
+
uint32_t fetched;
|
|
1414
|
+
err = js_get_array_elements(env, argv[2], elements, len, 0, &fetched);
|
|
1415
|
+
assert(err == 0);
|
|
1416
|
+
assert(fetched == len);
|
|
1417
|
+
|
|
1397
1418
|
for (uint32_t i = 0; i < len; i++) {
|
|
1398
|
-
js_value_t *read;
|
|
1399
|
-
err = js_get_element(env, argv[2], i, &read);
|
|
1400
|
-
assert(err == 0);
|
|
1419
|
+
js_value_t *read = elements[i];
|
|
1401
1420
|
|
|
1402
1421
|
js_value_t *property;
|
|
1403
1422
|
|
|
@@ -1433,6 +1452,8 @@ rocksdb_native_read(js_env_t *env, js_callback_info_t *info) {
|
|
|
1433
1452
|
}
|
|
1434
1453
|
}
|
|
1435
1454
|
|
|
1455
|
+
free(elements);
|
|
1456
|
+
|
|
1436
1457
|
rocksdb_read_options_t options = {
|
|
1437
1458
|
.version = 0,
|
|
1438
1459
|
};
|
|
@@ -1591,10 +1612,15 @@ rocksdb_native_write(js_env_t *env, js_callback_info_t *info) {
|
|
|
1591
1612
|
err = js_create_reference(env, argv[4], 1, &req->on_status);
|
|
1592
1613
|
assert(err == 0);
|
|
1593
1614
|
|
|
1615
|
+
js_value_t **elements = malloc(len * sizeof(js_value_t *));
|
|
1616
|
+
|
|
1617
|
+
uint32_t fetched;
|
|
1618
|
+
err = js_get_array_elements(env, argv[2], elements, len, 0, &fetched);
|
|
1619
|
+
assert(err == 0);
|
|
1620
|
+
assert(fetched == len);
|
|
1621
|
+
|
|
1594
1622
|
for (uint32_t i = 0; i < len; i++) {
|
|
1595
|
-
js_value_t *write;
|
|
1596
|
-
err = js_get_element(env, argv[2], i, &write);
|
|
1597
|
-
assert(err == 0);
|
|
1623
|
+
js_value_t *write = elements[i];
|
|
1598
1624
|
|
|
1599
1625
|
js_value_t *property;
|
|
1600
1626
|
|
|
@@ -1668,6 +1694,8 @@ rocksdb_native_write(js_env_t *env, js_callback_info_t *info) {
|
|
|
1668
1694
|
}
|
|
1669
1695
|
}
|
|
1670
1696
|
|
|
1697
|
+
free(elements);
|
|
1698
|
+
|
|
1671
1699
|
err = rocksdb_write(&db->handle, &req->handle, req->writes, len, NULL, rocksdb_native__on_write);
|
|
1672
1700
|
assert(err == 0);
|
|
1673
1701
|
|
package/index.js
CHANGED
|
@@ -172,10 +172,20 @@ class RocksDB {
|
|
|
172
172
|
this._state.activity.inc()
|
|
173
173
|
}
|
|
174
174
|
|
|
175
|
+
_refBatch() {
|
|
176
|
+
this._ref()
|
|
177
|
+
this._state.activeBatches.inc()
|
|
178
|
+
}
|
|
179
|
+
|
|
175
180
|
_unref() {
|
|
176
181
|
if (this._snapshot) this._snapshot.unref()
|
|
177
182
|
this._state.activity.dec()
|
|
178
183
|
}
|
|
184
|
+
|
|
185
|
+
_unrefBatch() {
|
|
186
|
+
this._unref()
|
|
187
|
+
this._state.activeBatches.dec()
|
|
188
|
+
}
|
|
179
189
|
}
|
|
180
190
|
|
|
181
191
|
module.exports = exports = RocksDB
|
package/lib/batch.js
CHANGED
|
@@ -8,7 +8,7 @@ class RocksDBBatch {
|
|
|
8
8
|
constructor(db, opts = {}) {
|
|
9
9
|
const { capacity = 8, autoDestroy = false } = opts
|
|
10
10
|
|
|
11
|
-
db.
|
|
11
|
+
db._refBatch()
|
|
12
12
|
|
|
13
13
|
this._db = db
|
|
14
14
|
this._destroyed = false
|
|
@@ -32,7 +32,7 @@ class RocksDBBatch {
|
|
|
32
32
|
_reuse(db, opts = {}) {
|
|
33
33
|
const { autoDestroy = false } = opts
|
|
34
34
|
|
|
35
|
-
db.
|
|
35
|
+
db._refBatch()
|
|
36
36
|
|
|
37
37
|
this._db = db
|
|
38
38
|
this._destroyed = false
|
|
@@ -81,7 +81,7 @@ class RocksDBBatch {
|
|
|
81
81
|
|
|
82
82
|
if (this._promises.length) this._abort()
|
|
83
83
|
|
|
84
|
-
this._db.
|
|
84
|
+
this._db._unrefBatch()
|
|
85
85
|
this._onfree()
|
|
86
86
|
}
|
|
87
87
|
|
package/lib/state.js
CHANGED
|
@@ -25,6 +25,7 @@ module.exports = class RocksDBState extends ReadyResource {
|
|
|
25
25
|
this.path = path
|
|
26
26
|
this.db = db
|
|
27
27
|
this.activity = new RefCounter()
|
|
28
|
+
this.activeBatches = new RefCounter()
|
|
28
29
|
this.sessions = []
|
|
29
30
|
this.columnFamilies = [columnFamily]
|
|
30
31
|
this.deferSnapshotInit = true
|
|
@@ -204,14 +205,17 @@ module.exports = class RocksDBState extends ReadyResource {
|
|
|
204
205
|
}
|
|
205
206
|
|
|
206
207
|
async suspend() {
|
|
208
|
+
if (this._suspended === true) return
|
|
207
209
|
if (this._suspending === null) this._suspending = this._suspend()
|
|
208
210
|
return this._suspending
|
|
209
211
|
}
|
|
210
212
|
|
|
211
213
|
async _suspend() {
|
|
212
|
-
if (this._resuming) await this._resuming
|
|
214
|
+
if (this._resuming !== null) await this._resuming
|
|
213
215
|
if (this.opened === false) await this.ready()
|
|
214
216
|
|
|
217
|
+
while (!this.activeBatches.isIdle()) await this.activeBatches.idle()
|
|
218
|
+
|
|
215
219
|
const req = { resolve: null, reject: null, handle: null }
|
|
216
220
|
|
|
217
221
|
const promise = new Promise((resolve, reject) => {
|
|
@@ -236,12 +240,13 @@ module.exports = class RocksDBState extends ReadyResource {
|
|
|
236
240
|
}
|
|
237
241
|
|
|
238
242
|
resume() {
|
|
243
|
+
if (this._suspended === false) return
|
|
239
244
|
if (this._resuming === null) this._resuming = this._resume()
|
|
240
245
|
return this._resuming
|
|
241
246
|
}
|
|
242
247
|
|
|
243
248
|
async _resume() {
|
|
244
|
-
if (this._suspending) await this._suspending
|
|
249
|
+
if (this._suspending !== null) await this._suspending
|
|
245
250
|
if (this.opened === false) await this.ready()
|
|
246
251
|
|
|
247
252
|
const req = { resolve: null, reject: null, handle: null }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rocksdb-native",
|
|
3
|
-
"version": "3.5.
|
|
3
|
+
"version": "3.5.1",
|
|
4
4
|
"description": "librocksdb bindings for JavaScript",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./index.js",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
},
|
|
34
34
|
"homepage": "https://github.com/holepunchto/rocksdb-native",
|
|
35
35
|
"engines": {
|
|
36
|
-
"bare": ">=1.
|
|
36
|
+
"bare": ">=1.16.0"
|
|
37
37
|
},
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"compact-encoding": "^2.15.0",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"streamx": "^2.16.1"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"bare-compat-napi": "^1.
|
|
46
|
+
"bare-compat-napi": "^1.3.0",
|
|
47
47
|
"brittle": "^3.5.0",
|
|
48
48
|
"cmake-bare": "^1.1.14",
|
|
49
49
|
"cmake-fetch": "^1.0.1",
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|