Hello,

I am trying to use/test Apache Ignite for a particular use case. For background 
reference, my use case of Ignite is to do 100Ks (to begin with) of "Gets" and 
of "increments" of values that will be stored in probably multiple caches in 
Apache Ignite.
I read the Ignite documentation, but I couldn't figure out things in the C++ 
API side.


  1.
I have read in the 
documentation<https://ignite.apache.org/docs/latest/key-value-api/basic-cache-operations>
 <https://ignite.apache.org/docs/latest/key-value-api/basic-cache-operations> 
that there is a "GetAsync" method in C++ client. But I could not find it in the 
code. Is it a deprecated API ? If so, let's imagine I want to do multiple calls 
in parallel (let's say 50 for instance), how can I achieve this ? Can I just 
call multiple "Get"s in parallel in my threads without any problem ? Must I 
create a client for each thread ? There does not seem to be anything related to 
thread safety of these methods in the doc...
  2.
Does doing 100K "increments" of values in a cache seem achievable on an Ignite 
cluster of a single node (let's say the CPU is a last gen i7 with 8 physical 
cores)? The problem that I have is that I have very good performances (+100K 
"gets") using the batch methods of the Rest API, but no batch method exist for 
"increments", and the overhead of each http call cripples the performance to a 
few 1000s/s. What would be the "best" way of achieving this (preferably in C++ 
or Rest API, but I am open to Java too )?
  3.
Related but a bit different : if I want to add a value to an existing one in 
the store (doing an "increment"), would it be (in general) faster to do it 
using the "transaction" mode or to use the "ReplaceIfEquals" methods (in 
general I do not update the same values in the same time) ? Is there a real 
overhead for transactions ?

Thanks in advance

Louis

Reply via email to