You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ignite.apache.org by Kia Rahmani <ki...@gmail.com> on 2018/08/27 16:24:33 UTC

Reaching Ignite's maximum throughput

Hey all,

I have been playing with Ignite and studying how applications can be
correctly optimized for it for a while now. However, I am having trouble
witnessing *reasonable* transactional throughputs even in the baseline
setting and I am wondering maybe I'm doing something fundamentally wrong
(e.g. my current clients or workers' tasks are being serialized somewhere)

For example, in my experiments (code attached) on a t2.2xlarge EC2 instance
with 8 vCPU, consisting of a very simple read/write (counter increment)
transaction (SERIALIZABLE + PESSIMISTIC), I fail to achieve a throughput
above ~600 txns/sec with 16 concurrent Java threads (all connecting to the
same Ignite client node running on the same machine)

I would really appreciate it if you could help me understand the followings: 
Q1: Is the above number reasonable for Ignite transactional layer's maximum
throughput? and if not,
Q2: What am I doing wrong? 

Code Snippets:
https://gist.github.com/Kiarahmani/2a49a0c0a512c99bfd65c69cce257aab



Thanks a lot in advance!
Kia







--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Reaching Ignite's maximum throughput

Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!

I think that centralized databases will have more optimizations for cases
when serializable transactions don't really ever affect each other, but as
you will increase amount of work in transaction, making them eventually
touching each other's data, I expect the performance will be rapidly
approaching the same number for traditional RDBMS.

However, I think we can have more insight if you post your benchmark as a
small reproducer project.

Regards,
-- 
Ilya Kasnacheev


пн, 27 авг. 2018 г. в 20:30, Kia Rahmani <ki...@gmail.com>:

> Thanks, Ilya for your message.
> I am aware of the cost of enforcing Serializability. What I am more
> concerned about is if I am achieving Ignite's best or not? Specifically,
> since I am not performing any replication and I have only one server right
> now, I should be getting a performance somewhat close a centralized
> database
> which I assume should be much much much more than 600 txns/sec
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>

Re: Reaching Ignite's maximum throughput

Posted by Kia Rahmani <ki...@gmail.com>.
Thanks, Ilya for your message. 
I am aware of the cost of enforcing Serializability. What I am more
concerned about is if I am achieving Ignite's best or not? Specifically,
since I am not performing any replication and I have only one server right
now, I should be getting a performance somewhat close a centralized database
which I assume should be much much much more than 600 txns/sec 





--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/

Re: Reaching Ignite's maximum throughput

Posted by Ilya Kasnacheev <il...@gmail.com>.
Hello!

I imagine that serializable + pessimistic is not a very practical setting
from performance standpoint.

You want maximum guarantees there, so you will get the least performance,
and having a distributed system would not help you much in this case, if
not hinder.

Regards,
-- 
Ilya Kasnacheev


пн, 27 авг. 2018 г. в 19:24, Kia Rahmani <ki...@gmail.com>:

> Hey all,
>
> I have been playing with Ignite and studying how applications can be
> correctly optimized for it for a while now. However, I am having trouble
> witnessing *reasonable* transactional throughputs even in the baseline
> setting and I am wondering maybe I'm doing something fundamentally wrong
> (e.g. my current clients or workers' tasks are being serialized somewhere)
>
> For example, in my experiments (code attached) on a t2.2xlarge EC2 instance
> with 8 vCPU, consisting of a very simple read/write (counter increment)
> transaction (SERIALIZABLE + PESSIMISTIC), I fail to achieve a throughput
> above ~600 txns/sec with 16 concurrent Java threads (all connecting to the
> same Ignite client node running on the same machine)
>
> I would really appreciate it if you could help me understand the
> followings:
> Q1: Is the above number reasonable for Ignite transactional layer's maximum
> throughput? and if not,
> Q2: What am I doing wrong?
>
> Code Snippets:
> https://gist.github.com/Kiarahmani/2a49a0c0a512c99bfd65c69cce257aab
>
>
>
> Thanks a lot in advance!
> Kia
>
>
>
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>