# Package org.hibernate.search.backend.jgroups.impl

- Interface Summary
  Interface | Description
  --- | ---
  MessageSenderService | Abstract away message submission.
  NodeSelectorService | Contains the `NodeSelectorStrategy` selected for each index, or returns the default one.
  NodeSelectorStrategy | A NodeSelectorStrategy represents the strategy by which a node out of the JGroups cluster is selected to apply changes to the Lucene index.

- Class Summary
  Class | Description
  --- | ---
  AutoNodeSelector | This `NodeSelectorStrategy` picks a single master across all nodes participating in the JGroups cluster deterministically: this way all nodes in the group will have an agreement on which node is going to be the master.
  DefaultNodeSelectorService | Maintains a registry of node selectors per index, so that we can handle each index independently while sharing the same JGroups channel.
  DispatchMessageSender | We use the MessageDispatcher instead of the JChannel to be able to use blocking operations (optionally) without having to rely on the RSVP protocol being configured on the stack.
  JGroupsBackend |
  JGroupsBackendQueueProcessor | This index backend is able to switch dynamically between a standard Lucene index writing backend and one which sends work remotely over a JGroups channel.
  JGroupsBackendQueueTask | Responsible for sending Lucene works from slave nodes to master node
  JGroupsMasterBackend |
  JGroupsMasterMessageListener | A `Receiver` that listens for messages from slave nodes and apply them.
  JGroupsSlaveBackend |
  MasterNodeSelector | This `NodeSelectorStrategy` is a static configuration for the local node to always process index operations locally, and accept index operations from remote nodes configured as slaves.
  MessageListenerToRequestHandlerAdapter | Delegate request to listener.
  MessageSerializationHelper | While we use the configured LuceneWorkSerializer to serialize the Work queue, the JGroups backend needs to prefix the stream with the index name.
  SlaveNodeSelector | This `NodeSelectorStrategy` is a static configuration for the local node to avoid processing any indexing operations locally.

Copyright © 2006-2017 Red Hat, Inc. All Rights Reserved