serializable-bptree 9.0.4-alpha.0 → 9.0.4-alpha.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.
@@ -4996,9 +4996,14 @@ var BPTreePureSync = class {
4996
4996
  }
4997
4997
  _createReadOps() {
4998
4998
  const strategy = this.strategy;
4999
+ const readBuffer = /* @__PURE__ */ new Map();
4999
5000
  return {
5000
5001
  getNode(id) {
5001
- return strategy.read(id);
5002
+ const buffered = readBuffer.get(id);
5003
+ if (buffered) return buffered;
5004
+ const node = strategy.read(id);
5005
+ readBuffer.set(id, node);
5006
+ return node;
5002
5007
  },
5003
5008
  createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5004
5009
  const id = strategy.id(leaf);
@@ -5018,6 +5023,7 @@ var BPTreePureSync = class {
5018
5023
  }
5019
5024
  _createBufferedOps() {
5020
5025
  const strategy = this.strategy;
5026
+ const readBuffer = /* @__PURE__ */ new Map();
5021
5027
  const writeBuffer = /* @__PURE__ */ new Map();
5022
5028
  const deleteBuffer = /* @__PURE__ */ new Set();
5023
5029
  let headBuffer = null;
@@ -5025,7 +5031,11 @@ var BPTreePureSync = class {
5025
5031
  getNode(id) {
5026
5032
  const buffered = writeBuffer.get(id);
5027
5033
  if (buffered) return buffered;
5028
- return strategy.read(id);
5034
+ const read = readBuffer.get(id);
5035
+ if (read) return read;
5036
+ const node = strategy.read(id);
5037
+ readBuffer.set(id, node);
5038
+ return node;
5029
5039
  },
5030
5040
  createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5031
5041
  const id = strategy.id(leaf);
@@ -5058,6 +5068,10 @@ var BPTreePureSync = class {
5058
5068
  if (headBuffer) {
5059
5069
  strategy.writeHead(headBuffer);
5060
5070
  }
5071
+ readBuffer.clear();
5072
+ writeBuffer.clear();
5073
+ deleteBuffer.clear();
5074
+ headBuffer = null;
5061
5075
  }
5062
5076
  return { ops, flush };
5063
5077
  }
@@ -5241,9 +5255,14 @@ var BPTreePureAsync = class {
5241
5255
  }
5242
5256
  _createReadOps() {
5243
5257
  const strategy = this.strategy;
5258
+ const readBuffer = /* @__PURE__ */ new Map();
5244
5259
  return {
5245
5260
  async getNode(id) {
5246
- return await strategy.read(id);
5261
+ const buffered = readBuffer.get(id);
5262
+ if (buffered) return buffered;
5263
+ const node = await strategy.read(id);
5264
+ readBuffer.set(id, node);
5265
+ return node;
5247
5266
  },
5248
5267
  async createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5249
5268
  const id = await strategy.id(leaf);
@@ -5263,6 +5282,7 @@ var BPTreePureAsync = class {
5263
5282
  }
5264
5283
  _createBufferedOps() {
5265
5284
  const strategy = this.strategy;
5285
+ const readBuffer = /* @__PURE__ */ new Map();
5266
5286
  const writeBuffer = /* @__PURE__ */ new Map();
5267
5287
  const deleteBuffer = /* @__PURE__ */ new Set();
5268
5288
  let headBuffer = null;
@@ -5270,7 +5290,11 @@ var BPTreePureAsync = class {
5270
5290
  async getNode(id) {
5271
5291
  const buffered = writeBuffer.get(id);
5272
5292
  if (buffered) return buffered;
5273
- return await strategy.read(id);
5293
+ const read = readBuffer.get(id);
5294
+ if (read) return read;
5295
+ const node = await strategy.read(id);
5296
+ readBuffer.set(id, node);
5297
+ return node;
5274
5298
  },
5275
5299
  async createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5276
5300
  const id = await strategy.id(leaf);
@@ -5303,6 +5327,10 @@ var BPTreePureAsync = class {
5303
5327
  if (headBuffer) {
5304
5328
  await strategy.writeHead(headBuffer);
5305
5329
  }
5330
+ readBuffer.clear();
5331
+ writeBuffer.clear();
5332
+ deleteBuffer.clear();
5333
+ headBuffer = null;
5306
5334
  }
5307
5335
  return { ops, flush };
5308
5336
  }
@@ -4958,9 +4958,14 @@ var BPTreePureSync = class {
4958
4958
  }
4959
4959
  _createReadOps() {
4960
4960
  const strategy = this.strategy;
4961
+ const readBuffer = /* @__PURE__ */ new Map();
4961
4962
  return {
4962
4963
  getNode(id) {
4963
- return strategy.read(id);
4964
+ const buffered = readBuffer.get(id);
4965
+ if (buffered) return buffered;
4966
+ const node = strategy.read(id);
4967
+ readBuffer.set(id, node);
4968
+ return node;
4964
4969
  },
4965
4970
  createNode(leaf, keys, values, parent = null, next = null, prev = null) {
4966
4971
  const id = strategy.id(leaf);
@@ -4980,6 +4985,7 @@ var BPTreePureSync = class {
4980
4985
  }
4981
4986
  _createBufferedOps() {
4982
4987
  const strategy = this.strategy;
4988
+ const readBuffer = /* @__PURE__ */ new Map();
4983
4989
  const writeBuffer = /* @__PURE__ */ new Map();
4984
4990
  const deleteBuffer = /* @__PURE__ */ new Set();
4985
4991
  let headBuffer = null;
@@ -4987,7 +4993,11 @@ var BPTreePureSync = class {
4987
4993
  getNode(id) {
4988
4994
  const buffered = writeBuffer.get(id);
4989
4995
  if (buffered) return buffered;
4990
- return strategy.read(id);
4996
+ const read = readBuffer.get(id);
4997
+ if (read) return read;
4998
+ const node = strategy.read(id);
4999
+ readBuffer.set(id, node);
5000
+ return node;
4991
5001
  },
4992
5002
  createNode(leaf, keys, values, parent = null, next = null, prev = null) {
4993
5003
  const id = strategy.id(leaf);
@@ -5020,6 +5030,10 @@ var BPTreePureSync = class {
5020
5030
  if (headBuffer) {
5021
5031
  strategy.writeHead(headBuffer);
5022
5032
  }
5033
+ readBuffer.clear();
5034
+ writeBuffer.clear();
5035
+ deleteBuffer.clear();
5036
+ headBuffer = null;
5023
5037
  }
5024
5038
  return { ops, flush };
5025
5039
  }
@@ -5203,9 +5217,14 @@ var BPTreePureAsync = class {
5203
5217
  }
5204
5218
  _createReadOps() {
5205
5219
  const strategy = this.strategy;
5220
+ const readBuffer = /* @__PURE__ */ new Map();
5206
5221
  return {
5207
5222
  async getNode(id) {
5208
- return await strategy.read(id);
5223
+ const buffered = readBuffer.get(id);
5224
+ if (buffered) return buffered;
5225
+ const node = await strategy.read(id);
5226
+ readBuffer.set(id, node);
5227
+ return node;
5209
5228
  },
5210
5229
  async createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5211
5230
  const id = await strategy.id(leaf);
@@ -5225,6 +5244,7 @@ var BPTreePureAsync = class {
5225
5244
  }
5226
5245
  _createBufferedOps() {
5227
5246
  const strategy = this.strategy;
5247
+ const readBuffer = /* @__PURE__ */ new Map();
5228
5248
  const writeBuffer = /* @__PURE__ */ new Map();
5229
5249
  const deleteBuffer = /* @__PURE__ */ new Set();
5230
5250
  let headBuffer = null;
@@ -5232,7 +5252,11 @@ var BPTreePureAsync = class {
5232
5252
  async getNode(id) {
5233
5253
  const buffered = writeBuffer.get(id);
5234
5254
  if (buffered) return buffered;
5235
- return await strategy.read(id);
5255
+ const read = readBuffer.get(id);
5256
+ if (read) return read;
5257
+ const node = await strategy.read(id);
5258
+ readBuffer.set(id, node);
5259
+ return node;
5236
5260
  },
5237
5261
  async createNode(leaf, keys, values, parent = null, next = null, prev = null) {
5238
5262
  const id = await strategy.id(leaf);
@@ -5265,6 +5289,10 @@ var BPTreePureAsync = class {
5265
5289
  if (headBuffer) {
5266
5290
  await strategy.writeHead(headBuffer);
5267
5291
  }
5292
+ readBuffer.clear();
5293
+ writeBuffer.clear();
5294
+ deleteBuffer.clear();
5295
+ headBuffer = null;
5268
5296
  }
5269
5297
  return { ops, flush };
5270
5298
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "serializable-bptree",
3
- "version": "9.0.4-alpha.0",
3
+ "version": "9.0.4-alpha.1",
4
4
  "description": "Store the B+tree flexibly, not only in-memory.",
5
5
  "types": "./dist/types/index.d.ts",
6
6
  "main": "./dist/cjs/index.cjs",