Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

gdp / gdplogd / logd_pubsub.c @ master

History | View | Annotate | Download (11.5 KB)

# Date Author Comment
94e663bc 05/07/2019 01:40 PM Eric Allman

Fix subscription renewal to avoid having gaps. It isn't clear that
req->act_ts is still useful, but we'll keep it around for a bit longer.

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

Update license date on all files. No functional changes.

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

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.

5edf4ad2 08/23/2018 12:43 PM Eric Allman

Pass Layer 4 network sequence number to higher layers.

80b79281 07/31/2018 01:07 PM Eric Allman

Remove vestiges of old signature implementation.

c5a6d4fa 06/24/2018 12:43 PM Eric Allman

Clean up debug output slightly.

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.

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

Checkpoint, mostly locking issues.

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.

8bebf0e3 02/26/2018 11:11 AM Eric Allman

Get basic subscriptions working again.

53393e9c 02/20/2018 03:26 PM Eric Allman

Snapshot of work on getting subscriptions working under Net4. Still
has several problems.

79ec15a3 02/07/2018 01:31 PM Eric Allman

Sanity checks when sending subscription results.

cfc94dab 02/06/2018 12:10 PM Eric Allman

Fix null pointer dereference when closing a writer that is writing to a
log that has a subscription active.

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.

a34bb9a0 01/10/2018 01:28 PM Eric Allman

Get basic subscriptions working.

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

f2bf1027 08/31/2017 03:55 PM Eric Allman

Snapshot. Basic things still seem OK, create still seems iffy.

44e7be3d 08/10/2017 09:43 AM Eric Allman

This seems to work under valgrind --tool=helgrind --track-lockorders=no.
There are still problems with lock ordering to be addressed.

e8d38e51 08/09/2017 03:25 PM Eric Allman

Fix some inappropriate assertions.

b8f93c05 08/09/2017 01:33 PM Eric Allman

Basic things seems to work, including passing helgrind race condition
tests. Still more testing needed.

42443eab 08/09/2017 07:46 AM Eric Allman

SNAPSHOT: still with some locking problems.

1b7c480e 08/05/2017 02:17 PM Eric Allman

SNAPSHOT: fewer race conditions; still need more testing.

55987b4d 07/28/2017 04:54 PM Eric Allman

Clean up parameters for subscription refreshing/expiry to make it harder
to make stupid mistakes.

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

Initial implementation of unsubscribe.

2f4bea8c 07/14/2017 11:30 AM Eric Allman

Better fix for problem with attempted fix in commit:a2d73fc0.

a21ed2f8 07/07/2017 08:43 AM Eric Allman

Remove misleading comment.

2a8cda22 06/24/2017 02:50 PM Eric Allman

Cleanup (and hopefully simplification) of assertion subsystem. Lots of
changes, but nothing particularly obtuse.

cf05aa39 06/22/2017 02:46 PM Eric Allman

Some code cleanup for previous commit.

6dfc87d5 04/11/2017 10:31 AM Eric Allman

Significant changes to locking to avoid problems with threaded clients.

474af7ac 03/28/2017 04:02 PM Eric Allman

Fix errant debugging output.

193dfcd3 03/19/2017 05:22 PM Eric Allman

Try to avoid a deadlock between requests and channels.

b068acef 03/18/2017 07:46 PM Eric Allman

Rationalize swarm.gdp.subscr.deadintvl and swarm.gdplogd.subscr.timeout.
Rename deadintvl to be timeout and swarm.gdp.subscr.pokeintvl to
swarm.gdp.subscr.refresh for consistency.

8a421c17 03/15/2017 03:13 PM Eric Allman

Lock channel request list when cleaning up subscriptions.

951b6fb6 03/10/2017 05:05 PM Eric Allman

Change EP_ASSERT_MUTEX_IS(UN)?LOCKED to EP_THR_MUTEX_ASSERT_IS(UN)LOCKED
for consistency with other routine names.

9d11c6da 03/10/2017 01:54 PM Eric Allman

Reclaim dead subscriptions even if there are no writes to the subscribed
log. This is a very common case.

e6b0a042 03/09/2017 02:54 PM Eric Allman

Subscriptions seem to get expired now, but only when another record is
written (should happen spontaneously in order to mop up file
descriptors).

65f23ae5 03/08/2017 04:20 PM Eric Allman

Subscriptions work again.

d15adf12 03/07/2017 12:55 PM Eric Allman

More work on locking issues.

7f515f6d 03/06/2017 05:33 PM Eric Allman

Compiler glitches.

47d57c57 03/02/2017 03:26 PM Eric Allman

Move GDP_ASSERT_MUTEX_IS[UN]LOCKED into EP library; this implementation
is much less portable and relies on peeking into the secret mutex data,
but has the advantage that it seems to work. Also improves some of the
lock debugging output to add more information.

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

Update licenses to 2017.

3bb9fb89 02/06/2017 10:36 AM Eric Allman

Avoid double locking in sub_notify_all_subscribers in various error
cases.

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

a977e6aa 12/11/2016 09:56 AM Eric Allman

Snapshot: basic operations seem to be working (no stress tests yet).

7bc0e2cf 12/11/2016 08:51 AM Eric Allman

Snapshot: get basic reading working again with new lock changes.

ca784352 11/26/2016 10:19 AM Eric Allman

Avoid possible use of uninitialized pointer in gdplogd subscriptions.

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.

de7f6053 10/17/2016 09:44 PM Nitesh Mor

Minor comment, no code change

7bf6e9b2 10/15/2016 10:32 PM Nitesh Mor

Bug-fix for stuck subscriptions after renewal

See #75

a257266f 06/23/2016 10:56 AM Eric Allman

Cleanup for convenience macros for ep_time_nanosleep.
Add debugging to force parallelism in gdplogd.

283110f2 05/15/2016 11:06 AM Eric Allman

Additional debugging for request locking. Change _gdp_req_free API so
it can NULL-out the pointer to the request.

4a7d784f 05/12/2016 07:32 PM Eric Allman

Change _gdp_gcl_decref API to automatically null out the pointer ---
this makes it less prone to error.

e539f4d3 05/12/2016 12:28 PM Eric Allman

Fix a reference counting bug. Improve reference counting and locking
debugging.

18624361 04/28/2016 10:37 AM Eric Allman

Fix a race condition where _gdp_req_lock could return a pointer to a
free req. This could only happen if thread T1 got a pointer to the req,
then T2 locked the req, then T1 blocked on the lock, T2 freed the req
and unlocked the req, allowing T1 to continue with the now freed req....

19efef53 04/15/2016 01:26 PM Eric Allman

Fix a problem that was causing occassional unlocks of unlocked mutexes
(only when a subscription timed out).

e8097b09 04/13/2016 03:11 PM Eric Allman

Allow clients to open more than one instance of a single GCL. Second
and subsequent opens increment the reference count and return the
already instance of the GCL. gdp_gcl_close just decrements the
reference count unless it has the last reference.

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.

101504b5 11/15/2015 02:17 PM Eric Allman

Allow gdplogd to expire subscriptions that have not been renewed. This
essentialy implements leases.

02de7463 10/27/2015 04:53 PM Eric Allman

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.

f80ae9c0 07/22/2015 09:54 AM Eric Allman

Snapshot adding signing. Signatures are computed but not sent or
checked.

4102ad3a 03/05/2015 05:59 PM Eric Allman

Cleanup for code walkthrough:
* comments
* some function rearrangement
* make data structure detail printing more consistent

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

1440421a 02/04/2015 05:43 PM Eric Allman

Snapshot: working on timing out subscriptions.

cf71c5ea 01/29/2015 11:39 AM Eric Allman

Implement gdplogd shutdown actions: withdraw advertisements, explicitly
terminate all subscriptions.

21ab3878 01/27/2015 12:12 PM Eric Allman

Unify command and ack/nak processing; unify Associative and LRU GCL
caches; multiple other cleanups.

2fe6b834 12/26/2014 01:47 PM Eric Allman

Rename gdplogd directory so it matches the name of the binary.