Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
44 check-ins
|
2026-08-06
| ||
| 08:46 | Document the hazards of Drop: LMDB closes the handle mid-txn, not at commit, so a Drop re-run by the batching can act on a freed or recycled slot and drop the wrong database. Resolve the DBRef by name within the same fun, and discard every held DBRef for a dropped database. leaf check-in: f589dbe7b5 user: matthew tags: trunk | |
|
2026-08-05
| ||
| 19:21 | Improve docs check-in: 5938f9a0e1 user: matthew tags: trunk | |
| 19:18 | Zero out rwtxnmsgs before returning them to the pool check-in: d57483bc0a user: matthew tags: trunk | |
| 19:07 | Auto close readonly cursors. check-in: 4c3635e9da user: matthew tags: trunk | |
| 18:45 | Do not let one bad Update poison a whole batch A fun which ignores an error from Put leaves its inner txn flagged, and LMDB flags the parent of a child committed in that state. Every msg in the batch was then answered with MDB_BAD_TXN, and the actor died with it, so no later Update ran at all. An inner txn which fails to commit now ends the outer one, and whatever is left of the batch is run a msg at a time, each with no parent left to be damaged by. A fun which merely returns an error still costs nothing but its own inner txn, so the batch commits around it as before. The outer txn lives on the server, so every exit ends it, including a panicking fun: mdb_env_close does not end the transactions on an environment, so one left open both leaks and holds the writer lock. check-in: dd6e81fdb0 user: matthew tags: trunk | |
|
2026-08-04
| ||
| 15:33 | Bump deps. check-in: 2902518293 user: matthew tags: trunk | |
| 15:08 | Janitoring. check-in: 75757a3de9 user: matthew tags: trunk | |
| 15:06 | Correct handling of faulty batch of commits check-in: d557112b91 user: matthew tags: trunk | |
| 14:55 | Enforce keys cannot be empty check-in: d68fc535bc user: matthew tags: trunk | |
| 14:41 | Prevent resizing whilst Copy is in progress. check-in: 910c6f47f8 user: matthew tags: trunk | |
| 14:26 | ReadOnlyTxn.DBRef calls mdb_dbi_open concurrently with other rotxns. LMDB requires a txn calling mdb_dbi_open to finish, before another txn makes that call. Thus concurrent Views calling DBRef could corrupt the shared handle table, either resolving a name to the wrong database or aborting in malloc. DBRef is now on ReadWriteTxn, which the actor serialises, with LMDBClient.DBRef for callers not already in an Update. This new API, when in a read-only database, commits its transaction, which makes the handle outlive it. check-in: 1832228ee4 user: matthew tags: trunk | |
| 12:55 | Address bugs with resizing whilst read transactions are in flight. check-in: 3352dd683e user: matthew tags: trunk | |
|
2025-02-15
| ||
| 13:04 | Update to latest version of actors. check-in: fec76d4e8d user: matthew tags: trunk | |
|
2025-02-03
| ||
| 14:38 | Update deps check-in: e503ed9950 user: matthew tags: trunk | |
|
2023-11-13
| ||
| 12:08 | Improve docs for opening databases And add a test for using IntegerKey check-in: ea88c296f0 user: matthew tags: trunk | |
|
2022-12-18
| ||
| 16:38 | Derp. check-in: 4bf6dfb536 user: matthew tags: trunk | |
| 15:04 | Auto restart View rotxns on MapFull. And cope with TxnFull on the server. check-in: bb15deba25 user: matthew tags: trunk | |
|
2022-12-08
| ||
| 11:55 | If resizing is required, we must interrupt all existing read txns, as well as blocking new ones from starting. check-in: 06f5db5b62 user: matthew tags: trunk | |
|
2022-11-27
| ||
| 10:15 | Minor doc tweaks. check-in: 4bb1af03dd user: matthew tags: trunk | |
| 10:06 | Improve readme. check-in: 2fea7b81e8 user: matthew tags: trunk | |
|
2022-11-26
| ||
| 19:07 | Add support for mdb_drop - dropping or emptying database. check-in: eefcbafefd user: matthew tags: trunk | |
|
2022-10-18
| ||
| 10:29 | Correct build deps-hash. check-in: 868058a0aa user: matthew tags: trunk | |
| 10:27 | Rework batching mechanism so that it (internally) uses nested transactions. This eliminates the possibility that an earlier txn-fun must be rerun if a later txn-fun returns a non-nil error. check-in: 1ab8be8b86 user: matthew tags: trunk | |
| 07:42 | Bump deps check-in: b064038de8 user: matthew tags: trunk | |
|
2022-07-18
| ||
| 10:30 | Bump deps. check-in: b1752bea0b user: matthew tags: trunk | |
|
2022-03-31
| ||
| 12:43 | Add support for cursor.Count check-in: e4996df0bd user: matthew tags: trunk | |
|
2022-02-18
| ||
| 08:31 | Correct nix build. check-in: 63cc556db7 user: matthew tags: trunk | |
|
2022-02-03
| ||
| 10:15 | *cough* bump deps check-in: 0c36d21165 user: matthew tags: trunk | |
| 10:09 | bump deps check-in: 60307c7611 user: matthew tags: trunk | |
|
2022-01-10
| ||
| 16:06 | minor tweaks to readme. check-in: 4daa79868d user: matthew tags: trunk | |
| 10:49 | go get -u check-in: 014354e09c user: matthew tags: trunk | |
|
2022-01-07
| ||
| 17:00 | Not sure why I thought throttles in Go is necessary at all: lmdb will do that for me. check-in: 09a75ba3f8 user: matthew tags: trunk | |
| 16:17 | Ditch resizing lock and just use readers throttle check-in: 71b35d17e2 user: matthew tags: trunk | |
| 16:03 | Added decent soak test. Which also led to adding read throttle, and fixing a couple of other bugs. check-in: aab71be3a5 user: matthew tags: trunk | |
|
2022-01-06
| ||
| 19:09 | Docs tweak. check-in: 4e80f16136 user: matthew tags: trunk | |
| 19:07 | Those don't need to be public check-in: 8c6ecb7f2b user: matthew tags: trunk | |
| 18:40 | better api naming check-in: 0ef4ef5665 user: matthew tags: trunk | |
| 18:18 | Write a lot of tests. Still need to do a decent soak test. Uncovered the semantics of the various weird cursor ops. Made wide but sane cursor API. check-in: d58c1237d0 user: matthew tags: trunk | |
|
2022-01-05
| ||
| 22:13 | Borrow from Bryan Matsuo: take the same approach to work around limitations of the cgo checker. This means I can always avoid taking unnecessary copies of keys and values. check-in: fa140600c5 user: matthew tags: trunk | |
| 18:16 | Add support for cursors. It all needs testing. check-in: 33ac8bf795 user: matthew tags: trunk | |
| 11:10 | Switch to BSD-3-clause licence. KISS. check-in: 068d61f8bc user: matthew tags: trunk | |
| 10:31 | Given the actor is only receiving sync messages, there is no point in using BackPressure. So simplify to ServerBase and then correspondingly simplify client APIs. Improve docs. check-in: 3bb5d8936c user: matthew tags: trunk | |
|
2022-01-04
| ||
| 17:30 | Initial check-in check-in: 72744efb37 user: matthew tags: trunk | |
| 17:10 | initial empty check-in check-in: 901840363f user: fossil tags: trunk | |