Re: Severe performance impact to key-value API on an SQL-enabled cache (even with empty QueryEntity configuration)

2020-08-18 Thread max904
>> I'm not sure what this test doing The test is demonstrating significant reduction of the throughput when empty QueryEntity added to the cache config. >> how many ops are done per iteration? Iterations are time based. It uses the default defined by JMH. One iteration conducted to warm up

Re: Severe performance impact to key-value API on an SQL-enabled cache (even with empty QueryEntity configuration)

2020-07-30 Thread max904
Thank you, Anton! Please find the reproducer code attached. employee_benchmark.zip I ran the test with Java 11 and Ignite 2.8.1. Following additional dependencies needed in order to run JMH benchmark:

Severe performance impact to key-value API on an SQL-enabled cache (even with empty QueryEntity configuration)

2020-07-28 Thread max904
I've come across strange and severe performance impact that Ignite QueryEntity makes onto the regular cache operations. I narrowed it down just to adding "empty" QueryEntity to the CacheConfiguration as below: final QueryEntity queryEntity = new QueryEntity(EmployeeId.class, Employee.class);

Re: Ignite crashes with CorruptedTreeException: "B+Tree is corrupted" on a composite BinaryObject scenario

2020-04-17 Thread max904
Thank you, Alex! Yes, I figured that this line indeed causes this crash. And yes, I'm using queries and I need this line. For now, I'm using the workaround I've described (of rebuilding the key BinaryObject). But it's quite expensive operation and I would like to avoid it. This looks like a bug to

Re: Ignite crashes with CorruptedTreeException: "B+Tree is corrupted" on a composite BinaryObject scenario

2020-04-17 Thread max904
Thank you, Alex! Yes, I figured that this line indeed causes this crash. And yes, I'm using queries and I need this line. For now, I'm using the workaround I've described (of rebuilding the key BinaryObject). But it's quite expensive operation and I would like to avoid it. This looks like a bug to

Re: Ignite crashes with CorruptedTreeException: "B+Tree is corrupted" on a composite BinaryObject scenario

2020-04-15 Thread max904
Yes, of course I'm using "cache.withKeepBinary()". Below is my exact reproducer: final URL configUrl = getClass().getClassLoader().getResource("example-ignite.xml"); final Ignite ignite = Ignition.start(configUrl); final CacheConfiguration cacheConfig = new CacheConfiguration<>("Employee");

Ignite crashes with CorruptedTreeException: "B+Tree is corrupted" on a composite BinaryObject scenario

2020-04-09 Thread max904
Ignite crashes when I use composite BinaryObject as a key and also include it into the value object. Here is the BinaryObject scenario: // create a new composite key BinaryObjectBuilder key1Builder = Ignition.ignite().binary().builder(EmployeeId.class.getName());

Cache#replace(K,V,V) implementation

2019-04-09 Thread max904
1) How does Ignite implement this Cache#boolean replace(K key, V oldValue, V newValue) function?JSR107 tells that it's equivalent to: if (cache.containsKey(key) && *equals*(cache.get(key), oldValue)) { cache.put(key, newValue); return true; } else { return false; }but I assume this is just

Re: Query on nested objects

2018-09-10 Thread max904
Thank you for the answer! It helped. I discovered two functions that can help in controlling the way ignite the attributes onto table aliases. QueryEntity.addQueryField("homeAddress.zip", "java.lang.String", "ha_zip") would allow programmatically define the "homeAddress.zip" field in the table

Query on nested objects

2018-09-07 Thread max904
I have following "Person" data model: public class Address implements Binarylizable { @QuerySqlField private String street; @QuerySqlField private String city; @QuerySqlField private String state; @QuerySqlField private int zip; @QuerySqlField private String country; ...