[PR #272] [MERGED] Improve read/write stability #202

Closed
opened 2026-05-23 08:33:12 -06:00 by gitea-mirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/appy-one/acebase/pull/272
Author: @appy-one
Created: 4/15/2026
Status: Merged
Merged: 4/16/2026
Merged by: @appy-one

Base: masterHead: improve-read-write-stability


📝 Commits (6)

  • c1ea087 Enhance node read/write error handling, automatically await child stream callback promises, fix locks potentially not being released upon error, reduce mem/cpu usage when reading/writing large nodes (maybe also slowing down a bit but not noticeably when running the tests), improve logging
  • 1c97222 (commented out) add a way to test with very short lock timeouts
  • 52220b9 Improve node-lock test to handle lock timeouts correctly
  • 4efe992 Fix transaction log tests that did not always get the most recent cursor because of a race condition
  • 0456a23 Add corrupted node testing capability. Writing to path simulate/corrupt/record/here will now simulate a corrupted record
  • f6e7a21 New browser build

📊 Changes

9 files changed (+11453 additions, -11343 deletions)

View changed files

📝 dist/browser.js (+11277 -11261)
📝 dist/browser.min.js (+1 -1)
📝 src/node-lock.ts (+19 -6)
📝 src/storage/binary/index.ts (+80 -67)
📝 src/storage/index.ts (+3 -2)
src/test/corruption-handling.spec.ts (+57 -0)
📝 src/test/node-lock.spec.ts (+2 -2)
📝 src/test/tempdb.ts (+3 -0)
📝 src/test/transaction-logs.spec.ts (+11 -4)

📄 Description

  • Enhance node read/write error handling, automatically await child stream callback promises, fix locks potentially not being released upon error, reduce mem/cpu usage when reading/writing large nodes (maybe also slowing down a bit but not noticeably when running the tests), improve logging
  • (commented out) add a way to test with very short lock timeouts
  • Improve node-lock test to handle lock timeouts correctly
  • Fix transaction log tests that did not always get the most recent cursor because of a race condition
  • Add corrupted node testing capability. Writing to path simulate/corrupt/record/here will now simulate a corrupted record

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/appy-one/acebase/pull/272 **Author:** [@appy-one](https://github.com/appy-one) **Created:** 4/15/2026 **Status:** ✅ Merged **Merged:** 4/16/2026 **Merged by:** [@appy-one](https://github.com/appy-one) **Base:** `master` ← **Head:** `improve-read-write-stability` --- ### 📝 Commits (6) - [`c1ea087`](https://github.com/appy-one/acebase/commit/c1ea0873dbd36d5e87d3f706eb3d7b7aca5a0793) Enhance node read/write error handling, automatically await child stream callback promises, fix locks potentially not being released upon error, reduce mem/cpu usage when reading/writing large nodes (maybe also slowing down a bit but not noticeably when running the tests), improve logging - [`1c97222`](https://github.com/appy-one/acebase/commit/1c97222c97a5f487d3c4afdc0d0270e8fa0e32ef) (commented out) add a way to test with very short lock timeouts - [`52220b9`](https://github.com/appy-one/acebase/commit/52220b97737e7016699f91dcb2d814d11f127fb7) Improve node-lock test to handle lock timeouts correctly - [`4efe992`](https://github.com/appy-one/acebase/commit/4efe992708f8314974d077639d104e4ba85f4dfe) Fix transaction log tests that did not always get the most recent cursor because of a race condition - [`0456a23`](https://github.com/appy-one/acebase/commit/0456a23580f2363d41b2919411a17746ce4725d1) Add corrupted node testing capability. Writing to path `simulate/corrupt/record/here` will now simulate a corrupted record - [`f6e7a21`](https://github.com/appy-one/acebase/commit/f6e7a2132145b7dc98ed1d5ae83136ac22e9e080) New browser build ### 📊 Changes **9 files changed** (+11453 additions, -11343 deletions) <details> <summary>View changed files</summary> 📝 `dist/browser.js` (+11277 -11261) 📝 `dist/browser.min.js` (+1 -1) 📝 `src/node-lock.ts` (+19 -6) 📝 `src/storage/binary/index.ts` (+80 -67) 📝 `src/storage/index.ts` (+3 -2) ➕ `src/test/corruption-handling.spec.ts` (+57 -0) 📝 `src/test/node-lock.spec.ts` (+2 -2) 📝 `src/test/tempdb.ts` (+3 -0) 📝 `src/test/transaction-logs.spec.ts` (+11 -4) </details> ### 📄 Description * Enhance node read/write error handling, automatically await child stream callback promises, fix locks potentially not being released upon error, reduce mem/cpu usage when reading/writing large nodes (maybe also slowing down a bit but not noticeably when running the tests), improve logging * (commented out) add a way to test with very short lock timeouts * Improve node-lock test to handle lock timeouts correctly * Fix transaction log tests that did not always get the most recent cursor because of a race condition * Add corrupted node testing capability. Writing to path `simulate/corrupt/record/here` will now simulate a corrupted record --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
gitea-mirror 2026-05-23 08:33:12 -06:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/acebase#202
No description provided.