You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Nabeel Ali Memon <ni...@gmail.com> on 2017/07/24 07:44:03 UTC

Distributed SQL grid concerns

Hi,

I'm considering to use Ignite 2.0.1 as a distributed SQL grid on top of a
commonly used relational DB server. The domain requires strict
transactional semantics since it's a payment information system. I quickly
went through Ignite's user guide and it seems like all the necessary
ingredients are there. However I have some following questions which some
of you may have come across. Please let me know your experience:

1) How configurable is write-to-disk delay on transactions. Say I perform a
distributed tx on grid and I want to write to disk after 1 sec delay
(asynchronously) to increase the system throughput. Does it have any other
side-effects?

2) If a tx happens successfully on grid, and before writing to the db
server the JVM is killed or crashes, does it write those pending
transactions after reboot?

3) Once a tx happens on the grid, is it guaranteed (or how do I make sure)
that there will be no conflicts or logically failed transactions later when
it goes to perform this tx on db server?


Thanks.

Re: Distributed SQL grid concerns

Posted by Denis Magda <dm...@apache.org>.
Hi,

Please see inline

> On Jul 24, 2017, at 12:44 AM, Nabeel Ali Memon <ni...@gmail.com> wrote:
> 
> Hi,
> 
> I'm considering to use Ignite 2.0.1 as a distributed SQL grid on top of a commonly used relational DB server. The domain requires strict transactional semantics since it's a payment information system. I quickly went through Ignite's user guide and it seems like all the necessary ingredients are there. However I have some following questions which some of you may have come across. Please let me know your experience:
> 
> 1) How configurable is write-to-disk delay on transactions. Say I perform a distributed tx on grid and I want to write to disk after 1 sec delay (asynchronously) to increase the system throughput. Does it have any other side-effects?
> 

You have to use the write-through mode if the stick consistency is the goal. The write-behind (asynchronous) synch can not  guarantee the strong consistency in all the cases.

> 2) If a tx happens successfully on grid, and before writing to the db server the JVM is killed or crashes, does it write those pending transactions after reboot?
> 

A transaction is written to the db first and then to the grid. That avoids any imaginable out-of-sync issues. Read more here:
http://gridgain.blogspot.com/2014/09/two-phase-commit-for-in-memory-caches.html <http://gridgain.blogspot.com/2014/09/two-phase-commit-for-in-memory-caches.html>

and watch this recording: Distributed ACID Transactions in Apache® Ignite <https://www.youtube.com/watch?v=T0Ik0GQS60c>

> 3) Once a tx happens on the grid, is it guaranteed (or how do I make sure) that there will be no conflicts or logically failed transactions later when it goes to perform this tx on db server?
> 

The reply on 2) covers this bullet point.

—
Denis

> 
> Thanks.