GithubHelp home page GithubHelp logo

ignite-plugins's Introduction

Apache Ignite Plugins

Getting Started

For information on how to get started with Apache Ignite, please visit: [Getting Started].

Full Documentation

You can find the full Apache Ignite documentation here: [Full documentation].

Ignite Plugins

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.

1. Network segmentation aka split-brain problem

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.

Usage:

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
or

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.

Please see IgniteConfiguration java docs for the following methods:

  • setSegmentationPolicy
  • setWaitForSegmentOnStart
  • setAllSegmentationResolversPassRequired
  • setSegmentationResolveAttempts
  • setSegmentCheckFrequency
  • setSegmentationResolvers

When the segement resolver check is failed, the node will perform operation based on the SegmentationPolicy. See SegmentationPolicy java docs as well to understand more about what each SegmentationPolicy is doing behind the scenes.

See Ignite Local and Remote Events to see how can you subscribe and query EventType.EVT_NODE_SEGMENTED event.

For up to dated java docs, please see the docs folder. 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:

  1. NodeReachabilitySegmentationResolver
  2. SharedFileSystemSegmentationResolver
  3. TcpIpSegmentationResolver

Example

NodeReachabilitySegmentationResolver:

<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>

SharedFileSystemSegmentationResolver

<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>

TcpIpSegmentationResolver

<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>
Note: If any one wants to add more plugins, please feel free to do so. It would be really nice to have all the plugins in the same repository for the future use.

ignite-plugins's People

Contributors

expelahmad avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.