History | View | Annotate | Download (41.7 KB)
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 indicated:
cache_size journal_mode TRUNCATE...
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 failure code.
Some deployed versions of SQLite don't support the SELECT FROM pragma_ syntax.
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 sets.
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.