
On Thu, 17 Jan 2019 at 07:46, Steve Petrie, P.Eng. via talk <talk@gtalug.org> wrote:
BerkelyDB might be another option for storing an enbedded application's non-volatile data.
BerkelyDB is now owned by Oracle, but I believe there is an open-source version available) BerkelyDB could be more performant than SQLite and also could have a smaller footprint. In complexity, BerkelyDB would fit between SQLite and parsing the embedded app's non-volatile date out of a file(s) in the barebones filesystem.
I myself an considering migrating a PostgreSQL database (used by a PHP-based website app) to (an open source version of) BerkelyDB, because of the BerkelyDB claim that it requires "zero administration". If true, this "zero administration" feature sounds to me like a great fit for an embedded app..
I'd be a bit reluctant to look at something belonging to Oracle; as well, I'd regard Berkeley DB as being fairly heavyweight in this area. as it has several storage managers/access methods, as well as a lock manager to support multi-user access. By the time you pay for that 'weight', I think you're most of the way to being able to justify SQLite. Here's a free form list of things I imagine are looking at... - Constant DB (CDB) uses perfect hashing to establish a quickly-readable database; it has only two operations: - Create - Read Note the absence of a 'write' operation; data is not to be modified... https://en.wikipedia.org/wiki/Cdb_(software) http://www.unixuser.org/~euske/doc/cdbinternals/index.html http://www.unixuser.org/~euske/doc/cdbinternals/pycdb.py.html http://www.corpit.ru/mjt/tinycdb.html There are a couple of implementations (original one by the controversial Daniel J Bernstein, with somewhat controversial license terms) - Worth looking at benchmarks. Here's one for some of the classic kvp stores http://qdbm.sourceforge.net/benchmark.pdf - It looks like a lot of the "cool kids these days" have been using Tokyo Cabinet, and apparently Kyoto Cabinet is intended as a successor https://fallabs.com/kyotocabinet/ - Looking at it a bit systematically, there's clearly lots of key/value pair databases: https://en.wikipedia.org/wiki/Key-value_database Closest to home, local developer Ozan Ygit wrote sdbm as a rewrite of ndbm some years ago. http://www.cse.yorku.ca/~oz/sdbm.bun -- When confronted by a difficult problem, solve it by reducing it to the question, "How would the Lone Ranger handle this?"