dataply 0.0.26-alpha.11 → 0.0.26-alpha.12

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 (2) hide show
  1. package/dist/cjs/index.js +32 -4
  2. package/package.json +2 -2
package/dist/cjs/index.js CHANGED
@@ -5008,9 +5008,14 @@ var BPTreePureSync = class {
5008
5008
  }
5009
5009
  _createReadOps() {
5010
5010
  const strategy = this.strategy;
5011
+ const readBuffer = /* @__PURE__ */ new Map();
5011
5012
  return {
5012
5013
  getNode(id) {
5013
- return strategy.read(id);
5014
+ const buffered = readBuffer.get(id);
5015
+ if (buffered) return buffered;
5016
+ const node = strategy.read(id);
5017
+ readBuffer.set(id, node);
5018
+ return node;
5014
5019
  },
5015
5020
  createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5016
5021
  const id = strategy.id(leaf);
@@ -5030,6 +5035,7 @@ var BPTreePureSync = class {
5030
5035
  }
5031
5036
  _createBufferedOps() {
5032
5037
  const strategy = this.strategy;
5038
+ const readBuffer = /* @__PURE__ */ new Map();
5033
5039
  const writeBuffer = /* @__PURE__ */ new Map();
5034
5040
  const deleteBuffer = /* @__PURE__ */ new Set();
5035
5041
  let headBuffer = null;
@@ -5037,7 +5043,11 @@ var BPTreePureSync = class {
5037
5043
  getNode(id) {
5038
5044
  const buffered = writeBuffer.get(id);
5039
5045
  if (buffered) return buffered;
5040
- return strategy.read(id);
5046
+ const read = readBuffer.get(id);
5047
+ if (read) return read;
5048
+ const node = strategy.read(id);
5049
+ readBuffer.set(id, node);
5050
+ return node;
5041
5051
  },
5042
5052
  createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5043
5053
  const id = strategy.id(leaf);
@@ -5070,6 +5080,10 @@ var BPTreePureSync = class {
5070
5080
  if (headBuffer) {
5071
5081
  strategy.writeHead(headBuffer);
5072
5082
  }
5083
+ readBuffer.clear();
5084
+ writeBuffer.clear();
5085
+ deleteBuffer.clear();
5086
+ headBuffer = null;
5073
5087
  }
5074
5088
  return { ops, flush };
5075
5089
  }
@@ -5251,9 +5265,14 @@ var BPTreePureAsync = class {
5251
5265
  }
5252
5266
  _createReadOps() {
5253
5267
  const strategy = this.strategy;
5268
+ const readBuffer = /* @__PURE__ */ new Map();
5254
5269
  return {
5255
5270
  async getNode(id) {
5256
- return await strategy.read(id);
5271
+ const buffered = readBuffer.get(id);
5272
+ if (buffered) return buffered;
5273
+ const node = await strategy.read(id);
5274
+ readBuffer.set(id, node);
5275
+ return node;
5257
5276
  },
5258
5277
  async createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5259
5278
  const id = await strategy.id(leaf);
@@ -5273,6 +5292,7 @@ var BPTreePureAsync = class {
5273
5292
  }
5274
5293
  _createBufferedOps() {
5275
5294
  const strategy = this.strategy;
5295
+ const readBuffer = /* @__PURE__ */ new Map();
5276
5296
  const writeBuffer = /* @__PURE__ */ new Map();
5277
5297
  const deleteBuffer = /* @__PURE__ */ new Set();
5278
5298
  let headBuffer = null;
@@ -5280,7 +5300,11 @@ var BPTreePureAsync = class {
5280
5300
  async getNode(id) {
5281
5301
  const buffered = writeBuffer.get(id);
5282
5302
  if (buffered) return buffered;
5283
- return await strategy.read(id);
5303
+ const read = readBuffer.get(id);
5304
+ if (read) return read;
5305
+ const node = await strategy.read(id);
5306
+ readBuffer.set(id, node);
5307
+ return node;
5284
5308
  },
5285
5309
  async createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5286
5310
  const id = await strategy.id(leaf);
@@ -5313,6 +5337,10 @@ var BPTreePureAsync = class {
5313
5337
  if (headBuffer) {
5314
5338
  await strategy.writeHead(headBuffer);
5315
5339
  }
5340
+ readBuffer.clear();
5341
+ writeBuffer.clear();
5342
+ deleteBuffer.clear();
5343
+ headBuffer = null;
5316
5344
  }
5317
5345
  return { ops, flush };
5318
5346
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dataply",
3
- "version": "0.0.26-alpha.11",
3
+ "version": "0.0.26-alpha.12",
4
4
  "description": "A lightweight storage engine for Node.js with support for MVCC, WAL.",
5
5
  "license": "MIT",
6
6
  "author": "izure <admin@izure.org>",
@@ -49,6 +49,6 @@
49
49
  "hookall": "^2.2.0",
50
50
  "mvcc-api": "^1.3.7",
51
51
  "ryoiki": "^1.2.0",
52
- "serializable-bptree": "^9.0.4-alpha.0"
52
+ "serializable-bptree": "^9.0.4-alpha.1"
53
53
  }
54
54
  }