[jira] [Updated] (IGNITE-23562) Calcite engine. Partitions are not reserved for IgniteIndexCount operator
[ https://issues.apache.org/jira/browse/IGNITE-23562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-23562: --- Labels: ise (was: ) > Calcite engine. Partitions are not reserved for IgniteIndexCount operator > - > > Key: IGNITE-23562 > URL: https://issues.apache.org/jira/browse/IGNITE-23562 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Time Spent: 20m > Remaining Estimate: 0h > > See {{CacheIndexImpl#count}}. Partitions should be reserverved before > {{iidx.count}} to avoid inconsistency. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-23562) Calcite engine. Partitions are not reserved for IgniteIndexCount operator
[ https://issues.apache.org/jira/browse/IGNITE-23562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-23562: -- Assignee: Aleksey Plekhanov > Calcite engine. Partitions are not reserved for IgniteIndexCount operator > - > > Key: IGNITE-23562 > URL: https://issues.apache.org/jira/browse/IGNITE-23562 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Time Spent: 20m > Remaining Estimate: 0h > > See {{CacheIndexImpl#count}}. Partitions should be reserverved before > {{iidx.count}} to avoid inconsistency. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-23578) Affinity cache for lastAffinityChangedTopologyVersion is cleared
Aleksey Plekhanov created IGNITE-23578: -- Summary: Affinity cache for lastAffinityChangedTopologyVersion is cleared Key: IGNITE-23578 URL: https://issues.apache.org/jira/browse/IGNITE-23578 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Map {{GridCachePartitionExchangeManager.lastAffTopVers}} stores mapping from all topology versions to corresponding last affinity change topology versions. Some topology versions do not change affinity (for example client node left/join). After IGNITE-21478 we can store affinity assignment as non-shallow instance for events caused by client node join/left. This change allows to delete affinity assignment in cache for {{lastAffinityChangedTopologyVersion}} and breaks some functionality. For example: {code:java} @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { return super.getConfiguration(igniteInstanceName) .setCacheConfiguration(new CacheConfiguration<>(DEFAULT_CACHE_NAME) .setIndexedTypes(Integer.class, String.class)); } @Test public void testAffinityCache() throws Exception { startGrid(0); for (int i = 0; i < 300; i++) { startClientGrid(1); stopGrid(1); } IgniteCache cache = grid(0).cache(DEFAULT_CACHE_NAME); cache.put(0, "0"); assertEquals(1, cache.query(new SqlFieldsQuery("SELECT * FROM String")).getAll().size()); } {code} This test fails with the exception: {noformat} java.lang.IllegalStateException: Getting affinity for too old topology version that is already out of history (try to increase 'IGNITE_AFFINITY_HISTORY_SIZE' system property) [locNode=TcpDiscoveryNode [id=37e9600b-0e6d-4d1b-a3f3-05897eb0, consistentId=127.0.0.1:47500, addrs=ArrayList [127.0.0.1], sockAddrs=HashSet [/127.0.0.1:47500], discPort=47500, order=1, intOrder=1, loc=true, ver=2.17.0#20241030-sha1:, isClient=false], grp=default, topVer=AffinityTopologyVersion [topVer=1, minorTopVer=0], lastAffChangeTopVer=AffinityTopologyVersion [topVer=1, minorTopVer=0], head=AffinityTopologyVersion [topVer=601, minorTopVer=0], history=[AffinityTopologyVersion [topVer=503, minorTopVer=0], AffinityTopologyVersion [topVer=504, minorTopVer=0], AffinityTopologyVersion [topVer=505, minorTopVer=0], AffinityTopologyVersion [topVer=506, minorTopVer=0], AffinityTopologyVersion [topVer=507, minorTopVer=0], AffinityTopologyVersion [topVer=508, minorTopVer=0], AffinityTopologyVersion [topVer=509, minorTopVer=0], AffinityTopologyVersion [topVer=510, minorTopVer=0], AffinityTopologyVersion [topVer=511, minorTopVer=0], AffinityTopologyVersion [topVer=512, minorTopVer=0], AffinityTopologyVersion [topVer=513, minorTopVer=0], AffinityTopologyVersion [topVer=514, minorTopVer=0], AffinityTopologyVersion [topVer=515, minorTopVer=0], AffinityTopologyVersion [topVer=516, minorTopVer=0], AffinityTopologyVersion [topVer=517, minorTopVer=0], AffinityTopologyVersion [topVer=518, minorTopVer=0], AffinityTopologyVersion [topVer=519, minorTopVer=0], AffinityTopologyVersion [topVer=520, minorTopVer=0], AffinityTopologyVersion [topVer=521, minorTopVer=0], AffinityTopologyVersion [topVer=522, minorTopVer=0], AffinityTopologyVersion [topVer=523, minorTopVer=0], AffinityTopologyVersion [topVer=524, minorTopVer=0], AffinityTopologyVersion [topVer=525, minorTopVer=0], AffinityTopologyVersion [topVer=526, minorTopVer=0], AffinityTopologyVersion [topVer=527, minorTopVer=0], AffinityTopologyVersion [topVer=528, minorTopVer=0], AffinityTopologyVersion [topVer=529, minorTopVer=0], AffinityTopologyVersion [topVer=530, minorTopVer=0], AffinityTopologyVersion [topVer=531, minorTopVer=0], AffinityTopologyVersion [topVer=532, minorTopVer=0], AffinityTopologyVersion [topVer=533, minorTopVer=0], AffinityTopologyVersion [topVer=534, minorTopVer=0], AffinityTopologyVersion [topVer=535, minorTopVer=0], AffinityTopologyVersion [topVer=536, minorTopVer=0], AffinityTopologyVersion [topVer=537, minorTopVer=0], AffinityTopologyVersion [topVer=538, minorTopVer=0], AffinityTopologyVersion [topVer=539, minorTopVer=0], AffinityTopologyVersion [topVer=540, minorTopVer=0], AffinityTopologyVersion [topVer=541, minorTopVer=0], AffinityTopologyVersion [topVer=542, minorTopVer=0], AffinityTopologyVersion [topVer=543, minorTopVer=0], AffinityTopologyVersion [topVer=544, minorTopVer=0], AffinityTopologyVersion [topVer=545, minorTopVer=0], AffinityTopologyVersion [topVer=546, minorTopVer=0], AffinityTopologyVersion [topVer=547, minorTopVer=0], AffinityTopologyVersion [topVer=548, minorTopVer=0], AffinityTopologyVersion [topVer=549, minorTopVer=0], AffinityTopologyVersion [topVer=550, minorTopVer=0], AffinityTopologyVersion [topVer=551, minorTopVer=0], Aff
[jira] [Created] (IGNITE-23562) Calcite engine. Partitions are not reserved for IgniteIndexCount operator
Aleksey Plekhanov created IGNITE-23562: -- Summary: Calcite engine. Partitions are not reserved for IgniteIndexCount operator Key: IGNITE-23562 URL: https://issues.apache.org/jira/browse/IGNITE-23562 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov See {{CacheIndexImpl#count}}. Partitions should be reserverved before {{iidx.count}} to avoid inconsistency. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-22762) Calcite engine. Validated COALESCE return type not equals to relational algebra return type
[ https://issues.apache.org/jira/browse/IGNITE-22762?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-22762: -- Assignee: Aleksey Plekhanov > Calcite engine. Validated COALESCE return type not equals to relational > algebra return type > --- > > Key: IGNITE-22762 > URL: https://issues.apache.org/jira/browse/IGNITE-22762 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: calcite, ise > > Reproducer: > {noformat} > sql("select coalesce(?, 1)", 0); > {noformat} > Fails with an exception: > {noformat} > java.lang.AssertionError: Conversion to relational algebra failed to preserve > datatypes: > validated type: > RecordType(INTEGER NOT NULL EXPR$0) NOT NULL > converted type: > RecordType(INTEGER EXPR$0) NOT NULL > rel: > LogicalProject(EXPR$0=[CASE(IS NOT NULL(?0), ?0, 1)]) > LogicalValues(tuples=[[{ 0 }]]) > at > org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:497) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:612) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner.rel(IgnitePlanner.java:340) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.prepare.PlannerHelper.optimize(PlannerHelper.java:76) > ~[classes/:?] > {noformat} > Root cause: COALESCE converted to CASE operator via > {{SqlCoalesceFunction#rewriteCall}} method. After convertion each operand is > cloned (IF IS NOT NULL (op) THEN op), and type is derived for each clone of > operand individually. These types can be different, and CASE operator can't > determine that operands are equal, since it has another type (see > SqlCaseOperator#inferTypeFromValidator and > SqlCaseOperator#inferTypeFromOperands methods) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-23008) Calcite engine. Object dynamic parameters are not converted to binary objects
[ https://issues.apache.org/jira/browse/IGNITE-23008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-23008: -- Assignee: Aleksey Plekhanov > Calcite engine. Object dynamic parameters are not converted to binary objects > - > > Key: IGNITE-23008 > URL: https://issues.apache.org/jira/browse/IGNITE-23008 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: calcite, ise > Time Spent: 2h 50m > Remaining Estimate: 0h > > Objects inside Ignite are stored in binary object format. When we pass > dynamic parameters to the query, we left compound objects as is. These > objects can't be compared with objects inside cache. For example: > {code:java} > IgniteCache emp = client.getOrCreateCache( > new CacheConfiguration("emp") > .setSqlSchema("PUBLIC") > .setQueryEntities(F.asList(new QueryEntity(Integer.class, > Employer.class).setTableName("emp"))) > ); > emp.put(0, new Employer("emp", 0d)); > assertQuery("SELECT _key FROM emp WHERE _val = ?").withParams(new > Employer("emp", 0d)).resultSize(1).check(); > {code} > This query returns 0 rows. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-23008) Calcite engine. Object dynamic parameters are not converted to binary objects
[ https://issues.apache.org/jira/browse/IGNITE-23008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-23008: --- Labels: calcite ise (was: ) > Calcite engine. Object dynamic parameters are not converted to binary objects > - > > Key: IGNITE-23008 > URL: https://issues.apache.org/jira/browse/IGNITE-23008 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Priority: Major > Labels: calcite, ise > Time Spent: 2h 50m > Remaining Estimate: 0h > > Objects inside Ignite are stored in binary object format. When we pass > dynamic parameters to the query, we left compound objects as is. These > objects can't be compared with objects inside cache. For example: > {code:java} > IgniteCache emp = client.getOrCreateCache( > new CacheConfiguration("emp") > .setSqlSchema("PUBLIC") > .setQueryEntities(F.asList(new QueryEntity(Integer.class, > Employer.class).setTableName("emp"))) > ); > emp.put(0, new Employer("emp", 0d)); > assertQuery("SELECT _key FROM emp WHERE _val = ?").withParams(new > Employer("emp", 0d)).resultSize(1).check(); > {code} > This query returns 0 rows. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-23004) Calcite engine. Multi-node index scan fails on index with binary object field
[ https://issues.apache.org/jira/browse/IGNITE-23004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-23004: --- Labels: calcite ise (was: ) > Calcite engine. Multi-node index scan fails on index with binary object field > - > > Key: IGNITE-23004 > URL: https://issues.apache.org/jira/browse/IGNITE-23004 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: calcite, ise > Fix For: 2.17 > > Time Spent: 0.5h > Remaining Estimate: 0h > > Reproducer: > {code:java} > public class IndexScanMultiNodeIntegrationTest extends > AbstractBasicIntegrationTest { > /** */ > @Test > public void testComplexKeyScan() { > IgniteCache emp = client.getOrCreateCache( > new CacheConfiguration("emp") > .setSqlSchema("PUBLIC") > .setQueryEntities(F.asList(new QueryEntity(EmployerKey.class, > Employer.class).setTableName("emp"))) > ); > for (int i = 0; i < 100; i++) > emp.put(new EmployerKey(i, i), new Employer("emp" + i, > (double)i)); > assertQuery("SELECT /*+ FORCE_INDEX(\"_key_PK\") */ _key FROM > emp").resultSize(100).check(); > } > /** */ > private static class EmployerKey { > /** */ > @QuerySqlField > private final int id0; > /** */ > @QuerySqlField > private final int id1; > /** */ > private EmployerKey(int id0, int id1) { > this.id0 = id0; > this.id1 = id1; > } > } > } > {code} > Fails with: > {noformat} > ... > Caused by: java.lang.ClassCastException: > org.apache.ignite.internal.binary.BinaryObjectImpl cannot be cast to > java.lang.Comparable > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compare(ExpressionFactoryImpl.java:248) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.access$300(ExpressionFactoryImpl.java:86) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl$1.compare(ExpressionFactoryImpl.java:182) > at java.util.Map$Entry.lambda$comparingByKey$6d558cbf$1(Map.java:508) > at java.util.PriorityQueue.siftUpUsingComparator(PriorityQueue.java:669) > at java.util.PriorityQueue.siftUp(PriorityQueue.java:645) > at java.util.PriorityQueue.offer(PriorityQueue.java:344) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.pushOrdered(Inbox.java:239) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.push(Inbox.java:201) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.onBatchReceived(Inbox.java:177) > ... > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-23518) Configure default values for distributed properties
Aleksey Plekhanov created IGNITE-23518: -- Summary: Configure default values for distributed properties Key: IGNITE-23518 URL: https://issues.apache.org/jira/browse/IGNITE-23518 Project: Ignite Issue Type: New Feature Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Distributed properties are widely used in Ignite for different subsystems. But we can change value of distributed property only by expicit interaction with the cluster (via control.sh, for example). In general, we can't configure default value for distributed property (some subsystems provide such an ability, but the approach is not unified). Especially it's inconvinient for in-memory cluster. After each cluster restart, extra actions are required to set distributed properties. It's proposed to provide unified way to configure distributed properties default values (introduce new property in IgniteConfiguration). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-23008) Calcite engine. Object dynamic parameters are not converted to binary objects
[ https://issues.apache.org/jira/browse/IGNITE-23008?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890835#comment-17890835 ] Aleksey Plekhanov commented on IGNITE-23008: Actually, dynamic parameters are converted to binary objects when public API is used (see IgniteCacheProxyImpl#convertToBinary), but there is one more problem, type inferrence for binary object dynamic parameters is incorrect. > Calcite engine. Object dynamic parameters are not converted to binary objects > - > > Key: IGNITE-23008 > URL: https://issues.apache.org/jira/browse/IGNITE-23008 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > Objects inside Ignite are stored in binary object format. When we pass > dynamic parameters to the query, we left compound objects as is. These > objects can't be compared with objects inside cache. For example: > {code:java} > IgniteCache emp = client.getOrCreateCache( > new CacheConfiguration("emp") > .setSqlSchema("PUBLIC") > .setQueryEntities(F.asList(new QueryEntity(Integer.class, > Employer.class).setTableName("emp"))) > ); > emp.put(0, new Employer("emp", 0d)); > assertQuery("SELECT _key FROM emp WHERE _val = ?").withParams(new > Employer("emp", 0d)).resultSize(1).check(); > {code} > This query returns 0 rows. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-23004) Calcite engine. Multi-node index scan fails on index with binary object field
[ https://issues.apache.org/jira/browse/IGNITE-23004?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov resolved IGNITE-23004. Fix Version/s: 2.17 Release Note: SQL Calcite: Fixed complex key index scans (binary objects comparison) Assignee: Aleksey Plekhanov Resolution: Fixed [~NIzhikov], thanks for the review! Merged to master. > Calcite engine. Multi-node index scan fails on index with binary object field > - > > Key: IGNITE-23004 > URL: https://issues.apache.org/jira/browse/IGNITE-23004 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Fix For: 2.17 > > Time Spent: 0.5h > Remaining Estimate: 0h > > Reproducer: > {code:java} > public class IndexScanMultiNodeIntegrationTest extends > AbstractBasicIntegrationTest { > /** */ > @Test > public void testComplexKeyScan() { > IgniteCache emp = client.getOrCreateCache( > new CacheConfiguration("emp") > .setSqlSchema("PUBLIC") > .setQueryEntities(F.asList(new QueryEntity(EmployerKey.class, > Employer.class).setTableName("emp"))) > ); > for (int i = 0; i < 100; i++) > emp.put(new EmployerKey(i, i), new Employer("emp" + i, > (double)i)); > assertQuery("SELECT /*+ FORCE_INDEX(\"_key_PK\") */ _key FROM > emp").resultSize(100).check(); > } > /** */ > private static class EmployerKey { > /** */ > @QuerySqlField > private final int id0; > /** */ > @QuerySqlField > private final int id1; > /** */ > private EmployerKey(int id0, int id1) { > this.id0 = id0; > this.id1 = id1; > } > } > } > {code} > Fails with: > {noformat} > ... > Caused by: java.lang.ClassCastException: > org.apache.ignite.internal.binary.BinaryObjectImpl cannot be cast to > java.lang.Comparable > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compare(ExpressionFactoryImpl.java:248) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.access$300(ExpressionFactoryImpl.java:86) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl$1.compare(ExpressionFactoryImpl.java:182) > at java.util.Map$Entry.lambda$comparingByKey$6d558cbf$1(Map.java:508) > at java.util.PriorityQueue.siftUpUsingComparator(PriorityQueue.java:669) > at java.util.PriorityQueue.siftUp(PriorityQueue.java:645) > at java.util.PriorityQueue.offer(PriorityQueue.java:344) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.pushOrdered(Inbox.java:239) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.push(Inbox.java:201) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.onBatchReceived(Inbox.java:177) > ... > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (IGNITE-23004) Calcite engine. Multi-node index scan fails on index with binary object field
[ https://issues.apache.org/jira/browse/IGNITE-23004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890136#comment-17890136 ] Aleksey Plekhanov edited comment on IGNITE-23004 at 10/18/24 7:36 AM: -- Resolved by https://issues.apache.org/jira/browse/IGNITE-22732 Will add the test in scope of this ticket was (Author: alex_pl): Resolved by https://issues.apache.org/jira/browse/IGNITE-22732 > Calcite engine. Multi-node index scan fails on index with binary object field > - > > Key: IGNITE-23004 > URL: https://issues.apache.org/jira/browse/IGNITE-23004 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Fix For: 2.17 > > Time Spent: 0.5h > Remaining Estimate: 0h > > Reproducer: > {code:java} > public class IndexScanMultiNodeIntegrationTest extends > AbstractBasicIntegrationTest { > /** */ > @Test > public void testComplexKeyScan() { > IgniteCache emp = client.getOrCreateCache( > new CacheConfiguration("emp") > .setSqlSchema("PUBLIC") > .setQueryEntities(F.asList(new QueryEntity(EmployerKey.class, > Employer.class).setTableName("emp"))) > ); > for (int i = 0; i < 100; i++) > emp.put(new EmployerKey(i, i), new Employer("emp" + i, > (double)i)); > assertQuery("SELECT /*+ FORCE_INDEX(\"_key_PK\") */ _key FROM > emp").resultSize(100).check(); > } > /** */ > private static class EmployerKey { > /** */ > @QuerySqlField > private final int id0; > /** */ > @QuerySqlField > private final int id1; > /** */ > private EmployerKey(int id0, int id1) { > this.id0 = id0; > this.id1 = id1; > } > } > } > {code} > Fails with: > {noformat} > ... > Caused by: java.lang.ClassCastException: > org.apache.ignite.internal.binary.BinaryObjectImpl cannot be cast to > java.lang.Comparable > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compare(ExpressionFactoryImpl.java:248) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.access$300(ExpressionFactoryImpl.java:86) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl$1.compare(ExpressionFactoryImpl.java:182) > at java.util.Map$Entry.lambda$comparingByKey$6d558cbf$1(Map.java:508) > at java.util.PriorityQueue.siftUpUsingComparator(PriorityQueue.java:669) > at java.util.PriorityQueue.siftUp(PriorityQueue.java:645) > at java.util.PriorityQueue.offer(PriorityQueue.java:344) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.pushOrdered(Inbox.java:239) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.push(Inbox.java:201) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.onBatchReceived(Inbox.java:177) > ... > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-23004) Calcite engine. Multi-node index scan fails on index with binary object field
[ https://issues.apache.org/jira/browse/IGNITE-23004?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17890136#comment-17890136 ] Aleksey Plekhanov commented on IGNITE-23004: Resolved by https://issues.apache.org/jira/browse/IGNITE-22732 > Calcite engine. Multi-node index scan fails on index with binary object field > - > > Key: IGNITE-23004 > URL: https://issues.apache.org/jira/browse/IGNITE-23004 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Priority: Major > Time Spent: 10m > Remaining Estimate: 0h > > Reproducer: > {code:java} > public class IndexScanMultiNodeIntegrationTest extends > AbstractBasicIntegrationTest { > /** */ > @Test > public void testComplexKeyScan() { > IgniteCache emp = client.getOrCreateCache( > new CacheConfiguration("emp") > .setSqlSchema("PUBLIC") > .setQueryEntities(F.asList(new QueryEntity(EmployerKey.class, > Employer.class).setTableName("emp"))) > ); > for (int i = 0; i < 100; i++) > emp.put(new EmployerKey(i, i), new Employer("emp" + i, > (double)i)); > assertQuery("SELECT /*+ FORCE_INDEX(\"_key_PK\") */ _key FROM > emp").resultSize(100).check(); > } > /** */ > private static class EmployerKey { > /** */ > @QuerySqlField > private final int id0; > /** */ > @QuerySqlField > private final int id1; > /** */ > private EmployerKey(int id0, int id1) { > this.id0 = id0; > this.id1 = id1; > } > } > } > {code} > Fails with: > {noformat} > ... > Caused by: java.lang.ClassCastException: > org.apache.ignite.internal.binary.BinaryObjectImpl cannot be cast to > java.lang.Comparable > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compare(ExpressionFactoryImpl.java:248) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.access$300(ExpressionFactoryImpl.java:86) > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl$1.compare(ExpressionFactoryImpl.java:182) > at java.util.Map$Entry.lambda$comparingByKey$6d558cbf$1(Map.java:508) > at java.util.PriorityQueue.siftUpUsingComparator(PriorityQueue.java:669) > at java.util.PriorityQueue.siftUp(PriorityQueue.java:645) > at java.util.PriorityQueue.offer(PriorityQueue.java:344) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.pushOrdered(Inbox.java:239) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.push(Inbox.java:201) > at > org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.onBatchReceived(Inbox.java:177) > ... > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-23435) Calcite engine. Cached compiled expression for correlated variable can have different data type
Aleksey Plekhanov created IGNITE-23435: -- Summary: Calcite engine. Cached compiled expression for correlated variable can have different data type Key: IGNITE-23435 URL: https://issues.apache.org/jira/browse/IGNITE-23435 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Reproducer: {code:java} @Test public void testCorrelatesDifferentDataType() { for (String type : new String[] {"INTEGER", "TINYINT"}) { try { sql("CREATE TABLE t1(v INTEGER)"); sql("CREATE TABLE t2(v " + type + ")"); sql("INSERT INTO t1 VALUES (1)"); sql("INSERT INTO t2 VALUES (1)"); assertQuery("SELECT (SELECT t1.v + t2.v FROM t1) FROM t2") .returns(2) .check(); } finally { sql("DROP TABLE t1"); sql("DROP TABLE t2"); } } } {code} Fails with: {noformat} Caused by: java.lang.ClassCastException: class java.lang.Byte cannot be cast to class java.lang.Integer (java.lang.Byte and java.lang.Integer are in module java.base of loader 'bootstrap') at SC.execute(Unknown Source) at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl$ProjectImpl.apply(ExpressionFactoryImpl.java:668) at org.apache.ignite.internal.processors.query.calcite.exec.rel.ProjectNode.push(ProjectNode.java:63) ... {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22925) No long queries tracking for some DML operations
[ https://issues.apache.org/jira/browse/IGNITE-22925?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22925: --- Ignite Flags: Release Notes Required (was: Docs Required,Release Notes Required) > No long queries tracking for some DML operations > > > Key: IGNITE-22925 > URL: https://issues.apache.org/jira/browse/IGNITE-22925 > Project: Ignite > Issue Type: Task >Reporter: Oleg Valuyskiy >Assignee: Oleg Valuyskiy >Priority: Minor > Labels: ise > Fix For: 2.17 > > Time Spent: 0.5h > Remaining Estimate: 0h > > There is no long queries tracking for some DML operations, presumably for > those that do not have the map/reduce phase and thus do not generate > GridH2QueryRequests / GridH2DmlRequests. > As a result, the duration of such queries can only be estimated by means of > put-operations histograms and the SQL_QUERIES_HISTORY system view. > Therefore it is necessary to enable long queries tracking for all types DML > operations. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-23345) Calcite engine. Correlated nested loop LEFT join failure
Aleksey Plekhanov created IGNITE-23345: -- Summary: Calcite engine. Correlated nested loop LEFT join failure Key: IGNITE-23345 URL: https://issues.apache.org/jira/browse/IGNITE-23345 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Some combination of left/right inputs size can lead to failure of correlated nested loop LEFT join: {noformat} Caused by: java.lang.AssertionError: null at org.apache.ignite.internal.processors.query.calcite.exec.rel.CorrelatedNestedLoopJoinNode.request(CorrelatedNestedLoopJoinNode.java:130) at org.apache.ignite.internal.processors.query.calcite.exec.rel.FilterNode.filter(FilterNode.java:135) at org.apache.ignite.internal.processors.query.calcite.exec.rel.FilterNode.push(FilterNode.java:82) at org.apache.ignite.internal.processors.query.calcite.exec.rel.CorrelatedNestedLoopJoinNode.join(CorrelatedNestedLoopJoinNode.java:434) at org.apache.ignite.internal.processors.query.calcite.exec.rel.CorrelatedNestedLoopJoinNode.onEndRight(CorrelatedNestedLoopJoinNode.java:372) at org.apache.ignite.internal.processors.query.calcite.exec.rel.CorrelatedNestedLoopJoinNode.endRight(CorrelatedNestedLoopJoinNode.java:255) at org.apache.ignite.internal.processors.query.calcite.exec.rel.CorrelatedNestedLoopJoinNode$2.end(CorrelatedNestedLoopJoinNode.java:182) at org.apache.ignite.internal.processors.query.calcite.exec.rel.ScanNode.processNextBatch(ScanNode.java:185) at org.apache.ignite.internal.processors.query.calcite.exec.rel.ScanNode.push(ScanNode.java:145) {noformat} Root cause is described at related IGNITE-21722 ticket for AI3 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-23249) Update ignite dependency Janino
[ https://issues.apache.org/jira/browse/IGNITE-23249?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-23249: --- Ignite Flags: Release Notes Required (was: Docs Required,Release Notes Required) > Update ignite dependency Janino > --- > > Key: IGNITE-23249 > URL: https://issues.apache.org/jira/browse/IGNITE-23249 > Project: Ignite > Issue Type: Task >Reporter: Aleksandr Nikolaev >Assignee: Aleksandr Nikolaev >Priority: Major > Labels: ise > Fix For: 2.17 > > Time Spent: 20m > Remaining Estimate: 0h > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-23237) Calcite engine. Refactor CalciteQueryProcessorTest
Aleksey Plekhanov created IGNITE-23237: -- Summary: Calcite engine. Refactor CalciteQueryProcessorTest Key: IGNITE-23237 URL: https://issues.apache.org/jira/browse/IGNITE-23237 Project: Ignite Issue Type: Improvement Reporter: Aleksey Plekhanov CalciteQueryProcessorTest contains a lot of not grouped tests. We can split this class into several different classes and group tests somehow (or at least move some tests to the new classes). It also contains a lot of boilerplate code, like: {noformat} QueryEngine engine = Commons.lookupComponent(grid(1).context(), QueryEngine.class); List>> qry = engine.query(...) {noformat} We can inherit CalciteQueryProcessorTest (or any new test classes) from AbstractBasicIntegrationTest and replace query start routine to `sql(...)`. Some methods can be removed (like testThroughput), it doesn't called by any test, and it assumes that querySqlFields is executed on H2 engine (it's not true anymore). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-23235) Calcite engine. Wrong result for not-null count if index rebuild in progress
[ https://issues.apache.org/jira/browse/IGNITE-23235?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-23235: --- Labels: calcite ise (was: ) > Calcite engine. Wrong result for not-null count if index rebuild in progress > > > Key: IGNITE-23235 > URL: https://issues.apache.org/jira/browse/IGNITE-23235 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: calcite, ise > Time Spent: 0.5h > Remaining Estimate: 0h > > Queries like: > {noformat} > SELECT COUNT(val) FROM table > {noformat} > Can produce the wrong result if column {{val}} is indexed and index rebuild > is in progress. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-23235) Calcite engine. Wrong result for not-null count if index rebuild in progress
Aleksey Plekhanov created IGNITE-23235: -- Summary: Calcite engine. Wrong result for not-null count if index rebuild in progress Key: IGNITE-23235 URL: https://issues.apache.org/jira/browse/IGNITE-23235 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Queries like: {noformat} SELECT COUNT(val) FROM table {noformat} Can produce the wrong result if column {{val}} is indexed and index rebuild is in progress. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-23190) Client node deployment manager can be broken on client disconnection
Aleksey Plekhanov created IGNITE-23190: -- Summary: Client node deployment manager can be broken on client disconnection Key: IGNITE-23190 URL: https://issues.apache.org/jira/browse/IGNITE-23190 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov On client disconnect we call {{onDisconnected}} method for each grid component. For {{GridDeploymentManager}} this callback stops and starts again deployment stores (including local deployment store). If some process registers a class between client disconnection and client reconnection (default timeout between before reconnection is 10 seconds) - new local deployment will be registered in local deployment store, but this deployment will be binded to the old node id (node id is regenerated on reconnect). All futher class registrations with the same local classloader will use the same deployment and will throw an exception. Reproducer: {code:java} @WithSystemProperty(key = IGNITE_DISCO_FAILED_CLIENT_RECONNECT_DELAY, value = "1000") public class IgniteClientReconnectDeploymentTest extends IgniteClientReconnectAbstractTest { /** {@inheritDoc} */ @Override protected int serverCount() { return 1; } /** {@inheritDoc} */ @Override protected int clientCount() { return 1; } /** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { return super.getConfiguration(igniteInstanceName).setPeerClassLoadingEnabled(true); } /** * @throws Exception If failed. */ @Test public void testDeploy() throws Exception { IgniteEx client = grid(serverCount()); Ignite srv = ignite(0); IgniteCache cache = client.getOrCreateCache("test_cache"); reconnectClientNode(client, srv, () -> { try { client.context().deploy().deploy(TestEntryProcessor.class, TestEntryProcessor.class.getClassLoader()); } catch (IgniteCheckedException e) { throw new AssertionError(e); } }); cache.invoke(0, new TestEntryProcessor()); } /** */ private static class TestEntryProcessor implements EntryProcessor { /** {@inheritDoc} */ @Override public Boolean process(MutableEntry entry, Object... args) { return true; } } } {code} Shows a warning: {noformat} [WARN ][test-runner-#137%internal.IgniteClientReconnectDeploymentTest%][GridCacheDeploymentManager] Should not use deployment to prepare deployable, because local node id does not correspond with class loader id, and there are no more participants [locNodeId=061e738c-b0d5-4f19-bef9-c220a77619a3, deployment=GridDeploymentInfoBean [clsLdrId=a1f5ca0e191-914c1515-3b63-4a33-bf76-efaf5831, depMode=SHARED, userVer=0, locDepOwner=false, participants=null], deployable=GridNearAtomicSingleUpdateRequest [key=UserKeyCacheObjectImpl [part=0, val=0, hasValBytes=true], super=GridNearAtomicSingleUpdateRequest [key=UserKeyCacheObjectImpl [part=0, val=0, hasValBytes=true], parent=GridNearAtomicAbstractSingleUpdateRequest [nodeId=cf943568-0cf9-4848-9037-ed0f2e70, futId=1, topVer=AffinityTopologyVersion [topVer=4, minorTopVer=0], parent=GridNearAtomicAbstractUpdateRequest [res=null, flags=needRes, locDep=GridDeployment [ts=1726051279184, depMode=SHARED, clsLdr=sun.misc.Launcher$AppClassLoader@18b4aac2, clsLdrId=a1f5ca0e191-914c1515-3b63-4a33-bf76-efaf5831, userVer=0, loc=true, sampleClsName=org.apache.ignite.internal.IgniteClientReconnectDeploymentTest$TestEntryProcessor, pendingUndeploy=false, undeployed=false, usage=0]] {noformat} And throws an exception later: {noformat} javax.cache.CacheException: class org.apache.ignite.internal.processors.cache.IgnitePeerToPeerClassLoadingException: Failed to load class using class loader with given id (loader id doesn't match sender id and there are no more participants) [clsLdrId=a1f5ca0e191-914c1515-3b63-4a33-bf76-efaf5831, senderId=061e738c-b0d5-4f19-bef9-c220a77619a3, participants=null] at org.apache.ignite.internal.processors.cache.GridCacheUtils.convertToCacheException(GridCacheUtils.java:1207) ~[classes/:?] at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.cacheException(IgniteCacheProxyImpl.java:2090) ~[classes/:?] at org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.invoke(IgniteCacheProxyImpl.java:1731) ~[classes/:?] at org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.invoke(GatewayProtectedCacheProxy.java:1220) ~[classes/:?] at org.apache.ignite.internal.IgniteClientReconnectDeploymentTest.testDeploy(IgniteClientReconnectDeploymentTest.java:71) ~[test-classes/:?] at sun.ref
[jira] [Created] (IGNITE-23008) Calcite engine. Object dynamic parameters are not converted to binary objects
Aleksey Plekhanov created IGNITE-23008: -- Summary: Calcite engine. Object dynamic parameters are not converted to binary objects Key: IGNITE-23008 URL: https://issues.apache.org/jira/browse/IGNITE-23008 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Objects inside Ignite are stored in binary object format. When we pass dynamic parameters to the query, we left compound objects as is. These objects can't be compared with objects inside cache. For example: {code:java} IgniteCache emp = client.getOrCreateCache( new CacheConfiguration("emp") .setSqlSchema("PUBLIC") .setQueryEntities(F.asList(new QueryEntity(Integer.class, Employer.class).setTableName("emp"))) ); emp.put(0, new Employer("emp", 0d)); assertQuery("SELECT _key FROM emp WHERE _val = ?").withParams(new Employer("emp", 0d)).resultSize(1).check(); {code} This query returns 0 rows. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-23004) Calcite engine. Multi-node index scan fails on index with binary object field
Aleksey Plekhanov created IGNITE-23004: -- Summary: Calcite engine. Multi-node index scan fails on index with binary object field Key: IGNITE-23004 URL: https://issues.apache.org/jira/browse/IGNITE-23004 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Reproducer: {code:java} public class IndexScanMultiNodeIntegrationTest extends AbstractBasicIntegrationTest { /** */ @Test public void testComplexKeyScan() { IgniteCache emp = client.getOrCreateCache( new CacheConfiguration("emp") .setSqlSchema("PUBLIC") .setQueryEntities(F.asList(new QueryEntity(EmployerKey.class, Employer.class).setTableName("emp"))) ); for (int i = 0; i < 100; i++) emp.put(new EmployerKey(i, i), new Employer("emp" + i, (double)i)); assertQuery("SELECT /*+ FORCE_INDEX(\"_key_PK\") */ _key FROM emp").resultSize(100).check(); } /** */ private static class EmployerKey { /** */ @QuerySqlField private final int id0; /** */ @QuerySqlField private final int id1; /** */ private EmployerKey(int id0, int id1) { this.id0 = id0; this.id1 = id1; } } } {code} Fails with: {noformat} ... Caused by: java.lang.ClassCastException: org.apache.ignite.internal.binary.BinaryObjectImpl cannot be cast to java.lang.Comparable at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compare(ExpressionFactoryImpl.java:248) at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.access$300(ExpressionFactoryImpl.java:86) at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl$1.compare(ExpressionFactoryImpl.java:182) at java.util.Map$Entry.lambda$comparingByKey$6d558cbf$1(Map.java:508) at java.util.PriorityQueue.siftUpUsingComparator(PriorityQueue.java:669) at java.util.PriorityQueue.siftUp(PriorityQueue.java:645) at java.util.PriorityQueue.offer(PriorityQueue.java:344) at org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.pushOrdered(Inbox.java:239) at org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.push(Inbox.java:201) at org.apache.ignite.internal.processors.query.calcite.exec.rel.Inbox.onBatchReceived(Inbox.java:177) ... {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22994) Refactor subscription to activation/deactivation events for internal components
Aleksey Plekhanov created IGNITE-22994: -- Summary: Refactor subscription to activation/deactivation events for internal components Key: IGNITE-22994 URL: https://issues.apache.org/jira/browse/IGNITE-22994 Project: Ignite Issue Type: Task Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Currently components, which require action on activation and deactivation hardcoded in activation/deactivation code (DataStructuresProcessor, GridTaskProcessor, GridEncryptionManager, DistributedMetaStorage). It will be more convinient to have listeners to these events (IGNITE-22717 will require such a listener too). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22972) [Extensions] Override abstract method indexDefinition() in GeoSpatialIndexImpl.java and GeoSpatialClientIndex.java
[ https://issues.apache.org/jira/browse/IGNITE-22972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22972: --- Ignite Flags: (was: Docs Required,Release Notes Required) > [Extensions] Override abstract method indexDefinition() in > GeoSpatialIndexImpl.java and GeoSpatialClientIndex.java > -- > > Key: IGNITE-22972 > URL: https://issues.apache.org/jira/browse/IGNITE-22972 > Project: Ignite > Issue Type: Bug >Reporter: Denis Polozhaev >Assignee: Denis Polozhaev >Priority: Major > Labels: ise > > Ignite-Extentions build failure in geospatial module > {code:java} > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile > (default-compile) on project ignite-geospatial-ext: Compilation failure: > Compilation failure: > [ERROR] > /C:/Users/22160647/open/ignite-extensions/modules/geospatial-ext/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GeoSpatialIndexImpl.java:[56,8] > org.apache.ignite.internal.processors.query.h2.opt. > GeoSpatialIndexImpl is not abstract and does not override abstract method > indexDefinition() in org.apache.ignite.internal.cache.query.index.Index > [ERROR] > /C:/Users/22160647/open/ignite-extensions/modules/geospatial-ext/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GeoSpatialClientIndex.java:[30,8] > org.apache.ignite.internal.processors.query.h2.ot.GeoSpatialClientIndex is > not abstract and does not override abstract method indexDefinition() in > org.apache.ignite.internal.cache.query.index.Index > {code} > https://issues.apache.org/jira/browse/IGNITE-22798 adds a new method > {code:java} > public IndexDefinition indexDefinition(); > {code} > in org.apache.ignite.internal.cache.query.index.Index, that must be overrided > in > ignite-extensions/modules/geospatial-ext/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GeoSpatialIndexImpl.java > and > ignite-extensions/modules/geospatial-ext/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GeoSpatialClientIndex.java -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-22972) [Extensions] Override abstract method indexDefinition() in GeoSpatialIndexImpl.java and GeoSpatialClientIndex.java
[ https://issues.apache.org/jira/browse/IGNITE-22972?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov resolved IGNITE-22972. Release Note: Fixed Geo-spatial indexes compilation after IGNITE-22798 Resolution: Fixed [~polozhaevd], looks good to me. Merged to master. Thanks for the contribution! > [Extensions] Override abstract method indexDefinition() in > GeoSpatialIndexImpl.java and GeoSpatialClientIndex.java > -- > > Key: IGNITE-22972 > URL: https://issues.apache.org/jira/browse/IGNITE-22972 > Project: Ignite > Issue Type: Bug >Reporter: Denis Polozhaev >Assignee: Denis Polozhaev >Priority: Major > Labels: ise > > Ignite-Extentions build failure in geospatial module > {code:java} > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile > (default-compile) on project ignite-geospatial-ext: Compilation failure: > Compilation failure: > [ERROR] > /C:/Users/22160647/open/ignite-extensions/modules/geospatial-ext/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GeoSpatialIndexImpl.java:[56,8] > org.apache.ignite.internal.processors.query.h2.opt. > GeoSpatialIndexImpl is not abstract and does not override abstract method > indexDefinition() in org.apache.ignite.internal.cache.query.index.Index > [ERROR] > /C:/Users/22160647/open/ignite-extensions/modules/geospatial-ext/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GeoSpatialClientIndex.java:[30,8] > org.apache.ignite.internal.processors.query.h2.ot.GeoSpatialClientIndex is > not abstract and does not override abstract method indexDefinition() in > org.apache.ignite.internal.cache.query.index.Index > {code} > https://issues.apache.org/jira/browse/IGNITE-22798 adds a new method > {code:java} > public IndexDefinition indexDefinition(); > {code} > in org.apache.ignite.internal.cache.query.index.Index, that must be overrided > in > ignite-extensions/modules/geospatial-ext/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GeoSpatialIndexImpl.java > and > ignite-extensions/modules/geospatial-ext/geospatial/src/main/java/org/apache/ignite/internal/processors/query/h2/opt/GeoSpatialClientIndex.java -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22992) Calcite engine. Refactor BaseQueryContext.Builder
Aleksey Plekhanov created IGNITE-22992: -- Summary: Calcite engine. Refactor BaseQueryContext.Builder Key: IGNITE-22992 URL: https://issues.apache.org/jira/browse/IGNITE-22992 Project: Ignite Issue Type: Task Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Currently, there are several usages of BaseQueryContext.Builder#frameworkConfig in code, which build new FrameworkConfig instance only to provide default schema. These usages can be simplified. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22991) Calcite engine. Bump Calcite version to 1.37.0
Aleksey Plekhanov created IGNITE-22991: -- Summary: Calcite engine. Bump Calcite version to 1.37.0 Key: IGNITE-22991 URL: https://issues.apache.org/jira/browse/IGNITE-22991 Project: Ignite Issue Type: Improvement Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Current version used by Ignite 2.x is 1.34. There are a lot of useful fixes in the new versions of Calcite. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-20077) Sql. Bump calcite version to 1.35.0
[ https://issues.apache.org/jira/browse/IGNITE-20077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-20077: --- Labels: ignite-3 (was: calcite2-required ignite-3) > Sql. Bump calcite version to 1.35.0 > --- > > Key: IGNITE-20077 > URL: https://issues.apache.org/jira/browse/IGNITE-20077 > Project: Ignite > Issue Type: Improvement > Components: sql >Affects Versions: 3.0.0-beta1 >Reporter: Evgeny Stanilovsky >Assignee: Evgeny Stanilovsky >Priority: Major > Labels: ignite-3 > Time Spent: 1h 10m > Remaining Estimate: 0h > > New calcite version was updated [1]. So we need to update > org.apache.ignite.internal.sql.engine.exec.exp.RexImpTable too and as > described in class header item`s : 2, 3, 5 seems can be removed and changed > into native ones. > Also interesting new rule was introduced, probably it would be helpful to > include it. > [1] https://calcite.apache.org/docs/history.html#v1-35-0 > [2] https://issues.apache.org/jira/browse/CALCITE-5669 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-22862) Add address information to ClientConnectionException stacktrace
[ https://issues.apache.org/jira/browse/IGNITE-22862?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov resolved IGNITE-22862. Fix Version/s: 2.17 Release Note: Added address information to ClientConnectionException Resolution: Fixed [~mmdavydov], looks good to me. Merged to master. Thanks for the contribution! > Add address information to ClientConnectionException stacktrace > --- > > Key: IGNITE-22862 > URL: https://issues.apache.org/jira/browse/IGNITE-22862 > Project: Ignite > Issue Type: Task >Reporter: Ilya Shishkov >Assignee: Maksim Davydov >Priority: Minor > Labels: ise, newbie > Fix For: 2.17 > > Time Spent: 1h 40m > Remaining Estimate: 0h > > It will be useful to find out from stacktrace which address connection causes > error. Currently, stacktrace does not have address information: > {code} > org.apache.ignite.client.ClientConnectionException: Connection refused > at > org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:197) > at > org.apache.ignite.internal.client.thin.TcpClientChannel.(TcpClientChannel.java:208) > at > org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:1055) > at > org.apache.ignite.internal.client.thin.ReliableChannel$ClientChannelHolder.getOrCreateChannel(ReliableChannel.java:1033) > at > org.apache.ignite.internal.client.thin.ReliableChannel.applyOnDefaultChannel(ReliableChannel.java:837) > at > org.apache.ignite.internal.client.thin.ReliableChannel.channelsInit(ReliableChannel.java:749) > at > org.apache.ignite.internal.client.thin.ReliableChannel.channelsInit(ReliableChannel.java:733) > at > org.apache.ignite.internal.client.thin.TcpIgniteClient.(TcpIgniteClient.java:155) > at > org.apache.ignite.internal.client.thin.TcpIgniteClient.(TcpIgniteClient.java:127) > at > org.apache.ignite.internal.client.thin.TcpIgniteClient.start(TcpIgniteClient.java:442) > at org.apache.ignite.Ignition.startClient(Ignition.java:587) > at > org.apache.ignite.examples.client.ClientPutGetExample.main(ClientPutGetExample.java:45) > Caused by: org.apache.ignite.client.ClientConnectionException: Connection > refused > at > org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:172) > ... 11 more > Caused by: java.net.ConnectException: Connection refused > at java.base/sun.nio.ch.Net.connect0(Native Method) > at java.base/sun.nio.ch.Net.connect(Net.java:483) > at java.base/sun.nio.ch.Net.connect(Net.java:472) > at > java.base/sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:692) > at java.base/sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:100) > at > org.apache.ignite.internal.client.thin.io.gridnioserver.GridNioClientConnectionMultiplexer.open(GridNioClientConnectionMultiplexer.java:152) > ... 11 more > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22798) Refactor Index heirarchy
Aleksey Plekhanov created IGNITE-22798: -- Summary: Refactor Index heirarchy Key: IGNITE-22798 URL: https://issues.apache.org/jira/browse/IGNITE-22798 Project: Ignite Issue Type: Task Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Currently, ClientInlineIndex implements InlineIndex interface, which extends SortedSegmentedIndex, but all methods of ClientInlineIndex inherited from SortedSegmentedIndex throw "Unsupported" exception. Client index actually has nothing in common with SortedSegmentedIndex and should be inherited from Index. Inline size method of ClientInlineIndex actually required only to show inline size in system view. And I think, configured inline size will be enough on non-affinity node. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22762) Calcite engine. Validated COALESCE return type not equals to relational algebra return type
[ https://issues.apache.org/jira/browse/IGNITE-22762?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22762: --- Description: Reproducer: {noformat} sql("select coalesce(?, 1)", 0); {noformat} Fails with an exception: {noformat} java.lang.AssertionError: Conversion to relational algebra failed to preserve datatypes: validated type: RecordType(INTEGER NOT NULL EXPR$0) NOT NULL converted type: RecordType(INTEGER EXPR$0) NOT NULL rel: LogicalProject(EXPR$0=[CASE(IS NOT NULL(?0), ?0, 1)]) LogicalValues(tuples=[[{ 0 }]]) at org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:497) ~[calcite-core-1.34.0.jar:1.34.0] at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:612) ~[calcite-core-1.34.0.jar:1.34.0] at org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner.rel(IgnitePlanner.java:340) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.prepare.PlannerHelper.optimize(PlannerHelper.java:76) ~[classes/:?] {noformat} Root cause: COALESCE converted to CASE operator via {{SqlCoalesceFunction#rewriteCall}} method. After convertion each operand is cloned (IF IS NOT NULL (op) THEN op), and type is derived for each clone of operand individually. These types can be different, and CASE operator can't determine that operands are equal, since it has another type (see SqlCaseOperator#inferTypeFromValidator and SqlCaseOperator#inferTypeFromOperands methods) was: Reproducer: {noformat} sql("select coalesce(?, 1)", 0); {noformat} Fails with an exception: {noformat} java.lang.AssertionError: Conversion to relational algebra failed to preserve datatypes: validated type: RecordType(INTEGER NOT NULL EXPR$0) NOT NULL converted type: RecordType(INTEGER EXPR$0) NOT NULL rel: LogicalProject(EXPR$0=[CASE(IS NOT NULL(?0), ?0, 1)]) LogicalValues(tuples=[[{ 0 }]]) at org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:497) ~[calcite-core-1.34.0.jar:1.34.0] at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:612) ~[calcite-core-1.34.0.jar:1.34.0] at org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner.rel(IgnitePlanner.java:340) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.prepare.PlannerHelper.optimize(PlannerHelper.java:76) ~[classes/:?] {noformat} > Calcite engine. Validated COALESCE return type not equals to relational > algebra return type > --- > > Key: IGNITE-22762 > URL: https://issues.apache.org/jira/browse/IGNITE-22762 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Priority: Major > Labels: calcite, ise > > Reproducer: > {noformat} > sql("select coalesce(?, 1)", 0); > {noformat} > Fails with an exception: > {noformat} > java.lang.AssertionError: Conversion to relational algebra failed to preserve > datatypes: > validated type: > RecordType(INTEGER NOT NULL EXPR$0) NOT NULL > converted type: > RecordType(INTEGER EXPR$0) NOT NULL > rel: > LogicalProject(EXPR$0=[CASE(IS NOT NULL(?0), ?0, 1)]) > LogicalValues(tuples=[[{ 0 }]]) > at > org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:497) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:612) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner.rel(IgnitePlanner.java:340) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.prepare.PlannerHelper.optimize(PlannerHelper.java:76) > ~[classes/:?] > {noformat} > Root cause: COALESCE converted to CASE operator via > {{SqlCoalesceFunction#rewriteCall}} method. After convertion each operand is > cloned (IF IS NOT NULL (op) THEN op), and type is derived for each clone of > operand individually. These types can be different, and CASE operator can't > determine that operands are equal, since it has another type (see > SqlCaseOperator#inferTypeFromValidator and > SqlCaseOperator#inferTypeFromOperands methods) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22762) Calcite engine. Validated COALESCE return type not equals to relational algebra return type
[ https://issues.apache.org/jira/browse/IGNITE-22762?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22762: --- Summary: Calcite engine. Validated COALESCE return type not equals to relational algebra return type (was: Calcite engine. Validated COALESCE return type can be invalid ) > Calcite engine. Validated COALESCE return type not equals to relational > algebra return type > --- > > Key: IGNITE-22762 > URL: https://issues.apache.org/jira/browse/IGNITE-22762 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Priority: Major > Labels: calcite, ise > > Reproducer: > {noformat} > sql("select coalesce(?, 1)", 0); > {noformat} > Fails with an exception: > {noformat} > java.lang.AssertionError: Conversion to relational algebra failed to preserve > datatypes: > validated type: > RecordType(INTEGER NOT NULL EXPR$0) NOT NULL > converted type: > RecordType(INTEGER EXPR$0) NOT NULL > rel: > LogicalProject(EXPR$0=[CASE(IS NOT NULL(?0), ?0, 1)]) > LogicalValues(tuples=[[{ 0 }]]) > at > org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:497) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:612) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner.rel(IgnitePlanner.java:340) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.prepare.PlannerHelper.optimize(PlannerHelper.java:76) > ~[classes/:?] > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22716) Calcite engine. DECODE can't convert INT to DECIMAL
[ https://issues.apache.org/jira/browse/IGNITE-22716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22716: --- Labels: calcite ise (was: ise) > Calcite engine. DECODE can't convert INT to DECIMAL > --- > > Key: IGNITE-22716 > URL: https://issues.apache.org/jira/browse/IGNITE-22716 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: calcite, ise > > Reproducer: > {noformat} > sql("select decode(?, 0, 0, 1, 1.0)", 0);{noformat} > Fails with an exception: > {noformat} > java.lang.AssertionError: For conversion to decimal, > ConverterUtils#convertToDecimal method should be used instead. > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ConverterUtils.convert(ConverterUtils.java:214) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ConverterUtils.convert(ConverterUtils.java:178) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.implementRecursively(RexToLixTranslator.java:1144) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.implementCaseWhen(RexToLixTranslator.java:1076) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitCall(RexToLixTranslator.java:1018) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitCall(RexToLixTranslator.java:80) > ~[classes/:?] > at org.apache.calcite.rex.RexCall.accept(RexCall.java:189) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:932) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:80) > ~[classes/:?] > at org.apache.calcite.rex.RexLocalRef.accept(RexLocalRef.java:77) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translate(RexToLixTranslator.java:206) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translate(RexToLixTranslator.java:199) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translateList(RexToLixTranslator.java:809) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translateProjects(RexToLixTranslator.java:180) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compile(ExpressionFactoryImpl.java:516) > ~[classes/:?]{noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22762) Calcite engine. Validated COALESCE return type can be invalid
Aleksey Plekhanov created IGNITE-22762: -- Summary: Calcite engine. Validated COALESCE return type can be invalid Key: IGNITE-22762 URL: https://issues.apache.org/jira/browse/IGNITE-22762 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Reproducer: {noformat} sql("select coalesce(?, 1)", 0); {noformat} Fails with an exception: {noformat} java.lang.AssertionError: Conversion to relational algebra failed to preserve datatypes: validated type: RecordType(INTEGER NOT NULL EXPR$0) NOT NULL converted type: RecordType(INTEGER EXPR$0) NOT NULL rel: LogicalProject(EXPR$0=[CASE(IS NOT NULL(?0), ?0, 1)]) LogicalValues(tuples=[[{ 0 }]]) at org.apache.calcite.sql2rel.SqlToRelConverter.checkConvertedType(SqlToRelConverter.java:497) ~[calcite-core-1.34.0.jar:1.34.0] at org.apache.calcite.sql2rel.SqlToRelConverter.convertQuery(SqlToRelConverter.java:612) ~[calcite-core-1.34.0.jar:1.34.0] at org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner.rel(IgnitePlanner.java:340) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.prepare.PlannerHelper.optimize(PlannerHelper.java:76) ~[classes/:?] {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-22716) Calcite engine. DECODE can't convert INT to DECIMAL
[ https://issues.apache.org/jira/browse/IGNITE-22716?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-22716: -- Assignee: Aleksey Plekhanov > Calcite engine. DECODE can't convert INT to DECIMAL > --- > > Key: IGNITE-22716 > URL: https://issues.apache.org/jira/browse/IGNITE-22716 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > > Reproducer: > {noformat} > sql("select decode(?, 0, 0, 1, 1.0)", 0);{noformat} > Fails with an exception: > {noformat} > java.lang.AssertionError: For conversion to decimal, > ConverterUtils#convertToDecimal method should be used instead. > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ConverterUtils.convert(ConverterUtils.java:214) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ConverterUtils.convert(ConverterUtils.java:178) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.implementRecursively(RexToLixTranslator.java:1144) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.implementCaseWhen(RexToLixTranslator.java:1076) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitCall(RexToLixTranslator.java:1018) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitCall(RexToLixTranslator.java:80) > ~[classes/:?] > at org.apache.calcite.rex.RexCall.accept(RexCall.java:189) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:932) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:80) > ~[classes/:?] > at org.apache.calcite.rex.RexLocalRef.accept(RexLocalRef.java:77) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translate(RexToLixTranslator.java:206) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translate(RexToLixTranslator.java:199) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translateList(RexToLixTranslator.java:809) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translateProjects(RexToLixTranslator.java:180) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compile(ExpressionFactoryImpl.java:516) > ~[classes/:?]{noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-18372) Add CDC metrics to KafkaToIgniteStreamer
[ https://issues.apache.org/jira/browse/IGNITE-18372?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-18372: --- Ignite Flags: Release Notes Required (was: Docs Required,Release Notes Required) > Add CDC metrics to KafkaToIgniteStreamer > > > Key: IGNITE-18372 > URL: https://issues.apache.org/jira/browse/IGNITE-18372 > Project: Ignite > Issue Type: New Feature > Components: extensions >Reporter: Ilya Shishkov >Assignee: Maksim Davydov >Priority: Major > Labels: IEP-59, ise > Time Spent: 20m > Remaining Estimate: 0h > > We need metrics for received events count and last received event timestamp > for the {{KafkaToIgniteStreamer}}, because there can be situations, when > events sent by {{IgniteToKafkaStreamer}} are lost in Kafka due to Kafka > failures or topic's retention configuration. > In such situations we should be able to compare to sent messages count on > source cluster with received messages count on destination one. Timestamp of > last received event would be also useful. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22738) Sql. Select from several nested subqueries fails when aliases are used
Aleksey Plekhanov created IGNITE-22738: -- Summary: Sql. Select from several nested subqueries fails when aliases are used Key: IGNITE-22738 URL: https://issues.apache.org/jira/browse/IGNITE-22738 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Query: {noformat} select * from (select * from (select age as a from person) where a > 10) {noformat} Fails with an assertion: {noformat} at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.normalizeExpression(GridSqlQuerySplitter.java:1485) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.normalizeExpression(GridSqlQuerySplitter.java:1473) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.normalizeQuery(GridSqlQuerySplitter.java:1364) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.split0(GridSqlQuerySplitter.java:278) at org.apache.ignite.internal.processors.query.h2.sql.GridSqlQuerySplitter.split(GridSqlQuerySplitter.java:219) at org.apache.ignite.internal.processors.query.h2.QueryParser.parseH2(QueryParser.java:489) at org.apache.ignite.internal.processors.query.h2.QueryParser.parse0(QueryParser.java:222) at org.apache.ignite.internal.processors.query.h2.QueryParser.parse(QueryParser.java:135) {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22717) Calcite engine. User defined SQL views
Aleksey Plekhanov created IGNITE-22717: -- Summary: Calcite engine. User defined SQL views Key: IGNITE-22717 URL: https://issues.apache.org/jira/browse/IGNITE-22717 Project: Ignite Issue Type: New Feature Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov A view is a virtual table whose contents are defined by a query. It's a convenient mechanism to simplify queries. Views are supported by many databases. Calcite Framework also supports user defined views (see {{ViewTable.viewMacro}}) and we can add support of views to Calcite based SQL engine to Ignite. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22716) Calcite engine. DECODE can't convert INT to DECIMAL
Aleksey Plekhanov created IGNITE-22716: -- Summary: Calcite engine. DECODE can't convert INT to DECIMAL Key: IGNITE-22716 URL: https://issues.apache.org/jira/browse/IGNITE-22716 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Reproducer: {noformat} sql("select decode(?, 0, 0, 1, 1.0)", 0);{noformat} Fails with an exception: {noformat} java.lang.AssertionError: For conversion to decimal, ConverterUtils#convertToDecimal method should be used instead. at org.apache.ignite.internal.processors.query.calcite.exec.exp.ConverterUtils.convert(ConverterUtils.java:214) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.ConverterUtils.convert(ConverterUtils.java:178) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.implementRecursively(RexToLixTranslator.java:1144) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.implementCaseWhen(RexToLixTranslator.java:1076) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitCall(RexToLixTranslator.java:1018) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitCall(RexToLixTranslator.java:80) ~[classes/:?] at org.apache.calcite.rex.RexCall.accept(RexCall.java:189) ~[calcite-core-1.34.0.jar:1.34.0] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:932) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.visitLocalRef(RexToLixTranslator.java:80) ~[classes/:?] at org.apache.calcite.rex.RexLocalRef.accept(RexLocalRef.java:77) ~[calcite-core-1.34.0.jar:1.34.0] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translate(RexToLixTranslator.java:206) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translate(RexToLixTranslator.java:199) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translateList(RexToLixTranslator.java:809) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexToLixTranslator.translateProjects(RexToLixTranslator.java:180) ~[classes/:?] at org.apache.ignite.internal.processors.query.calcite.exec.exp.ExpressionFactoryImpl.compile(ExpressionFactoryImpl.java:516) ~[classes/:?]{noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (IGNITE-15080) Calcite. Functions extends string parameters by trailing spaces
[ https://issues.apache.org/jira/browse/IGNITE-15080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17864974#comment-17864974 ] Aleksey Plekhanov edited comment on IGNITE-15080 at 7/11/24 9:58 AM: - [~jooger], sure. I've unassigned the ticket. was (Author: alex_pl): [~alex_pl], sure. I've unassigned the ticket. > Calcite. Functions extends string parameters by trailing spaces > --- > > Key: IGNITE-15080 > URL: https://issues.apache.org/jira/browse/IGNITE-15080 > Project: Ignite > Issue Type: Bug > Components: sql >Reporter: Iurii Gerzhedovich >Priority: Major > > I discovered the strange behavior of functions with several string > parameters, which then returns one of these parameters. In this case, the > returned parameter string is expanded with trailing spaces to the length of > the longest string. > {code:java} > query T > SELECT COALESCE(COALESCE(null, 'world'), 'blabla') > > world - result is 'world ' - so we have extra trailing spaces from max > length string parameter'blabla'{code} > {code:java} > query I > SELECT DECODE(102, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard','BALL') > > GRIDGAIN - result is 'GRIDGAIN ' - so we have extra traiing spaces > from max length string parameter 'Hewlett Packard'{code} > see src/test/sql/function/generic/test_decode.test_ignore > see src/test/sql/function/generic/test_coalesce.test_ignore -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-15080) Calcite. Functions extends string parameters by trailing spaces
[ https://issues.apache.org/jira/browse/IGNITE-15080?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17864974#comment-17864974 ] Aleksey Plekhanov commented on IGNITE-15080: [~alex_pl], sure. I've unassigned the ticket. > Calcite. Functions extends string parameters by trailing spaces > --- > > Key: IGNITE-15080 > URL: https://issues.apache.org/jira/browse/IGNITE-15080 > Project: Ignite > Issue Type: Bug > Components: sql >Reporter: Iurii Gerzhedovich >Priority: Major > > I discovered the strange behavior of functions with several string > parameters, which then returns one of these parameters. In this case, the > returned parameter string is expanded with trailing spaces to the length of > the longest string. > {code:java} > query T > SELECT COALESCE(COALESCE(null, 'world'), 'blabla') > > world - result is 'world ' - so we have extra trailing spaces from max > length string parameter'blabla'{code} > {code:java} > query I > SELECT DECODE(102, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard','BALL') > > GRIDGAIN - result is 'GRIDGAIN ' - so we have extra traiing spaces > from max length string parameter 'Hewlett Packard'{code} > see src/test/sql/function/generic/test_decode.test_ignore > see src/test/sql/function/generic/test_coalesce.test_ignore -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-15080) Calcite. Functions extends string parameters by trailing spaces
[ https://issues.apache.org/jira/browse/IGNITE-15080?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-15080: -- Assignee: (was: Aleksey Plekhanov) > Calcite. Functions extends string parameters by trailing spaces > --- > > Key: IGNITE-15080 > URL: https://issues.apache.org/jira/browse/IGNITE-15080 > Project: Ignite > Issue Type: Bug > Components: sql >Reporter: Iurii Gerzhedovich >Priority: Major > > I discovered the strange behavior of functions with several string > parameters, which then returns one of these parameters. In this case, the > returned parameter string is expanded with trailing spaces to the length of > the longest string. > {code:java} > query T > SELECT COALESCE(COALESCE(null, 'world'), 'blabla') > > world - result is 'world ' - so we have extra trailing spaces from max > length string parameter'blabla'{code} > {code:java} > query I > SELECT DECODE(102, 101, 'IBM', 102, 'GRIDGAIN', 103, 'Hewlett Packard','BALL') > > GRIDGAIN - result is 'GRIDGAIN ' - so we have extra traiing spaces > from max length string parameter 'Hewlett Packard'{code} > see src/test/sql/function/generic/test_decode.test_ignore > see src/test/sql/function/generic/test_coalesce.test_ignore -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22707) Node fails when runtime exception occurs on snapshot start stage
Aleksey Plekhanov created IGNITE-22707: -- Summary: Node fails when runtime exception occurs on snapshot start stage Key: IGNITE-22707 URL: https://issues.apache.org/jira/browse/IGNITE-22707 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Reproducer: {code:java} /** Any node failed. */ private boolean failed; /** {@inheritDoc} */ @Override protected IgniteConfiguration getConfiguration(String igniteInstanceName) throws Exception { return super.getConfiguration(igniteInstanceName).setFailureHandler((ignite, ctx) -> failed = true); } /** @throws Exception If fails. */ @Test public void testExceptionOnStartStage() throws Exception { IgniteEx ignite = startGridsWithCache(2, dfltCacheCfg, CACHE_KEYS_RANGE); IgniteFuture fut = snp(ignite).createSnapshot(SNAPSHOT_NAME, null, false, onlyPrimary); File snpDir = snp(ignite).snapshotLocalDir(SNAPSHOT_NAME); assertTrue(snpDir.mkdirs()); File snpMeta = new File(snpDir, IgniteSnapshotManager.snapshotMetaFileName(ignite.localNode().consistentId().toString())); assertTrue(snpMeta.createNewFile()); assertThrowsAnyCause(log, fut::get, IgniteException.class, "Snapshot metafile must not exist"); assertFalse(failed); } {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22317) [Extensions] Release Ignite Spring Extensions
[ https://issues.apache.org/jira/browse/IGNITE-22317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17864505#comment-17864505 ] Aleksey Plekhanov commented on IGNITE-22317: [~anovikov] can you please don't break compilation for JDK<17? It's a second time already when you break the master branch with this activity ([https://github.com/apache/ignite-extensions/commit/8f50f512ac48fe8be9660b4c78e99a55a7a41ae2|https://github.com/apache/ignite-extensions/commit/8f50f512ac48fe8be9660b4c78e99a55a7a41ae2,] [https://github.com/apache/ignite-extensions/commit/49cec55354df85ad592ed14d28d2e1dda53e072b]) We are still on java 8, and project should be compiled on java 8 and java 11, not only on java 17. Github workflow should use minimal supported java version. What for spring-auto-restdocs-json-doclet-jdk9 has been added? No information in the ticket about this. Are we use generated JSON javadoc anywhere? This plugin: * Break java8 compilation * Has some problem with jackson dependency version and check each version from all available repositories (and in some time in the future can be broken by the new jackson version, since version is not fixed) * Has been deprecated by the authors several years ago I propose to revert changes from [https://github.com/apache/ignite-extensions/commit/49cec55354df85ad592ed14d28d2e1dda53e072b] not related to release notes and maven-deploy-plugin. > [Extensions] Release Ignite Spring Extensions > - > > Key: IGNITE-22317 > URL: https://issues.apache.org/jira/browse/IGNITE-22317 > Project: Ignite > Issue Type: Task > Components: extensions >Reporter: Andrey Novikov >Assignee: Andrey Novikov >Priority: Major > Fix For: 2.16 > > > The following extenstions must be released: > - ignite-spring-data-ext > - ignite-spring-session-ext > - ignite-spring-cache-ext > - ignite-spring-tx-ext -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22590) Calcite engine. Distribution by affinity function for columns with null values fails
Aleksey Plekhanov created IGNITE-22590: -- Summary: Calcite engine. Distribution by affinity function for columns with null values fails Key: IGNITE-22590 URL: https://issues.apache.org/jira/browse/IGNITE-22590 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov If one side of the join converted to distribution of another side by affinity function there can be an errors like: {noformat} Caused by: java.lang.IllegalArgumentException: Null key is passed for a partition calculation. Make sure that an affinity key that is used is initialized properly. at org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction.partition(RendezvousAffinityFunction.java:506) at org.apache.ignite.internal.processors.query.calcite.trait.AffinityAdapter.applyAsInt(AffinityAdapter.java:46) at org.apache.ignite.internal.processors.query.calcite.trait.Partitioned.targets(Partitioned.java:42) at org.apache.ignite.internal.processors.query.calcite.exec.rel.Outbox.flush(Outbox.java:233) at org.apache.ignite.internal.processors.query.calcite.exec.rel.Outbox.push(Outbox.java:141) {noformat} If input to rehash contains null values. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22576) Calcite engine. Cast varchar to timestamp truncates millis
Aleksey Plekhanov created IGNITE-22576: -- Summary: Calcite engine. Cast varchar to timestamp truncates millis Key: IGNITE-22576 URL: https://issues.apache.org/jira/browse/IGNITE-22576 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Reproducer: {noformat} SELECT CAST('2021-01-01 01:02:03.456' AS TIMESTAMP) {noformat} Returns "2021-01-01 01:02:03.000" Root cause: default precision for {{TIMESTAMP}} in Calcite is 0, so {{TIMESTAMP}} threated as {{TIMESTAMP(0)}} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-16181) Calcite engine. Handle arithmetic overflows
[ https://issues.apache.org/jira/browse/IGNITE-16181?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-16181: -- Assignee: Aleksey Plekhanov (was: Ilhom Ulmasov) > Calcite engine. Handle arithmetic overflows > --- > > Key: IGNITE-16181 > URL: https://issues.apache.org/jira/browse/IGNITE-16181 > Project: Ignite > Issue Type: Improvement >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: calcite2-required, calcite3-required, ise > Time Spent: 50m > Remaining Estimate: 0h > > Currently, we silently ignore arithmetic overflows and return the wrong > result, for example: > {noformat} > SELECT 2147483647 + 2147483647{noformat} > Returns -2. But SQL standard says that exception should be thrown: > {noformat} > 5) If the most specific type of the result of an arithmetic operation is > exact numeric, then Case: > a) If the operator is not division and the mathematical result of the > operation is not exactly representable with the precision and scale of the > result data type, then an exception condition is raised: data exception — > numeric value out of range.{noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22375) Inefficient serialization of UUIDs in communication messages
[ https://issues.apache.org/jira/browse/IGNITE-22375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22375: --- Description: We serialize {{long}} and {{int}} data types in communication messages as {{varint}} to safe the space. UUID contains two {{long}} components {{LeastSignificantBits}} and {{MostSignificantBits}}, which currently serialized as {{varint}} too. But usually UUIDs are generated randomly and in most cases there is no any space optimization for random {{long}} values. To store {{long}} as 7 bytes or less in {{varint}} format (instead of 8 bytes to store {{long}} as is) it's required top 15 bits of {{long}} to be 0. Probability of such outcame for random long: 1/32768. (was: We serialize {{long}} and {{int}} data types in communication messages as {{varint}} to safe the space. UUID contains two {{long}} components {{LeastSignificantBits}} and {{MostSignificantBits}}, which currently serialized as {{varint}} too. But usually UUIDs are generated randomly and in most cases there is no any space optimization for random {{long}} values. To store {{long}} as 7 bytes or less in {{varint}} format (instead of 8 bytes to store {{long}} as is) it's required it's required top 15 bits of {{{}long{}}}. Probability of such outcame for random long: 1/32768. ) > Inefficient serialization of UUIDs in communication messages > > > Key: IGNITE-22375 > URL: https://issues.apache.org/jira/browse/IGNITE-22375 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Time Spent: 10m > Remaining Estimate: 0h > > We serialize {{long}} and {{int}} data types in communication messages as > {{varint}} to safe the space. UUID contains two {{long}} components > {{LeastSignificantBits}} and {{MostSignificantBits}}, which currently > serialized as {{varint}} too. But usually UUIDs are generated randomly and in > most cases there is no any space optimization for random {{long}} values. To > store {{long}} as 7 bytes or less in {{varint}} format (instead of 8 bytes to > store {{long}} as is) it's required top 15 bits of {{long}} to be 0. > Probability of such outcame for random long: 1/32768. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22375) Inefficient serialization of UUIDs in communication messages
[ https://issues.apache.org/jira/browse/IGNITE-22375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22375: --- Description: We serialize {{long}} and {{int}} data types in communication messages as {{varint}} to safe the space. UUID contains two {{long}} components {{LeastSignificantBits}} and {{MostSignificantBits}}, which currently serialized as {{varint}} too. But usually UUIDs are generated randomly and in most cases there is no any space optimization for random {{long}} values. To store {{long}} as 7 bytes or less in {{varint}} format (instead of 8 bytes to store {{long}} as is) it's required it's required top 15 bits of {{{}long{}}}. Probability of such outcame for random long: 1/32768. (was: We serialize {{long}} and {{int}} data types in communication messages as {{varint}} to safe the space. UUID contains two {{long}} components {{LeastSignificantBits}} and {{ MostSignificantBits}}, which currently serialized as {{varint}} too. But usually UUIDs are generated randomly and in most cases the are no any space optimization for random {{long}} values. To store {{long}} as 7 bytes or less in {{varint}} format (instead of 8 bytes to store {{long}} as is) it's required it's required top 15 bits of {{{}long{}}}. Probability of such outcame for random long: 1/32768. ) > Inefficient serialization of UUIDs in communication messages > > > Key: IGNITE-22375 > URL: https://issues.apache.org/jira/browse/IGNITE-22375 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Time Spent: 10m > Remaining Estimate: 0h > > We serialize {{long}} and {{int}} data types in communication messages as > {{varint}} to safe the space. UUID contains two {{long}} components > {{LeastSignificantBits}} and {{MostSignificantBits}}, which currently > serialized as {{varint}} too. But usually UUIDs are generated randomly and in > most cases there is no any space optimization for random {{long}} values. To > store {{long}} as 7 bytes or less in {{varint}} format (instead of 8 bytes to > store {{long}} as is) it's required it's required top 15 bits of > {{{}long{}}}. Probability of such outcame for random long: 1/32768. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22375) Inefficient serialization of UUIDs in communication messages
[ https://issues.apache.org/jira/browse/IGNITE-22375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17856237#comment-17856237 ] Aleksey Plekhanov commented on IGNITE-22375: JMH results: {noformat} Benchmark (ver) Mode Cnt Score Error Units JmhDirectByteBufferStreamBenchmark.writeReadIgniteUuid 3 thrpt3 173729,589 ± 11265,776 ops/s JmhDirectByteBufferStreamBenchmark.writeReadIgniteUuid 4 thrpt3 582064,505 ± 4258,032 ops/s JmhDirectByteBufferStreamBenchmark.writeReadUuid3 thrpt3 325306,801 ± 5562,056 ops/s JmhDirectByteBufferStreamBenchmark.writeReadUuid4 thrpt3 1203484,342 ± 7195,944 ops/s {noformat} > Inefficient serialization of UUIDs in communication messages > > > Key: IGNITE-22375 > URL: https://issues.apache.org/jira/browse/IGNITE-22375 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Time Spent: 10m > Remaining Estimate: 0h > > We serialize {{long}} and {{int}} data types in communication messages as > {{varint}} to safe the space. UUID contains two {{long}} components > {{LeastSignificantBits}} and {{ > MostSignificantBits}}, which currently serialized as {{varint}} too. But > usually UUIDs are generated randomly and in most cases the are no any space > optimization for random {{long}} values. To store {{long}} as 7 bytes or less > in {{varint}} format (instead of 8 bytes to store {{long}} as is) it's > required it's required top 15 bits of {{{}long{}}}. Probability of such > outcame for random long: 1/32768. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-21492) Calcite engine: Unexpected error at query optimizer
[ https://issues.apache.org/jira/browse/IGNITE-21492?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-21492: -- Assignee: Aleksey Plekhanov > Calcite engine: Unexpected error at query optimizer > --- > > Key: IGNITE-21492 > URL: https://issues.apache.org/jira/browse/IGNITE-21492 > Project: Ignite > Issue Type: Bug >Reporter: Nikita Amelchev >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Attachments: QueryTest.java > > > The reproducer attached. The query runs successfully on the old engine. > {noformat} > [2024-02-07T23:01:18,113][ERROR][test-runner-#1%calcite.QueryTest%][PrepareServiceImpl] > Unexpected error at query optimizer. > java.lang.AssertionError: null > at org.apache.calcite.util.mapping.Mappings.create(Mappings.java:67) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer.dummyProject(RelFieldTrimmer.java:562) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer.trimFields(RelFieldTrimmer.java:508) > ~[calcite-core-1.34.0.jar:1.34.0] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > ~[?:1.8.0_201] > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > ~[?:1.8.0_201] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[?:1.8.0_201] > at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_201] > at org.apache.calcite.util.ReflectUtil$2.invoke(ReflectUtil.java:532) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer.dispatchTrimFields(RelFieldTrimmer.java:283) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.calcite.sql2rel.RelFieldTrimmer.trim(RelFieldTrimmer.java:170) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.calcite.sql2rel.SqlToRelConverter.trimUnusedFields(SqlToRelConverter.java:554) > ~[calcite-core-1.34.0.jar:1.34.0] > at > org.apache.ignite.internal.processors.query.calcite.prepare.IgnitePlanner.trimUnusedFields(IgnitePlanner.java:464) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.prepare.PlannerHelper.optimize(PlannerHelper.java:95) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.prepare.PrepareServiceImpl.prepareQuery(PrepareServiceImpl.java:168) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.prepare.PrepareServiceImpl.prepareSingle(PrepareServiceImpl.java:94) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.lambda$null$5(CalciteQueryProcessor.java:515) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.lambda$queryPlan$0(QueryPlanCacheImpl.java:70) > ~[classes/:?] > at > java.util.concurrent.ConcurrentMap.computeIfAbsent(ConcurrentMap.java:324) > ~[?:1.8.0_201] > at > org.apache.ignite.internal.processors.query.calcite.prepare.QueryPlanCacheImpl.queryPlan(QueryPlanCacheImpl.java:70) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.lambda$parseAndProcessQuery$6(CalciteQueryProcessor.java:512) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.processQuery(CalciteQueryProcessor.java:632) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.parseAndProcessQuery(CalciteQueryProcessor.java:509) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.calcite.CalciteQueryProcessor.query(CalciteQueryProcessor.java:391) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3107) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3087) > ~[classes/:?] > at > org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3822) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$3(GridQueryProcessor.java:3133) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuerySafe(GridQueryProcessor.java:3261) > [classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:3083) > [classes/:?] > at > org.apache.ignite.inte
[jira] [Updated] (IGNITE-22481) Documentation: Java thin client events
[ https://issues.apache.org/jira/browse/IGNITE-22481?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22481: --- Fix Version/s: 2.17 > Documentation: Java thin client events > -- > > Key: IGNITE-22481 > URL: https://issues.apache.org/jira/browse/IGNITE-22481 > Project: Ignite > Issue Type: Task > Components: documentation >Reporter: Aleksey Plekhanov >Priority: Major > Fix For: 2.17 > > > Add documentation for java thin client events (see > org.apache.ignite.client.events package) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22481) Documentation: Java thin client events
Aleksey Plekhanov created IGNITE-22481: -- Summary: Documentation: Java thin client events Key: IGNITE-22481 URL: https://issues.apache.org/jira/browse/IGNITE-22481 Project: Ignite Issue Type: Task Components: documentation Reporter: Aleksey Plekhanov Add documentation for java thin client events (see org.apache.ignite.client.events package) -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22464) Java thin client: Introduce events for start/stop of client
Aleksey Plekhanov created IGNITE-22464: -- Summary: Java thin client: Introduce events for start/stop of client Key: IGNITE-22464 URL: https://issues.apache.org/jira/browse/IGNITE-22464 Project: Ignite Issue Type: Improvement Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Currently, we have events for connect/disconnect and for start/end of each request. Sometimes it's required to track start/stop of client (for example, some metrics can be exposed on client start), so it's nice to have an ability to listen start/stop client events. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22439) Add tests for duplicate keys in Calcite
[ https://issues.apache.org/jira/browse/IGNITE-22439?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22439: --- Ignite Flags: (was: Docs Required,Release Notes Required) > Add tests for duplicate keys in Calcite > --- > > Key: IGNITE-22439 > URL: https://issues.apache.org/jira/browse/IGNITE-22439 > Project: Ignite > Issue Type: Test >Reporter: Andrei Nadyktov >Assignee: Andrei Nadyktov >Priority: Minor > Labels: ise > Fix For: 2.17 > > Time Spent: 20m > Remaining Estimate: 0h > > In H2 Engine we have tests for cases when user tries to insert duplicate key > into table, and then CacheException is thrown. We need the same tests for > Calcite. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22189) Display Expiry Policy information in the system view
[ https://issues.apache.org/jira/browse/IGNITE-22189?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22189: --- Ignite Flags: Docs Required,Release Notes Required (was: Docs Required) > Display Expiry Policy information in the system view > > > Key: IGNITE-22189 > URL: https://issues.apache.org/jira/browse/IGNITE-22189 > Project: Ignite > Issue Type: Improvement >Reporter: Maksim Davydov >Assignee: Maksim Davydov >Priority: Minor > Labels: ise > Fix For: 2.17 > > Time Spent: 6h 10m > Remaining Estimate: 0h > > The {{CacheView#expiryPolicyFactory}} method returns the ExpiryPolicyFactory > string representation, which at this point is a simple className +@ + > hashCode in hex, that is default {{Object#toString()}} behaviour. This is not > informative for an end user of the API. > In addition, it is useful to have information about existing cache entries > that are about to expire (eligible for cache expiry policy). > {*}TODO{*}: > * To make the {{CacheView#expiryPolicyFactory}} method return readable, > human-oriented output, one should refactor the method or > {{Factory}} child classes to provide the cache expiry policy > setting in readable form with policy type and ttl. > * Within the cache view ({{{}CacheView{}}}), check the entries presence > eligible for expiry policy. It can be done with O(logN) time complexity for > in-memory, and O(number of partitions) for persistent mode. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22381) Extensions: Broken compilation by java8, java11
[ https://issues.apache.org/jira/browse/IGNITE-22381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17851992#comment-17851992 ] Aleksey Plekhanov commented on IGNITE-22381: [~serge.korotkov], thanks for the review! Merged to master. > Extensions: Broken compilation by java8, java11 > > > Key: IGNITE-22381 > URL: https://issues.apache.org/jira/browse/IGNITE-22381 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > > Compilation on java8 is broken by IGNITE-21679 > Compilation on java11 is broken by IGNITE-22077 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22381) Extensions: Broken compilation by java8, java11
[ https://issues.apache.org/jira/browse/IGNITE-22381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22381: --- Labels: ise (was: ) > Extensions: Broken compilation by java8, java11 > > > Key: IGNITE-22381 > URL: https://issues.apache.org/jira/browse/IGNITE-22381 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > > Compilation on java8 is broken by IGNITE-21679 > Compilation on java11 is broken by IGNITE-22077 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22381) Extensions: Broken compilation by java8, java11
[ https://issues.apache.org/jira/browse/IGNITE-22381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17850944#comment-17850944 ] Aleksey Plekhanov commented on IGNITE-22381: [~serge.korotkov], [~nshakarov], [~anovikov] can you please have a look. Changes have been made: * Moved {{gatling-ext}} module under {{java-11+}} profile (some dependencies of this module compiled with java-11 and can't be recognized by java-8). * For {{java-11+}} profile target compiler version is set to 11 (the same we have for the parent {{ignite}} project, even if we try to compile with 1.8 target, compiled classes still can't be used by java-8, but {{target=1.8}} or {{release=1.8}} brokes usage of {{{}add-opens{}}}). * Gatling maven plugin execution is disabled when {{-DskipTest}} or {{-Dmaven.test.skip=true}} parameters are passed to maven (currently, this plugin always executed on test phase, even if we disable tests explicitely). * Options {{--add-opens}} also added to {{java-11+}} (They are not mandatory for java-11, but they remove warnings about reflection usage). Tested compilation locally on java8, java11, java17 (unfortunately java21 compilation still not working due to some {{spark-ext}} problems). Tested with {{-DskipTest}} and {{-Dmaven.test.skip=true}} JVM options. Started tests on both team-city servers. > Extensions: Broken compilation by java8, java11 > > > Key: IGNITE-22381 > URL: https://issues.apache.org/jira/browse/IGNITE-22381 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > > Compilation on java8 is broken by IGNITE-21679 > Compilation on java11 is broken by IGNITE-22077 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22381) Extensions: Broken compilation by java8, java11
[ https://issues.apache.org/jira/browse/IGNITE-22381?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22381: --- Description: Compilation on java8 is broken by IGNITE-21679 Compilation on java11 is broken by IGNITE-22077 was: Compilation by java8 broken by IGNITE-21679 Compilation by java11 broken by IGNITE-22077 > Extensions: Broken compilation by java8, java11 > > > Key: IGNITE-22381 > URL: https://issues.apache.org/jira/browse/IGNITE-22381 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > > Compilation on java8 is broken by IGNITE-21679 > Compilation on java11 is broken by IGNITE-22077 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22381) Extensions: Broken compilation by java8, java11
Aleksey Plekhanov created IGNITE-22381: -- Summary: Extensions: Broken compilation by java8, java11 Key: IGNITE-22381 URL: https://issues.apache.org/jira/browse/IGNITE-22381 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Compilation by java8 broken by IGNITE-21679 Compilation by java11 broken by IGNITE-22077 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22375) Inefficient serialization of UUIDs in communication messages
Aleksey Plekhanov created IGNITE-22375: -- Summary: Inefficient serialization of UUIDs in communication messages Key: IGNITE-22375 URL: https://issues.apache.org/jira/browse/IGNITE-22375 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov We serialize {{long}} and {{int}} data types in communication messages as {{varint}} to safe the space. UUID contains two {{long}} components {{LeastSignificantBits}} and {{ MostSignificantBits}}, which currently serialized as {{varint}} too. But usually UUIDs are generated randomly and in most cases the are no any space optimization for random {{long}} values. To store {{long}} as 7 bytes or less in {{varint}} format (instead of 8 bytes to store {{long}} as is) it's required it's required top 15 bits of {{{}long{}}}. Probability of such outcame for random long: 1/32768. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22375) Inefficient serialization of UUIDs in communication messages
[ https://issues.apache.org/jira/browse/IGNITE-22375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22375: --- Labels: ise (was: ) > Inefficient serialization of UUIDs in communication messages > > > Key: IGNITE-22375 > URL: https://issues.apache.org/jira/browse/IGNITE-22375 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > > We serialize {{long}} and {{int}} data types in communication messages as > {{varint}} to safe the space. UUID contains two {{long}} components > {{LeastSignificantBits}} and {{ > MostSignificantBits}}, which currently serialized as {{varint}} too. But > usually UUIDs are generated randomly and in most cases the are no any space > optimization for random {{long}} values. To store {{long}} as 7 bytes or less > in {{varint}} format (instead of 8 bytes to store {{long}} as is) it's > required it's required top 15 bits of {{{}long{}}}. Probability of such > outcame for random long: 1/32768. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22375) Inefficient serialization of UUIDs in communication messages
[ https://issues.apache.org/jira/browse/IGNITE-22375?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22375: --- Ignite Flags: Release Notes Required (was: Docs Required,Release Notes Required) > Inefficient serialization of UUIDs in communication messages > > > Key: IGNITE-22375 > URL: https://issues.apache.org/jira/browse/IGNITE-22375 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > > We serialize {{long}} and {{int}} data types in communication messages as > {{varint}} to safe the space. UUID contains two {{long}} components > {{LeastSignificantBits}} and {{ > MostSignificantBits}}, which currently serialized as {{varint}} too. But > usually UUIDs are generated randomly and in most cases the are no any space > optimization for random {{long}} values. To store {{long}} as 7 bytes or less > in {{varint}} format (instead of 8 bytes to store {{long}} as is) it's > required it's required top 15 bits of {{{}long{}}}. Probability of such > outcame for random long: 1/32768. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-21225) Redundant lambda object allocation in ClockPageReplacementFlags#setFlag
[ https://issues.apache.org/jira/browse/IGNITE-21225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov resolved IGNITE-21225. Fix Version/s: 2.17 Release Note: Fixed redundant lambda object allocation in ClockPageReplacementFlags# Resolution: Fixed [~timonin.maksim], thanks for the review! Merged to master. > Redundant lambda object allocation in ClockPageReplacementFlags#setFlag > --- > > Key: IGNITE-21225 > URL: https://issues.apache.org/jira/browse/IGNITE-21225 > Project: Ignite > Issue Type: Improvement >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Fix For: 2.17 > > Time Spent: 20m > Remaining Estimate: 0h > > Every time we call {{ClockPageReplacementFlags#setFlag/clearFlag}} methods > the new lambda object is created, since lambda is accessing the variable in > enclosing scope. \{{ClockPageReplacementFlags#setFlag}} method called every > time when page is modified, so, it's a relatevily hot method and we should > avoid new object allocation here. > Here is the test to show redundant allocations: > > {code:java} > /** */ > @Test > public void testAllocation() { > clockFlags = new ClockPageReplacementFlags(MAX_PAGES_CNT, > region.address()); > int cnt = 1_000_000; > ThreadMXBean bean = (ThreadMXBean)ManagementFactory.getThreadMXBean(); > // Warmup. > clockFlags.setFlag(0); > long allocated0 = > bean.getThreadAllocatedBytes(Thread.currentThread().getId()); > for (int i = 0; i < cnt; i++) > clockFlags.setFlag(i % MAX_PAGES_CNT); > long allocated1 = > bean.getThreadAllocatedBytes(Thread.currentThread().getId()); > assertTrue("Too many bytes allocated: " + (allocated1 - allocated0), > allocated1 - allocated0 < cnt); > } {code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21823) fix log message pageSize
[ https://issues.apache.org/jira/browse/IGNITE-21823?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-21823: --- Ignite Flags: Release Notes Required (was: Docs Required,Release Notes Required) > fix log message pageSize > > > Key: IGNITE-21823 > URL: https://issues.apache.org/jira/browse/IGNITE-21823 > Project: Ignite > Issue Type: Improvement >Reporter: Aleksandr Nikolaev >Assignee: Andrei Nadyktov >Priority: Minor > Labels: ise, newbie > Fix For: 2.17 > > Time Spent: 40m > Remaining Estimate: 0h > > If you do not indicate in the configuration, the size of pageSize, then in > the log we see the message that pageSize = 0 that is not true -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21225) Redundant lambda object allocation in ClockPageReplacementFlags#setFlag
[ https://issues.apache.org/jira/browse/IGNITE-21225?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-21225: --- Labels: ise (was: ) > Redundant lambda object allocation in ClockPageReplacementFlags#setFlag > --- > > Key: IGNITE-21225 > URL: https://issues.apache.org/jira/browse/IGNITE-21225 > Project: Ignite > Issue Type: Improvement >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Time Spent: 10m > Remaining Estimate: 0h > > Every time we call {{ClockPageReplacementFlags#setFlag/clearFlag}} methods > the new lambda object is created, since lambda is accessing the variable in > enclosing scope. \{{ClockPageReplacementFlags#setFlag}} method called every > time when page is modified, so, it's a relatevily hot method and we should > avoid new object allocation here. > Here is the test to show redundant allocations: > > {code:java} > /** */ > @Test > public void testAllocation() { > clockFlags = new ClockPageReplacementFlags(MAX_PAGES_CNT, > region.address()); > int cnt = 1_000_000; > ThreadMXBean bean = (ThreadMXBean)ManagementFactory.getThreadMXBean(); > // Warmup. > clockFlags.setFlag(0); > long allocated0 = > bean.getThreadAllocatedBytes(Thread.currentThread().getId()); > for (int i = 0; i < cnt; i++) > clockFlags.setFlag(i % MAX_PAGES_CNT); > long allocated1 = > bean.getThreadAllocatedBytes(Thread.currentThread().getId()); > assertTrue("Too many bytes allocated: " + (allocated1 - allocated0), > allocated1 - allocated0 < cnt); > } {code} > -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22101) Performance drop for thin client requests
[ https://issues.apache.org/jira/browse/IGNITE-22101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22101: --- Ignite Flags: (was: Release Notes Required) > Performance drop for thin client requests > - > > Key: IGNITE-22101 > URL: https://issues.apache.org/jira/browse/IGNITE-22101 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Fix For: 2.17 > > Attachments: perf_drop.png > > Time Spent: 1h > Remaining Estimate: 0h > > After IGNITE-21183 there is performance drop for thin client transactional > operations up to 38%: > !perf_drop.png|width=1083,height=168! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22028) Thin client: Implement invoke/invokeAll operations
[ https://issues.apache.org/jira/browse/IGNITE-22028?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22028: --- Labels: IEP-122 ise (was: ise) > Thin client: Implement invoke/invokeAll operations > -- > > Key: IGNITE-22028 > URL: https://issues.apache.org/jira/browse/IGNITE-22028 > Project: Ignite > Issue Type: New Feature >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: IEP-122, ise > > We must implement invoke/invokeAll methods for thin client. > Dev. list thread and IEP should be started to discuss protocol and > implementation details. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (IGNITE-22101) Performance drop for thin client requests
[ https://issues.apache.org/jira/browse/IGNITE-22101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844343#comment-17844343 ] Aleksey Plekhanov edited comment on IGNITE-22101 at 5/7/24 3:30 PM: Benchmark results (latancy, ms) after fix: | | | |ignite-20240405-IGNITE-13114-fbdd3deb70| | | ignite-20240426-IGNITE-22069-0947a8b9fb| | | |storage|client_type|benchmark|value|error%|runs#|value|error%|runs#|dif%| |MEM|Thin|PutAllBenchmark|5.21|±4.70%|3|5.24|±5.12%|3|+0.66%| |MEM|Thin|PutAllSerializableTxBenchmark|38.17|±1.34%|3|38.40|±2.66%|3|+0.58%| |MEM|Thin|PutAllTxBenchmark|53.43|±2.30%|3|53.72|±0.57%|3|+0.55%| |MEM|Thin|PutGetTxBenchmark ("PESSIMISTIC", "REPEATABLE_READ")|3.43|±3.52%|3|3.44|±4.35%|3|+0.53%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "REPEATABLE_READ")|2.22|±1.52%|3|2.23|±3.02%|3|+0.31%| |MEM|Thin|PutBenchmark|0.46|±0.89%|3|0.46|±1.49%|3|+0.30%| |MEM|Thin|GetAllPutAllTxBenchmark ( "OPTIMISTIC")|57.18|±1.64%|3|57.23|±1.24%|3|+0.10%| |MEM|Thin|PutGetBatchBenchmark|8.32|±1.48%|3|8.32|±2.40%|3|-0.06%| |MEM|Thin|PutGetBenchmark|0.85|±2.38%|3|0.85|±2.90%|3|-0.43%| |MEM|Thin|GetAllPutAllTxBenchmark ("OPTIMISTIC", "SERIALIZABLE")|49.89|±2.02%|3|49.64|±1.51%|3|-0.49%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "SERIALIZABLE")|3.06|±5.78%|3|3.03|±2.85%|3|-0.83%| |MEM|Thin|PutTxImplicitBenchmark|0.70|±6.08%|3|0.68|±3.07%|3|-2.70%| was (Author: alex_pl): Benchmark results (latancy, ms) after fix: | |ignite-20240405-IGNITE-13114-fbdd3deb70|ignite-20240426-IGNITE-22069-0947a8b9fb| |storage|client_type|benchmark|value|error%|runs#|value|error%|runs#|dif%| |MEM|Thin|PutAllBenchmark|5.21|±4.70%|3|5.24|±5.12%|3|+0.66%| |MEM|Thin|PutAllSerializableTxBenchmark|38.17|±1.34%|3|38.40|±2.66%|3|+0.58%| |MEM|Thin|PutAllTxBenchmark|53.43|±2.30%|3|53.72|±0.57%|3|+0.55%| |MEM|Thin|PutGetTxBenchmark ("PESSIMISTIC", "REPEATABLE_READ")|3.43|±3.52%|3|3.44|±4.35%|3|+0.53%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "REPEATABLE_READ")|2.22|±1.52%|3|2.23|±3.02%|3|+0.31%| |MEM|Thin|PutBenchmark|0.46|±0.89%|3|0.46|±1.49%|3|+0.30%| |MEM|Thin|GetAllPutAllTxBenchmark ( "OPTIMISTIC")|57.18|±1.64%|3|57.23|±1.24%|3|+0.10%| |MEM|Thin|PutGetBatchBenchmark|8.32|±1.48%|3|8.32|±2.40%|3|-0.06%| |MEM|Thin|PutGetBenchmark|0.85|±2.38%|3|0.85|±2.90%|3|-0.43%| |MEM|Thin|GetAllPutAllTxBenchmark ("OPTIMISTIC", "SERIALIZABLE")|49.89|±2.02%|3|49.64|±1.51%|3|-0.49%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "SERIALIZABLE")|3.06|±5.78%|3|3.03|±2.85%|3|-0.83%| |MEM|Thin|PutTxImplicitBenchmark|0.70|±6.08%|3|0.68|±3.07%|3|-2.70%| > Performance drop for thin client requests > - > > Key: IGNITE-22101 > URL: https://issues.apache.org/jira/browse/IGNITE-22101 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Attachments: perf_drop.png > > Time Spent: 50m > Remaining Estimate: 0h > > After IGNITE-21183 there is performance drop for thin client transactional > operations up to 38%: > !perf_drop.png|width=1083,height=168! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (IGNITE-22101) Performance drop for thin client requests
[ https://issues.apache.org/jira/browse/IGNITE-22101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844343#comment-17844343 ] Aleksey Plekhanov edited comment on IGNITE-22101 at 5/7/24 3:28 PM: Benchmark results (latancy, ms) after fix: | |ignite-20240405-IGNITE-13114-fbdd3deb70|ignite-20240426-IGNITE-22069-0947a8b9fb| |storage|client_type|benchmark|value|error%|runs#|value|error%|runs#|dif%| |MEM|Thin|PutAllBenchmark|5.21|±4.70%|3|5.24|±5.12%|3|+0.66%| |MEM|Thin|PutAllSerializableTxBenchmark|38.17|±1.34%|3|38.40|±2.66%|3|+0.58%| |MEM|Thin|PutAllTxBenchmark|53.43|±2.30%|3|53.72|±0.57%|3|+0.55%| |MEM|Thin|PutGetTxBenchmark ("PESSIMISTIC", "REPEATABLE_READ")|3.43|±3.52%|3|3.44|±4.35%|3|+0.53%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "REPEATABLE_READ")|2.22|±1.52%|3|2.23|±3.02%|3|+0.31%| |MEM|Thin|PutBenchmark|0.46|±0.89%|3|0.46|±1.49%|3|+0.30%| |MEM|Thin|GetAllPutAllTxBenchmark ( "OPTIMISTIC")|57.18|±1.64%|3|57.23|±1.24%|3|+0.10%| |MEM|Thin|PutGetBatchBenchmark|8.32|±1.48%|3|8.32|±2.40%|3|-0.06%| |MEM|Thin|PutGetBenchmark|0.85|±2.38%|3|0.85|±2.90%|3|-0.43%| |MEM|Thin|GetAllPutAllTxBenchmark ("OPTIMISTIC", "SERIALIZABLE")|49.89|±2.02%|3|49.64|±1.51%|3|-0.49%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "SERIALIZABLE")|3.06|±5.78%|3|3.03|±2.85%|3|-0.83%| |MEM|Thin|PutTxImplicitBenchmark|0.70|±6.08%|3|0.68|±3.07%|3|-2.70%| was (Author: alex_pl): Benchmark results (latancy, ms) after fix: | |ignite-20240405-IGNITE-13114-fbdd3deb70|ignite-20240426-IGNITE-22069-0947a8b9fb| |storage|client_type|benchmark|value|error%|runs#|value|error%|runs#|dif%| |MEM|Thin|PutAllBenchmark|5.21|±4.70%|3|5.24|±5.12%|3|+0.66%| |MEM|Thin|PutAllSerializableTxBenchmark|38.17|±1.34%|3|38.40|±2.66%|3|+0.58%| |MEM|Thin|PutAllTxBenchmark|53.43|±2.30%|3|53.72|±0.57%|3|+0.55%| |MEM|Thin|PutGetTxBenchmark ("PESSIMISTIC", "REPEATABLE_READ")|3.43|±3.52%|3|3.44|±4.35%|3|+0.53%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "REPEATABLE_READ")|2.22|±1.52%|3|2.23|±3.02%|3|+0.31%| |MEM|Thin|PutBenchmark|0.46|±0.89%|3|0.46|±1.49%|3|+0.30%| |MEM|Thin|GetAllPutAllTxBenchmark ( "OPTIMISTIC")|57.18|±1.64%|3|57.23|±1.24%|3|+0.10%| |MEM|Thin|PutGetBatchBenchmark|8.32|±1.48%|3|8.32|±2.40%|3|-0.06%| |MEM|Thin|PutGetBenchmark|0.85|±2.38%|3|0.85|±2.90%|3|-0.43%| |MEM|Thin|GetAllPutAllTxBenchmark \{"options": {"txc": "OPTIMISTIC", "txi": "SERIALIZABLE"}}|49.89|±2.02%|3|49.64|±1.51%|3|-0.49%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "SERIALIZABLE")|3.06|±5.78%|3|3.03|±2.85%|3|-0.83%| |MEM|Thin|PutTxImplicitBenchmark|0.70|±6.08%|3|0.68|±3.07%|3|-2.70%| > Performance drop for thin client requests > - > > Key: IGNITE-22101 > URL: https://issues.apache.org/jira/browse/IGNITE-22101 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Attachments: perf_drop.png > > Time Spent: 50m > Remaining Estimate: 0h > > After IGNITE-21183 there is performance drop for thin client transactional > operations up to 38%: > !perf_drop.png|width=1083,height=168! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Comment Edited] (IGNITE-22101) Performance drop for thin client requests
[ https://issues.apache.org/jira/browse/IGNITE-22101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844343#comment-17844343 ] Aleksey Plekhanov edited comment on IGNITE-22101 at 5/7/24 3:26 PM: Benchmark results (latancy, ms) after fix: | |ignite-20240405-IGNITE-13114-fbdd3deb70|ignite-20240426-IGNITE-22069-0947a8b9fb| |storage|client_type|benchmark|value|error%|runs#|value|error%|runs#|dif%| |MEM|Thin|PutAllBenchmark|5.21|±4.70%|3|5.24|±5.12%|3|+0.66%| |MEM|Thin|PutAllSerializableTxBenchmark|38.17|±1.34%|3|38.40|±2.66%|3|+0.58%| |MEM|Thin|PutAllTxBenchmark|53.43|±2.30%|3|53.72|±0.57%|3|+0.55%| |MEM|Thin|PutGetTxBenchmark ("PESSIMISTIC", "REPEATABLE_READ")|3.43|±3.52%|3|3.44|±4.35%|3|+0.53%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "REPEATABLE_READ")|2.22|±1.52%|3|2.23|±3.02%|3|+0.31%| |MEM|Thin|PutBenchmark|0.46|±0.89%|3|0.46|±1.49%|3|+0.30%| |MEM|Thin|GetAllPutAllTxBenchmark ( "OPTIMISTIC")|57.18|±1.64%|3|57.23|±1.24%|3|+0.10%| |MEM|Thin|PutGetBatchBenchmark|8.32|±1.48%|3|8.32|±2.40%|3|-0.06%| |MEM|Thin|PutGetBenchmark|0.85|±2.38%|3|0.85|±2.90%|3|-0.43%| |MEM|Thin|GetAllPutAllTxBenchmark \{"options": {"txc": "OPTIMISTIC", "txi": "SERIALIZABLE"}}|49.89|±2.02%|3|49.64|±1.51%|3|-0.49%| |MEM|Thin|PutGetTxBenchmark ("OPTIMISTIC", "SERIALIZABLE")|3.06|±5.78%|3|3.03|±2.85%|3|-0.83%| |MEM|Thin|PutTxImplicitBenchmark|0.70|±6.08%|3|0.68|±3.07%|3|-2.70%| was (Author: alex_pl): Benchmark results (latancy, ms) after fix: | |ignite-20240405-IGNITE-13114-fbdd3deb70|ignite-20240426-IGNITE-22069-0947a8b9fb| |storage|client_type|benchmark|value|error%|runs#|value|error%|runs#|dif%| |MEM|Thin|PutAllBenchmark|5.21|±4.70%|3|5.24|±5.12%|3|+0.66%| |MEM|Thin|PutAllSerializableTxBenchmark|38.17|±1.34%|3|38.40|±2.66%|3|+0.58%| |MEM|Thin|PutAllTxBenchmark|53.43|±2.30%|3|53.72|±0.57%|3|+0.55%| |MEM|Thin|PutGetTxBenchmark \{"options": {"txc": "PESSIMISTIC", "txi": "REPEATABLE_READ"}}|3.43|±3.52%|3|3.44|±4.35%|3|+0.53%| |MEM|Thin|PutGetTxBenchmark \{"options": {"txc": "OPTIMISTIC", "txi": "REPEATABLE_READ"}}|2.22|±1.52%|3|2.23|±3.02%|3|+0.31%| |MEM|Thin|PutBenchmark|0.46|±0.89%|3|0.46|±1.49%|3|+0.30%| |MEM|Thin|GetAllPutAllTxBenchmark \{"options": {"txc": "OPTIMISTIC"}}|57.18|±1.64%|3|57.23|±1.24%|3|+0.10%| |MEM|Thin|PutGetBatchBenchmark|8.32|±1.48%|3|8.32|±2.40%|3|-0.06%| |MEM|Thin|PutGetBenchmark|0.85|±2.38%|3|0.85|±2.90%|3|-0.43%| |MEM|Thin|GetAllPutAllTxBenchmark \{"options": {"txc": "OPTIMISTIC", "txi": "SERIALIZABLE"}}|49.89|±2.02%|3|49.64|±1.51%|3|-0.49%| |MEM|Thin|PutGetTxBenchmark \{"options": {"txc": "OPTIMISTIC", "txi": "SERIALIZABLE"}}|3.06|±5.78%|3|3.03|±2.85%|3|-0.83%| |MEM|Thin|PutTxImplicitBenchmark|0.70|±6.08%|3|0.68|±3.07%|3|-2.70%| > Performance drop for thin client requests > - > > Key: IGNITE-22101 > URL: https://issues.apache.org/jira/browse/IGNITE-22101 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Attachments: perf_drop.png > > Time Spent: 50m > Remaining Estimate: 0h > > After IGNITE-21183 there is performance drop for thin client transactional > operations up to 38%: > !perf_drop.png|width=1083,height=168! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22101) Performance drop for thin client requests
[ https://issues.apache.org/jira/browse/IGNITE-22101?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17844343#comment-17844343 ] Aleksey Plekhanov commented on IGNITE-22101: Benchmark results (latancy, ms) after fix: | |ignite-20240405-IGNITE-13114-fbdd3deb70|ignite-20240426-IGNITE-22069-0947a8b9fb| |storage|client_type|benchmark|value|error%|runs#|value|error%|runs#|dif%| |MEM|Thin|PutAllBenchmark|5.21|±4.70%|3|5.24|±5.12%|3|+0.66%| |MEM|Thin|PutAllSerializableTxBenchmark|38.17|±1.34%|3|38.40|±2.66%|3|+0.58%| |MEM|Thin|PutAllTxBenchmark|53.43|±2.30%|3|53.72|±0.57%|3|+0.55%| |MEM|Thin|PutGetTxBenchmark \{"options": {"txc": "PESSIMISTIC", "txi": "REPEATABLE_READ"}}|3.43|±3.52%|3|3.44|±4.35%|3|+0.53%| |MEM|Thin|PutGetTxBenchmark \{"options": {"txc": "OPTIMISTIC", "txi": "REPEATABLE_READ"}}|2.22|±1.52%|3|2.23|±3.02%|3|+0.31%| |MEM|Thin|PutBenchmark|0.46|±0.89%|3|0.46|±1.49%|3|+0.30%| |MEM|Thin|GetAllPutAllTxBenchmark \{"options": {"txc": "OPTIMISTIC"}}|57.18|±1.64%|3|57.23|±1.24%|3|+0.10%| |MEM|Thin|PutGetBatchBenchmark|8.32|±1.48%|3|8.32|±2.40%|3|-0.06%| |MEM|Thin|PutGetBenchmark|0.85|±2.38%|3|0.85|±2.90%|3|-0.43%| |MEM|Thin|GetAllPutAllTxBenchmark \{"options": {"txc": "OPTIMISTIC", "txi": "SERIALIZABLE"}}|49.89|±2.02%|3|49.64|±1.51%|3|-0.49%| |MEM|Thin|PutGetTxBenchmark \{"options": {"txc": "OPTIMISTIC", "txi": "SERIALIZABLE"}}|3.06|±5.78%|3|3.03|±2.85%|3|-0.83%| |MEM|Thin|PutTxImplicitBenchmark|0.70|±6.08%|3|0.68|±3.07%|3|-2.70%| > Performance drop for thin client requests > - > > Key: IGNITE-22101 > URL: https://issues.apache.org/jira/browse/IGNITE-22101 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Attachments: perf_drop.png > > Time Spent: 50m > Remaining Estimate: 0h > > After IGNITE-21183 there is performance drop for thin client transactional > operations up to 38%: > !perf_drop.png|width=1083,height=168! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22101) Performance drop for thin client requests
[ https://issues.apache.org/jira/browse/IGNITE-22101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22101: --- Description: After IGNITE-21183 there is performance drop for thin client transactional operations up to 38%: !perf_drop.png|width=1083,height=168! was: After IGNITE-21183 there is performance drop for thin client transactional operations up to 38%: !image-2024-04-24-18-40-52-125.png|width=884,height=137! > Performance drop for thin client requests > - > > Key: IGNITE-22101 > URL: https://issues.apache.org/jira/browse/IGNITE-22101 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Attachments: perf_drop.png > > > After IGNITE-21183 there is performance drop for thin client transactional > operations up to 38%: > !perf_drop.png|width=1083,height=168! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-22101) Performance drop for thin client requests
[ https://issues.apache.org/jira/browse/IGNITE-22101?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-22101: --- Attachment: (was: image-2024-04-24-18-40-52-125.png) > Performance drop for thin client requests > - > > Key: IGNITE-22101 > URL: https://issues.apache.org/jira/browse/IGNITE-22101 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Attachments: perf_drop.png > > > After IGNITE-21183 there is performance drop for thin client transactional > operations up to 38%: > !image-2024-04-24-18-40-52-125.png|width=884,height=137! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22101) Performance drop for thin client requests
Aleksey Plekhanov created IGNITE-22101: -- Summary: Performance drop for thin client requests Key: IGNITE-22101 URL: https://issues.apache.org/jira/browse/IGNITE-22101 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Attachments: perf_drop.png After IGNITE-21183 there is performance drop for thin client transactional operations up to 38%: !image-2024-04-24-18-40-52-125.png|width=884,height=137! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-22069) Fix contention on expiration for persistent caches
[ https://issues.apache.org/jira/browse/IGNITE-22069?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17838695#comment-17838695 ] Aleksey Plekhanov commented on IGNITE-22069: Benchmark results ({{{}JmhCacheExpireBenchmark{}}}) on my laptop: Before fix: {noformat} Benchmark (persistence) Mode Cnt Score Error Units JmhCacheExpireBenchmark.putWithExpire TRUE thrpt 3 29,968 ± 15,287 ops/ms {noformat} After fix: {noformat} Benchmark (persistence) Mode Cnt Score Error Units JmhCacheExpireBenchmark.putWithExpire TRUE thrpt3 172,777 ± 22,737 ops/ms {noformat} > Fix contention on expiration for persistent caches > -- > > Key: IGNITE-22069 > URL: https://issues.apache.org/jira/browse/IGNITE-22069 > Project: Ignite > Issue Type: Improvement >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > Time Spent: 10m > Remaining Estimate: 0h > > We've fixed contention on expiration for in-memory caches by IGNITE-14341 and > IGNITE-21929 tickets, but persistent caches use another method to expire > entries and this method should be fixed too. Moreover, there are some other > optimizations related to expiration we can made: > # Use batch pending tree entries removal for persistent caches (already > implemented for in-memory) > # Randomize iteration over cache data stores during expiration to reduce > contention > # For each transaction, we try to expire entries for every cache in the > cluster. At least we can limit the list of caches to caches related to > transaction. > # On cache destroy batch removal from pending entries tree can be used > (instead of one-by-one deletion). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22069) Fix contention on expiration for persistent caches
Aleksey Plekhanov created IGNITE-22069: -- Summary: Fix contention on expiration for persistent caches Key: IGNITE-22069 URL: https://issues.apache.org/jira/browse/IGNITE-22069 Project: Ignite Issue Type: Improvement Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov We've fixed contention on expiration for in-memory caches by IGNITE-14341 and IGNITE-21929 tickets, but persistent caches use another method to expire entries and this method should be fixed too. Moreover, there are some other optimizations related to expiration we can made: # Use batch pending tree entries removal for persistent caches (already implemented for in-memory) # Randomize iteration over cache data stores during expiration to reduce contention # For each transaction, we try to expire entries for every cache in the cluster. At least we can limit the list of caches to caches related to transaction. # On cache destroy batch removal from pending entries tree can be used (instead of one-by-one deletion). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-22028) Thin client: Implement invoke/invokeAll operations
Aleksey Plekhanov created IGNITE-22028: -- Summary: Thin client: Implement invoke/invokeAll operations Key: IGNITE-22028 URL: https://issues.apache.org/jira/browse/IGNITE-22028 Project: Ignite Issue Type: New Feature Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov We must implement invoke/invokeAll methods for thin client. Dev. list thread and IEP should be started to discuss protocol and implementation details. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21990) [PerfStat] Report can skip properties/rows/reads records from remote nodes
[ https://issues.apache.org/jira/browse/IGNITE-21990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-21990: --- Labels: ise (was: ) > [PerfStat] Report can skip properties/rows/reads records from remote nodes > -- > > Key: IGNITE-21990 > URL: https://issues.apache.org/jira/browse/IGNITE-21990 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > > In IGNITE-21863 after processing "query" record, we store aggregated result, > assuming that after this point there are no more records related to this > query. But such records may exist in other files (from other nodes). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21990) [PerfStat] Report can skip properties/rows/reads records from remote nodes
[ https://issues.apache.org/jira/browse/IGNITE-21990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-21990: --- Ignite Flags: (was: Docs Required,Release Notes Required) > [PerfStat] Report can skip properties/rows/reads records from remote nodes > -- > > Key: IGNITE-21990 > URL: https://issues.apache.org/jira/browse/IGNITE-21990 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > > In IGNITE-21863 after processing "query" record, we store aggregated result, > assuming that after this point there are no more records related to this > query. But such records may exist in other files (from other nodes). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-21929) Skip pending list extra cleanup in TTL Manager
[ https://issues.apache.org/jira/browse/IGNITE-21929?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov resolved IGNITE-21929. Release Note: Fixed pending tree redundant cleanup on entries expiration Resolution: Fixed [~yuri.naryshkin], looks good to me. Merged to master. Thanks for the contribution! > Skip pending list extra cleanup in TTL Manager > -- > > Key: IGNITE-21929 > URL: https://issues.apache.org/jira/browse/IGNITE-21929 > Project: Ignite > Issue Type: Improvement >Reporter: Yuri Naryshkin >Assignee: Yuri Naryshkin >Priority: Major > Labels: ise > Fix For: 2.17 > > Time Spent: 50m > Remaining Estimate: 0h > > Currently when records expire with high rate, several threads (sys-stripe, > client-connector) try to cleanup those records and get stuck waiting to > acquire lock on main page of PendingEntriesTree. This is unnecessary > contention. > After introducing fix for IGNITE-14341 expired records PendingEntriesTree > cleanup is done using range. After that each record is deleted from dataTree. > And after that another attempt is done to remove each record from > PendingEntriesTree once again, which is not necessary as the record is > already removed. > This ticket is to improve cleaning up expired entries by skipping second > attempt to remove each record from PendingEntriesTree. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21990) [PerfStat] Report can skip properties/rows/reads records from remote nodes
Aleksey Plekhanov created IGNITE-21990: -- Summary: [PerfStat] Report can skip properties/rows/reads records from remote nodes Key: IGNITE-21990 URL: https://issues.apache.org/jira/browse/IGNITE-21990 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov In IGNITE-21863 after processing "query" record, we store aggregated result, assuming that after this point there are no more records related to this query. But such records may exist in other files (from other nodes). -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21961) Don't remove entries one-by-one for in-memory node on shutdown
Aleksey Plekhanov created IGNITE-21961: -- Summary: Don't remove entries one-by-one for in-memory node on shutdown Key: IGNITE-21961 URL: https://issues.apache.org/jira/browse/IGNITE-21961 Project: Ignite Issue Type: Improvement Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Currently, for in-memory node we remove each entry one-by-one on cluster deactivation or on node shutdown. If there are a lot of entries in cache it can take a long time. But it's a redundant action, since all page memory will be released after deactivation/shutdown. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21886) Refactor CompressionProcessorImpl, move code partially to ignite-core module
Aleksey Plekhanov created IGNITE-21886: -- Summary: Refactor CompressionProcessorImpl, move code partially to ignite-core module Key: IGNITE-21886 URL: https://issues.apache.org/jira/browse/IGNITE-21886 Project: Ignite Issue Type: Improvement Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov CompressionProcessorImpl contains some logic, which can be used without extra dependencies. For example, all page compaction logic implemented in ignite-core, but we still can't enable SKIP_GARBAGE compression mode without ignite-compress module. Mode SKIP_GARBAGE without extra dependencies can be helpful for WAL page snapshot compression or for IGNITE-20697. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Assigned] (IGNITE-21863) [PerfStat] OOM when using build-report.sh from performance statistics
[ https://issues.apache.org/jira/browse/IGNITE-21863?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-21863: -- Assignee: Aleksey Plekhanov > [PerfStat] OOM when using build-report.sh from performance statistics > -- > > Key: IGNITE-21863 > URL: https://issues.apache.org/jira/browse/IGNITE-21863 > Project: Ignite > Issue Type: Improvement >Affects Versions: 2.16 >Reporter: Luchnikov Alexander >Assignee: Aleksey Plekhanov >Priority: Minor > Labels: ise > > The problem is reproduced on a large volume collected using > {code:java} > ./control.sh --performance-statistics > {code} > statistics, in our cases the total volume was 50GB. > Increasing xmx to 64gb did not solve the problem. > {code:java} > Exception in thread "main" java.lang.OutOfMemoryError: Java heap space > at java.base/java.util.HashMap.resize(HashMap.java:700) > at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1112) > at > org.apache.ignite.internal.performancestatistics.handlers.QueryHandler.queryProperty(QueryHandler.java:160) > at > org.apache.ignite.internal.processors.performancestatistics.FilePerformanceStatisticsReader.deserialize(FilePerformanceStatisticsReader.java:345) > at > org.apache.ignite.internal.processors.performancestatistics.FilePerformanceStatisticsReader.read(FilePerformanceStatisticsReader.java:169) > at > org.apache.ignite.internal.performancestatistics.PerformanceStatisticsReportBuilder.createReport(PerformanceStatisticsReportBuilder.java:124) > at > org.apache.ignite.internal.performancestatistics.PerformanceStatisticsReportBuilder.main(PerformanceStatisticsReportBuilder.java:69) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21866) Calcite engine. Add memory quotas control for Cursor.getAll() method
Aleksey Plekhanov created IGNITE-21866: -- Summary: Calcite engine. Add memory quotas control for Cursor.getAll() method Key: IGNITE-21866 URL: https://issues.apache.org/jira/browse/IGNITE-21866 Project: Ignite Issue Type: Improvement Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Cursor.getAll() method can collect a lot of rows before return result to the user and can cause OOM errors. We should control memory consumption for Cursor.getAll() the same way as we do for execution nodes. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Resolved] (IGNITE-21478) OOM crash with unstable topology
[ https://issues.apache.org/jira/browse/IGNITE-21478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov resolved IGNITE-21478. Fix Version/s: 2.17 Release Note: Fixed OOM crash on unstable topology Resolution: Fixed [~yuri.naryshkin], looks good to me. Merged to master. Thanks for the contribution! > OOM crash with unstable topology > > > Key: IGNITE-21478 > URL: https://issues.apache.org/jira/browse/IGNITE-21478 > Project: Ignite > Issue Type: Bug >Reporter: Luchnikov Alexander >Assignee: Yuri Naryshkin >Priority: Minor > Labels: ise > Fix For: 2.17 > > Attachments: HistoMinorTop.png, histo.png > > Time Spent: 20m > Remaining Estimate: 0h > > User cases: > 1) Frequent entry/exit of a thick client into the topology leads to a crash > of the server node due to OMM. > 2) Frequent creation and destroy of caches leads to a server node crash due > to OOM. > topVer=20098 > *Real case* > Part of the log before the OOM crash, pay attention to *topVer=20098* > {code:java} > Metrics for local node (to disable set 'metricsLogFrequency' to 0) > ^-- Node [id=f080abcd, uptime=3 days, 09:00:55.274] > ^-- Cluster [hosts=4, CPUs=6, servers=2, clients=2, topVer=20098, > minorTopVer=6] > ^-- Network [addrs=[192.168.1.2, 127.0.0.1], discoPort=47500, > commPort=47100] > ^-- CPU [CPUs=2, curLoad=86.83%, avgLoad=21.9%, GC=23.9%] > ^-- Heap [used=867MB, free=15.29%, comm=1024MB] > ^-- Outbound messages queue [size=0] > ^-- Public thread pool [active=0, idle=7, qSize=0] > ^-- System thread pool [active=0, idle=8, qSize=0] > ^-- Striped thread pool [active=0, idle=8, qSize=0] > {code} > Histogram from heap-dump after node failed > !histo.png! > *MinorTop example* > {code:java} > @Test > public void testMinorVer() throws Exception { > Ignite server = startGrids(1); > IgniteEx client = startClientGrid(); > String cacheName = "cacheName"; > for (int i = 0; i < 500; i++) { > client.getOrCreateCache(cacheName); > client.destroyCache(cacheName); > } > System.err.println("Heap dump time"); > Thread.sleep(100); > } > {code} > {code:java} > [INFO > ][exchange-worker-#149%internal.IgniteOomTest%][GridCachePartitionExchangeManager] > AffinityTopologyVersion [topVer=2, minorTopVer=1000], > evt=DISCOVERY_CUSTOM_EVT, evtNode=52b4c130-1a01-4858-813a-ebc8a5dabf1e, > client=true] > {code} > !HistoMinorTop.png! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21769) [ducktests] ignitetest/tests/dns_failure_test.py doesn't start with JDK11 and JDK17
[ https://issues.apache.org/jira/browse/IGNITE-21769?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-21769: --- Ignite Flags: (was: Docs Required,Release Notes Required) > [ducktests] ignitetest/tests/dns_failure_test.py doesn't start with JDK11 and > JDK17 > --- > > Key: IGNITE-21769 > URL: https://issues.apache.org/jira/browse/IGNITE-21769 > Project: Ignite > Issue Type: Task >Reporter: Sergey Korotkov >Assignee: Sergey Korotkov >Priority: Minor > Labels: ise > Fix For: 2.17 > > Attachments: dns_failure_test_jdk11.zip, dns_failure_test_jdk17.zip > > Time Spent: 20m > Remaining Estimate: 0h > > ignitetest/tests/dns_failure_test.py fails on JDK11 and JDK17 > Ignite node can not start with the following exception: > {noformat} > Class not found: java.net.BlockingDnsInet4AddressImpl: > check impl.prefix property in your properties file. > java.lang.Error: System property impl.prefix incorrect > at java.base/java.net.InetAddress.loadImpl(InetAddress.java:1734) > at > java.base/java.net.InetAddressImplFactory.create(InetAddress.java:1807) > at java.base/java.net.InetAddress.(InetAddress.java:1141) > at > org.apache.logging.log4j.core.util.NetUtils.getLocalHostname(NetUtils.java:56) > at > org.apache.logging.log4j.core.LoggerContext.lambda$setConfiguration$0(LoggerContext.java:625) > at > java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1705) > at > org.apache.logging.log4j.core.LoggerContext.setConfiguration(LoggerContext.java:625) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:713) > at > org.apache.logging.log4j.core.LoggerContext.reconfigure(LoggerContext.java:735) > at > org.apache.logging.log4j.core.LoggerContext.start(LoggerContext.java:260) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:154) > at > org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:46) > at org.apache.logging.log4j.LogManager.getContext(LogManager.java:197) > at > org.apache.commons.logging.LogAdapter$Log4jLog.(LogAdapter.java:155) > at > org.apache.commons.logging.LogAdapter$Log4jAdapter.createLog(LogAdapter.java:122) > at org.apache.commons.logging.LogAdapter.createLog(LogAdapter.java:89) > at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:67) > at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:59) > at > org.springframework.context.support.AbstractApplicationContext.(AbstractApplicationContext.java:164) > at > org.springframework.context.support.GenericApplicationContext.(GenericApplicationContext.java:111) > at > org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.prepareSpringContext(IgniteSpringHelperImpl.java:458) > at > org.apache.ignite.internal.util.spring.IgniteSpringHelperImpl.applicationContext(IgniteSpringHelperImpl.java:386) > {noformat} > Logs attached obtained with the below jdk versions: > OpenJDK Runtime Environment 11.0.19+7 Eclipse Adoptium OpenJDK 64-Bit Server > VM 11.0.19+7 > OpenJDK Runtime Environment 17.0.7+7 Eclipse Adoptium OpenJDK 64-Bit Server > VM 17.0.7+7 -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21630) Cluster falls apart on topology change when DNS service is unavailable
Aleksey Plekhanov created IGNITE-21630: -- Summary: Cluster falls apart on topology change when DNS service is unavailable Key: IGNITE-21630 URL: https://issues.apache.org/jira/browse/IGNITE-21630 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Requests to DNS service performed synchroniously by some critical discovery threads. Timeout for such requests can't be controlled by java code (see [https://bugs.openjdk.org/browse/JDK-6450279]). This leads to segmentation of nodes and falling apart cluster. For example, stack of {{tcp-disco-msg-worker}} thread with request to DNS service: {noformat} at java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929) at java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1330) at java.net.InetAddress.getAllByName0(InetAddress.java:1283) at java.net.InetAddress.getAllByName(InetAddress.java:1199) at java.net.InetAddress.getAllByName(InetAddress.java:1127) at java.net.InetAddress.getByName(InetAddress.java:1077) at java.net.InetSocketAddress.(InetSocketAddress.java:220) at org.apache.ignite.internal.util.IgniteUtils.createResolved(IgniteUtils.java:9829) at org.apache.ignite.internal.util.IgniteUtils.toSocketAddresses(IgniteUtils.java:9792) at org.apache.ignite.internal.util.IgniteUtils.toSocketAddresses(IgniteUtils.java:9770) at org.apache.ignite.spi.discovery.tcp.internal.TcpDiscoveryNode.socketAddresses(TcpDiscoveryNode.java:392) at org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.getNodeAddresses(TcpDiscoverySpi.java:1267) at org.apache.ignite.spi.discovery.tcp.ServerImpl.interruptPing(ServerImpl.java:985) at org.apache.ignite.spi.discovery.tcp.ServerImpl.access$6800(ServerImpl.java:206) at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processNodeLeftMessage(ServerImpl.java:5433) at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:3221) at org.apache.ignite.spi.discovery.tcp.ServerImpl$RingMessageWorker.processMessage(ServerImpl.java:2894) {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Created] (IGNITE-21587) Calcite engine. Add operations authorization
Aleksey Plekhanov created IGNITE-21587: -- Summary: Calcite engine. Add operations authorization Key: IGNITE-21587 URL: https://issues.apache.org/jira/browse/IGNITE-21587 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Currently, Calcite engine do not check authorization to perform SELECT operation. For INSERT/UPDATE/DELETE/MERGE operations authorization is checked internally by {{{}cache.invoke{}}}, but security context is not initialized and server node security context is checked. -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Commented] (IGNITE-14317) IgniteCache.removeAsync(key,val) fails inside an optimistic transaction
[ https://issues.apache.org/jira/browse/IGNITE-14317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17815247#comment-17815247 ] Aleksey Plekhanov commented on IGNITE-14317: Related sync op fix: https://github.com/apache/ignite/commit/126ab60fe6fa0f47e19a26dafecc7feb7c57b60b > IgniteCache.removeAsync(key,val) fails inside an optimistic transaction > --- > > Key: IGNITE-14317 > URL: https://issues.apache.org/jira/browse/IGNITE-14317 > Project: Ignite > Issue Type: Bug >Affects Versions: 2.9.1 >Reporter: Denis Garus >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > > [reproducer|https://github.com/apache/ignite/pull/8841/files] > IgniteCache.removeAsync(key,val) fails inside an optimistic tx with the > exception: > {code:java} > [17:39:28] (err) Failed to notify listener: > o.a.i.i.processors.cache.distributed.near.GridNearTxLocal$6...@19c520dbjava.lang.AssertionError[17:39:28] > (err) Failed to notify listener: > o.a.i.i.processors.cache.distributed.near.GridNearTxLocal$6...@19c520dbjava.lang.AssertionError > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$17.apply(GridNearTxLocal.java:2955) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$17.apply(GridNearTxLocal.java:2937) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.processLoaded(GridNearTxLocal.java:3475) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3217) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3212) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:511) > at > org.apache.ignite.internal.processors.cache.GridCacheFutureAdapter.onDone(GridCacheFutureAdapter.java:55) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:490) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.onDone(GridPartitionedSingleGetFuture.java:935) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:467) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.setSkipValueResult(GridPartitionedSingleGetFuture.java:759) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.onResult(GridPartitionedSingleGetFuture.java:636) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter.processNearSingleGetResponse(GridDhtCacheAdapter.java:368) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.access$100(GridDhtColocatedCache.java:88) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$2.apply(GridDhtColocatedCache.java:133) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$2.apply(GridDhtColocatedCache.java:131) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1143) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:592) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:393) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:319) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:309) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1908) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1529) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1422) > at > org.apache.ignite.internal.managers.communica
[jira] [Assigned] (IGNITE-14317) IgniteCache.removeAsync(key,val) fails inside an optimistic transaction
[ https://issues.apache.org/jira/browse/IGNITE-14317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov reassigned IGNITE-14317: -- Assignee: Aleksey Plekhanov > IgniteCache.removeAsync(key,val) fails inside an optimistic transaction > --- > > Key: IGNITE-14317 > URL: https://issues.apache.org/jira/browse/IGNITE-14317 > Project: Ignite > Issue Type: Bug >Affects Versions: 2.9.1 >Reporter: Denis Garus >Assignee: Aleksey Plekhanov >Priority: Major > > [reproducer|https://github.com/apache/ignite/pull/8841/files] > IgniteCache.removeAsync(key,val) fails inside an optimistic tx with the > exception: > {code:java} > [17:39:28] (err) Failed to notify listener: > o.a.i.i.processors.cache.distributed.near.GridNearTxLocal$6...@19c520dbjava.lang.AssertionError[17:39:28] > (err) Failed to notify listener: > o.a.i.i.processors.cache.distributed.near.GridNearTxLocal$6...@19c520dbjava.lang.AssertionError > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$17.apply(GridNearTxLocal.java:2955) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$17.apply(GridNearTxLocal.java:2937) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.processLoaded(GridNearTxLocal.java:3475) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3217) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3212) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:511) > at > org.apache.ignite.internal.processors.cache.GridCacheFutureAdapter.onDone(GridCacheFutureAdapter.java:55) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:490) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.onDone(GridPartitionedSingleGetFuture.java:935) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:467) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.setSkipValueResult(GridPartitionedSingleGetFuture.java:759) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.onResult(GridPartitionedSingleGetFuture.java:636) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter.processNearSingleGetResponse(GridDhtCacheAdapter.java:368) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.access$100(GridDhtColocatedCache.java:88) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$2.apply(GridDhtColocatedCache.java:133) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$2.apply(GridDhtColocatedCache.java:131) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1143) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:592) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:393) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:319) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:309) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1908) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1529) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1422) > at > org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:55) > at > org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:569) > at >
[jira] [Updated] (IGNITE-14317) IgniteCache.removeAsync(key,val) fails inside an optimistic transaction
[ https://issues.apache.org/jira/browse/IGNITE-14317?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-14317: --- Labels: ise (was: ) > IgniteCache.removeAsync(key,val) fails inside an optimistic transaction > --- > > Key: IGNITE-14317 > URL: https://issues.apache.org/jira/browse/IGNITE-14317 > Project: Ignite > Issue Type: Bug >Affects Versions: 2.9.1 >Reporter: Denis Garus >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > > [reproducer|https://github.com/apache/ignite/pull/8841/files] > IgniteCache.removeAsync(key,val) fails inside an optimistic tx with the > exception: > {code:java} > [17:39:28] (err) Failed to notify listener: > o.a.i.i.processors.cache.distributed.near.GridNearTxLocal$6...@19c520dbjava.lang.AssertionError[17:39:28] > (err) Failed to notify listener: > o.a.i.i.processors.cache.distributed.near.GridNearTxLocal$6...@19c520dbjava.lang.AssertionError > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$17.apply(GridNearTxLocal.java:2955) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$17.apply(GridNearTxLocal.java:2937) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal.processLoaded(GridNearTxLocal.java:3475) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3217) > at > org.apache.ignite.internal.processors.cache.distributed.near.GridNearTxLocal$21.apply(GridNearTxLocal.java:3212) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.applyCallback(GridFutureChainListener.java:78) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:70) > at > org.apache.ignite.internal.util.future.GridFutureChainListener.apply(GridFutureChainListener.java:30) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:399) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:511) > at > org.apache.ignite.internal.processors.cache.GridCacheFutureAdapter.onDone(GridCacheFutureAdapter.java:55) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:490) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.onDone(GridPartitionedSingleGetFuture.java:935) > at > org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:467) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.setSkipValueResult(GridPartitionedSingleGetFuture.java:759) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridPartitionedSingleGetFuture.onResult(GridPartitionedSingleGetFuture.java:636) > at > org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtCacheAdapter.processNearSingleGetResponse(GridDhtCacheAdapter.java:368) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache.access$100(GridDhtColocatedCache.java:88) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$2.apply(GridDhtColocatedCache.java:133) > at > org.apache.ignite.internal.processors.cache.distributed.dht.colocated.GridDhtColocatedCache$2.apply(GridDhtColocatedCache.java:131) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1143) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:592) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:393) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:319) > at > org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:309) > at > org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1908) > at > org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1529) > at > org.apache.ignite.internal.managers.communication.GridIoManager$9.execute(GridIoManager.java:1422) > at > org.apache.ignite.internal.managers.communication.TraceRunnable.run(TraceRunnable.java:55) > at > org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:
[jira] [Updated] (IGNITE-21478) OOM crash with unstable topology
[ https://issues.apache.org/jira/browse/IGNITE-21478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-21478: --- Labels: ise (was: ) > OOM crash with unstable topology > > > Key: IGNITE-21478 > URL: https://issues.apache.org/jira/browse/IGNITE-21478 > Project: Ignite > Issue Type: Bug >Reporter: Luchnikov Alexander >Priority: Minor > Labels: ise > Attachments: histo.png > > > User cases: > 1) Frequent entry/exit of a thick client into the topology leads to a crash > of the server node due to OMM. > 2) Frequent creation and destroy of caches leads to a server node crash due > to OOM. > topVer=20098 > Part of the log before the OOM crash, pay attention to *topVer=20098* > {code:java} > Metrics for local node (to disable set 'metricsLogFrequency' to 0) > ^-- Node [id=f080abcd, uptime=3 days, 09:00:55.274] > ^-- Cluster [hosts=4, CPUs=6, servers=2, clients=2, topVer=20098, > minorTopVer=6] > ^-- Network [addrs=[192.168.1.2, 127.0.0.1], discoPort=47500, > commPort=47100] > ^-- CPU [CPUs=2, curLoad=86.83%, avgLoad=21.9%, GC=23.9%] > ^-- Heap [used=867MB, free=15.29%, comm=1024MB] > ^-- Outbound messages queue [size=0] > ^-- Public thread pool [active=0, idle=7, qSize=0] > ^-- System thread pool [active=0, idle=8, qSize=0] > ^-- Striped thread pool [active=0, idle=8, qSize=0] > {code} > Histogram from heap-dump after node failed > !histo.png! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21478) OOM crash with unstable topology
[ https://issues.apache.org/jira/browse/IGNITE-21478?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-21478: --- Ignite Flags: Release Notes Required (was: Docs Required,Release Notes Required) > OOM crash with unstable topology > > > Key: IGNITE-21478 > URL: https://issues.apache.org/jira/browse/IGNITE-21478 > Project: Ignite > Issue Type: Bug >Reporter: Luchnikov Alexander >Priority: Minor > Labels: ise > Attachments: histo.png > > > User cases: > 1) Frequent entry/exit of a thick client into the topology leads to a crash > of the server node due to OMM. > 2) Frequent creation and destroy of caches leads to a server node crash due > to OOM. > topVer=20098 > Part of the log before the OOM crash, pay attention to *topVer=20098* > {code:java} > Metrics for local node (to disable set 'metricsLogFrequency' to 0) > ^-- Node [id=f080abcd, uptime=3 days, 09:00:55.274] > ^-- Cluster [hosts=4, CPUs=6, servers=2, clients=2, topVer=20098, > minorTopVer=6] > ^-- Network [addrs=[192.168.1.2, 127.0.0.1], discoPort=47500, > commPort=47100] > ^-- CPU [CPUs=2, curLoad=86.83%, avgLoad=21.9%, GC=23.9%] > ^-- Heap [used=867MB, free=15.29%, comm=1024MB] > ^-- Outbound messages queue [size=0] > ^-- Public thread pool [active=0, idle=7, qSize=0] > ^-- System thread pool [active=0, idle=8, qSize=0] > ^-- Striped thread pool [active=0, idle=8, qSize=0] > {code} > Histogram from heap-dump after node failed > !histo.png! -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21366) AssertionError during the execution of the request
[ https://issues.apache.org/jira/browse/IGNITE-21366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-21366: --- Ignite Flags: Release Notes Required (was: Docs Required,Release Notes Required) > AssertionError during the execution of the request > --- > > Key: IGNITE-21366 > URL: https://issues.apache.org/jira/browse/IGNITE-21366 > Project: Ignite > Issue Type: Bug >Reporter: Aleksandr Nikolaev >Assignee: Aleksandr Nikolaev >Priority: Major > Labels: ise > Fix For: 2.17 > > Time Spent: 20m > Remaining Estimate: 0h > > If GridH2Table#cache size is greater than int, then we get an AssertionError: > {code} > -26T19:32:35,247][ERROR][main][] Test failed > [test=RowCountTableStatisticsUsageTest#compareJoinsWithConditionsOnBothTables[cacheMode=REPLICATED], > duration=10] > java.lang.AssertionError: totalRowCnt=-4294967096, localRowCount=-2147483548 > at > org.apache.ignite.internal.processors.query.h2.opt.TableStatistics.(TableStatistics.java:34) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.refreshStatsIfNeeded(GridH2Table.java:1055) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.opt.GridH2Table.getRowCountApproximation(GridH2Table.java:1013) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.opt.GridH2IndexBase.getRowCountApproximation(GridH2IndexBase.java:226) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.opt.H2ScanIndex.getRowCountApproximation(H2ScanIndex.java:158) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.opt.H2ScanIndex.getCost(H2ScanIndex.java:289) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.opt.H2TableScanIndex.getCost(H2TableScanIndex.java:74) > ~[classes/:?] > at org.h2.table.Table.getBestPlanItem(Table.java:714) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.table.TableFilter.getBestPlanItem(TableFilter.java:224) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.table.Plan.calculateCost(Plan.java:121) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.command.dml.Optimizer.testPlan(Optimizer.java:180) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.command.dml.Optimizer.calculateBestPlan(Optimizer.java:81) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.command.dml.Optimizer.optimize(Optimizer.java:239) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.command.dml.Select.preparePlan(Select.java:1018) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.command.dml.Select.prepare(Select.java:884) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.command.dml.Explain.prepare(Explain.java:49) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.command.Parser.prepareCommand(Parser.java:283) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.engine.Session.prepareLocal(Session.java:611) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.engine.Session.prepareCommand(Session.java:549) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1247) > ~[h2-1.4.197.jar:1.4.197] > at > org.h2.jdbc.JdbcPreparedStatement.(JdbcPreparedStatement.java:76) > ~[h2-1.4.197.jar:1.4.197] > at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:694) > ~[h2-1.4.197.jar:1.4.197] > at > org.apache.ignite.internal.processors.query.h2.H2Connection.prepareStatementNoCache(H2Connection.java:191) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.H2PooledConnection.prepareStatementNoCache(H2PooledConnection.java:109) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.QueryParser.parseH2(QueryParser.java:341) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.QueryParser.parse0(QueryParser.java:225) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.QueryParser.parse(QueryParser.java:138) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.querySqlFields(IgniteH2Indexing.java:1011) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3115) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor$2.applyx(GridQueryProcessor.java:3086) > ~[classes/:?] > at > org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:3821) > ~[classes/:?] > at > org.apache.ignite.internal.processors.query.GridQueryProcessor.lambda$querySqlFields$3(GridQueryProcessor.java:3132) > ~[
[jira] [Created] (IGNITE-21421) Calcite engine. Tuple (row) comparison is not working
Aleksey Plekhanov created IGNITE-21421: -- Summary: Calcite engine. Tuple (row) comparison is not working Key: IGNITE-21421 URL: https://issues.apache.org/jira/browse/IGNITE-21421 Project: Ignite Issue Type: Bug Reporter: Aleksey Plekhanov Assignee: Aleksey Plekhanov Currentrly, row comparison fails with an error and don't use index. Reproducer: {code:java} sql("CREATE TABLE test (id INTEGER, val INTEGER)"); sql("CREATE INDEX test_idx ON test (id, val)"); sql("INSERT INTO test VALUES (0, 0), (0, 1), (1, 0), (1, 1)"); assertQuery("SELECT * FROM test WHERE (id, val) >= (?, ?)") .withParams(0, 1) //.matches(QueryChecker.containsIndexScan("PUBLIC", "TEST", "TEST_IDX")) .returns(0, 1) .returns(1, 0) .returns(1, 1) .check(); {code} Exception: {noformat} Caused by: java.lang.RuntimeException: while resolving method 'ge[class [Ljava.lang.Object;, class [Ljava.lang.Object;]' in class class org.apache.calcite.runtime.SqlFunctions at org.apache.calcite.linq4j.tree.Types.lookupMethod(Types.java:318) at org.apache.calcite.linq4j.tree.Expressions.call(Expressions.java:449) at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexImpTable$BinaryImplementor.implementSafe(RexImpTable.java:1233) at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexImpTable$AbstractRexCallImplementor.genValueStatement(RexImpTable.java:1950) at org.apache.ignite.internal.processors.query.calcite.exec.exp.RexImpTable$AbstractRexCallImplementor.implement(RexImpTable.java:1911) {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)
[jira] [Updated] (IGNITE-21351) NPE on metric "TransactionsHoldingLockNumber" if tx is not initialized
[ https://issues.apache.org/jira/browse/IGNITE-21351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aleksey Plekhanov updated IGNITE-21351: --- Labels: ise (was: ) > NPE on metric "TransactionsHoldingLockNumber" if tx is not initialized > -- > > Key: IGNITE-21351 > URL: https://issues.apache.org/jira/browse/IGNITE-21351 > Project: Ignite > Issue Type: Bug >Reporter: Aleksey Plekhanov >Assignee: Aleksey Plekhanov >Priority: Major > Labels: ise > > Attempt to get metric "TransactionsHoldingLockNumber" via JMX for not > initialized transaction failed with: > {noformat} > java.lang.NullPointerException > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxStateImpl.empty(IgniteTxStateImpl.java:448) > at > org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.empty(IgniteTxLocalAdapter.java:244) > at > org.apache.ignite.internal.processors.cache.transactions.TransactionMetricsAdapter.txHoldingLockNum(TransactionMetricsAdapter.java:368) > at > org.apache.ignite.internal.processors.cache.transactions.TransactionMetricsAdapter.getTransactionsHoldingLockNumber(TransactionMetricsAdapter.java:188) > at > org.apache.ignite.internal.processors.cache.transactions.TransactionMetricsAdapter$TransactionMetricsSnapshot.getTransactionsHoldingLockNumber(TransactionMetricsAdapter.java:468) > at > org.apache.ignite.internal.TransactionMetricsMxBeanImpl.getTransactionsHoldingLockNumber(TransactionMetricsMxBeanImpl.java:102) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)