[jira] [Created] (IGNITE-6757) to bring serializable versions of java 8 functional interfaces

2017-10-25 Thread Alexandre Boudnik (JIRA)
Alexandre Boudnik created IGNITE-6757:
-

 Summary: to bring serializable versions of java 8 functional 
interfaces
 Key: IGNITE-6757
 URL: https://issues.apache.org/jira/browse/IGNITE-6757
 Project: Ignite
  Issue Type: Improvement
  Security Level: Public (Viewable by anyone)
Reporter: Alexandre Boudnik
Assignee: Alexandre Boudnik






--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Resolved] (IGNITE-3321) Address possible data corruption in Persistent Store implementations

2016-07-19 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik resolved IGNITE-3321.
---
Resolution: Not A Bug

Misunderstanding: CacheStore's methods invoked on the node where transaction 
has started.

> Address possible data corruption in Persistent Store implementations
> 
>
> Key: IGNITE-3321
> URL: https://issues.apache.org/jira/browse/IGNITE-3321
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Affects Versions: 1.6
> Environment: any
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>Priority: Critical
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> When records from partitions on different nodes are committed, each node uses 
> its own SQL connection. It is possible that one of DML statements will fail 
> on one of the connections, while others have committed successfully.
> And we need to make a very hard decision:
> - If we ignore fail then we will lose some changes.
> - If we throw an exception we will make inconsistent changes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (IGNITE-3321) Address possible data corruption in Persistent Store implementations

2016-07-19 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik closed IGNITE-3321.
-

> Address possible data corruption in Persistent Store implementations
> 
>
> Key: IGNITE-3321
> URL: https://issues.apache.org/jira/browse/IGNITE-3321
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Affects Versions: 1.6
> Environment: any
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>Priority: Critical
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> When records from partitions on different nodes are committed, each node uses 
> its own SQL connection. It is possible that one of DML statements will fail 
> on one of the connections, while others have committed successfully.
> And we need to make a very hard decision:
> - If we ignore fail then we will lose some changes.
> - If we throw an exception we will make inconsistent changes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Closed] (IGNITE-1560) ClassNotFoundException on AWS

2016-07-19 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik closed IGNITE-1560.
-

> ClassNotFoundException on AWS
> -
>
> Key: IGNITE-1560
> URL: https://issues.apache.org/jira/browse/IGNITE-1560
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: ignite-1.4
> Environment: AWS
>Reporter: Alexandre Boudnik
>Assignee: Nikolay Tikhonov
>Priority: Critical
>  Labels: maven
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> Optional {{ignite-aws}} has outdated (2012) dependency:
> {code}
> 
>   com.amazonaws
>   aws-java-sdk
>   1.3.21.1
>   compile
> 
> {code}
> that depends on
> {code}
> 
> org.codehaus.jackson
> jackson-core-asl
> 1.8.9
> jar
> compile
> 
> 
> org.codehaus.jackson
> jackson-mapper-asl
> 1.8.9
> jar
> compile
> 
> {code}
> As results it produces {{ClassNotFoundException}} for 
> {{org.codehaus.jackson.JsonNode}} and 
> {{org.codehaus.jackson.map.ObjectMapper}} classes
> I would recommend to switch to newer version of {{aws-java-sdk}}, which is 
> has no external dependencies.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (IGNITE-1560) ClassNotFoundException on AWS

2016-07-19 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik resolved IGNITE-1560.
---
Resolution: Fixed

as I know, it was resolved in 1.5

> ClassNotFoundException on AWS
> -
>
> Key: IGNITE-1560
> URL: https://issues.apache.org/jira/browse/IGNITE-1560
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: ignite-1.4
> Environment: AWS
>Reporter: Alexandre Boudnik
>Assignee: Nikolay Tikhonov
>Priority: Critical
>  Labels: maven
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> Optional {{ignite-aws}} has outdated (2012) dependency:
> {code}
> 
>   com.amazonaws
>   aws-java-sdk
>   1.3.21.1
>   compile
> 
> {code}
> that depends on
> {code}
> 
> org.codehaus.jackson
> jackson-core-asl
> 1.8.9
> jar
> compile
> 
> 
> org.codehaus.jackson
> jackson-mapper-asl
> 1.8.9
> jar
> compile
> 
> {code}
> As results it produces {{ClassNotFoundException}} for 
> {{org.codehaus.jackson.JsonNode}} and 
> {{org.codehaus.jackson.map.ObjectMapper}} classes
> I would recommend to switch to newer version of {{aws-java-sdk}}, which is 
> has no external dependencies.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3321) Address possible data corruption in Persistent Store implementations

2016-07-12 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3321:
--
Priority: Critical  (was: Major)

> Address possible data corruption in Persistent Store implementations
> 
>
> Key: IGNITE-3321
> URL: https://issues.apache.org/jira/browse/IGNITE-3321
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Affects Versions: 1.6
> Environment: any
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>Priority: Critical
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> When records from partitions on different nodes are committed, each node uses 
> its own SQL connection. It is possible that one of DML statements will fail 
> on one of the connections, while others have committed successfully.
> And we need to make a very hard decision:
> - If we ignore fail then we will lose some changes.
> - If we throw an exception we will make inconsistent changes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3467) jdbc getTables() returns catalog as null

2016-07-12 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3467:
--
Component/s: SQL
 odbc

> jdbc getTables() returns catalog as null
> 
>
> Key: IGNITE-3467
> URL: https://issues.apache.org/jira/browse/IGNITE-3467
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc, SQL
>Affects Versions: 1.6
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>Priority: Critical
> Fix For: 1.7
>
>
> Then some jdbc query tool uses null values as catalog name. An H2 database 
> returns word "DATABASE" in CATALOG column, and then correctly resolves a 
> fully-qualified name. I would recommend to do the same for these metadata.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3468) Missing Primary Key flag in getColumns()

2016-07-12 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3468:
--
Component/s: (was: data structures)
 SQL
 cache

> Missing Primary Key flag in getColumns()
> 
>
> Key: IGNITE-3468
> URL: https://issues.apache.org/jira/browse/IGNITE-3468
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache, odbc, SQL
>Affects Versions: 1.6
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
> Fix For: 1.7
>
>
> When implemented it allows BI tools to build more optimal queries



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3466) select * causes NoClassDefFoundError with jdbc query tools

2016-07-12 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3466:
--
Component/s: (was: cache)

> select * causes NoClassDefFoundError with jdbc query tools
> --
>
> Key: IGNITE-3466
> URL: https://issues.apache.org/jira/browse/IGNITE-3466
> Project: Ignite
>  Issue Type: Bug
>  Components: odbc, SQL
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>Priority: Critical
>
> it happens when _KEY and _VALUE fields have types other then primitive. I 
> would recommend exclude these from "SELECT STAR" list



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3466) select * causes NoClassDefFoundError with jdbc query tools

2016-07-12 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3466:
--
Component/s: SQL
 odbc
 cache

> select * causes NoClassDefFoundError with jdbc query tools
> --
>
> Key: IGNITE-3466
> URL: https://issues.apache.org/jira/browse/IGNITE-3466
> Project: Ignite
>  Issue Type: Bug
>  Components: cache, odbc, SQL
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>Priority: Critical
>
> it happens when _KEY and _VALUE fields have types other then primitive. I 
> would recommend exclude these from "SELECT STAR" list



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-3468) Missing Primary Key flag in getColumns()

2016-07-12 Thread Alexandre Boudnik (JIRA)
Alexandre Boudnik created IGNITE-3468:
-

 Summary: Missing Primary Key flag in getColumns()
 Key: IGNITE-3468
 URL: https://issues.apache.org/jira/browse/IGNITE-3468
 Project: Ignite
  Issue Type: Improvement
  Components: data structures, odbc
Affects Versions: 1.6
Reporter: Alexandre Boudnik
Assignee: Alexandre Boudnik
 Fix For: 1.7


When implemented it allows BI tools to build more optimal queries



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-3467) jdbc getTables() returns catalog as null

2016-07-12 Thread Alexandre Boudnik (JIRA)
Alexandre Boudnik created IGNITE-3467:
-

 Summary: jdbc getTables() returns catalog as null
 Key: IGNITE-3467
 URL: https://issues.apache.org/jira/browse/IGNITE-3467
 Project: Ignite
  Issue Type: Bug
Affects Versions: 1.6
Reporter: Alexandre Boudnik
Assignee: Alexandre Boudnik
Priority: Critical
 Fix For: 1.7


Then some jdbc query tool uses null values as catalog name. An H2 database 
returns word "DATABASE" in CATALOG column, and then correctly resolves a 
fully-qualified name. I would recommend to do the same for these metadata.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (IGNITE-3466) select * causes NoClassDefFoundError with jdbc query tools

2016-07-12 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik reassigned IGNITE-3466:
-

Assignee: Alexandre Boudnik

> select * causes NoClassDefFoundError with jdbc query tools
> --
>
> Key: IGNITE-3466
> URL: https://issues.apache.org/jira/browse/IGNITE-3466
> Project: Ignite
>  Issue Type: Bug
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>Priority: Critical
>
> it happens when _KEY and _VALUE fields have types other then primitive. I 
> would recommend exclude these from "SELECT STAR" list



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-3466) select * causes NoClassDefFoundError with jdbc query tools

2016-07-12 Thread Alexandre Boudnik (JIRA)
Alexandre Boudnik created IGNITE-3466:
-

 Summary: select * causes NoClassDefFoundError with jdbc query tools
 Key: IGNITE-3466
 URL: https://issues.apache.org/jira/browse/IGNITE-3466
 Project: Ignite
  Issue Type: Bug
Reporter: Alexandre Boudnik
Priority: Critical


it happens when _KEY and _VALUE fields have types other then primitive. I would 
recommend exclude these from "SELECT STAR" list



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Resolved] (IGNITE-3389) metadata result set throws NPE when closed

2016-07-12 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik resolved IGNITE-3389.
---
Resolution: Fixed

> metadata result set throws NPE when closed
> --
>
> Key: IGNITE-3389
> URL: https://issues.apache.org/jira/browse/IGNITE-3389
> Project: Ignite
>  Issue Type: Bug
>  Components: clients, odbc, SQL
>Affects Versions: 1.6, 1.7
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>  Labels: easyfix
> Fix For: 1.7
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> Need to handle when ResultSet has no cursor. It happened only with client 
> JDBC. This code throws NPE:
> {code}
> public void testMetadataResultSetClose() throws Exception {
> try (Connection conn = DriverManager.getConnection(BASE_URL)) {
> try (ResultSet tables = conn.getMetaData().getTables(null, null, 
> "%", null)) {
> int columnCount = tables.getMetaData().getColumnCount();
> while (tables.next())
> for (int i = 0; i < columnCount; i++)
> tables.getObject(i + 1);
> }
> }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3322) collect transaction log

2016-07-09 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3322:
--
Issue Type: Sub-task  (was: New Feature)
Parent: IGNITE-3457

> collect transaction log
> ---
>
> Key: IGNITE-3322
> URL: https://issues.apache.org/jira/browse/IGNITE-3322
> Project: Ignite
>  Issue Type: Sub-task
>  Components: cache
> Environment: any
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> It should collect transaction log from all cluster nodes; record both 
> successes and failures.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3457) Active Store

2016-07-09 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3457:
--
Component/s: (was: general)
 cache

> Active Store
> 
>
> Key: IGNITE-3457
> URL: https://issues.apache.org/jira/browse/IGNITE-3457
> Project: Ignite
>  Issue Type: New Feature
>  Components: cache
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
> Attachments: Data Flow.png
>
>
> h2. Purpose
> To address missing features, such as backup/restore, snapshot, replication, 
> and continues export.
> h2. How it works
> All changes made to data in cache are passed to associated Active Store where 
> they stored in:
> * Transaction Log, which contains the all history of changes made
> * Snapshot - the instance of Key-Value store, which contains changes made 
> since last merge with Main Key-Value store
> * Main Key-Value Store, which contains copy of cache's data at the moment 
> when snapshot has been created
> Since cache has been backed by persistent store it should be configured with 
> *read-through* and *write-through* modes. To represent deleted key the 
> special constant *NAUGHT* stored as value together with that key. All data in 
> log, snapshots, and main are used the same serialization. Logs and snapshots 
> could be shipped to replicate or export data to other clusters or RDBMS 
> servers.
> !Data Flow.png!
> h4. New snapshot
> At any time a new snapshot can be created and all subsequent changes will be 
> stored in it. The special record has been made in transaction log. Previous 
> snapshot stays in read-only mode and its content could be merged into main.
> h4. Rollback
> To rollback cache to the state when new snapshot was created, all keys in 
> snapshot should be invalidated in cache. Then snapshot deactivated.
> h4. Roll forward
> After rolling back the snapshot, all transaction from log could be filtered 
> and re-executed.
> h4. Merge
> Either periodically or by explicitly, content of Snapshot merged into Main. 
> To do so and do not interrupt normal cache operation, Active Store creates a 
> new snapshot, start storing changes into it, and copies the content of 
> previous snapshot to the main. After that the previous snapshot could be 
> either kept or reclaimed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3322) collect transaction log

2016-07-09 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3322:
--
Issue Type: New Feature  (was: Sub-task)
Parent: (was: IGNITE-3321)

> collect transaction log
> ---
>
> Key: IGNITE-3322
> URL: https://issues.apache.org/jira/browse/IGNITE-3322
> Project: Ignite
>  Issue Type: New Feature
>  Components: cache
> Environment: any
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>   Original Estimate: 336h
>  Remaining Estimate: 336h
>
> It should collect transaction log from all cluster nodes; record both 
> successes and failures.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3457) Active Store

2016-07-09 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3457:
--
Description: 
h2. Purpose
To address missing features, such as backup/restore, snapshot, replication, and 
continues export.

h2. How it works
All changes made to data in cache are passed to associated Active Store where 
they stored in:
* Transaction Log, which contains the all history of changes made
* Snapshot - the instance of Key-Value store, which contains changes made since 
last merge with Main Key-Value store
* Main Key-Value Store, which contains copy of cache's data at the moment when 
snapshot has been created

Since cache has been backed by persistent store it should be configured with 
*read-through* and *write-through* modes. To represent deleted key the special 
constant *NAUGHT* stored as value together with that key. All data in log, 
snapshots, and main are used the same serialization. Logs and snapshots could 
be shipped to replicate or export data to other clusters or RDBMS servers.

!Data Flow.png!

h4. New snapshot
At any time a new snapshot can be created and all subsequent changes will be 
stored in it. The special record has been made in transaction log. Previous 
snapshot stays in read-only mode and its content could be merged into main.

h4. Rollback
To rollback cache to the state when new snapshot was created, all keys in 
snapshot should be invalidated in cache. Then snapshot deactivated.

h4. Roll forward
After rolling back the snapshot, all transaction from log could be filtered and 
re-executed.

h4. Merge
Either periodically or by explicitly, content of Snapshot merged into Main. To 
do so and do not interrupt normal cache operation, Active Store creates a new 
snapshot, start storing changes into it, and copies the content of previous 
snapshot to the main. After that the previous snapshot could be either kept or 
reclaimed.



  was:
h2. Purpose
To address missing features, such as backup/restore, snapshot, replication, and 
continues export.

h2. How it works
All changes made to data in cache are passed to associated Active Store where 
they stored in:
* Transaction Log, which contains the all history of changes made
* Snapshot - the instance of Key-Value store, which contains changes made since 
last merge with Main Key-Value store
* Main Key-Value Store, which contains up-to-date copy of cache's data

Since cache has been backed by persistent store it should be configured with 
*read-through* and *write-through* modes. To represent deleted key the special 
constant *NAUGHT* stored as value together with that key.

!Data Flow.png!

h3. New snapshot
At any time a new snapshot can be created and all changes will be stored in it. 
Previous snapshot stays in read-only mode.

h3. Rollback
To rollback cache to the state when new snapshot was created, all keys in 
snapshot should be invalidated in cache. Then snapshot deactivated.

h3. Roll forward
After rolling back the snapshot, all transaction from log could be filtered and 
re-executed.

h3. Merge
Either periodically or by explicitly, content of Snapshot merged into Main. To 
do so and do not interrupt normal cache operation, Active Store creates a new 
snapshot, start storing changes into it, and copies the content of previous 
snapshot to the main. After that the previous snapshot could be either kept or 
reclaimed.


> Active Store
> 
>
> Key: IGNITE-3457
> URL: https://issues.apache.org/jira/browse/IGNITE-3457
> Project: Ignite
>  Issue Type: New Feature
>  Components: general
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
> Attachments: Data Flow.png
>
>
> h2. Purpose
> To address missing features, such as backup/restore, snapshot, replication, 
> and continues export.
> h2. How it works
> All changes made to data in cache are passed to associated Active Store where 
> they stored in:
> * Transaction Log, which contains the all history of changes made
> * Snapshot - the instance of Key-Value store, which contains changes made 
> since last merge with Main Key-Value store
> * Main Key-Value Store, which contains copy of cache's data at the moment 
> when snapshot has been created
> Since cache has been backed by persistent store it should be configured with 
> *read-through* and *write-through* modes. To represent deleted key the 
> special constant *NAUGHT* stored as value together with that key. All data in 
> log, snapshots, and main are used the same serialization. Logs and snapshots 
> could be shipped to replicate or export data to other clusters or RDBMS 
> servers.
> !Data Flow.png!
> h4. New snapshot
> At any time a new snapshot can be created and all subsequent changes will be 
> stored in it. The special record has been made in transaction log. Previous 
> snapshot stays in read-only 

[jira] [Updated] (IGNITE-3457) Active Store

2016-07-09 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3457:
--
Description: 
h2. Purpose
To address missing features, such as backup/restore, snapshot, replication, and 
continues export.

h2. How it works
All changes made to data in cache are passed to associated Active Store where 
they stored in:
* Transaction Log, which contains the all history of changes made
* Snapshot - the instance of Key-Value store, which contains changes made since 
last merge with Main Key-Value store
* Main Key-Value Store, which contains up-to-date copy of cache's data

Since cache has been backed by persistent store it should be configured with 
*read-through* and *write-through* modes. To represent deleted key the special 
constant *NAUGHT* stored as value together with that key.

!Data Flow.png!

h3. New snapshot
At any time a new snapshot can be created and all changes will be stored in it. 
Previous snapshot stays in read-only mode.

h3. Rollback
To rollback cache to the state when new snapshot was created, all keys in 
snapshot should be invalidated in cache. Then snapshot deactivated.

h3. Roll forward
After rolling back the snapshot, all transaction from log could be filtered and 
re-executed.

h3. Merge
Either periodically or by explicitly, content of Snapshot merged into Main. To 
do so and do not interrupt normal cache operation, Active Store creates a new 
snapshot, start storing changes into it, and copies the content of previous 
snapshot to the main. After that the previous snapshot could be either kept or 
reclaimed.

  was:
To address missing features, such as backup/restore, snapshot, replication, and 
continues export





> Active Store
> 
>
> Key: IGNITE-3457
> URL: https://issues.apache.org/jira/browse/IGNITE-3457
> Project: Ignite
>  Issue Type: New Feature
>  Components: general
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
> Attachments: Data Flow.png
>
>
> h2. Purpose
> To address missing features, such as backup/restore, snapshot, replication, 
> and continues export.
> h2. How it works
> All changes made to data in cache are passed to associated Active Store where 
> they stored in:
> * Transaction Log, which contains the all history of changes made
> * Snapshot - the instance of Key-Value store, which contains changes made 
> since last merge with Main Key-Value store
> * Main Key-Value Store, which contains up-to-date copy of cache's data
> Since cache has been backed by persistent store it should be configured with 
> *read-through* and *write-through* modes. To represent deleted key the 
> special constant *NAUGHT* stored as value together with that key.
> !Data Flow.png!
> h3. New snapshot
> At any time a new snapshot can be created and all changes will be stored in 
> it. Previous snapshot stays in read-only mode.
> h3. Rollback
> To rollback cache to the state when new snapshot was created, all keys in 
> snapshot should be invalidated in cache. Then snapshot deactivated.
> h3. Roll forward
> After rolling back the snapshot, all transaction from log could be filtered 
> and re-executed.
> h3. Merge
> Either periodically or by explicitly, content of Snapshot merged into Main. 
> To do so and do not interrupt normal cache operation, Active Store creates a 
> new snapshot, start storing changes into it, and copies the content of 
> previous snapshot to the main. After that the previous snapshot could be 
> either kept or reclaimed.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3457) Active Store

2016-07-09 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3457:
--
Description: 
To address missing features, such as backup/restore, snapshot, replication, and 
continues export




  was:
To address missing features, such as backup/restore, snapshot, replication, and 
continues export

!https://drive.google.com/file/d/0B2vmxwyyYjxiQnlnWjBTRzRPaW8/view?usp=sharing!




> Active Store
> 
>
> Key: IGNITE-3457
> URL: https://issues.apache.org/jira/browse/IGNITE-3457
> Project: Ignite
>  Issue Type: New Feature
>  Components: general
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>
> To address missing features, such as backup/restore, snapshot, replication, 
> and continues export



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3457) Active Store

2016-07-09 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3457:
--
Description: 
To address missing features, such as backup/restore, snapshot, replication, and 
continues export

!https://drive.google.com/file/d/0B2vmxwyyYjxiQnlnWjBTRzRPaW8/view?usp=sharing!



  was:To address missing features, such as backup/restore, snapshot, 
replication, and continues export


> Active Store
> 
>
> Key: IGNITE-3457
> URL: https://issues.apache.org/jira/browse/IGNITE-3457
> Project: Ignite
>  Issue Type: New Feature
>  Components: general
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>
> To address missing features, such as backup/restore, snapshot, replication, 
> and continues export
> !https://drive.google.com/file/d/0B2vmxwyyYjxiQnlnWjBTRzRPaW8/view?usp=sharing!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-3457) Active Store

2016-07-08 Thread Alexandre Boudnik (JIRA)
Alexandre Boudnik created IGNITE-3457:
-

 Summary: Active Store
 Key: IGNITE-3457
 URL: https://issues.apache.org/jira/browse/IGNITE-3457
 Project: Ignite
  Issue Type: New Feature
  Components: general
Reporter: Alexandre Boudnik
Assignee: Alexandre Boudnik


To address missing features, such as backup/restore, snapshot, replication, and 
continues export



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3389) metadata result set throws NPE when closed

2016-06-28 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3389:
--
Description: 
Need to handle when ResultSet has no cursor. It happened only with client JDBC. 
This code throws NPE:

{code}
public void testMetadataResultSetClose() throws Exception {
try (Connection conn = DriverManager.getConnection(BASE_URL)) {
try (ResultSet tables = conn.getMetaData().getTables(null, null, 
"%", null)) {
int columnCount = tables.getMetaData().getColumnCount();
while (tables.next())
for (int i = 0; i < columnCount; i++)
tables.getObject(i + 1);
}
}
}
{code}

  was:Need to handle when ResultSet has no cursor


> metadata result set throws NPE when closed
> --
>
> Key: IGNITE-3389
> URL: https://issues.apache.org/jira/browse/IGNITE-3389
> Project: Ignite
>  Issue Type: Bug
>  Components: clients, odbc, SQL
>Affects Versions: 1.6, 1.7
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>  Labels: easyfix
> Fix For: 1.7
>
>   Original Estimate: 2h
>  Remaining Estimate: 2h
>
> Need to handle when ResultSet has no cursor. It happened only with client 
> JDBC. This code throws NPE:
> {code}
> public void testMetadataResultSetClose() throws Exception {
> try (Connection conn = DriverManager.getConnection(BASE_URL)) {
> try (ResultSet tables = conn.getMetaData().getTables(null, null, 
> "%", null)) {
> int columnCount = tables.getMetaData().getColumnCount();
> while (tables.next())
> for (int i = 0; i < columnCount; i++)
> tables.getObject(i + 1);
> }
> }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3321) Address possible data corruption in Persistent Store implementations

2016-06-15 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3321:
--
Affects Version/s: (was: 1.7)
   1.6

> Address possible data corruption in Persistent Store implementations
> 
>
> Key: IGNITE-3321
> URL: https://issues.apache.org/jira/browse/IGNITE-3321
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Affects Versions: 1.6
> Environment: any
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> When records from partitions on different nodes are committed, each node uses 
> its own SQL connection. It is possible that one of DML statements will fail 
> on one of the connections, while others have committed successfully.
> And we need to make a very hard decision:
> - If we ignore fail then we will lose some changes.
> - If we throw an exception we will make inconsistent changes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Updated] (IGNITE-3321) Address possible data corruption in Persistent Store implementations

2016-06-15 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik updated IGNITE-3321:
--
Affects Version/s: (was: 1.6)
   1.7

> Address possible data corruption in Persistent Store implementations
> 
>
> Key: IGNITE-3321
> URL: https://issues.apache.org/jira/browse/IGNITE-3321
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Affects Versions: 1.7
> Environment: any
>Reporter: Alexandre Boudnik
>Assignee: Alexandre Boudnik
>   Original Estimate: 504h
>  Remaining Estimate: 504h
>
> When records from partitions on different nodes are committed, each node uses 
> its own SQL connection. It is possible that one of DML statements will fail 
> on one of the connections, while others have committed successfully.
> And we need to make a very hard decision:
> - If we ignore fail then we will lose some changes.
> - If we throw an exception we will make inconsistent changes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-3321) Address possible data corruption in Persistent Store implementations

2016-06-15 Thread Alexandre Boudnik (JIRA)
Alexandre Boudnik created IGNITE-3321:
-

 Summary: Address possible data corruption in Persistent Store 
implementations
 Key: IGNITE-3321
 URL: https://issues.apache.org/jira/browse/IGNITE-3321
 Project: Ignite
  Issue Type: Improvement
  Components: cache
Affects Versions: 1.6
 Environment: any
Reporter: Alexandre Boudnik
Assignee: Alexandre Boudnik


When records from partitions on different nodes are committed, each node uses 
its own SQL connection. It is possible that one of DML statements will fail on 
one of the connections, while others have committed successfully.

And we need to make a very hard decision:
- If we ignore fail then we will lose some changes.
- If we throw an exception we will make inconsistent changes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Created] (IGNITE-1560) ClassNotFoundException on AWS

2015-09-28 Thread Alexandre Boudnik (JIRA)
Alexandre Boudnik created IGNITE-1560:
-

 Summary: ClassNotFoundException on AWS
 Key: IGNITE-1560
 URL: https://issues.apache.org/jira/browse/IGNITE-1560
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: ignite-1.4
 Environment: AWS
Reporter: Alexandre Boudnik
Priority: Critical


Optional ignite-aws has outdated (2012) dependency:


  com.amazonaws
  aws-java-sdk
  1.3.21.1
  compile


that depends on


org.codehaus.jackson
jackson-core-asl
1.8.9
jar
compile


org.codehaus.jackson
jackson-mapper-asl
1.8.9
jar
compile


As results it produces ClassNotFoundException for org.codehaus.jackson.JsonNode 
and org.codehaus.jackson.map.ObjectMapper classes

I would recommend to switch to newer version of aws-java-sdk, which is has no 
external dependencies.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Commented] (IGNITE-1295) BSP implementation

2015-08-25 Thread Alexandre Boudnik (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-1295?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14711932#comment-14711932
 ] 

Alexandre Boudnik commented on IGNITE-1295:
---

I will start with generic approach adopting MulticoreBSP for Java, it would be 
very straight forward. Then, because my goal is to implement scalable 
union-find, I'll consider more restricted approach.

 BSP implementation
 --

 Key: IGNITE-1295
 URL: https://issues.apache.org/jira/browse/IGNITE-1295
 Project: Ignite
  Issue Type: New Feature
  Components: compute
Reporter: Alexandre Boudnik
Assignee: Alexandre Boudnik
   Original Estimate: 504h
  Remaining Estimate: 504h

 Bulk Synchronous Parallel (BSP) model was designed for distributed-memory 
 systems. I found it extremely useful for distributed implementation of 
 union-find (disjointed set).
 I want to start implementing functionality of MulticoreBSP for Java 
 http://www.multicorebsp.com/documentation on ignite platform.
 A BSP algorithm relies on computation proceeds in a series of global 
 super-steps, which consists of three components:
 - Concurrent computation: every participating processor may perform local 
 computations, i.e., each process can only make use of values stored in the 
 local fast memory of the processor. The computations occur asynchronously of 
 all the others but may overlap with communication.
 - Communication: The processes exchange data between themselves to facilitate 
 remote data storage capabilities.
 - Barrier synchronization: When a process reaches this point (the barrier), 
 it waits until all other processes have reached the same barrier.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)


[jira] [Assigned] (IGNITE-1295) BSP implementation

2015-08-24 Thread Alexandre Boudnik (JIRA)

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

Alexandre Boudnik reassigned IGNITE-1295:
-

Assignee: Alexandre Boudnik

 BSP implementation
 --

 Key: IGNITE-1295
 URL: https://issues.apache.org/jira/browse/IGNITE-1295
 Project: Ignite
  Issue Type: New Feature
  Components: compute
Reporter: Alexandre Boudnik
Assignee: Alexandre Boudnik
   Original Estimate: 504h
  Remaining Estimate: 504h





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)