Apache Ignite.NET In-Memory Data Fabric

Join the chat at https://gitter.im/apacheignite/ignite

Apache Ignite In-Memory Data Fabric is designed to deliver uncompromised performance for a wide set of in-memory computing use cases from high performance computing, to the industry most advanced data grid, highly available service grid, and streaming.

Advanced Clustering

Ignite nodes can automatically discover each other. This helps to scale the cluster when needed, without having to restart the whole cluster. Developers can also leverage from Ignite’s hybrid cloud support that allows establishing connection between private cloud and public clouds such as Amazon Web Services, providing them with best of both worlds.

Data Grid (Cache)

Ignite data grid is an in-memory distributed key-value store which can be viewed as a distributed partitioned Dictionary, with every cluster node owning a portion of the overall data. This way the more cluster nodes we add, the more data we can cache.

Unlike other key-value stores, Ignite determines data locality using a pluggable hashing algorithm. Every client can determine which node a key belongs to by plugging it into a hashing function, without a need for any special mapping servers or name nodes.

Ignite data grid supports local, replicated, and partitioned data sets and allows to freely cross query between these data sets using standard SQL and LINQ syntax. Ignite supports standard SQL and LINQ for querying in-memory data including support for distributed joins.

Our data grid offers many features, some of which are:

  • Primary & Backup Copies.
  • Near Caches.
  • Cache queries and SQL/LINQ queries.
  • Continuous Queries.
  • Transactions.
  • Off-Heap Memory.
  • Affinity Collocation.
  • Persistent Store.
  • Automatic Persistence.
  • Data Loading.
  • Eviction and Expiry Policies.
  • Data Rebalancing
  • Topology Validation.

Streaming & CEP

Ignite streaming allows to process continuous never-ending streams of data in scalable and fault-tolerant fashion. The rates at which data can be injected into Ignite can be very high and easily exceed millions of events per second on a moderately sized cluster.

Real-time data is ingested via data streamers. We offer streamers for JMS 1.1, Apache Kafka, MQTT, Twitter, Apache Flume and Apache Camel already, and we keep adding new ones every release.

The data can then be queried within sliding windows, if needed:

Compute Grid

Distributed computations are performed in parallel fashion to gain high performance, low latency, and linear scalability. Ignite compute grid provides a set of simple APIs that allow users distribute computations and data processing across multiple computers in the cluster. Distributed parallel processing is based on the ability to take any computation and execute it on any set of cluster nodes and return the results back.

We support these features, amongst others:

  • Distributed Closure Execution.
  • MapReduce & ForkJoin Processing.
  • Clustered Executor Service.
  • Collocation of Compute and Data.
  • Load Balancing.
  • Fault Tolerance.
  • Job State Checkpointing.
  • Job Scheduling.

Service Grid

Service Grid allows for deployments of arbitrary user-defined services on the cluster. You can implement and deploy any service, such as custom counters, ID generators, hierarchical maps, etc.

Ignite allows you to control how many instances of your service should be deployed on each cluster node and will automatically ensure proper deployment and fault tolerance of all the services.

Distributed Data Structures

Ignite.NET supports complex data structures in a distributed fashion: AtomicLong, AtomicReference, AtomicSequence.

Distributed Messaging

Distributed messaging allows for topic based cluster-wide communication between all nodes. Messages with a specified message topic can be distributed to all or sub-group of nodes that have subscribed to that topic.

Ignite messaging is based on publish-subscribe paradigm where publishers and subscribers are connected together by a common topic. When one of the nodes sends a message A for topic T, it is published on all nodes that have subscribed to T.

Distributed Events

Distributed events allow applications to receive notifications when a variety of events occur in the distributed grid environment. You can automatically get notified for task executions, read, write or query operations occurring on local or remote nodes within the cluster.

ASP.NET Integration

Ignite.NET provides Output Cache and Session State clustering: boost performance by storing cache and session data in Ignite distributed cache.

Entity Framework Integration

Ignite.NET Entity Framework Second Level Cache improves Entity Framework performance by storing query results in Ignite caches.

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.

Contribute to Ignite.NET

See Ignite.NET Development on wiki.