]
Bela Ban commented on JGRP-1826:
--------------------------------
To simplify discovery, MERGE2 (deprecated) uses its own protocol to discover all views in
a cluster and to see if they're different. This means that the discovery code can be
simplified.
Discovery: file-based discovery protocols should not send discovery
requests
----------------------------------------------------------------------------
Key: JGRP-1826
URL:
https://issues.jboss.org/browse/JGRP-1826
Project: JGroups
Issue Type: Enhancement
Reporter: Bela Ban
Assignee: Bela Ban
Fix For: 3.5
When a node stores its information in a directory ({{FILE_PING}}, {{S3_PING}} or
{{GOOGLE_PING}}), then we can optimize discovery by implementing a few things:
* After reading all files, we send each node (represented by a file) a discovery request.
That node processes the request and sends back a discovery response. This is unneeded
traffic, especially with large clusters. Instead
** Read all files and add the information read from the files into the local caches
(logical_addr_cache, UUID cache etc). This is the same as processing discovery responses
from all members
* Determine the coordinators directly from the file information. Perhaps we could even
create a special file which contains information about the coordinator.
** This would prevent partitions from happening when starting up a large number of nodes:
as long as that special file exists, nobody else will take ownership of it. When the coord
leaves or crashes, we atomically replace the special file