Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-38523

menelaus_event notification is too coarse grained

    XMLWordPrintable

Details

    Description

      Clients of the menelaus_event infrastructure are notified of all "interesting" events that occur even if they are only interested in a subset. The "interesting" events consist of:

      is_interesting_to_watchers({significant_buckets_change, _}) -> true;
      is_interesting_to_watchers({memcached, _}) -> true;
      is_interesting_to_watchers({{node, _, memcached}, _}) -> true;
      is_interesting_to_watchers({{node, _, membership}, _}) -> true;
      is_interesting_to_watchers({rebalance_status, _}) -> true;
      is_interesting_to_watchers({recovery_status, _}) -> true;
      is_interesting_to_watchers({buckets, _}) -> true;
      is_interesting_to_watchers({nodes_wanted, _}) -> true;
      is_interesting_to_watchers({server_groups, _}) -> true;
      is_interesting_to_watchers({ns_node_disco_events, _NodesBefore, _NodesAfter}) -> true;
      is_interesting_to_watchers({autocompaction, _}) -> true;
      is_interesting_to_watchers({cluster_compat_version, _}) -> true;
      is_interesting_to_watchers({developer_preview_enabled, _}) -> true;
      is_interesting_to_watchers({cluster_name, _}) -> true;
      is_interesting_to_watchers({memory_quota, _}) -> true;
      is_interesting_to_watchers({index_settings_change, memoryQuota, _}) -> true;
      is_interesting_to_watchers({indexes_change, _, _}) -> true;
      is_interesting_to_watchers({goxdcr_enabled, _}) -> true;
      is_interesting_to_watchers({{node, _, stop_xdcr}, _}) -> true;
      is_interesting_to_watchers({{node, _, services}, _}) -> true;
      is_interesting_to_watchers({{service_map, _}, _}) -> true;
      is_interesting_to_watchers({user_roles, _}) -> true;
      is_interesting_to_watchers({client_cert_auth, _}) -> true;
      is_interesting_to_watchers({audit_uid_change, _}) -> true;
      

      One side effect of this is seen for streaming REST Api handlers which wake up on an event notification, do some sort of heavy weighted operation, determine if anything has changed, and if not hibernate again. There have been cases where there are a significant number of processes that all wake up and do this placing a heavy load on the REST Api handling in the system.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              Abhijeeth.Nuthan Abhijeeth Nuthan
              steve.watanabe Steve Watanabe
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:

                Gerrit Reviews

                  There are no open Gerrit changes

                  PagerDuty