[jira] [Commented] (IGNITE-12068) puzzling select result

2019-08-13 Thread JerryKwan (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906952#comment-16906952
 ] 

JerryKwan commented on IGNITE-12068:


Hi [~Pavlukhin], thank for looking into this.
If the primary key is single, it must be only exists one result row, but if the 
primary key is composite, it depends
If the primary key is an interger, we can use the filtering condition WHERE id 
>= 1 and id < 2 as a temporary solution, but what should we do if it is an 
string?

> puzzling select result
> --
>
> Key: IGNITE-12068
> URL: https://issues.apache.org/jira/browse/IGNITE-12068
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.7.5
> Environment: System version: CentOS Linux release 7.6.1810 (Core)
> Apache Ignite version: apache-ignite-2.7.5-1.noarch
>Reporter: JerryKwan
>Priority: Critical
>
> select using the first primary key only returns one record, but it should 
> return more records.
> The following is how to reproduce this problem
> 1, create a table using
> CREATE TABLE IF NOT EXISTS Person(
>  id int,
>  city_id int,
>  name varchar,
>  age int, 
>  company varchar,
>  PRIMARY KEY (id, city_id)
> );
> 2, insert some records
> INSERT INTO Person (id, name, city_id) VALUES (1, 'John Doe', 3);
> INSERT INTO Person (id, name, city_id) VALUES (1, 'John Dean', 4);
> INSERT INTO Person (id, name, city_id) VALUES (2, 'Alex', 4);
> 3, query using 'select * from Person' show all of the records, expected
> [http://www.passimage.in/i/03da31c8f23cf64580d5.png]
> 4, query using 'select * from Person where id=1', only get one record, NOT 
> expected
> [http://www.passimage.in/i/f5491491a70c5d796823.png]
> 5, query using 'select * from Person where city_id=4' get  two records, 
> expected
> [http://www.passimage.in/i/ff0ee4f5e882983d779d.png]
> Why  'select * from Person where id=1', only get one record? and how to fix 
> this? Is there any special operations/configurations to do?



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-12068) puzzling select result

2019-08-13 Thread Ivan Pavlukhin (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-12068?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Pavlukhin updated IGNITE-12068:

Priority: Critical  (was: Major)

> puzzling select result
> --
>
> Key: IGNITE-12068
> URL: https://issues.apache.org/jira/browse/IGNITE-12068
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.7.5
> Environment: System version: CentOS Linux release 7.6.1810 (Core)
> Apache Ignite version: apache-ignite-2.7.5-1.noarch
>Reporter: JerryKwan
>Priority: Critical
>
> select using the first primary key only returns one record, but it should 
> return more records.
> The following is how to reproduce this problem
> 1, create a table using
> CREATE TABLE IF NOT EXISTS Person(
>  id int,
>  city_id int,
>  name varchar,
>  age int, 
>  company varchar,
>  PRIMARY KEY (id, city_id)
> );
> 2, insert some records
> INSERT INTO Person (id, name, city_id) VALUES (1, 'John Doe', 3);
> INSERT INTO Person (id, name, city_id) VALUES (1, 'John Dean', 4);
> INSERT INTO Person (id, name, city_id) VALUES (2, 'Alex', 4);
> 3, query using 'select * from Person' show all of the records, expected
> [http://www.passimage.in/i/03da31c8f23cf64580d5.png]
> 4, query using 'select * from Person where id=1', only get one record, NOT 
> expected
> [http://www.passimage.in/i/f5491491a70c5d796823.png]
> 5, query using 'select * from Person where city_id=4' get  two records, 
> expected
> [http://www.passimage.in/i/ff0ee4f5e882983d779d.png]
> Why  'select * from Person where id=1', only get one record? and how to fix 
> this? Is there any special operations/configurations to do?



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-12068) puzzling select result

2019-08-13 Thread Ivan Pavlukhin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12068?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906943#comment-16906943
 ] 

Ivan Pavlukhin commented on IGNITE-12068:
-

[~JerryKwan], you faced (for our shame) a bug related to an optimization for a 
primary key equality lookup. Erroneously it assumes that there should be only 
one result row. As a workaround I was able to get proper results using 
filtering condition {{WHERE id >= 1 and id < 2}}. But it is really weird, hope 
to fix it shortly.

> puzzling select result
> --
>
> Key: IGNITE-12068
> URL: https://issues.apache.org/jira/browse/IGNITE-12068
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.7.5
> Environment: System version: CentOS Linux release 7.6.1810 (Core)
> Apache Ignite version: apache-ignite-2.7.5-1.noarch
>Reporter: JerryKwan
>Priority: Major
>
> select using the first primary key only returns one record, but it should 
> return more records.
> The following is how to reproduce this problem
> 1, create a table using
> CREATE TABLE IF NOT EXISTS Person(
>  id int,
>  city_id int,
>  name varchar,
>  age int, 
>  company varchar,
>  PRIMARY KEY (id, city_id)
> );
> 2, insert some records
> INSERT INTO Person (id, name, city_id) VALUES (1, 'John Doe', 3);
> INSERT INTO Person (id, name, city_id) VALUES (1, 'John Dean', 4);
> INSERT INTO Person (id, name, city_id) VALUES (2, 'Alex', 4);
> 3, query using 'select * from Person' show all of the records, expected
> [http://www.passimage.in/i/03da31c8f23cf64580d5.png]
> 4, query using 'select * from Person where id=1', only get one record, NOT 
> expected
> [http://www.passimage.in/i/f5491491a70c5d796823.png]
> 5, query using 'select * from Person where city_id=4' get  two records, 
> expected
> [http://www.passimage.in/i/ff0ee4f5e882983d779d.png]
> Why  'select * from Person where id=1', only get one record? and how to fix 
> this? Is there any special operations/configurations to do?



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (IGNITE-12068) puzzling select result

2019-08-13 Thread JerryKwan (JIRA)
JerryKwan created IGNITE-12068:
--

 Summary: puzzling select result
 Key: IGNITE-12068
 URL: https://issues.apache.org/jira/browse/IGNITE-12068
 Project: Ignite
  Issue Type: Bug
  Components: sql
Affects Versions: 2.7.5
 Environment: System version: CentOS Linux release 7.6.1810 (Core)
Apache Ignite version: apache-ignite-2.7.5-1.noarch
Reporter: JerryKwan


select using the first primary key only returns one record, but it should 
return more records.
The following is how to reproduce this problem

1, create a table using
CREATE TABLE IF NOT EXISTS Person(
 id int,
 city_id int,
 name varchar,
 age int, 
 company varchar,
 PRIMARY KEY (id, city_id)
);
2, insert some records
INSERT INTO Person (id, name, city_id) VALUES (1, 'John Doe', 3);
INSERT INTO Person (id, name, city_id) VALUES (1, 'John Dean', 4);
INSERT INTO Person (id, name, city_id) VALUES (2, 'Alex', 4);
3, query using 'select * from Person' show all of the records, expected
[http://www.passimage.in/i/03da31c8f23cf64580d5.png]
4, query using 'select * from Person where id=1', only get one record, NOT 
expected
[http://www.passimage.in/i/f5491491a70c5d796823.png]
5, query using 'select * from Person where city_id=4' get  two records, expected
[http://www.passimage.in/i/ff0ee4f5e882983d779d.png]

Why  'select * from Person where id=1', only get one record? and how to fix 
this? Is there any special operations/configurations to do?



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (IGNITE-12067) SQL: metrics of executions of user queries

2019-08-13 Thread Pavel Kuznetsov (JIRA)
Pavel Kuznetsov created IGNITE-12067:


 Summary: SQL: metrics of executions of user queries
 Key: IGNITE-12067
 URL: https://issues.apache.org/jira/browse/IGNITE-12067
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Pavel Kuznetsov
Assignee: Pavel Kuznetsov


Lets add: 

- Counter of success executed user queries.
- Counter of failed executed user queries.
- Counter of failed by OOM executed user queries.
- Counter of cancelled user queries.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-12066) Move transmission chunk size to IgniteConfiguration

2019-08-13 Thread Maxim Muzafarov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-12066?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-12066:
-
Summary: Move transmission chunk size to IgniteConfiguration  (was: Add 
transmission chunk size to IgniteConfiguration)

> Move transmission chunk size to IgniteConfiguration
> ---
>
> Key: IGNITE-12066
> URL: https://issues.apache.org/jira/browse/IGNITE-12066
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Maxim Muzafarov
>Priority: Minor
>  Labels: iep-28
>
> Currently, the {{DFLT_CHUNK_SIZE_BYTES}} constant value is used to set the 
> size of chunks with data sending to the remote node during the file 
> transmission.
> This value must be set from IgniteConfiguration.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-12065) File transmission speed limit

2019-08-13 Thread Maxim Muzafarov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-12065?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-12065:
-
Priority: Minor  (was: Major)

> File transmission speed limit
> -
>
> Key: IGNITE-12065
> URL: https://issues.apache.org/jira/browse/IGNITE-12065
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Maxim Muzafarov
>Priority: Minor
>  Labels: iep-28
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> We need to limit transmission speed since the system resources can be 
> exhausted. 



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (IGNITE-12066) Add transmission chunk size to IgniteConfiguration

2019-08-13 Thread Maxim Muzafarov (JIRA)
Maxim Muzafarov created IGNITE-12066:


 Summary: Add transmission chunk size to IgniteConfiguration
 Key: IGNITE-12066
 URL: https://issues.apache.org/jira/browse/IGNITE-12066
 Project: Ignite
  Issue Type: Improvement
Reporter: Maxim Muzafarov


Currently, the {{DFLT_CHUNK_SIZE_BYTES}} constant value is used to set the size 
of chunks with data sending to the remote node during the file transmission.

This value must be set from IgniteConfiguration.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (IGNITE-12065) File transmission speed limit

2019-08-13 Thread Maxim Muzafarov (JIRA)
Maxim Muzafarov created IGNITE-12065:


 Summary: File transmission speed limit
 Key: IGNITE-12065
 URL: https://issues.apache.org/jira/browse/IGNITE-12065
 Project: Ignite
  Issue Type: Improvement
Reporter: Maxim Muzafarov


We need to limit transmission speed since the system resources can be 
exhausted. 



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-12065) File transmission speed limit

2019-08-13 Thread Maxim Muzafarov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-12065?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-12065:
-
Ignite Flags:   (was: Docs Required)

> File transmission speed limit
> -
>
> Key: IGNITE-12065
> URL: https://issues.apache.org/jira/browse/IGNITE-12065
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Maxim Muzafarov
>Priority: Major
>  Labels: iep-28
>
> We need to limit transmission speed since the system resources can be 
> exhausted. 



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-12059) DiskPageCompressionConfigValidationTest.testIncorrectStaticCacheConfiguration fails

2019-08-13 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12059?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906401#comment-16906401
 ] 

Ignite TC Bot commented on IGNITE-12059:


{panel:title=Branch: [pull/6765/head] Base: [master] : Possible Blockers 
(2)|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}
{color:#d04437}Platform C++ (Win x64 / Release){color} [[tests 1 
BuildFailureOnMessage 
|https://ci.ignite.apache.org/viewLog.html?buildId=4495542]]
* IgniteThinClientTest: CacheClientTestSuite: CacheClientPartitionsRebalance - 
Test has low fail rate in base branch 0,0% and is not flaky

{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=4491523&buildTypeId=IgniteTests24Java8_RunAll]

> DiskPageCompressionConfigValidationTest.testIncorrectStaticCacheConfiguration 
> fails
> ---
>
> Key: IGNITE-12059
> URL: https://issues.apache.org/jira/browse/IGNITE-12059
> Project: Ignite
>  Issue Type: Bug
>Reporter: Eduard Shangareev
>Assignee: Eduard Shangareev
>Priority: Major
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> DiskPageCompressionConfigValidationTest.testIncorrectStaticCacheConfiguration 
> fails because validation was removed in IGNITE-9562.
> Need to restore this validation.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Comment Edited] (IGNITE-12064) Check license headers by checkstyle plugin

2019-08-13 Thread Maxim Muzafarov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906380#comment-16906380
 ] 

Maxim Muzafarov edited comment on IGNITE-12064 at 8/13/19 4:35 PM:
---

[~dpavlov]

Thank you for this notice. 
I think it is no matter how headers check its more important that they must 
persist in the source files. Anyway, I'll check ASF standards.


was (Author: mmuzaf):
[~dpavlov]

Thank you for this notice. 
I think it is no matter how the header should be checked its more important 
that they must persist in the source files. Anyway, I'll check ASF standards.

> Check license headers by checkstyle plugin
> --
>
> Key: IGNITE-12064
> URL: https://issues.apache.org/jira/browse/IGNITE-12064
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Maxim Muzafarov
>Priority: Major
>  Labels: checkstyle
>
> Currently, the {{apache-rat-plugin}} is used to check that source files 
> contain the specific license header. The suite {{[Licenses Headers]}} is 
> configured on TC to do so.
> It is possible to achieve the same thing with {{checkstyle-plugin}} (such it 
> is already run on each build). This will save TC resources consumed to run 
> both suites and simplify Ignite {{pom.xml}}.
> [1] https://checkstyle.sourceforge.io/config_header.html



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-12064) Check license headers by checkstyle plugin

2019-08-13 Thread Maxim Muzafarov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906380#comment-16906380
 ] 

Maxim Muzafarov commented on IGNITE-12064:
--

[~dpavlov]

Thank you for this notice. 
I think it is no matter how the header should be checked its more important 
that they must persist in the source files. Anyway, I'll check ASF standards.

> Check license headers by checkstyle plugin
> --
>
> Key: IGNITE-12064
> URL: https://issues.apache.org/jira/browse/IGNITE-12064
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Maxim Muzafarov
>Priority: Major
>  Labels: checkstyle
>
> Currently, the {{apache-rat-plugin}} is used to check that source files 
> contain the specific license header. The suite {{[Licenses Headers]}} is 
> configured on TC to do so.
> It is possible to achieve the same thing with {{checkstyle-plugin}} (such it 
> is already run on each build). This will save TC resources consumed to run 
> both suites and simplify Ignite {{pom.xml}}.
> [1] https://checkstyle.sourceforge.io/config_header.html



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-11075) Index rebuild procedure over cache partition file

2019-08-13 Thread Maxim Muzafarov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-11075?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-11075:
-
Description: 
The node can own partition when partition data is rebalanced and cache indexes 
are ready. For the message-based cluster rebalancing, approach indexes are 
rebuilding simultaneously with cache data loading. For the file-based 
rebalancing approach, the index rebuild procedure must be finished before the 
partition state is set to the OWNING state. 

We need to rebuild local SQL indexes (the {{index.bin}} file) when partition 
file has been received. Crash-recovery guarantees must be supported by a node 
since index-rebuild performs on the node in the topology.

  was:We need to rebuild a {{index.bin}} file when all demanded partitions 
uploaded successfully to the demander node.


> Index rebuild procedure over cache partition file
> -
>
> Key: IGNITE-11075
> URL: https://issues.apache.org/jira/browse/IGNITE-11075
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Maxim Muzafarov
>Priority: Major
>  Labels: iep-28
>
> The node can own partition when partition data is rebalanced and cache 
> indexes are ready. For the message-based cluster rebalancing, approach 
> indexes are rebuilding simultaneously with cache data loading. For the 
> file-based rebalancing approach, the index rebuild procedure must be finished 
> before the partition state is set to the OWNING state. 
> We need to rebuild local SQL indexes (the {{index.bin}} file) when partition 
> file has been received. Crash-recovery guarantees must be supported by a node 
> since index-rebuild performs on the node in the topology.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-11075) Index rebuild procedure over cache partition file

2019-08-13 Thread Maxim Muzafarov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-11075?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-11075:
-
Summary: Index rebuild procedure over cache partition file  (was: Implement 
index rebuild procedure after partitions uploaded)

> Index rebuild procedure over cache partition file
> -
>
> Key: IGNITE-11075
> URL: https://issues.apache.org/jira/browse/IGNITE-11075
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Maxim Muzafarov
>Priority: Major
>  Labels: iep-28
>
> We need to rebuild a {{index.bin}} file when all demanded partitions uploaded 
> successfully to the demander node.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-11051) Implement partition upload process as new part of GridCachePreloader

2019-08-13 Thread Maxim Muzafarov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-11051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-11051:
-
Issue Type: Task  (was: Sub-task)
Parent: (was: IGNITE-8020)

> Implement partition upload process as new part of GridCachePreloader
> 
>
> Key: IGNITE-11051
> URL: https://issues.apache.org/jira/browse/IGNITE-11051
> Project: Ignite
>  Issue Type: Task
>  Components: persistence
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Major
> Fix For: None
>
>
> *Preloader*
> A new implementation of cache entries preloader assume to be done. The new 
> implementation must send and receive cache partition files over the 
> CommunicationSpi channels by chunks of data with validation received items.
> The new layer over the cache partition file must support direct using of 
> FileChannel#transferTo method over the CommunicationSpi pipe connection;
> # The process manager must support transferring the cache partition file by 
> chunks of predefined size (multiply to the page size) one by one;
> # The connection bandwidth of the cache partition file transfer must have the 
> ability to be limited at runtime;



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-10619) Add support files transmission between nodes over connection via CommunicationSpi

2019-08-13 Thread Maxim Muzafarov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-10619?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-10619:
-
Fix Version/s: 2.8

> Add support files transmission between nodes over connection via 
> CommunicationSpi
> -
>
> Key: IGNITE-10619
> URL: https://issues.apache.org/jira/browse/IGNITE-10619
> Project: Ignite
>  Issue Type: Sub-task
>  Components: persistence
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Major
>  Labels: iep-28
> Fix For: 2.8
>
>  Time Spent: 10h 10m
>  Remaining Estimate: 0h
>
> Partition preloader must support cache partition file relocation from one 
> cluster node to another (the zero copy algorithm [1] assume to be used by 
> default). To achieve this, the file transfer machinery must be implemented at 
> Apache Ignite over Communication SPI.
> _CommunicationSpi_
> Ignite's Comminication SPI must support to:
> * establishing channel connections to the remote node to an arbitrary topic 
> (GridTopic) with predefined processing policy;
> * listening incoming channel creation events and registering connection 
> handlers on the particular node;
> * an arbitrary set of channel parameters on connection handshake;
> _FileTransmitProcessor_
> The file transmission manager must support to:
> * using different approaches of incoming data handling – buffered and direct 
> (zero-copy approach of FileChannel#transferTo);
> * transferring data by chunks of predefined size with saving intermediate 
> results;
> * re-establishing connection if an error occurs and continue file 
> upload\download;
> * limiting connection bandwidth (upload and download) at runtime;



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-11073) Take consistent cache partitions snapshot

2019-08-13 Thread Maxim Muzafarov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-11073?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-11073:
-
Summary: Take consistent cache partitions snapshot  (was: Add Copy-on-Write 
machinery to the Checkpoiner)

> Take consistent cache partitions snapshot
> -
>
> Key: IGNITE-11073
> URL: https://issues.apache.org/jira/browse/IGNITE-11073
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Major
>  Labels: iep-28
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> *Checkpointer*
> When the supplier node receives the cache partition file demand request it 
> will send the file over the CommunicationSpi. The cache partition file can be 
> concurrently updated by checkpoint thread during its transmission. To 
> guarantee the file consistency Сheckpointer must use Copy-on-Write [3] 
> tehnique and save a copy of updated chunk into the temporary file.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-12064) Check license headers by checkstyle plugin

2019-08-13 Thread Dmitriy Pavlov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906351#comment-16906351
 ] 

Dmitriy Pavlov commented on IGNITE-12064:
-

I see rat plugin used in other Apache projects, so it is possible it is a 
standard for ASF projects. 

I'm not sure, but we should double-check it before we implement this change.

> Check license headers by checkstyle plugin
> --
>
> Key: IGNITE-12064
> URL: https://issues.apache.org/jira/browse/IGNITE-12064
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Maxim Muzafarov
>Priority: Major
>  Labels: checkstyle
>
> Currently, the {{apache-rat-plugin}} is used to check that source files 
> contain the specific license header. The suite {{[Licenses Headers]}} is 
> configured on TC to do so.
> It is possible to achieve the same thing with {{checkstyle-plugin}} (such it 
> is already run on each build). This will save TC resources consumed to run 
> both suites and simplify Ignite {{pom.xml}}.
> [1] https://checkstyle.sourceforge.io/config_header.html



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-9275) [POC] Introduce mechanism to fetch partition file via a p2p protocol

2019-08-13 Thread Maxim Muzafarov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-9275?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Maxim Muzafarov updated IGNITE-9275:

Summary: [POC] Introduce mechanism to fetch partition file via a p2p 
protocol  (was: Introduce mechanism to fetch partition file via a p2p protocol)

> [POC] Introduce mechanism to fetch partition file via a p2p protocol
> 
>
> Key: IGNITE-9275
> URL: https://issues.apache.org/jira/browse/IGNITE-9275
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Alexey Goncharuk
>Assignee: Maxim Muzafarov
>Priority: Major
>  Labels: iep-28
> Fix For: 2.8
>
>
> As a first step to estimate how much faster the file-rebalancing may be, I 
> suggest to implement a simple partition fetch procedure via the communication 
> SPI extension: 
> 1) Node A sends a partition fetch request to node B 
> 2) Node B starts a checkpoint and creates a local copy of the partition. Note 
> that during the partition copy there might be concurrent ongoing checkpoints, 
> this must be handled properly
> 3) Node B establishes a new TCP connection on the TCP communication port 
> (handshake and verification is assumed)
> 4) Node B calls transferFile (or native analogue, investigation needed) to 
> send the partition file in the most effective way
> 5) Node A writes the file to a specified location on the local file system
> After this mechanics is implemented, we need to hack the rebalance code and 
> use partition fetch logic instead of regular rebalance to measure
> 1) How much faster (or slower) the new approach performs
> 2) How it affects the concurrent transactions in the grid



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-12064) Check license headers by checkstyle plugin

2019-08-13 Thread Pavel Pereslegin (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-12064?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pavel Pereslegin updated IGNITE-12064:
--
Summary: Check license headers by checkstyle plugin  (was: Check licence 
headers by checkstyle plugin)

> Check license headers by checkstyle plugin
> --
>
> Key: IGNITE-12064
> URL: https://issues.apache.org/jira/browse/IGNITE-12064
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Maxim Muzafarov
>Priority: Major
>  Labels: checkstyle
>
> Currently, the {{apache-rat-plugin}} is used to check that source files 
> contain the specific license header. The suite {{[Licenses Headers]}} is 
> configured on TC to do so.
> It is possible to achieve the same thing with {{checkstyle-plugin}} (such it 
> is already run on each build). This will save TC resources consumed to run 
> both suites and simplify Ignite {{pom.xml}}.
> [1] https://checkstyle.sourceforge.io/config_header.html



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-11978) Javadoc enhancement for the ReadRepair feature.

2019-08-13 Thread Nikolay Izhikov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11978?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906242#comment-16906242
 ] 

Nikolay Izhikov commented on IGNITE-11978:
--

[~slava.koptilin]
[~avinogradov]

I answered in PR.

> Javadoc enhancement for the ReadRepair feature.
> ---
>
> Key: IGNITE-11978
> URL: https://issues.apache.org/jira/browse/IGNITE-11978
> Project: Ignite
>  Issue Type: Bug
>Reporter: Vyacheslav Koptilin
>Assignee: Vyacheslav Koptilin
>Priority: Major
>  Labels: iep-31
> Fix For: 2.8
>
>  Time Spent: 4h 50m
>  Remaining Estimate: 0h
>
> The newly added `ReadRepair` feature requires Javadoc improvements.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-12046) [IEP-35] LongMetric interface contains redundant methods.

2019-08-13 Thread Andrey Gura (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906239#comment-16906239
 ] 

Andrey Gura commented on IGNITE-12046:
--

[~NIzhikov] Thanks! No we shouldn't. Only {{LongMetric}} interface had this 
methods.

> [IEP-35] LongMetric interface contains redundant methods.
> -
>
> Key: IGNITE-12046
> URL: https://issues.apache.org/jira/browse/IGNITE-12046
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Gura
>Assignee: Andrey Gura
>Priority: Trivial
>  Labels: IEP-35
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The following methods on {{LongMetric}} interface a redundant and have the 
> same functionality:
> * {{get}}
> * {{longValue}}
> Mentioned methods should be removed.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (IGNITE-12064) Check licence headers by checkstyle plugin

2019-08-13 Thread Maxim Muzafarov (JIRA)
Maxim Muzafarov created IGNITE-12064:


 Summary: Check licence headers by checkstyle plugin
 Key: IGNITE-12064
 URL: https://issues.apache.org/jira/browse/IGNITE-12064
 Project: Ignite
  Issue Type: Improvement
Reporter: Maxim Muzafarov


Currently, the {{apache-rat-plugin}} is used to check that source files contain 
the specific license header. The suite {{[Licenses Headers]}} is configured on 
TC to do so.

It is possible to achieve the same thing with {{checkstyle-plugin}} (such it is 
already run on each build). This will save TC resources consumed to run both 
suites and simplify Ignite {{pom.xml}}.

[1] https://checkstyle.sourceforge.io/config_header.html



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-12046) [IEP-35] LongMetric interface contains redundant methods.

2019-08-13 Thread Nikolay Izhikov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12046?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906185#comment-16906185
 ] 

Nikolay Izhikov commented on IGNITE-12046:
--

LGTM

Should we create similar tickets for other metrics?

> [IEP-35] LongMetric interface contains redundant methods.
> -
>
> Key: IGNITE-12046
> URL: https://issues.apache.org/jira/browse/IGNITE-12046
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Andrey Gura
>Assignee: Andrey Gura
>Priority: Trivial
>  Labels: IEP-35
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The following methods on {{LongMetric}} interface a redundant and have the 
> same functionality:
> * {{get}}
> * {{longValue}}
> Mentioned methods should be removed.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (IGNITE-12063) Add ability to track system/user time held in transaction

2019-08-13 Thread Denis Chudov (JIRA)
Denis Chudov created IGNITE-12063:
-

 Summary: Add ability to track system/user time held in transaction
 Key: IGNITE-12063
 URL: https://issues.apache.org/jira/browse/IGNITE-12063
 Project: Ignite
  Issue Type: Improvement
Reporter: Denis Chudov
Assignee: Denis Chudov
 Fix For: 2.8


We should dump user/system times in transaction to log on commit/rollback, if 
duration of transaction more then threshold. I want to see in log on tx 
coordinator node:
# Transaction duration
# System time:
#* How long we were getting locks on keys?
#* How long we were preparing transaction?
#* How long we were commiting transaction?
# User time (transaction time - total system time) 
# Transaction status (commit/rollback)

The threshold could be set by system property and overwrite by JMX. We 
shouldn't dump times, if the property not set.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-12061) Silently fail while try to recreate already existing index with differ inline_size.

2019-08-13 Thread Dmitriy Pavlov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906168#comment-16906168
 ] 

Dmitriy Pavlov commented on IGNITE-12061:
-

For now, I've set 2.7.6 if we manage to include it into scope. If not, maybe 
fix version should be set to 2.8

> Silently fail while try to recreate already existing index with differ 
> inline_size.
> ---
>
> Key: IGNITE-12061
> URL: https://issues.apache.org/jira/browse/IGNITE-12061
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.5, 2.7, 2.7.5
>Reporter: Stanilovsky Evgeny
>Assignee: Stanilovsky Evgeny
>Priority: Major
> Fix For: 2.7.6
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> INLINE_SIZE differ from previous value is  not correctly sets.
> 1. create index idx0(c1, c2)
> 2. drop idx0
> 3. create index idx0(c1, c2) inline_size 100;
> inline_size remains the same, in this case default = 10.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-12061) Silently fail while try to recreate already existing index with differ inline_size.

2019-08-13 Thread Dmitriy Pavlov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-12061?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitriy Pavlov updated IGNITE-12061:

Fix Version/s: 2.7.6

> Silently fail while try to recreate already existing index with differ 
> inline_size.
> ---
>
> Key: IGNITE-12061
> URL: https://issues.apache.org/jira/browse/IGNITE-12061
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.5, 2.7, 2.7.5
>Reporter: Stanilovsky Evgeny
>Assignee: Stanilovsky Evgeny
>Priority: Major
> Fix For: 2.7.6
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> INLINE_SIZE differ from previous value is  not correctly sets.
> 1. create index idx0(c1, c2)
> 2. drop idx0
> 3. create index idx0(c1, c2) inline_size 100;
> inline_size remains the same, in this case default = 10.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-11953) BTree corruption caused by byte array values

2019-08-13 Thread Dmitriy Pavlov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-11953?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906158#comment-16906158
 ] 

Dmitriy Pavlov commented on IGNITE-11953:
-

[~dmagda], could you please avoid setting version to resolved tickets without 
cherry-picking commit?

If you want a ticket to be included into release, mention it in the discussion. 
This case it potentially lost commit. Now release is quite small and it is not 
a problem, but it would become a problem for 2.8 & 3.0.

> BTree corruption caused by byte array values
> 
>
> Key: IGNITE-11953
> URL: https://issues.apache.org/jira/browse/IGNITE-11953
> Project: Ignite
>  Issue Type: Bug
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
>Priority: Major
> Fix For: 2.7.6
>
>
> In some cases for caches with cache group, we can get BTree corruption 
> exception.
> {code}
> 09:53:58,890][SEVERE][sys-stripe-10-#11][] Critical system error detected. 
> Will be handled accordingly to configured handler [hnd=CustomFailureHandler 
> [ignoreCriticalErrors=false, disabled=false][StopNodeOrHaltFailureHandler 
> [tryStop=false, timeout=0]], failureCtx=FailureContext [type=CRITICAL_ERROR, 
> err=class o.a.i.i.transactions.IgniteTxHeuristicCheckedException: Committing 
> a transaction has produced runtime exception]]class 
> org.apache.ignite.internal.transactions.IgniteTxHeuristicCheckedException: 
> Committing a transaction has produced runtime exception
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxAdapter.heuristicException(IgniteTxAdapter.java:800)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxLocalAdapter.userCommit(IgniteTxLocalAdapter.java:922)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocalAdapter.localFinish(GridDhtTxLocalAdapter.java:799)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.localFinish(GridDhtTxLocal.java:608)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.finishTx(GridDhtTxLocal.java:478)
>   at 
> org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxLocal.commitDhtLocalAsync(GridDhtTxLocal.java:535)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.finishDhtLocal(IgniteTxHandler.java:1055)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.finish(IgniteTxHandler.java:931)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processNearTxFinishRequest(IgniteTxHandler.java:887)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$200(IgniteTxHandler.java:117)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$3.apply(IgniteTxHandler.java:209)
>   at 
> org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$3.apply(IgniteTxHandler.java:207)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1129)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:594)
>   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.access$100(GridCacheIoManager.java:109)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:308)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1568)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1196)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1092)
>   at 
> org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:504)
>   at 
> org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:119)
>   at java.lang.Thread.run(Thread.java:748)
> Caused by: class 
> org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
>  Runtime failure on search row: SearchRow [key=KeyCacheObjectImpl [part=427, 
> val=Grkg1DUF3yQE6tC9Se50mi5w.T, hasValBytes=true], hash=1872857770, 
> cacheId=-420893003]
>   at 
> org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTr

[jira] [Commented] (IGNITE-12051) Update javadoc for the IgniteKernal class

2019-08-13 Thread Maxim Muzafarov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906131#comment-16906131
 ] 

Maxim Muzafarov commented on IGNITE-12051:
--

[~Pavlukhin],

Thank you, I've applied all your suggestions.

> Update javadoc for the IgniteKernal class
> -
>
> Key: IGNITE-12051
> URL: https://issues.apache.org/jira/browse/IGNITE-12051
> Project: Ignite
>  Issue Type: Task
>Reporter: Maxim Muzafarov
>Assignee: Maxim Muzafarov
>Priority: Minor
> Fix For: 2.8
>
>  Time Spent: 6.5h
>  Remaining Estimate: 0h
>
> Update all ambiguous an empty javadoc comments, such as:
> {code}
> /** */
> /** Periodic starvation check interval. */ 
> private static final long PERIODIC_STARVATION_CHECK_FREQ = 1000 * 30; 
> /** Long jvm pause detector. */ 
> private LongJVMPauseDetector longJVMPauseDetector; 
> /** Scheduler. */ 
> private IgniteScheduler scheduler; 
> /** Stop guard. */ 
> private final AtomicBoolean stopGuard = new AtomicBoolean(); 
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-11697) Suspended optimistic transaction automatically resumes to last thread after a timeout.

2019-08-13 Thread Aleksey Plekhanov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-11697?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Plekhanov updated IGNITE-11697:
---
Fix Version/s: 2.8

> Suspended optimistic transaction automatically resumes to last thread after a 
> timeout.
> --
>
> Key: IGNITE-11697
> URL: https://issues.apache.org/jira/browse/IGNITE-11697
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.7
>Reporter: Aleksey Plekhanov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: iep-34
> Fix For: 2.8
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> This leads to unpredictable results from a user's point of view.
> Reproducer:
>  
> {code:java}
> public class IgniteTxSuspendAndTimeoutTest extends GridCommonAbstractTest {
> @Test
> public void testSuspendAndTimeout() throws Exception {
> Ignite ignite = startGrid(0);
> IgniteCache cache = ignite.createCache(new 
> CacheConfiguration<>().setName("c").setAtomicityMode(TRANSACTIONAL));
> Transaction tx1 = ignite.transactions().txStart(OPTIMISTIC, 
> TransactionIsolation.REPEATABLE_READ, 100, 0);
> cache.put(1, 1);
> tx1.suspend();
> assertNull(cache.get(1)); // Pass here.
> doSleep(200);
> assertNull(cache.get(1)); // Fail here. But we don't expect any 
> explicitly running transaction at this point.
> }
> }
> {code}
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-11685) Java thin client: Handle multiple async requests in parallel

2019-08-13 Thread Aleksey Plekhanov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-11685?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Plekhanov updated IGNITE-11685:
---
Fix Version/s: 2.8

> Java thin client: Handle multiple async requests in parallel
> 
>
> Key: IGNITE-11685
> URL: https://issues.apache.org/jira/browse/IGNITE-11685
> Project: Ignite
>  Issue Type: Improvement
>  Components: thin client
>Reporter: Aleksey Plekhanov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: iep-34
> Fix For: 2.8
>
>  Time Spent: 4.5h
>  Remaining Estimate: 0h
>
> In the current implementation {{ReliableChannel}} uses an exclusive lock to 
> send a request and waits for response synchronously. In this implementation, 
> there are no benefits of using multiple threads. To improve throughput and 
> latency we can implement async request/response processing on the client 
> side, since the server side is already async.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-9410) Add transactions support to thin clients

2019-08-13 Thread Aleksey Plekhanov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-9410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Plekhanov updated IGNITE-9410:
--
Summary: Add transactions support to thin clients  (was: MVCC: add support 
to thin clients)

> Add transactions support to thin clients
> 
>
> Key: IGNITE-9410
> URL: https://issues.apache.org/jira/browse/IGNITE-9410
> Project: Ignite
>  Issue Type: Task
>  Components: mvcc, thin client
>Reporter: Vladimir Ozerov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: iep-34
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently only ODBC and JDBC drivers support transactions and in not very 
> efficient way. We need to add transactional API to .NET, Java, CPP, NodeJS 
> and Python clients.
> Key pieces:
> # Add API to relevant clients
> # Review listener logic - currently we create separate threads. But is it 
> really needed? 
> ## If there is an implicit operation and no ongoing transaction, then 
> operation might be executed right away
> ## If cache operations are decoupled from threads, then we can resort to 
> reactive approach, when multiple transactions could be executed from the same 
> thread



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-10973) Migrate example module tests from Junit 4 to 5

2019-08-13 Thread Ivan Pavlukhin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-10973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16906006#comment-16906006
 ] 

Ivan Pavlukhin commented on IGNITE-10973:
-

[~ivanan.fed], I suppose we cannot proceed until the problem with .NET tests is 
fixed.

> Migrate example module tests from Junit 4 to 5
> --
>
> Key: IGNITE-10973
> URL: https://issues.apache.org/jira/browse/IGNITE-10973
> Project: Ignite
>  Issue Type: Sub-task
>Reporter: Ivan Fedotov
>Assignee: Ivan Fedotov
>Priority: Major
>  Labels: iep-30
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> For more information refer parent task.
> Migrate from Junit 4 to 5 in the example module.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-5714) Implementation of suspend/resume for pessimistic transactions

2019-08-13 Thread Aleksey Plekhanov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-5714?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905998#comment-16905998
 ] 

Aleksey Plekhanov commented on IGNITE-5714:
---

[~DmitriyGovorukhin], sorry, fixed.

> Implementation of suspend/resume for pessimistic transactions
> -
>
> Key: IGNITE-5714
> URL: https://issues.apache.org/jira/browse/IGNITE-5714
> Project: Ignite
>  Issue Type: Sub-task
>  Components: general
>Reporter: Alexey Kuznetsov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: iep-34
> Fix For: 2.8
>
>  Time Spent: 4h 40m
>  Remaining Estimate: 0h
>
> Support transaction suspend()\resume() operations for pessimistic 
> transactions. Resume can be called in another thread.
>_+But there is a problem+_: Imagine, we started pessimistic transaction in 
> thread T1 and then perform put operation, which leads to sending 
> GridDistributedLockRequest to another node. Lock request contains thread id 
> of the transaction. Then we call suspend, resume in another thread and we 
> also must send messages to other nodes to change thread id. 
> It seems complicated task.It’s better to get rid of sending thread id to the 
> nodes.
> We can use transaction xid on other nodes instead of thread id. Xid is sent 
> to nodes in GridDistributedLockRequest#nearXidVer
>_+Proposed solution+_ : On remote nodes instead of thread id of near 
> transaction GridDistributedLockRequest#threadId use its xid 
> GridDistributedLockRequest#nearXidVer.
> Remove usages of near transaction's thread id on remote nodes.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-5714) Implementation of suspend/resume for pessimistic transactions

2019-08-13 Thread Aleksey Plekhanov (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-5714?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Aleksey Plekhanov updated IGNITE-5714:
--
Fix Version/s: 2.8

> Implementation of suspend/resume for pessimistic transactions
> -
>
> Key: IGNITE-5714
> URL: https://issues.apache.org/jira/browse/IGNITE-5714
> Project: Ignite
>  Issue Type: Sub-task
>  Components: general
>Reporter: Alexey Kuznetsov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: iep-34
> Fix For: 2.8
>
>  Time Spent: 4h 40m
>  Remaining Estimate: 0h
>
> Support transaction suspend()\resume() operations for pessimistic 
> transactions. Resume can be called in another thread.
>_+But there is a problem+_: Imagine, we started pessimistic transaction in 
> thread T1 and then perform put operation, which leads to sending 
> GridDistributedLockRequest to another node. Lock request contains thread id 
> of the transaction. Then we call suspend, resume in another thread and we 
> also must send messages to other nodes to change thread id. 
> It seems complicated task.It’s better to get rid of sending thread id to the 
> nodes.
> We can use transaction xid on other nodes instead of thread id. Xid is sent 
> to nodes in GridDistributedLockRequest#nearXidVer
>_+Proposed solution+_ : On remote nodes instead of thread id of near 
> transaction GridDistributedLockRequest#threadId use its xid 
> GridDistributedLockRequest#nearXidVer.
> Remove usages of near transaction's thread id on remote nodes.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Updated] (IGNITE-5475) SQL: add CTE ("WITH AS") support

2019-08-13 Thread Ivan Pavlukhin (JIRA)


 [ 
https://issues.apache.org/jira/browse/IGNITE-5475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ivan Pavlukhin updated IGNITE-5475:
---
Summary: SQL: add CTE ("WITH AS") support  (was: SQL: add "WITH AS" support)

> SQL: add CTE ("WITH AS") support
> 
>
> Key: IGNITE-5475
> URL: https://issues.apache.org/jira/browse/IGNITE-5475
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Reporter: Andrew Mashenkov
>Priority: Minor
>  Labels: sql-engine
>
> Seems for now, H2 doesn't support "WITH AS" clause.
> We should throw exception until we found a workaround or "WITH" support be 
> added to H2.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-12061) Silently fail while try to recreate already existing index with differ inline_size.

2019-08-13 Thread Stanilovsky Evgeny (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12061?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905985#comment-16905985
 ] 

Stanilovsky Evgeny commented on IGNITE-12061:
-

[TC in 
progress|https://ci.ignite.apache.org/viewLog.html?buildId=4495067&buildTypeId=IgniteTests24Java8_RunAll]

> Silently fail while try to recreate already existing index with differ 
> inline_size.
> ---
>
> Key: IGNITE-12061
> URL: https://issues.apache.org/jira/browse/IGNITE-12061
> Project: Ignite
>  Issue Type: Bug
>  Components: sql
>Affects Versions: 2.5, 2.7, 2.7.5
>Reporter: Stanilovsky Evgeny
>Assignee: Stanilovsky Evgeny
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> INLINE_SIZE differ from previous value is  not correctly sets.
> 1. create index idx0(c1, c2)
> 2. drop idx0
> 3. create index idx0(c1, c2) inline_size 100;
> inline_size remains the same, in this case default = 10.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-5475) SQL: add "WITH AS" support

2019-08-13 Thread Ivan Pavlukhin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-5475?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905984#comment-16905984
 ] 

Ivan Pavlukhin commented on IGNITE-5475:


[~amashenkov] could we close this ticket as it seems that queries using syntax 
{{WITH ... AS}} (CTE) are accepted by Ignite?

> SQL: add "WITH AS" support
> --
>
> Key: IGNITE-5475
> URL: https://issues.apache.org/jira/browse/IGNITE-5475
> Project: Ignite
>  Issue Type: Task
>  Components: sql
>Reporter: Andrew Mashenkov
>Priority: Minor
>  Labels: sql-engine
>
> Seems for now, H2 doesn't support "WITH AS" clause.
> We should throw exception until we found a workaround or "WITH" support be 
> added to H2.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-5714) Implementation of suspend/resume for pessimistic transactions

2019-08-13 Thread Dmitriy Govorukhin (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-5714?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905979#comment-16905979
 ] 

Dmitriy Govorukhin commented on IGNITE-5714:


[~alex_pl] Why issue resolve without fix version?

> Implementation of suspend/resume for pessimistic transactions
> -
>
> Key: IGNITE-5714
> URL: https://issues.apache.org/jira/browse/IGNITE-5714
> Project: Ignite
>  Issue Type: Sub-task
>  Components: general
>Reporter: Alexey Kuznetsov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: iep-34
>  Time Spent: 4h 40m
>  Remaining Estimate: 0h
>
> Support transaction suspend()\resume() operations for pessimistic 
> transactions. Resume can be called in another thread.
>_+But there is a problem+_: Imagine, we started pessimistic transaction in 
> thread T1 and then perform put operation, which leads to sending 
> GridDistributedLockRequest to another node. Lock request contains thread id 
> of the transaction. Then we call suspend, resume in another thread and we 
> also must send messages to other nodes to change thread id. 
> It seems complicated task.It’s better to get rid of sending thread id to the 
> nodes.
> We can use transaction xid on other nodes instead of thread id. Xid is sent 
> to nodes in GridDistributedLockRequest#nearXidVer
>_+Proposed solution+_ : On remote nodes instead of thread id of near 
> transaction GridDistributedLockRequest#threadId use its xid 
> GridDistributedLockRequest#nearXidVer.
> Remove usages of near transaction's thread id on remote nodes.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-12062) IntMap throws NullPointerException when map is creating

2019-08-13 Thread Stepachev Maksim (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-12062?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905956#comment-16905956
 ] 

Stepachev Maksim commented on IGNITE-12062:
---

https://github.com/apache/ignite/pull/6769

> IntMap throws NullPointerException when map is creating
> ---
>
> Key: IGNITE-12062
> URL: https://issues.apache.org/jira/browse/IGNITE-12062
> Project: Ignite
>  Issue Type: Bug
>Reporter: Stepachev Maksim
>Assignee: Stepachev Maksim
>Priority: Major
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> The problem located here: 
> compactThreshold = (int)(COMPACT_LOAD_FACTOR * (entries.length >> 1));
> scaleThreshold = (int)(entries.length * SCALE_LOAD_FACTOR);
> The fix looks that:
> compactThreshold = (int)(COMPACT_LOAD_FACTOR * (entriesSize >> 1));
> scaleThreshold = (int)(entriesSize * SCALE_LOAD_FACTOR);



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (IGNITE-12062) IntMap throws NullPointerException when map is creating

2019-08-13 Thread Stepachev Maksim (JIRA)
Stepachev Maksim created IGNITE-12062:
-

 Summary: IntMap throws NullPointerException when map is creating
 Key: IGNITE-12062
 URL: https://issues.apache.org/jira/browse/IGNITE-12062
 Project: Ignite
  Issue Type: Bug
Reporter: Stepachev Maksim
Assignee: Stepachev Maksim


The problem located here: 
compactThreshold = (int)(COMPACT_LOAD_FACTOR * (entries.length >> 1));
scaleThreshold = (int)(entries.length * SCALE_LOAD_FACTOR);

The fix looks that:
compactThreshold = (int)(COMPACT_LOAD_FACTOR * (entriesSize >> 1));
scaleThreshold = (int)(entriesSize * SCALE_LOAD_FACTOR);



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Comment Edited] (IGNITE-9410) MVCC: add support to thin clients

2019-08-13 Thread Aleksey Plekhanov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-9410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905889#comment-16905889
 ] 

Aleksey Plekhanov edited comment on IGNITE-9410 at 8/13/19 7:38 AM:


The patch is ready, it includes server implementation and java client 
implementation to support transactions.

[~isapego], there is thin client protocol change in the patch (we discussed it 
on dev list with you). Could you please review the patch?


was (Author: alex_pl):
The patch is ready. 

[~isapego], there is thin client protocol change in the patch (we discussed it 
on dev list with you). Could you please review the patch?

> MVCC: add support to thin clients
> -
>
> Key: IGNITE-9410
> URL: https://issues.apache.org/jira/browse/IGNITE-9410
> Project: Ignite
>  Issue Type: Task
>  Components: mvcc, thin client
>Reporter: Vladimir Ozerov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: iep-34
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently only ODBC and JDBC drivers support transactions and in not very 
> efficient way. We need to add transactional API to .NET, Java, CPP, NodeJS 
> and Python clients.
> Key pieces:
> # Add API to relevant clients
> # Review listener logic - currently we create separate threads. But is it 
> really needed? 
> ## If there is an implicit operation and no ongoing transaction, then 
> operation might be executed right away
> ## If cache operations are decoupled from threads, then we can resort to 
> reactive approach, when multiple transactions could be executed from the same 
> thread



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-9410) MVCC: add support to thin clients

2019-08-13 Thread Aleksey Plekhanov (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-9410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905889#comment-16905889
 ] 

Aleksey Plekhanov commented on IGNITE-9410:
---

The patch is ready. 

[~isapego], there is thin client protocol change in the patch (we discussed it 
on dev list with you). Could you please review the patch?

> MVCC: add support to thin clients
> -
>
> Key: IGNITE-9410
> URL: https://issues.apache.org/jira/browse/IGNITE-9410
> Project: Ignite
>  Issue Type: Task
>  Components: mvcc, thin client
>Reporter: Vladimir Ozerov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: iep-34
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently only ODBC and JDBC drivers support transactions and in not very 
> efficient way. We need to add transactional API to .NET, Java, CPP, NodeJS 
> and Python clients.
> Key pieces:
> # Add API to relevant clients
> # Review listener logic - currently we create separate threads. But is it 
> really needed? 
> ## If there is an implicit operation and no ongoing transaction, then 
> operation might be executed right away
> ## If cache operations are decoupled from threads, then we can resort to 
> reactive approach, when multiple transactions could be executed from the same 
> thread



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Commented] (IGNITE-9410) MVCC: add support to thin clients

2019-08-13 Thread Ignite TC Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/IGNITE-9410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905887#comment-16905887
 ] 

Ignite TC Bot commented on IGNITE-9410:
---

{panel:title=Branch: [pull/6734/head] Base: [master] : No blockers 
found!|borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}
[TeamCity *--> Run :: All* 
Results|https://ci.ignite.apache.org/viewLog.html?buildId=4491910&buildTypeId=IgniteTests24Java8_RunAll]

> MVCC: add support to thin clients
> -
>
> Key: IGNITE-9410
> URL: https://issues.apache.org/jira/browse/IGNITE-9410
> Project: Ignite
>  Issue Type: Task
>  Components: mvcc, thin client
>Reporter: Vladimir Ozerov
>Assignee: Aleksey Plekhanov
>Priority: Major
>  Labels: iep-34
> Fix For: 2.8
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> Currently only ODBC and JDBC drivers support transactions and in not very 
> efficient way. We need to add transactional API to .NET, Java, CPP, NodeJS 
> and Python clients.
> Key pieces:
> # Add API to relevant clients
> # Review listener logic - currently we create separate threads. But is it 
> really needed? 
> ## If there is an implicit operation and no ongoing transaction, then 
> operation might be executed right away
> ## If cache operations are decoupled from threads, then we can resort to 
> reactive approach, when multiple transactions could be executed from the same 
> thread



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)