Forward progress.

Looking at making further progress on my DB engine. In no particular order:

  • Case insensitive string indexes. DB needs to be able to handle changes in index order.
  • Removal of current index tag scheme, with more complete “index combobulation” info, able to handle more than just A-B buffering.
  • Complete transactionality, where metadata and data changes can be done in one user transaction: each user transaction consists of multiple changesets. It should then be able to roll forward / roll back multiple sets of changesets to support existing commit / abort functionality. (Pipeline depth).
  • Support for multiple transactions in progress at the same time: instead of A-B buffering, we have Current (Next1, Next2, Next3) buffer sets. Amount of concurrency can be specified at transaction start time. (Pipeline width).

Once I’ve got all that done, then it should be possible to wrap the local DB logic into a distributed database. This will require a “journal of journals”, indicating the various transaction history paths that each each copy of the database has gone through. Depending on consistency level required, you could then do “last write wins” or “cascading abort” semantics, depending n what you want to do.

Check-in app now online!

Hi guys!

So I have now made a little check-in app. It asks you to register your e-mail and a contact e-mail. Once you’ve done that, you need to login or use the quick check-in link once per day. If you don’t (maybe coronavirus has got you, or you’re not well), then it automatically sends a mail to the contact address you specified.

You can try it out here.

N.B Some web browsers will complain about “invalid security certificate”. I like encrypting and keeping your passwords safe, but can’t be arsed to register the website certificate just for a demo, so if you want you proceed, click “Advanced” or “Details”, and then “Proceed to website”.