| Branch: | Tag: | Revision:

gdp / gdp / gdp_event.c @ master

History | View | Annotate | Download (21.9 KB)

# Date Author Comment
f680aa23 05/02/2019 04:00 PM Eric Allman

Fix possible infinite loop when using gdp_event_next with a GIN
specified. Version 2.1.17.

c87dd166 01/23/2019 07:56 AM Eric Allman

Update license date on all files. No functional changes.

301f69e1 01/05/2019 02:40 PM Eric Allman

Change (and document) defaults for event timeouts to be more realistic.

a10e4273 01/05/2019 02:23 PM Eric Allman

Debugging on reordering of asynchronous data retrieval. Finally appears
to work.

34e502ee 09/12/2018 01:41 PM Eric Allman

Second cut at sorting asynchronous data records. Currently all done with
simulation (-Dtest.gdp.chan.seqno=102 randomizes the incoming sequence
numbers), and so missing or duplicated incoming records have not been

e6319882 09/04/2018 09:09 AM Eric Allman

First pass at ordering results of asynchronous reads. Works if the
reads come in pre-sorted, but so far untested for out-of-order delivery.

b2910e9d 08/15/2018 02:06 PM Eric Allman

Additional debugging for events and PDU processing for debugging out of
order PDU problems.

825689f9 08/10/2018 05:07 PM Eric Allman

Tweaks to hopefully do a better job of handling out-of-order results for
asynchronous reads.

caa69652 07/20/2018 01:02 PM Eric Allman

Make event queue a TAILQ instead of an STAILQ to avoid n2 algorithm
when results arrive in order.

e95fef13 07/20/2018 11:59 AM Eric Allman

First cut at fixing bug that sometimes caused an "End of Results" PDU to
be delivered before some of the results themselves. This involves
passing a "number of results sent" field in the "End of Results" PDU and
saving that PDU until the indicated number of results are processed....

ada5f328 06/20/2018 07:15 AM Eric Allman

Improvements to event and metadata printing.

58b43678 06/18/2018 06:14 PM Eric Allman

Fix or expand on FIXME comments.

9f6be413 06/15/2018 03:26 PM Eric Allman

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...

5ced6d34 06/09/2018 01:37 PM Eric Allman

Change GDP_EVENT_EOS to GDP_EVENT_DONE, since it isn't specific to
subscriptions. Also documentation updates reflecting the datum changes
in the previous commit.

bd278f2e 06/08/2018 11:45 AM Eric Allman

Snapshot: change physical interface to make more efficient use of SQLite
when retrieving sets. Use this for asynchronous reads.

8cfe4117 05/25/2018 01:22 PM Eric Allman

It turns out that including a GOB pointer in the datum causes too many
locking problems. Just pass the gob in as needed.

eae1d3ec 05/25/2018 01:22 PM Eric Allman

The grand renaming: GCL is (mostly) gone in favor of GOB and GIN.

2e65953f 05/25/2018 01:22 PM Eric Allman

Simplify the datum interface back to what it was before. Basic
subscriptions and subscription timeout seems to work now.

31d6906f 05/25/2018 01:22 PM Eric Allman

Get basic subscriptions working again.

72871cfc 05/25/2018 01:22 PM Eric Allman

Checkpoint: basic create, write, read all work. Subscriptions, async
commands, and multireads untested.

fa7cfdb9 05/25/2018 01:22 PM Eric Allman

Snapshot: compiles cleanly with updated protocol and crypto
support, but completely untested.

bfecf573 01/23/2018 05:20 PM Eric Allman

Rather non-intuitive changes to suppress "return value not used"
warning; just (void)ing the call no longer works.

fc0cbc23 01/23/2018 04:09 PM Eric Allman

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.

7f74c3b3 01/18/2018 04:09 PM Eric Allman

Fix signature generation and checking.

4a89fdda 01/17/2018 11:34 AM Eric Allman

First cut at flattening out protobuf definition. Some changes to data
structure printing (e.g., _gdp_pdu_dump) to get indenting more rational
so as to make reading the output easier.

d65c01e2 01/09/2018 11:18 AM Eric Allman

First cut at running Layer 5 network protocol version 4 over old
(version 3) Layer 4 stack. Substantial parts are unimplemented,
including signature generation and checking, read or subscribe by
timestamp or hash, and others. No asynchronous operations including...

fec93aac 10/24/2017 02:38 PM Eric Allman

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...

5a0087b1 10/13/2017 11:55 AM Eric Allman

Somewhat better diagnostics in gdp_event_next.

30b32ab8 10/08/2017 02:03 PM Eric Allman

Print more information if there is a failure in gdp_event_next when
doing a cond_wait.

1ca7751e 09/01/2017 03:45 PM Eric Allman

More work on making helgrind happy. This seems to be pretty close,
maybe worth a try in production.

66f6c374 08/02/2017 09:11 AM Eric Allman

Make Helgrind annotations work properly for (most?) race conditions.

9c515e64 07/26/2017 06:21 PM Eric Allman

Initial implementation of unsubscribe.

f095a16d 07/25/2017 01:41 PM Eric Allman

When doing final close on a GCL, free all events associated with it.
Add some additional parameter checking macros.

5061fa7d 06/27/2017 10:22 AM Eric Allman

Additional checking for GDP events to try to find a free list problem.

6f52b2b7 04/14/2017 03:16 PM Eric Allman

Implement a way to deliver "record missing" back to client.

7882a3b0 03/23/2017 10:13 PM Eric Allman

Add order specification for some leaf locks.

897accec 02/06/2017 10:41 AM Eric Allman

Update licenses to 2017.

a104a10f 02/06/2017 10:36 AM Eric Allman

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...

e7b2a80c 11/22/2016 02:22 PM Eric Allman

Extensive work on reliability, notably sharing a datum between threads.
Increases reliability, but still not fully tested. Basic things seem to
work though. Note: this may disrupt the replication code.

4d6ff457 09/27/2016 04:52 PM Eric Allman

Fix problem that might occur if an initial response PDU to a command
such as MULTIREAD is delayed; follow-on data was treated as a response to
the initial command rather than as asynchronous events.

786df979 09/02/2016 03:57 PM Eric Allman

Fix some glitches in subscriptions and event handling that break
multiple subscriptions to the same log in different threads. This is
improved, but it still doesn't work.

0d8c13e8 08/27/2016 08:36 AM Eric Allman

Make many parameters "const" where possible.

df3cb5c4 08/27/2016 08:21 AM Eric Allman

Clean up event printing output.

69d48e07 06/21/2016 03:38 PM Eric Allman

Avoid possible lost events in asynchronous event handling. This delayed
delivery of some events, possibly forever.

e44608e9 06/13/2016 10:03 AM Eric Allman

Beginnings of attempt to deal with subscription-based memory leaks.

35fe99c5 06/07/2016 01:16 PM Eric Allman

Code cleanup and comments.

8d1c2419 05/27/2016 08:20 AM Eric Allman

Better printing of gdp_event_t.

8cc28925 05/26/2016 05:10 PM Eric Allman

First cut on implementing FWD_APPEND command. Still not working for all

6bd5476b 12/01/2015 01:22 PM Eric Allman

Update license. No code changes.

055d3009 11/21/2015 01:20 PM Eric Allman

Include copyright in all files. There are scripts to do bulk
replacement of the copyright if desired.

e2682ba9 05/28/2015 10:36 AM Eric Allman

Implement asynchronous writes. Adds new interfaces:
* gdp_gcl_append_async -- initiate an asynchronous write.
* gdp_event_getstat -- get the status code from an event.
Asynchronous reads can be done using multiread.
Note that asynchronous writes do not attempt retransmissions, unlike...

04ceac3d 02/12/2015 11:46 AM Eric Allman

Try to at least reduce the number of compile warnings on gcc. It
compiles clean on the NUC (Debian 7, gcc 4.7.2) but still gives some
errors on Ubuntu 14.04.1 (gcc 4.8.2).

871af07a 02/08/2015 03:05 PM Eric Allman

More debugging output.

6aa10a68 02/08/2015 11:13 AM Eric Allman

Back out changes carrying over req to event --- it's important that they
be decoupled.

bc1bfac2 02/02/2015 10:45 AM Eric Allman

Keep old PDU around after delivering data from subscription; this let's
us renew the subscription periodically so that records will not be lost.

55b8c1ad 02/02/2015 08:17 AM Eric Allman

Change gdp_event_next to allow selection of events for a specific GCL.

be7cbe23 01/31/2015 05:11 PM Eric Allman

Run subscription callbacks in dedicated thread. Untested.

b94257c4 01/30/2015 06:05 PM Eric Allman

Beginnings of changes to move event callbacks into a separate thread.
Not complete.

d3cbb6dc 01/22/2015 01:16 PM Eric Allman

Change gdp_event_next to take an int64_t timeout (in nanoseconds);
also, convert it to use the new ep_thr_cond_wait "absolute time"

686e4579 11/25/2014 01:30 PM Eric Allman

Change ep_thr_cond_wait and gdp_event_next to take timeout parameters

fe034bdb 11/25/2014 01:04 PM Eric Allman

Implement subscription callbacks. Note that these almost never do what
you actually want, so the event interface is preferred.

e4bb9795 11/25/2014 09:25 AM Eric Allman

Simplify event queue implementation (TAILQ => STAILQ)

2e4a5d7d 09/12/2014 12:52 PM Eric Allman

First cut at returning multiple results. This extends "subscribe" to
have a starting record number and a record count.

343366c2 08/24/2014 03:21 PM Eric Allman

Clean out unnecessary #includes. Linux portability.

8f19d4ba 08/24/2014 02:58 PM Eric Allman

Subscriptions working!

9509f13b 08/23/2014 01:27 PM Eric Allman

Another snapshot. Much closer to having subscriptions working.