From 428e26adc9f4cab95b00133e8b725c2ff9904982 Mon Sep 17 00:00:00 2001 From: Matthew <38759997+friendlymatthew@users.noreply.github.com> Date: Tue, 27 Feb 2024 10:05:06 -0500 Subject: [PATCH] remove global map --- src/btree/multi.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/btree/multi.ts b/src/btree/multi.ts index 7b79d597..444148c7 100644 --- a/src/btree/multi.ts +++ b/src/btree/multi.ts @@ -5,14 +5,13 @@ import { PageFile } from "./pagefile"; const PAGE_SIZE_BYTES = 4096; export const maxUint64 = 2n ** 64n - 1n; -const globalMetaPageCache = new Map< - bigint, - Promise<{ data: ArrayBuffer; totalLength: number }[]> ->(); - export class LinkedMetaPage { private resolver: RangeResolver; private offset: bigint; + private metaPagePromise?: Promise< + { data: ArrayBuffer; totalLength: number }[] + >; + constructor(resolver: RangeResolver, offset: bigint) { this.resolver = resolver; this.offset = offset; @@ -56,18 +55,16 @@ export class LinkedMetaPage { private async getMetaPage(): Promise< { data: ArrayBuffer; totalLength: number }[] > { - if (!globalMetaPageCache.has(this.offset)) { - const p = this.resolver([ + if (!this.metaPagePromise) { + this.metaPagePromise = this.resolver([ { start: Number(this.offset), end: Number(this.offset) + PAGE_SIZE_BYTES - 1, }, ]); - - globalMetaPageCache.set(this.offset, p); } - return globalMetaPageCache.get(this.offset)!; + return this.metaPagePromise; } /**