Update license date on all files. No functional changes.
Fix GOB reference counts on DELETE commands.
Issue a more meaningful error message if gdplogd ever gets a message
directed to a log we don't host (that is, if the routing layer has
handed us a name we don't know about).
The grand renaming: GCL is (mostly) gone in favor of GOB and GIN.
Snapshot in on-disk format conversion from ad hoc files to SQLite
databases. Compiles but is completely untested.
Snapshot of work on getting subscriptions working under Net4. Still
has several problems.
Change disk "delete" method to "remove" to avoid conflict with C++
Changes necessary to compile under C++ because it doesn't understand
that (void *) is compatible with other pointer types. This adds a lot
of explicit casts that are not needed in C.
First cut at "delete log" command (lightly tested).
First cut at separating GCL instances (GINs) from GDP Objects (GOBs).
This is intended to fix some semantic problems with subscriptions. End
users always use GINs (aliased to gdp_gcl_t for now for compatibility),
and there is one GIN for each call to gdp_gcl_open (i.e., no returning...
Move req/gcl lock ordering fix into get_open_handle to reduce redundancy
and assure consistency.
Fix cascading assertion failures if unable to open a physical log.
Snapshot on reliability work.
Basic things seems to work, including passing helgrind race condition
tests. Still more testing needed.
SNAPSHOT: fewer race conditions; still need more testing.
Attempt to allow GCLs to be cached in applications. This is
specifically for gdp-rest, but there may be other cases where it is
Fix a locking error that only occurs if a physical disk open failed.
Fix minor compilation glitch.
Reclaim dead subscriptions even if there are no writes to the subscribed
log. This is a very common case.
More work on locking issues.
Make it possible to reclaim resources in a worker thread rather than in
the main event loop.
Update licenses to 2017.
Debug level tweaks to make gdplogd log output more coherent. -D10 logs
less than before (use -D11 to get more-or-less what existed previously).
Some level 10s have been dropped to 9s (if they indicate error
Split req->pdu into two: cpdu holds the PDU for the command and rpdu
holds the PDU for the response. This makes it easier to make restart
work and the code to understand. However, it also means more copying of
data and a general lack of elegance. It also means that the datum in...
More cleanup of reference counting for GCLs that have error conditions.
Fix bug causing crash in gcl_create with new extent code.
Break out physical implementation to an explicit class so new
implementations (e.g., in memory) can be added easily.
Implement ability to create new extents. Currently there is no attempt
made to include authorization.
Another pass over on-disk extents; this one seems to be converging.
Checkpoint: extent code closer, compiles, doesn't run.
First cut at a preliminary implementation of extents. Compiles but
completely untested. Only handles one extent.
Update license. No code changes.
Include copyright in all files. There are scripts to do bulk
replacement of the copyright if desired.
Implement subscription renewals. This causes clients who have open
subscriptions to re-issue the subscription every
swarm.gdp.subscr.pokeintvl seconds. It's not complete yet: gdplogd
still needs to expire subscriptions after a timeout.
Leave GCLs in cache after continuing to use them after reconnections.
Minor tweak in debugging levels.
Fix bug in subscriptions introduced when I checked for I/O mode.
Add more documentation; a few code changes to make parameter naming more
consistent (as became obvious writing the documentation).
Check GCL mode when doing I/O (to avoid writing to a read-only log or
reading an append-only log).
Unify command and ack/nak processing; unify Associative and LRU GCL
caches; multiple other cleanups.
Rename gdplogd directory so it matches the name of the binary.