com.gemstone.gemfire.distributed.internal.package.html Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gemfire-core Show documentation
Show all versions of gemfire-core Show documentation
SnappyData store based off Pivotal GemFireXD
Classes in this package implement distribution in GemFire.
Every virtual machine working with distributed data (client
VMs, the GemFire console) has an
instance of {@link
com.gemstone.gemfire.distributed.internal.DistributionManager}
that is responsible for sending and receiving {@link
com.gemstone.gemfire.distributed.internal.DistributionMessage}s.
A DistributionManager
has a unique {@link
com.gemstone.gemfire.distributed.internal.DistributionManager#getId
id} and uses a JavaGroups com.gemstone.org.javagroups.Channel
channel to discover the other members of the distributed system. It
also uses JavaGroups to detect when a member has left the group. Note
that GemStone has com.gemstone.gemfire.distributed.internal.direct.DirectChannel#patchUpAddress
modified the implementation of the JavaGroups com.gemstone.org.jgroups.stack.IpAddress to hold the port on which
the distribution manager's direct channel runs. This optimization
allows us to start a distribution manager without having to send out a
"startup" message. (GemStone has also modified JGroups to perform
less XML parsing. This greatly improves the performace of creating a
JavaGroups channel.) While some messages may be broadcast to all
members of the group, the vast majority of messages are only intended
for a subset of the group are sent point-to-point over a {@link
com.gemstone.gemfire.distributed.internal.direct.DirectChannel}.
The JGroups channel and DirectChannel
are combined
into a {@link
com.gemstone.gemfire.distributed.internal.DistributionChannel}
that is used by the DistributionManager
.