Commit Graph

6 Commits

Author SHA1 Message Date
Jana Radhakrishnan 8936daab5e Retain deleted entries for longer time
When deleting entries or when learning about deleted entries remember
then for a longer time to avoid excessive delete duplicates in the
gossip cluster. Also added code changes to ignore event messages
originated from the source node so that it doesn't get added into the
rebroadcast queue.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-30 18:24:13 -07:00
Jana Radhakrishnan 8245296aa5 Make sure node map is valid before accessing it
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-13 18:30:31 -07:00
Jana Radhakrishnan 78a3cf5f6c Do not rebroacast bulk sync updates
Bulksync is not meant to be rebroadcast in gossip. Stopped
rebroadcasting bulksync updates.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-12 20:19:40 -07:00
Jana Radhakrishnan 774399fd66 Fix couple of panics in networkdb
Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-06-02 20:29:37 -07:00
Jana Radhakrishnan 77abea9c1e Use protobuf in networkdb core messages
Convert all networkdb core message types from go message types to
protobuf message types. This faciliates future modification of the
message structure without breaking backward compatibility.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-05-17 09:18:24 -07:00
Jana Radhakrishnan 28f4561e3f Add network scoped gossip database
Network DB is a network scoped gossip database built
on top of hashicorp/memberlist providing an eventually
consistent state store.

It limits the scope of the gossip and periodic bulk syncing
for table entries to only the nodes which participate in the
network to which the gossip belongs. This designs make the
gossip layer scale better and only consumes resources for the
network state that the node participates in.

Since the complete state for a network is maintained by all nodes
participating in the network, all nodes will eventually converge
to the same state.

NetworkDB also provides facilities for the users of the package to
watch on any table (or all tables) and get notified if there are
state changes of interest that happened anywhere in the cluster when
that state change eventually finds it's way to the watcher's node.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
2016-04-08 12:58:09 -07:00