Lumosql

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

87 check-ins using file doc/context-about-meta-slots.md version d8ff51ed7b

2026-06-25
14:49
Add git mirror Leaf check-in: d2c1d7158a user: danshearer tags: trunk
07:20
Doc updates check-in: 1e172cd4a2 user: danshearer tags: trunk
06:52
Doc fixes check-in: 8e697c36ce user: danshearer tags: trunk
05:00
Rowsum doc update check-in: bb31984e81 user: danshearer tags: trunk
2026-06-24
20:32
Doc update check-in: 36ec37f416 user: danshearer tags: trunk
10:42
Fix build instructions check-in: 75013b1bb6 user: danshearer tags: trunk, v0.82
10:36
Improve build instructions check-in: f78ae44e97 user: danshearer tags: trunk
10:16
Verifying build instructions are up to date check-in: 6661f28823 user: danshearer tags: trunk
09:52
Fix tech detail for building the lib check-in: 705799529e user: danshearer tags: trunk
09:46
Fix tech details in amalgamation doc check-in: 56253ca056 user: danshearer tags: trunk
09:43
Docs update check-in: f19341d736 user: danshearer tags: trunk
08:40
Docs update check-in: 1cd9b50b9c user: danshearer tags: trunk
07:57
Doc fixes check-in: e474437fe8 user: danshearer tags: trunk
07:29
More docs check-in: 684ffb5672 user: danshearer tags: trunk
07:26
Doc updates and consolidation check-in: d23b52dec8 user: danshearer tags: trunk
2026-06-23
20:57
Doc fixes check-in: c8fb9bdc8a user: danshearer tags: trunk
20:46
More doc updates - explain LMDB and mmap a little check-in: 46d1327f1d user: danshearer tags: trunk
12:51
Update benchmark analysis check-in: 378f7876e9 user: danshearer tags: trunk
07:23
Misc doc updates check-in: 5374b83a5c user: danshearer tags: trunk
07:20
Major round of benchmarking docs updates check-in: 8eec853340 user: danshearer tags: trunk
2026-06-22
13:26
Improve docs including updated Fossil benchmarking results check-in: 84d03865df user: danshearer tags: trunk
12:06
Record more about the range pinning bug. check-in: e6f29d463c user: danshearer tags: trunk
11:55
Document annoying bug in benchmark system, plus give examples check-in: fda8ad42be user: danshearer tags: trunk
09:47
Improve docs Summarise the transaction option benchmarking (basically just use default). check-in: 53e828831b user: danshearer tags: trunk
2026-06-21
21:40
Improve docs for filtering benchmarking and speedtesting fossil/libfossil check-in: d92b37eb21 user: danshearer tags: trunk
18:02
Remove noupgrade transaction type from benchmarking. It's too niche and the error is annoying. check-in: bdfc0a3454 user: danshearer tags: trunk
16:15
Fix bug where runtime targets (eg transaction mode) were mixed up with $BUILD targets. check-in: 2d8c32ac71 user: danshearer tags: trunk
13:48
Add transaction model comparisons for LMDB backends check-in: 79a0fe4bda user: danshearer tags: trunk
06:39
fix chroot jail when running server as root with LMDB check-in: 689867c5e9 user: danshearer tags: trunk
06:10
benchmark operations with temporary tables check-in: 8f4564bd2e user: danshearer tags: trunk
00:34
Clean up docs check-in: 7d939b374f user: danshearer tags: trunk
2026-06-20
23:14
lmdb,lmdbv1: pool temp environments and keep them unsynced Every temp or :memory: database opened a private LMDB env at a fresh mkstemp path and unlinked it on close, often hundreds opens and therefore fsyncs as compared to ~3 for native sqlite for the same Fossil operation. We fix this by keeping MDB_NOSYNC on temp and :memory: envs, and have a small pool of envs ready to go. Major speed improvement. check-in: f020f61185 user: danshearer tags: trunk
17:53
Fix bug in Fossil speed test library to do with fsync assumption. check-in: e55ad905d6 user: danshearer tags: trunk
15:18
LMDB cursor cache: invalidate only the writing cursor cursorCacheInvalidateSiblings clears the cached current row on the writing cursor alone, due to the way VDBE works in SQLite. This means some cache code was unusued so we have deleted it in both LMDB backends. check-in: 68f6623c3d user: danshearer tags: trunk
14:28
Get quantitative results for LumoSQL-backed Fossil on correctness, speed and stress loading. Everything is compared to native SQLite-backed Fossil, with sqlite.org as the ultimate measure. check-in: 18dc8fdcba user: danshearer tags: trunk
2026-06-19
22:51
dox check-in: 7efb10d24b user: danshearer tags: trunk
22:50
More docs check-in: b712425343 user: danshearer tags: trunk
22:03
Fix broken links in docs check-in: d28d9b1322 user: danshearer tags: trunk
21:51
Add make test as a first-class advertised feature. Just as good as benchmarking! check-in: a14e644272 user: danshearer tags: trunk
21:41
Docs fixed that refer to directories not files check-in: 0f35fe6cd9 user: danshearer tags: trunk
21:39
Implement the single-file LMDB in v1 backend, just copying lmdb check-in: 5741abfea7 user: danshearer tags: trunk
21:38
Change defaul rowsum algorithm from blake to siphash (which is default everywhere now.) check-in: 8ab8ebeb61 user: danshearer tags: trunk
21:25
Add in test docs that were squirreled away check-in: f0a26e93cc user: danshearer tags: trunk
20:41
Move from the default LMDB files-in-directory to using the LMDB flag for just using a plain file plus a lockfile with the same name, which matches existing SQLite. Thanks to Howard Chu for pointing out the MDB_NOSUBDIR exists. check-in: eda9a500dc user: danshearer tags: trunk
20:30
more testing and update docs for fossil-on-lumo. check-in: 2324380c1f user: danshearer tags: trunk
19:49
Getting docs ready for release check-in: b0807ea998 user: danshearer tags: trunk
14:59
Partial docs update especially benchmarking now we have a few thousand rows. check-in: d51508e38d user: danshearer tags: trunk
14:00
Lots of doc updates now we have a few thousand benchmarking runs and more Fossil testing check-in: da1a34899b user: danshearer tags: trunk
00:52
Just one benchmarking script now check-in: 3cb486b6f3 user: danshearer tags: trunk
00:25
Fix outdated docs, for siphash, new benchmark-filter options etc check-in: e6f5ec5d93 user: danshearer tags: trunk
00:05
Found rare edge case where a stale Makefile.options was getting through to make check-in: aed2e691dc user: danshearer tags: trunk
2026-06-18
19:23
Add native SQLite-only loop to lumosql-matrix-on-big-machine.sh we were doing some, but not nearly enough. check-in: c0bcdaee38 user: danshearer tags: trunk
17:52
Fix benchmark-filter.tcl result grouping bug. Bump version. check-in: ca2eeba32d user: danshearer tags: trunk
14:12
Fix another benchmark targets bug check-in: 48de739b7c user: danshearer tags: trunk
14:01
Fix bug where datasize was accidentally switched off for benchmark targets check-in: a6f9e12738 user: danshearer tags: trunk
10:53
Update TODO and enforce the temporary lower bound of SQLite versions at 3.43 check-in: a378c46408 user: danshearer tags: trunk
08:53
Add siphash message authentication code by Jean-Philippe Aumasson and Daniel J. Bernstein. Use it as fast row-based checksum by hardcoding a public default key. Other uses will come. check-in: 3284ed8b78 user: danshearer tags: trunk
08:06
Forward-port the checking features from old benchmark scripts, so now we get accounting about build failures and possible cache clashes between workers. check-in: a64309fce4 user: danshearer tags: trunk
07:49
Tidy benchmark script check-in: 62c3295148 user: danshearer tags: trunk
07:31
Update versions so that by default, benchmarking does a reasonable number of LMDB backends check-in: af6cf5920f user: danshearer tags: trunk
2026-06-17
21:52
Build script cannot in fact take a list of datasizes. Add a loop in the benchmark script instead. check-in: 949558f06f user: danshearer tags: trunk
21:42
Pass OPTIONS_DATASIZE through to the build script because it can take a range. check-in: b35025569c user: danshearer tags: trunk
21:26
Tidy up commandline options and update help, also add -V version check-in: 9c26e90a65 user: danshearer tags: trunk
20:33
Add page checksum dimension check-in: d7ad24d350 user: danshearer tags: trunk
20:10
Tweak benchmark check-in: d58ed5598e user: danshearer tags: trunk
14:27
Improve Tcl/sqlite probe in the statistical analysis tool, so users can see interesting results immediately even before they have installed LumoSQL or its dependencies. check-in: d89036b47c user: danshearer tags: trunk
14:00
another mod invalidated by the new not-fork patch strictily non-fuzzy check-in: ed069c58f4 user: danshearer tags: trunk
13:13
Make mod more robust by anchoring to text unaffected by a newline that appeared for a while from SQLite version 3.35 check-in: 17429c57dd user: danshearer tags: trunk
12:32
Move anchor point so that the mod doesn't break on an extra linespace that appeared for a few SQLite versions following 3.34. check-in: 0187f3ea34 user: danshearer tags: trunk
12:31
Doc tidyups check-in: 9211e21e5b user: danshearer tags: trunk
2026-06-14
10:13
Much improved benchmarker/builder check-in: dd7cad5d8f user: danshearer tags: trunk
09:21
Add serial writes to stress test. check-in: 7279b5c754 user: danshearer tags: trunk
09:02
Default LumoSQL to sync=normal in all circumstances and ensure the amalgamation sees it. MDB_NOMETASYNC is Lumo's sync=normal, which is one fsync per LMDB commit and maximum loss of one transaction. This is what is now persisted throughout as normal if nothing is specified. check-in: 63c02c8703 user: danshearer tags: trunk
02:23
lmdbv1: optional CRC-32C page checksums (OPTION_LMDBV1_CHECKSUM) Add per-page corruption detection to the lmdbv1 backend. The purpose of this is to detect corruption in pages at rest on disk. (Already added docs in previous commits.) When built with lmdbv1_checksum=on, the backend registers a CRC-32C checksum function via mdb_env_set_checksum(). LMDB does the rest. The CRC is Mark Adler's crc32c.c v1.5, vendored verbatim (zlib-style licence) as lumo-crc32c.c . Temp/memdb scratch is not checksummed. Adds test/sql/page-checksum-corruption.test flips a bit on-disk to see if it is detected. 6 new files created, 3 modified. check-in: 225196918f user: danshearer tags: trunk
01:05
Add sync build option to lmdbv1 (exactly the same as for lmdb 0.9.x, although the trees are starting to diverge now.) check-in: 8add7f5256 user: danshearer tags: trunk
00:34
Getting ready for a big benchmarking run, doing encryption and page checksums for the first time, and also the default sync=normal. New script to do the build/bench all in one, but some sanity checking of the results database. Added a -since parameter to benchmark-filter.tcl . check-in: 75aa3bc7d4 user: danshearer tags: trunk
00:14
Implement sync with NORMAL as default (same functionality as SQLite WAL mode default "normal") check-in: 01acfce9f3 user: danshearer tags: trunk
00:12
Adding the sync patches bit by bit check-in: 131bff077d user: danshearer tags: trunk
00:02
Docs updating check-in: 00d5eae975 user: danshearer tags: trunk
2026-06-13
21:25
Update docs for v0.81 including encryption and page-based checksums via LMDBv1.0 check-in: 90939fdcf1 user: danshearer tags: trunk
20:39
I forgot that `fossil sql` has a different database open path than everything else, and therefore it couldn't handle a key. Quite few of the tests in fossil/test use fossil sql, so it was a blocker. This closes out the encryption feature, everthing else is either a bug (there's probably many) or extending to more features, ciphers, message authentication etc.) With a bit more testing perhaps it can go on a fossil branch. check-in: 0e42ed4f55 user: danshearer tags: trunk
16:20
More nits. Works most of the time for most people who've tried it now! check-in: 1c8ca30212 user: danshearer tags: trunk
15:42
Fix URLs and wording check-in: 20a906ed3c user: danshearer tags: trunk
14:51
Update with latest changes and linting for LumoSQL 0.81 check-in: 420bb975ef user: danshearer tags: trunk, v0.81
14:29
VACUUM now works with encrypted databases, which means fossil import and fossil rebuild now work. The problem was partly in the LMDB shim (copying btrees from temp to permanent in the wrong way) and partly in LMDB (overwriting metadata at the end of pages under some circumstances.) Thanks to Howard Chu for the LMDB fix https://github.com/openldap/openldap/commit/b4a1d0fbe606fa655ad4569720286e492bb51844 check-in: bf97a4b6ea user: danshearer tags: trunk
14:25
Make much more smooth, and multiply-checked crypto... check-in: 07f535d38e user: danshearer tags: trunk
13:07
First draft explaining SQLite meta slots and the SQLite magic number allocation table. This is probably how we will end up addressing the version number question in TODO.md, because LumoSQL databases (which in some cases are completely backwards compatible with sqlite3 databases, if the user chooses that) need to store metadata regarding LumoSQL and we have more parameters than SQLite to worry about (eg encryption, rowsums, more.) Need to ask SQLite gurus about how the system currently works and if anyone uses it. check-in: f7594c3de4 user: danshearer tags: trunk