Good post by Terry Crowley from 2017 on rewriting Microsoft’s OneNote app database.
# The “Build Your Own Database” book is finished
As with my other books, this book follows the step-by-step approach while covering the 3 topics above. We start from a B-tree, then to a KV store, finally to a mini database with a SQL-like query language.
Nice! The first chapter is available for free.
# SQLite 2022 Recap
- -> and ->> operators on JSON
- RIGHT and FULL OUTER JOIN
- Compiling to WASM
- The sqlite3_error_offset() C-language interface for better error reporting
- The recovery extension
- IS DISTINCT FROM and IS NOT DISTINCT FROM operators.
- unixepoch() and format() SQL functions
Bolt — an embedded key/value database for Go
If you want data persistence in your Go application, most likely you’re thinking of using some database. The easiest and probably the most convenient for deployment are embedded databases. There are many wrappers for C databases, however Go developers usually prefer pure Golang solutions.
Bolt is the way to go: it’s a pure Go embedded key/value database, which is easy to use for persistence in your Go projects. Bolt is similar to LMDB, which many consider the best among state-of-the-art modern key-value stores. Just like LMDB, and unlike LevelDB, BoltDB supports fully serializable ACID transactions. Unlike SQLite, it doesn’t have a query language, and is much easier to use for common things.
Bolt saves data into a single memory-mapped file on disk. It doesn’t have a separate journal, write-ahead log, or a thread for compaction or garbage collection: it deals with just one file, and does it safely.
Continue reading “Bolt — an embedded key/value database for Go”