I feel that I should clarify some confusion that arose from an inflammatory blog written by Hazelcast CEO, Greg Luck, accusing the Apache® Ignite™ community of "faking" the benchmark results.
To be honest, we were very surprised to see this blog from Hazelcast. Why wouldn't Mr. Luck at least make an effort and reach out to the Ignite community or the GridGain team before making such outrageous…
Today the GridGain team has announced the release of enterprise-grade GridGain In-Memory Data Fabric v. 7.5, based on Apache® Ignite™ v. 1.5. For those not familiar with GridGain or Apache Ignite, it provides the ability to distribute, cache, and compute on data in memory, including such features as in-memory data grid, compute grid, ANSI-99 in-memory SQL, real-time streaming, in-memory file…
In my previous post I have demonstrated benchmarks for atomic JCache (JSR 107) operations and optimistic transactions between Apache Ignite™ data grid and Hazelcast. In this blog I will focus on benchmarking the pessimistic transactions.
The difference between optimistic and pessimistic modes is in the lock acquisition. In pessimistic mode locks are acquired on first access, while in optimistic…
Recently I have been doing many benchmarks comparing the incubating Apache Ignite™ (incubating) project to other products. In this blog I will describe my experience in comparing Apache Ignite ™ (incubating) Data Grid vs Hazelcast Data Grid.
I will be using Yardstick Framework for the benchmarks, specifically Yardstick-Docker extension. Yardstick is an open source…
In its 1.0 release Apache Ignitetm added much better streaming support with ability to perform various data transformations, as well as query the streamed data using standard SQL queries. Streaming in Ignite is generally used to ingest continuous large volumes of data into Ignite distributed caches (possibly configured with sliding windows). Streamers can also be used to simply preload large…
In this example we will stream text into Apache Ignite and count each individual word. We will also issue periodic SQL queries into the stream to query top 10 most popular words.
The example will work as follows:
We will setup up a cache to hold the words as they come from a stream.
We will setup a 1 second sliding window to keep the words only for the last 1 second.
Ever seen a product which has duplicated mirrored APIs for synchronous and asynchronous processing? I never liked such APIs as they introduce extra noise to what otherwise could be considered a clean design. There is really no point to have myMethod() and myMethodAsync() methods while all you are trying to do is to change the mode of method execution from synchronous to asynchronous.
In this blog we cover a very important optimization that can be utilized for in-memory caches, specifically for cases where data is partitioned across the network.
In this blog we will cover a case when an in-memory cache serves as a layer on top of a persistent database. In this case the database serves as a primary system of records, and distributed in-memory cache is added for performance and scalability reasons to accelerate reads and (sometimes) writes to the data.
2-Phase-Commit is probably one of the oldest consensus protocols and is known for its deficiencies when it comes to handling failures, as it may indefinitely block the servers waiting in prepare state. To mitigate this, a 3-Phase-Commit protocol was introduced which adds better fault tolerance at the expense of extra network round-trip message and higher latencies.
We are pleased to announce the release of GridGain Open Source In-Memory Computing Platform 6.2.0. The main components of the platform are: compute grid, data grid (or in-memory distributed cache), and CEP streaming. This release revolves primarily around Portable Object functionality as well as Distributed (or Guaranteed) Services.
With release 6.1.9, GridGain significantly simplified its installation and deployment. GridGain now allows for:
One Click Installation:
The product simply has to be downloaded and unzipped. After that it is ready to be used.
One Jar Dependency:
GridGain now has only one mandatory dependency - gridgain-6.1.9.jar. All other jars are optional.
At GridGain, having worked on a distributed caching (data grid) product for many years, we constantly benchmark with various Garbage Collectors to find the optimal configuration for larger heap sizes. From conducting numerous tests, we have concluded that unless you are utilizing some off-heap technology (e.g. GridGain OffHeap), no Garbage Collector provided with JDK will render any kind of…
If you prefer a video demo with coding examples, visit the original blog post at gridgain.blogspot.com.
Distributed In-Memory Caching generally allows you to replicate or partition your data in memory across your cluster. Memory provides a much faster access to the data, and by utilizing multiple cluster nodes the performance and scalability of the application increases significantly.
What do Clustering frameworks really do? More often than not clustering frameworks will provide capability to auto-discover servers on the network, share resources, and schedule tasks. Some will also add distributed messaging and distributed event notification capabilities.