For information on how to get started with Apache Ignite, please visit: [Getting Started].
You can find the full Apache Ignite documentation here: [Full documentation].
Ignite plugins is an open source project and anyone can download it.
This project contains plugins for Apache Ignite project. Over the past few years it was a much needed project which I had in my mind for the community.
This project contains the following plugins which can be used with Apache Ignite.
Segmentation in the grid can happen for various reasons, but in vast majority of cases it's a long GC pause. In this case node does not close connections, but becomes unresponsive, which causes the cluster to remove it from topology after failure detection timeout.
Clone the repository and build the jar locally. By default it uses Apache Ignite version 2.6.0 but you can override it during the build by providing a specific version.
mvc clean install -Dapache-ignite.version=2.6.0
Download the binary from bin folder, and put it inside IGNITE_HOME/libs folder. The jar will be picked up automatically when the grid is started.
According to GridSegmentationProcessor class network segment checks are performed in the following cases
- Before discovery SPI start.
- When other node leaves topology.
- When other node in topology fails.
- Periodically (see IgniteConfiguration.html#getSegmentCheckFrequency).
Check IgniteConfiguration java docs for the following methods:
- setSegmentationPolicy
- setWaitForSegmentOnStart
- setAllSegmentationResolversPassRequired
- setSegmentationResolveAttempts
- setSegmentCheckFrequency
- setSegmentationResolvers
When the segment resolver check is failed, it will fire EventType.EVT_NODE_SEGMENTED event and the node will perform operation based on the defined SegmentationPolicy. See SegmentationPolicy java docs as well to understand more about what each SegmentationPolicy is doing behind the scenes.
Ignite Local and Remote Events to see how can you subscribe and query EventType.EVT_NODE_SEGMENTED event.
Please see the docs folder for all the documentation. I have tried my best to write all the resolvers documentation but in-case if something is missing, please let me know.
There are three segement resolvers available:
- NodeReachabilitySegmentationResolver
- SharedFileSystemSegmentationResolver
- TcpIpSegmentationResolver
Local node checks connectivity to target node
<bean id="nodeReachability" class="com.ig.segmentation.network.segment.NodeReachabilitySegmentationResolver">
<property name="localNodeName" value="localhost"/>
<property name="targetNodeName" value="localhost"/>
</bean>
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="segmentationResolvers">
<ref bean="nodeReachability"/>
</property>
</bean>
Local node read and write a file to shared file system over the network
<bean id="sharedFileSystemResolver" class="com.ig.segmentation.network.segment.SharedFileSystemSegmentationResolver">
... set the properties ...
</bean>
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="segmentationResolvers">
<ref bean="sharedFileSystemResolver"/>
</property>
</bean>
Connect and close the connection immediately from local node to target node on a specific port
<bean id="tcpIpResolver" class="com.ig.segmentation.network.segment.TcpIpSegmentationResolver">
... set the properties ...
</bean>
<bean id="grid.cfg" class="org.apache.ignite.configuration.IgniteConfiguration">
<property name="segmentationResolvers">
<ref bean="tcpIpResolvers"/>
</property>
</bean>