document-dataply 0.0.9-alpha.6 → 0.0.9-alpha.8

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 +10 -28
  2. package/package.json +2 -2
package/dist/cjs/index.js CHANGED
@@ -8515,6 +8515,11 @@ var require_cjs = __commonJS({
8515
8515
  const emptyManager = this.pageFactory.getManagerFromType(PageManager.CONSTANT.PAGE_TYPE_EMPTY);
8516
8516
  const firstFreeIndex = newPageIndex + 1;
8517
8517
  const lastFreeIndex = newPageIndex + preallocationCount - 1;
8518
+ metadataManager.setPageCount(metadata, newTotalCount);
8519
+ if (preallocationCount > 1) {
8520
+ metadataManager.setFreePageId(metadata, firstFreeIndex);
8521
+ }
8522
+ await this.setPage(0, metadata, tx);
8518
8523
  for (let i = firstFreeIndex; i <= lastFreeIndex; i++) {
8519
8524
  const emptyPage = emptyManager.create(this.pageSize, i);
8520
8525
  const nextId = i < lastFreeIndex ? i + 1 : -1;
@@ -8522,11 +8527,6 @@ var require_cjs = __commonJS({
8522
8527
  await this.setPage(i, emptyPage, tx);
8523
8528
  await this.updateBitmap(i, true, tx);
8524
8529
  }
8525
- if (preallocationCount > 1) {
8526
- metadataManager.setFreePageId(metadata, firstFreeIndex);
8527
- }
8528
- metadataManager.setPageCount(metadata, newTotalCount);
8529
- await this.setPage(0, metadata, tx);
8530
8530
  return newPageIndex;
8531
8531
  }
8532
8532
  /**
@@ -8608,8 +8608,7 @@ var require_cjs = __commonJS({
8608
8608
  }
8609
8609
  /**
8610
8610
  * Frees the page and marks it as available in the bitmap.
8611
- * Inserts the page into the free list in ascending order by page ID
8612
- * to support HDD sequential reads.
8611
+ * It also adds the page to the linked list of free pages in metadata.
8613
8612
  * @param pageId Page ID
8614
8613
  * @param tx Transaction
8615
8614
  */
@@ -8619,30 +8618,13 @@ var require_cjs = __commonJS({
8619
8618
  await tx.__acquireWriteLock(pageId);
8620
8619
  const metadata = await this.getMetadata(tx);
8621
8620
  const metadataManager = this.pageFactory.getManager(metadata);
8621
+ const currentHeadFreePageId = metadataManager.getFreePageId(metadata);
8622
8622
  const emptyPageManager = this.pageFactory.getManagerFromType(PageManager.CONSTANT.PAGE_TYPE_EMPTY);
8623
8623
  const emptyPage = emptyPageManager.create(this.pageSize, pageId);
8624
- const headFreePageId = metadataManager.getFreePageId(metadata);
8625
- if (headFreePageId === -1 || pageId < headFreePageId) {
8626
- emptyPageManager.setNextPageId(emptyPage, headFreePageId);
8627
- await this.setPage(pageId, emptyPage, tx);
8628
- metadataManager.setFreePageId(metadata, pageId);
8629
- } else {
8630
- let prevPageId = headFreePageId;
8631
- let prevPage = await this.get(prevPageId, tx);
8632
- let prevManager = this.pageFactory.getManager(prevPage);
8633
- let nextPageId = prevManager.getNextPageId(prevPage);
8634
- while (nextPageId !== -1 && nextPageId < pageId) {
8635
- prevPageId = nextPageId;
8636
- prevPage = await this.get(prevPageId, tx);
8637
- prevManager = this.pageFactory.getManager(prevPage);
8638
- nextPageId = prevManager.getNextPageId(prevPage);
8639
- }
8640
- emptyPageManager.setNextPageId(emptyPage, nextPageId);
8641
- await this.setPage(pageId, emptyPage, tx);
8642
- prevManager.setNextPageId(prevPage, pageId);
8643
- await this.setPage(prevPageId, prevPage, tx);
8644
- }
8624
+ emptyPageManager.setNextPageId(emptyPage, currentHeadFreePageId);
8625
+ await this.setPage(pageId, emptyPage, tx);
8645
8626
  await this.updateBitmap(pageId, true, tx);
8627
+ metadataManager.setFreePageId(metadata, pageId);
8646
8628
  await this.setPage(0, metadata, tx);
8647
8629
  }
8648
8630
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "document-dataply",
3
- "version": "0.0.9-alpha.6",
3
+ "version": "0.0.9-alpha.8",
4
4
  "description": "Simple and powerful JSON document database supporting complex queries and flexible indexing policies.",
5
5
  "license": "MIT",
6
6
  "author": "izure <admin@izure.org>",
@@ -42,7 +42,7 @@
42
42
  "dataply"
43
43
  ],
44
44
  "dependencies": {
45
- "dataply": "^0.0.24-alpha.2"
45
+ "dataply": "^0.0.24-alpha.4"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/jest": "^30.0.0",