Change one of the SQLite PRAGMA defaults (it doesn't seem to help much).
Cache INSERT statements for SQLite (it was already done for the reads).
Give better SQLite error reports.
Fix a bug that might cause "OK" status codes to be interpreted as not
OK. This would only happen if the OK status included a value between 29
and 31 bits large.
Fix NULL pointer dereference if record hash isn't set --- this shouldn't
happen, but some errors can trigger it.
Updates for clean compile on Ubuntu 18.04, including finishing upgrade
of OpenSSL to 1.1.0. Changes were surprisingly large. Bump the patch
number for ease of identification (this version also includes updates
for log creation service).
Change default SQLite locking mode to NORMAL in an attempt to avoid
strange pauses in operation.
Update license date on all files. No functional changes.
Make gdp-log-view open the database read-only instead of read-write.
First cut at resurrecting log-view (now gdp-log-view) for v2 format.
Still needs some tweaking, but basics work.
Split variable swarm.gdplogd.log.dir into swarm.gdp.data.dir (the root
of persistent data) and swarm.gdplogd.log.dir (relative to the other).
This is primarily to make container management easier.
Also, when reading parameter files, allow auto-qualification with the...
Make it easy to set an SQLite "busy timeout" to make concurrent access
to logs more resilient. Use swarm.gdplogd.sqlite.pragma.busy_timeout to
set this (value in milliseconds).
Change default pragmas to be faster --- but less safe.
Implement transaction hooks to make SQLite more efficient if multiple
records are being appended at the same time.
Add gdplogd administrative parameters to tweak SQLite3 pragmas that are
likely to affect performance. They are all named
"swarm.gdplogd.sqlite.pragma." with names (and defaults, where
Give a reasonable error code if SQLite couldn't open a database file to
avoid bogus "internal error" responses.
If SQLite gives a failure code, make sure the resulting estat is also a
Some deployed versions of SQLite don't support the SELECT FROM
Include timestamp accuracy in database; make some of the "FIXME"
comments more explanatory or remove them as appropriate.
Get signatures on APPEND working again. Still incomplete, but handles
the single datum in a request case.
Cleanup signature and hash type handling. There's no point in storing
the MD algorithm with each datum since it is fixed per GOB, nor in
passing it over the wire since it is just a blob unless you have either
the secret or public key, either of which contain that information...
Be sure to use ORDER BY in SELECTs so the application gets the data in
the right order.
Snapshot: change physical interface to make more efficient use of SQLite
when retrieving sets. Use this for asynchronous reads.
Snapshot. Fixes in protobuf format to better deal with reads returning
It turns out that including a GOB pointer in the datum causes too many
locking problems. Just pass the gob in as needed.
The grand renaming: GCL is (mostly) gone in favor of GOB and GIN.
Get basic subscriptions working again.
Snapshot: several problems with timestamps and metadata.
Checkpoint: basic create, write, read all work. Subscriptions, async
commands, and multireads untested.
Snapshot: some things working, but more things (notably datum lists)
need more work, including at the protocol level.
Snapshot: compiles cleanly with updated protocol and crypto
support, but completely untested.
Snapshot in on-disk format conversion from ad hoc files to SQLite
databases. Compiles but is completely untested.