19d58ee17e
1. Modify the registry to eliminate redundant data copying for startup messages. 2. Revise the subscription/trigger system to avoid redundant storage of triggers and subscriptions. This dramatically reduces the search time when a registry action occurs - to illustrate the point, there are now only a handful of triggers on the system for each job. Before, there were a handful of triggers for each PROCESS in the job, all of which had to be checked every time something happened on the registry. This is much, much faster now. 3. Update all subscriptions to the new format. There are now "named" subscriptions - this allows you to "name" a subscription that all the processes will be using. The first one to hit the registry actually defines the subscription. From then on, any subsequent "subscribes" to the same name just cause that process to "attach" to the existing subscription. This keeps the number of subscriptions being tracked by the registry to a minimum, while ensuring that each process still gets notified. 4. Do the same for triggers. Also fixed a duplicate subscription problem that was causing people to receive data equal to the number of processes times the data they should have received from a trigger/subscription. Sorry about that... :-( ...but it's all better now! Uncovered a situation where the modex data seems to be getting entered on the registry a second time - the latter time coming after the compound command has been "fired", thereby causing all the subscriptions to fire. Asked Tim and Jeff to look into this. Second phase of the changes will involve modifying the xcast system so that the same message gets sent to all processes. This will further reduce the message traffic, and - once we have a true "broadcast" version of xcast - really speed things up and improve scalability. This commit was SVN r6542. |
||
---|---|---|
.. | ||
gpr_replica_arithmetic_ops_cm.c | ||
gpr_replica_cleanup_cm.c | ||
gpr_replica_cmd_processor.c | ||
gpr_replica_comm.h | ||
gpr_replica_compound_cmd_cm.c | ||
gpr_replica_del_index_cm.c | ||
gpr_replica_dump_cm.c | ||
gpr_replica_put_get_cm.c | ||
gpr_replica_recv_proxy_msgs.c | ||
gpr_replica_remote_msg.c | ||
gpr_replica_subscribe_cm.c | ||
Makefile.am |