Ignite Java

Ignite In-Memory Data Fabric is developed predominantly in Java, and provides native support for other languages. It 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, CEP, and data streaming.

Ignite data grid is an in-memory key-value store which enables caching data in-memory within distributed clusters. It supports ACID Transactions, SQL Queries, Distributed SQL Joins, Messaging and Events, Data Streaming, and more.

Ignite also supports Cross-platform Interoperability by writing objects to cache in a common binary format allowing application to seamlessly interoperate between Java, .NET and C++.

Code Examples:
                            Ignite ignite = Ignition.ignite();

                            IgniteCache<Integer, String> cache = ignite.cache(CACHE_NAME);

                            // Store keys in cache (values will end up on different cache nodes).
                            for (int i = 0; i < 10; i++)
                                cache.put(i, Integer.toString(i));

                            for (int i = 0; i < 10; i++)
                                System.out.println("Got [key=" + i + ", val=" + cache.get(i) + ']');
                        
                            try (Transaction tx = transactions.txStart()) {
                                Integer hello = cache.get("Hello");

                                if (hello == 1)
                                    cache.put("Hello", 11);

                                cache.put("World", 22);

                                tx.commit();
                            }
                        
                            IgniteCache<Long, Person> cache = ignite.cache("personCache");

                            SqlQuery sql = new SqlQuery(Person.class, "salary > ?");

                            // Find persons earning more than 1,000.
                            try (QueryCursor<Entry<Long, Person>> cursor = cache.query(sql.setArgs(1000))) {
                              for (Entry<Long, Person> e : cursor)
                                System.out.println(e.getValue().toString());
                            }
                        
                            IgniteCache<Long, Person> cache = ignite.cache("personCache");

                            // SQL join on Person and Organization.
                            SqlQuery sql = new SqlQuery(Person.class,
                              "from Person as p, \"orgCache\".Organization as org "
                              + "where p.orgId = org.id "
                              + "and lower(org.name) = lower(?)");

                            // Find all persons working for Ignite organization.
                            try (QueryCursor<Entry<Long, Person>> cursor = cache.query(sql.setArgs("Ignite"))) {
                              for (Entry<Long, Person> e : cursor)
                                System.out.println(e.getValue().toString());
                            }
                        
GitHub Examples:

Also see Ignite Java examples available on GitHub.

Get started with Ignite Java