Skip to content

Commit 870bf6a

Browse files
committed
Add the pre-Oracle BDB fork Bloomberg maintains for Comdb2. It will be
interesting if this can still be extracted as a BDB-compatible library. Need to look into it.
1 parent c0707de commit 870bf6a

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

doc/www/lumo-relevant-codebases.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,20 @@ MVCC-compliant K-V stores, and still using Write-Ahead Logs.
6565
As of June 2020, Oracle announced that it has dropped support for the BDB port
6666
to SQLite. DB 18.1.32 is the last version to carry this, which is based on
6767
SQLite from 2017. This is the reference and basis for the BDB backend in
68-
LumoSQL.
68+
LumoSQL.
6969

7070
| Project | Last modified | Description |
7171
| ------------- | ------------- | --------|
7272
| [Sleepycat/Oracle BDB](https://fossies.org/linux/misc/db-18.1.32.tar.gz) | current | The original ubiquitous Unix K-V store, disused in open source since Oracle's 2013 license change; the API template for most of the k-v btree stores around. Now includes many additional features including full MVCC transactions, networking and replication. This link is a mirror of code from download.oracle.com, which requires a login |
7373
| [Sleepycat/Oracle BDB-SQL](https://fossies.org/linux/misc/db-18.1.32.tar.gz) | current | Port of SQLite to the Sleepycat/Oracle transactional bdb K-V store. As of 5th March 2020 this mirror is identical to Oracle's login-protected tarball for db 18.1.32 |
7474

75+
It turns out though that Oracle is not the developer of KV stores based on BDB
76+
code. ComDB, listed under "Clustered Codebases", uses a KV store derived from
77+
BDB before Oracle bought Sleepcat Software, meaning before the license changed
78+
from BSD to AGPL. ComDB added row-level locks to BDB, and prefaulting/readahead among
79+
other features. It is not yet clear whether it is still possible to extract the BDB
80+
library from ComDB and use it standalone elsewhere (such as a LumoSQL backend.)
81+
7582
# Distributed or Clustered Codebases
7683

7784
The following five projects are widely-varying examples of how SQLite data can
@@ -164,6 +171,9 @@ Encryption is a major problem for SQLite users looking for open code. There are
164171

165172
... there are many more crypto projects for SQLite.
166173

174+
175+
176+
167177
# List of from-scratch MySQL SQL and MySQL Server implementations
168178

169179
If we want to make SQLite able to process MySQL queries there is a lot of existing code in this area to consider. There are at least 80 projects on github which implement some or all of the MySQL network-parse-optimise-execute SQL pathway, a few of them implement all of it. None so far reviewed used MySQL or MariaDB code to do so. Perhaps that is because the SQL processing code alone in these databases is many times bigger than the whole of SQLite, and it isn't even clear how to add them to this table if we wanted to. Only a few of these projects put a MySQL frontend on SQLite, but two well-maintained projects do, showing us two ways of implementing this.

0 commit comments

Comments
 (0)