[jira] [Created] (IGNITE-4928) .NET: Add DML to LINQPad examples

2017-04-06 Thread Pavel Tupitsyn (JIRA)
Pavel Tupitsyn created IGNITE-4928:
--

 Summary: .NET: Add DML to LINQPad examples
 Key: IGNITE-4928
 URL: https://issues.apache.org/jira/browse/IGNITE-4928
 Project: Ignite
  Issue Type: Improvement
Affects Versions: 1.9
Reporter: Pavel Tupitsyn
 Fix For: 2.0


Update QueryExample with DML.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Closed] (IGNITE-4857) redis protocol not list at the document page

2017-04-06 Thread Prachi Garg (JIRA)

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

Prachi Garg closed IGNITE-4857.
---

> redis protocol not list at the document page
> 
>
> Key: IGNITE-4857
> URL: https://issues.apache.org/jira/browse/IGNITE-4857
> Project: Ignite
>  Issue Type: Bug
>Reporter: netroby
>Assignee: Prachi Garg
> Fix For: 2.0
>
>
> The redis protocol source code exists. but can not find in the document page.
> https://ignite.apache.org/features/clientprotos.html



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (IGNITE-4857) redis protocol not list at the document page

2017-04-06 Thread Prachi Garg (JIRA)

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

Prachi Garg resolved IGNITE-4857.
-
Resolution: Fixed

> redis protocol not list at the document page
> 
>
> Key: IGNITE-4857
> URL: https://issues.apache.org/jira/browse/IGNITE-4857
> Project: Ignite
>  Issue Type: Bug
>Reporter: netroby
>Assignee: Prachi Garg
> Fix For: 2.0
>
>
> The redis protocol source code exists. but can not find in the document page.
> https://ignite.apache.org/features/clientprotos.html



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4920) LocalDeploymentSpi resources cleanup on spi.register() might clean resources from other tasks using delegating classloader.

2017-04-06 Thread Alexei Scherbakov (JIRA)

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

Alexei Scherbakov commented on IGNITE-4920:
---

Fix is ready, waiting for TC.

> LocalDeploymentSpi resources cleanup on spi.register() might clean resources 
> from other tasks using delegating classloader.
> ---
>
> Key: IGNITE-4920
> URL: https://issues.apache.org/jira/browse/IGNITE-4920
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: 1.6
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
> Fix For: 2.0
>
>
> Culrpit is "if" condition in LocalDelpoymentSpi:
> {noformat}
> if (entry.getKey().equals(entry.getValue()) && isResourceExist(ldr, 
> entry.getKey()) &&
> !U.hasParent(clsLdrToIgnore, ldr) && 
> ldrRsrcs.remove(ldr, clsLdrRsrcs)) {
> ...
> }
> {noformat}
> and can be fixed by adding clsLdrRsrcs.containsKey(entry.getKey()):
> {noformat}
> if (entry.getKey().equals(entry.getValue()) && isResourceExist(ldr, 
> entry.getKey()) &&
> !U.hasParent(clsLdrToIgnore, ldr) && 
> clsLdrRsrcs.containsKey(entry.getKey()) && ldrRsrcs.remove(ldr, clsLdrRsrcs)) 
> {
> ...
> }
> {noformat}
> Reproducer (might require multiple runs)
> {noformat}
> /** */
> public class Main {
> public static void main(String args[]) throws MalformedURLException, 
> ClassNotFoundException {
> System.setProperty("IGNITE_CACHE_REMOVED_ENTRIES_TTL", "1");
> IgniteConfiguration cfg = new IgniteConfiguration();
> cfg.setPeerClassLoadingEnabled(true);
> TcpDiscoverySpi spi = new TcpDiscoverySpi();
> spi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
> cfg.setDiscoverySpi(spi);
> final Ignite ignite = Ignition.start(cfg);
> final ClassLoader moduleClsLdr = Main.class.getClassLoader();
> final ClassLoader moduleCLImpl = new DelegateClassLoader(null, 
> moduleClsLdr);
> for (int i = 0; i < 100; i++)
> try {
> Class clazz = moduleCLImpl.loadClass("Main$CallFunction");
> ignite.compute().call(
> 
> (IgniteCallable)clazz.getDeclaredConstructor(ClassLoader.class).newInstance(moduleCLImpl)
> );
> }
> catch (Exception e) {
> e.printStackTrace();
> }
> System.out.println("Done");
> }
> public static class CallFunction implements IgniteCallable, 
> GridPeerDeployAware {
> transient ClassLoader classLoader;
> public CallFunction(ClassLoader cls) {
> this.classLoader = cls;
> }
> public Object call() throws Exception {
> return null;
> }
> public Class deployClass() {
> return this.getClass();
> }
> public ClassLoader classLoader() {
> return classLoader;
> }
> }
> public static class DelegateClassLoader extends ClassLoader {
> private ClassLoader delegateCL;
> public DelegateClassLoader(ClassLoader parent, ClassLoader 
> delegateCL) {
> super(parent); // Parent doesn't matter.
> this.delegateCL = delegateCL;
> }
> @Override
> public URL getResource(String name) {
> return delegateCL.getResource(name);
> }
> @Override
> public Class loadClass(String name) throws ClassNotFoundException {
> return delegateCL.loadClass(name);
> }
> }
> }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4920) LocalDeploymentSpi resources cleanup on spi.register() might clean resources from other tasks using delegating classloader.

2017-04-06 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on IGNITE-4920:


GitHub user ascherbakoff opened a pull request:

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

IGNITE-4920 Fixed.

LocalDeploymentSpi resources cleanup on spi.register() might clean 
resources from other tasks using delegating classloader.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-4920

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/1755.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1755


commit 436a606147639eb640092b67011ff4b089fc0d82
Author: ascherbakoff 
Date:   2017-04-06T18:18:56Z

IGNITE-4920 Fixed.




> LocalDeploymentSpi resources cleanup on spi.register() might clean resources 
> from other tasks using delegating classloader.
> ---
>
> Key: IGNITE-4920
> URL: https://issues.apache.org/jira/browse/IGNITE-4920
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: 1.6
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
> Fix For: 2.0
>
>
> Culrpit is "if" condition in LocalDelpoymentSpi:
> {noformat}
> if (entry.getKey().equals(entry.getValue()) && isResourceExist(ldr, 
> entry.getKey()) &&
> !U.hasParent(clsLdrToIgnore, ldr) && 
> ldrRsrcs.remove(ldr, clsLdrRsrcs)) {
> ...
> }
> {noformat}
> and can be fixed by adding clsLdrRsrcs.containsKey(entry.getKey()):
> {noformat}
> if (entry.getKey().equals(entry.getValue()) && isResourceExist(ldr, 
> entry.getKey()) &&
> !U.hasParent(clsLdrToIgnore, ldr) && 
> clsLdrRsrcs.containsKey(entry.getKey()) && ldrRsrcs.remove(ldr, clsLdrRsrcs)) 
> {
> ...
> }
> {noformat}
> Reproducer (might require multiple runs)
> {noformat}
> /** */
> public class Main {
> public static void main(String args[]) throws MalformedURLException, 
> ClassNotFoundException {
> System.setProperty("IGNITE_CACHE_REMOVED_ENTRIES_TTL", "1");
> IgniteConfiguration cfg = new IgniteConfiguration();
> cfg.setPeerClassLoadingEnabled(true);
> TcpDiscoverySpi spi = new TcpDiscoverySpi();
> spi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
> cfg.setDiscoverySpi(spi);
> final Ignite ignite = Ignition.start(cfg);
> final ClassLoader moduleClsLdr = Main.class.getClassLoader();
> final ClassLoader moduleCLImpl = new DelegateClassLoader(null, 
> moduleClsLdr);
> for (int i = 0; i < 100; i++)
> try {
> Class clazz = moduleCLImpl.loadClass("Main$CallFunction");
> ignite.compute().call(
> 
> (IgniteCallable)clazz.getDeclaredConstructor(ClassLoader.class).newInstance(moduleCLImpl)
> );
> }
> catch (Exception e) {
> e.printStackTrace();
> }
> System.out.println("Done");
> }
> public static class CallFunction implements IgniteCallable, 
> GridPeerDeployAware {
> transient ClassLoader classLoader;
> public CallFunction(ClassLoader cls) {
> this.classLoader = cls;
> }
> public Object call() throws Exception {
> return null;
> }
> public Class deployClass() {
> return this.getClass();
> }
> public ClassLoader classLoader() {
> return classLoader;
> }
> }
> public static class DelegateClassLoader extends ClassLoader {
> private ClassLoader delegateCL;
> public DelegateClassLoader(ClassLoader parent, ClassLoader 
> delegateCL) {
> super(parent); // Parent doesn't matter.
> this.delegateCL = delegateCL;
> }
> @Override
> public URL getResource(String name) {
> return delegateCL.getResource(name);
> }
> @Override
> public Class loadClass(String name) throws ClassNotFoundException {
> return delegateCL.loadClass(name);
> }
> }
> }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Comment Edited] (IGNITE-4898) Add path to ODBC driver installers to platforms\cpp\odbc\README.txt

2017-04-06 Thread Igor Sapego (JIRA)

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

Igor Sapego edited comment on IGNITE-4898 at 4/6/17 5:32 PM:
-

[~dmagda], done. You can find updated documentation here: 
https://apacheignite.readme.io/docs/odbc-driver-20#installing-odbc-driver

Can you take a look?


was (Author: isapego):
[~dmagda] Done. You can find updated documentation here: 
https://apacheignite.readme.io/docs/odbc-driver-20#installing-odbc-driver

Can you take a look?

> Add path to ODBC driver installers to platforms\cpp\odbc\README.txt
> ---
>
> Key: IGNITE-4898
> URL: https://issues.apache.org/jira/browse/IGNITE-4898
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Reporter: Irina Zaporozhtseva
>Assignee: Igor Sapego
>Priority: Critical
> Fix For: 2.0
>
>
> Add path to ODBC driver installers (/cpp/bin/odbc/) to 
> platforms\cpp\odbc\README.txt:
> "There are two ways to install ODBC driver currently. The first one is to use
> 32-bit or 64-bit installer. This is the most simple way and you are 
> recommended to stick to it by default."



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4898) Add path to ODBC driver installers to platforms\cpp\odbc\README.txt

2017-04-06 Thread Igor Sapego (JIRA)

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

Igor Sapego commented on IGNITE-4898:
-

[~dmagda] Done. You can find updated documentation here: 
https://apacheignite.readme.io/docs/odbc-driver-20#installing-odbc-driver

Can you take a look?

> Add path to ODBC driver installers to platforms\cpp\odbc\README.txt
> ---
>
> Key: IGNITE-4898
> URL: https://issues.apache.org/jira/browse/IGNITE-4898
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Reporter: Irina Zaporozhtseva
>Assignee: Igor Sapego
>Priority: Critical
> Fix For: 2.0
>
>
> Add path to ODBC driver installers (/cpp/bin/odbc/) to 
> platforms\cpp\odbc\README.txt:
> "There are two ways to install ODBC driver currently. The first one is to use
> 32-bit or 64-bit installer. This is the most simple way and you are 
> recommended to stick to it by default."



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4828) Improve the distribution of keys within partitions

2017-04-06 Thread Yakov Zhdanov (JIRA)

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

Yakov Zhdanov commented on IGNITE-4828:
---

Michael,

Here are my comments

# We have several more affinity function implementations and your change would 
also be helpful for them. I would create AffinityFunctionAdapter and implement 
{{setPartition(int);}} and {{partition(Object);}} there. Then, I would change 
all implementations under ignite-core/src/main to extend it.
# Enum with hash type is questionable. I think it will be better to initialize 
{{private int hashMask = powerOfTwo ? parts - 1 : 0;}} and then check it with 
{{if (hashMask != 0) }}.
# I don't think you need {{safeAbs()}} here {{int i = U.safeAbs((h = 
key.hashCode()) ^ (h >>> 16)); return i & (parts - 1) }}. I think we will 
always set sign bit to 0 with this.

Do points above make sense?


> Improve the distribution of keys within partitions
> --
>
> Key: IGNITE-4828
> URL: https://issues.apache.org/jira/browse/IGNITE-4828
> Project: Ignite
>  Issue Type: Improvement
>Affects Versions: 1.9
>Reporter: Michael Griggs
>Assignee: Michael Griggs
>  Labels: important
> Fix For: 2.0
>
>
> An issue has been found when inserting several million string keys in to a 
> cache.  Each string key was approximately 22-characters in length.  When I 
> exported the partition counts (via GG Visor) I was able to see an unusual 
> periodicity in the number of keys allocated to partitions.  I charted this in 
> Excel (1).
> After further investigation, it appears that there is a relationship
> between the number of keys being inserted, the number of partitions
> assigned to the cache and amount of apparent periodicity: a small number of 
> partitions will cause periodicity to appear with a lower number of keys.
> The {{RendezvousAffinityFunction#partition}} function performs a simple
> calculation of key hashcode modulo partition-count:
> {{U.safeAbs(key.hashCode() % parts)}}
> Digging further I was led to the fact that this is how the Java HashMap
> *used* to behave (2), but was upgraded around Java 1.4 to perform the
> following:
> {{key.hashCode() & (parts - 1)}}
> which performs more efficiently.  It was then updated further to do the
> following:
> {{((h = key.hashCode()) ^ (h >>> 16) & (parts - 1));}}
> with the bit-shift performed to
> bq. incorporate impact of the highest bits that would otherwise never be used 
> in index calculations because of table bounds
> When using this function, rather than our
> {{RendezvousAffinityFunction#partition}} implementation, I also saw a
> significant decrease in the periodicity and a better distribution of keys
> amongst partitions (3). 
> (1):  https://i.imgur.com/0FtCZ2A.png
> (2):  
> https://www.quora.com/Why-does-Java-use-a-mediocre-hashCode-implementation-for-strings
> (3):  https://i.imgur.com/8ZuCSA3.png



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4927) Write behind - add an option to skip write coalescing

2017-04-06 Thread Alexey Goncharuk (JIRA)

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

Alexey Goncharuk updated IGNITE-4927:
-
Summary: Write behind - add an option to skip write coalescing  (was: Write 
behind - need new mode without skipping values history)

> Write behind - add an option to skip write coalescing
> -
>
> Key: IGNITE-4927
> URL: https://issues.apache.org/jira/browse/IGNITE-4927
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Yakov Zhdanov
>Assignee: Alexey Dmitriev
>
> Currently, the write-behind store is backed by a map, therefore when several 
> updates come to the same key, they are coalesced. 
> We need to introduce optional mode and back write-behind with a queue and 
> pass each  to a database.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4927) Write behind - need new mode without skipping values history

2017-04-06 Thread Alexey Goncharuk (JIRA)

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

Alexey Goncharuk updated IGNITE-4927:
-
Description: 
Currently, the write-behind store is backed by a map, therefore when several 
updates come to the same key, they are coalesced. 

We need to introduce optional mode and back write-behind with a queue and pass 
each  to a database.

  was:
Currently write behind store is backed by a map, therefore when several updates 
come to the same key its values' change history is lost.

We need to introduce optional mode and back write behind with a queue and pass 
each  to database.


> Write behind - need new mode without skipping values history
> 
>
> Key: IGNITE-4927
> URL: https://issues.apache.org/jira/browse/IGNITE-4927
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Yakov Zhdanov
>Assignee: Alexey Dmitriev
>
> Currently, the write-behind store is backed by a map, therefore when several 
> updates come to the same key, they are coalesced. 
> We need to introduce optional mode and back write-behind with a queue and 
> pass each  to a database.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4920) LocalDeploymentSpi resources cleanup on spi.register() might clean resources from other tasks using delegating classloader.

2017-04-06 Thread Alexei Scherbakov (JIRA)

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

Alexei Scherbakov updated IGNITE-4920:
--
Fix Version/s: (was: 2.1)
   2.0

> LocalDeploymentSpi resources cleanup on spi.register() might clean resources 
> from other tasks using delegating classloader.
> ---
>
> Key: IGNITE-4920
> URL: https://issues.apache.org/jira/browse/IGNITE-4920
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: 1.6
>Reporter: Alexei Scherbakov
>Assignee: Alexei Scherbakov
> Fix For: 2.0
>
>
> Culrpit is "if" condition in LocalDelpoymentSpi:
> {noformat}
> if (entry.getKey().equals(entry.getValue()) && isResourceExist(ldr, 
> entry.getKey()) &&
> !U.hasParent(clsLdrToIgnore, ldr) && 
> ldrRsrcs.remove(ldr, clsLdrRsrcs)) {
> ...
> }
> {noformat}
> and can be fixed by adding clsLdrRsrcs.containsKey(entry.getKey()):
> {noformat}
> if (entry.getKey().equals(entry.getValue()) && isResourceExist(ldr, 
> entry.getKey()) &&
> !U.hasParent(clsLdrToIgnore, ldr) && 
> clsLdrRsrcs.containsKey(entry.getKey()) && ldrRsrcs.remove(ldr, clsLdrRsrcs)) 
> {
> ...
> }
> {noformat}
> Reproducer (might require multiple runs)
> {noformat}
> /** */
> public class Main {
> public static void main(String args[]) throws MalformedURLException, 
> ClassNotFoundException {
> System.setProperty("IGNITE_CACHE_REMOVED_ENTRIES_TTL", "1");
> IgniteConfiguration cfg = new IgniteConfiguration();
> cfg.setPeerClassLoadingEnabled(true);
> TcpDiscoverySpi spi = new TcpDiscoverySpi();
> spi.setIpFinder(new TcpDiscoveryVmIpFinder(true));
> cfg.setDiscoverySpi(spi);
> final Ignite ignite = Ignition.start(cfg);
> final ClassLoader moduleClsLdr = Main.class.getClassLoader();
> final ClassLoader moduleCLImpl = new DelegateClassLoader(null, 
> moduleClsLdr);
> for (int i = 0; i < 100; i++)
> try {
> Class clazz = moduleCLImpl.loadClass("Main$CallFunction");
> ignite.compute().call(
> 
> (IgniteCallable)clazz.getDeclaredConstructor(ClassLoader.class).newInstance(moduleCLImpl)
> );
> }
> catch (Exception e) {
> e.printStackTrace();
> }
> System.out.println("Done");
> }
> public static class CallFunction implements IgniteCallable, 
> GridPeerDeployAware {
> transient ClassLoader classLoader;
> public CallFunction(ClassLoader cls) {
> this.classLoader = cls;
> }
> public Object call() throws Exception {
> return null;
> }
> public Class deployClass() {
> return this.getClass();
> }
> public ClassLoader classLoader() {
> return classLoader;
> }
> }
> public static class DelegateClassLoader extends ClassLoader {
> private ClassLoader delegateCL;
> public DelegateClassLoader(ClassLoader parent, ClassLoader 
> delegateCL) {
> super(parent); // Parent doesn't matter.
> this.delegateCL = delegateCL;
> }
> @Override
> public URL getResource(String name) {
> return delegateCL.getResource(name);
> }
> @Override
> public Class loadClass(String name) throws ClassNotFoundException {
> return delegateCL.loadClass(name);
> }
> }
> }
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Assigned] (IGNITE-4927) Write behind - need new mode without skipping values history

2017-04-06 Thread Alexey Dmitriev (JIRA)

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

Alexey Dmitriev reassigned IGNITE-4927:
---

Assignee: Alexey Dmitriev

> Write behind - need new mode without skipping values history
> 
>
> Key: IGNITE-4927
> URL: https://issues.apache.org/jira/browse/IGNITE-4927
> Project: Ignite
>  Issue Type: Improvement
>Reporter: Yakov Zhdanov
>Assignee: Alexey Dmitriev
>
> Currently write behind store is backed by a map, therefore when several 
> updates come to the same key its values' change history is lost.
> We need to introduce optional mode and back write behind with a queue and 
> pass each  to database.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (IGNITE-4927) Write behind - need new mode without skipping values history

2017-04-06 Thread Yakov Zhdanov (JIRA)
Yakov Zhdanov created IGNITE-4927:
-

 Summary: Write behind - need new mode without skipping values 
history
 Key: IGNITE-4927
 URL: https://issues.apache.org/jira/browse/IGNITE-4927
 Project: Ignite
  Issue Type: Improvement
Reporter: Yakov Zhdanov


Currently write behind store is backed by a map, therefore when several updates 
come to the same key its values' change history is lost.

We need to introduce optional mode and back write behind with a queue and pass 
each  to database.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4667) Throw exception on starting client cache when indexed types cannot be loaded

2017-04-06 Thread Dmitry Karachentsev (JIRA)

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

Dmitry Karachentsev commented on IGNITE-4667:
-

Semen,

Thanks for review, please check last changes.

> Throw exception on starting client cache when indexed types cannot be loaded
> 
>
> Key: IGNITE-4667
> URL: https://issues.apache.org/jira/browse/IGNITE-4667
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.8
>Reporter: Dmitry Karachentsev
>Assignee: Dmitry Karachentsev
> Fix For: 2.0
>
>
> Assume following situation:
> 1. Server node configured cache indexed types with classes that client node 
> doesn't have.
> 2. Start server.
> 3. Start client. Client successfully connected.
> 4. Try to get cache on client node.
> 5. Was thrown exception in GridQueryProcessor and request for cache on client 
> node hangs forever.
> If on some reason cache couldn't be initialized, exception must be thrown on 
> Ignite.cache() operation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-2466) OutOfMemory when PRIMARY_SYNC mode is used

2017-04-06 Thread Dmitry Karachentsev (JIRA)

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

Dmitry Karachentsev commented on IGNITE-2466:
-

Semen,

I've added test, please check.

Thanks!

> OutOfMemory when PRIMARY_SYNC mode is used
> --
>
> Key: IGNITE-2466
> URL: https://issues.apache.org/jira/browse/IGNITE-2466
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 1.5.0.final
>Reporter: Denis Magda
>Assignee: Dmitry Karachentsev
> Fix For: 2.0
>
> Attachments: example-ignite.xml, MemTest.java
>
>
> To reproduce, run two server nodes with 2g of heap each and then MemTest. 
> Servers will fail with OOME. If backups are disabled or there is only one 
> server node, it works.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4809) Cache.getAll can return partially commited results.

2017-04-06 Thread Alexey Kuznetsov (JIRA)

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

Alexey Kuznetsov commented on IGNITE-4809:
--

[~SomeFire] lol

> Cache.getAll can return partially commited results.
> ---
>
> Key: IGNITE-4809
> URL: https://issues.apache.org/jira/browse/IGNITE-4809
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.7
>Reporter: Andrew Mashenkov
>
> 1. Create tansactional cache with Long values and fill it with zeroes.
> 2. Start thread that would increment all values in single transaction.
> 3. Start thread that would check all values are same in single transaction.
> Second thread will see partial commits, but shouldn't.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4809) Cache.getAll can return partially commited results.

2017-04-06 Thread Andrew Mashenkov (JIRA)

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

Andrew Mashenkov commented on IGNITE-4809:
--

Cache mode is transactional as it mentioned as first step.


> Cache.getAll can return partially commited results.
> ---
>
> Key: IGNITE-4809
> URL: https://issues.apache.org/jira/browse/IGNITE-4809
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.7
>Reporter: Andrew Mashenkov
>
> 1. Create tansactional cache with Long values and fill it with zeroes.
> 2. Start thread that would increment all values in single transaction.
> 3. Start thread that would check all values are same in single transaction.
> Second thread will see partial commits, but shouldn't.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Assigned] (IGNITE-4809) Cache.getAll can return partially commited results.

2017-04-06 Thread Alexey Kuznetsov (JIRA)

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

Alexey Kuznetsov reassigned IGNITE-4809:


Assignee: (was: Alexey Kuznetsov)

> Cache.getAll can return partially commited results.
> ---
>
> Key: IGNITE-4809
> URL: https://issues.apache.org/jira/browse/IGNITE-4809
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.7
>Reporter: Andrew Mashenkov
>
> 1. Create tansactional cache with Long values and fill it with zeroes.
> 2. Start thread that would increment all values in single transaction.
> 3. Start thread that would check all values are same in single transaction.
> Second thread will see partial commits, but shouldn't.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4809) Cache.getAll can return partially commited results.

2017-04-06 Thread Ryabov Dmitrii (JIRA)

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

Ryabov Dmitrii commented on IGNITE-4809:


May be it is becouse of atomic cache mode?

> Cache.getAll can return partially commited results.
> ---
>
> Key: IGNITE-4809
> URL: https://issues.apache.org/jira/browse/IGNITE-4809
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.7
>Reporter: Andrew Mashenkov
>Assignee: Alexey Kuznetsov
>
> 1. Create tansactional cache with Long values and fill it with zeroes.
> 2. Start thread that would increment all values in single transaction.
> 3. Start thread that would check all values are same in single transaction.
> Second thread will see partial commits, but shouldn't.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4898) Add path to ODBC driver installers to platforms\cpp\odbc\README.txt

2017-04-06 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on IGNITE-4898:


GitHub user isapego opened a pull request:

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

IGNITE-4898: Added ODBC installers paths to README



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-4898

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/1753.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1753


commit 149137918ae0b8b4f82e86165470b8a8eb6fa797
Author: Igor Sapego 
Date:   2017-04-06T15:39:09Z

IGNITE-4898: Added ODBC installers paths to README




> Add path to ODBC driver installers to platforms\cpp\odbc\README.txt
> ---
>
> Key: IGNITE-4898
> URL: https://issues.apache.org/jira/browse/IGNITE-4898
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Reporter: Irina Zaporozhtseva
>Assignee: Igor Sapego
>Priority: Critical
> Fix For: 2.0
>
>
> Add path to ODBC driver installers (/cpp/bin/odbc/) to 
> platforms\cpp\odbc\README.txt:
> "There are two ways to install ODBC driver currently. The first one is to use
> 32-bit or 64-bit installer. This is the most simple way and you are 
> recommended to stick to it by default."



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-821) [Test] IgniteCacheExpiryPolicyWithStoreAbstractTest # testReadThrough was disabled

2017-04-06 Thread Ilya Lantukh (JIRA)

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

Ilya Lantukh commented on IGNITE-821:
-

Test works fine in IGNITE-3477.

> [Test] IgniteCacheExpiryPolicyWithStoreAbstractTest # testReadThrough was 
> disabled
> --
>
> Key: IGNITE-821
> URL: https://issues.apache.org/jira/browse/IGNITE-821
> Project: Ignite
>  Issue Type: Bug
>Reporter: Artem Shutak
>  Labels: Muted_test
>
> IgniteCacheExpiryPolicyWithStoreAbstractTest # testReadThrough was disabled. 
> It has to be fixed or removed.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Assigned] (IGNITE-4809) Cache.getAll can return partially commited results.

2017-04-06 Thread Alexey Kuznetsov (JIRA)

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

Alexey Kuznetsov reassigned IGNITE-4809:


Assignee: Alexey Kuznetsov

> Cache.getAll can return partially commited results.
> ---
>
> Key: IGNITE-4809
> URL: https://issues.apache.org/jira/browse/IGNITE-4809
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.7
>Reporter: Andrew Mashenkov
>Assignee: Alexey Kuznetsov
>
> 1. Create tansactional cache with Long values and fill it with zeroes.
> 2. Start thread that would increment all values in single transaction.
> 3. Start thread that would check all values are same in single transaction.
> Second thread will see partial commits, but shouldn't.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4919) Remove support BinaryIdentityResolver

2017-04-06 Thread Igor Sapego (JIRA)

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

Igor Sapego commented on IGNITE-4919:
-

[~DmitriyGovorukhin] already done.

> Remove support BinaryIdentityResolver
> -
>
> Key: IGNITE-4919
> URL: https://issues.apache.org/jira/browse/IGNITE-4919
> Project: Ignite
>  Issue Type: Task
>  Components: binary
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
> Fix For: 2.0
>
>
> We must get rid of BinaryIdentityResolver, because in new memory model, we 
> must provide stable binary key representation. 
> [discussion|http://apache-ignite-developers.2346864.n4.nabble.com/Stable-binary-key-representation-td15904.html]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4919) Remove support BinaryIdentityResolver

2017-04-06 Thread Dmitriy Govorukhin (JIRA)

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

Dmitriy Govorukhin commented on IGNITE-4919:


[~isapego] Could you please, remove BinaryIdentityResolver from C++ integration?

> Remove support BinaryIdentityResolver
> -
>
> Key: IGNITE-4919
> URL: https://issues.apache.org/jira/browse/IGNITE-4919
> Project: Ignite
>  Issue Type: Task
>  Components: binary
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
> Fix For: 2.0
>
>
> We must get rid of BinaryIdentityResolver, because in new memory model, we 
> must provide stable binary key representation. 
> [discussion|http://apache-ignite-developers.2346864.n4.nabble.com/Stable-binary-key-representation-td15904.html]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-1977) IgniteSemaphore's failover related tests lead to the deadlock or fail

2017-04-06 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on IGNITE-1977:


GitHub user vladisav opened a pull request:

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

IGNITE-1977 Fixes IgniteSemaphore failover deadlock/fail bug



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/vladisav/ignite ignite-1977

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/1751.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1751


commit 04c6de5b7fb23c9e762cb4be57163189982c2f33
Author: Vladisav Jelisavcic 
Date:   2017-04-06T13:57:51Z

Fixes IGNITE-1977;




> IgniteSemaphore's failover related tests lead to the deadlock or fail
> -
>
> Key: IGNITE-1977
> URL: https://issues.apache.org/jira/browse/IGNITE-1977
> Project: Ignite
>  Issue Type: Bug
>  Components: data structures
>Affects Versions: 1.8, 1.9
>Reporter: Denis Magda
>Assignee: Vladisav Jelisavcic
> Fix For: 2.0
>
>
> All {{IgniteSemaphore}} related tests from 
> {{GridCacheAbstractDataStructuresFailoverSelfTest}} may cause a deadlock 
> which leads to the whole suite hanging.
> The threads are waiting for the following condition:
> {noformat}
> "topology-change-thread-3" prio=6 tid=0x1d98d800 nid=0x2b20 waiting 
> on condition [0x2066f000]
>java.lang.Thread.State: WAITING (parking)
>   at sun.misc.Unsafe.park(Native Method)
>   - parking to wait for  <0x000798149948> (a 
> org.apache.ignite.internal.processors.datastructures.GridCacheSemaphoreImpl$Sync)
>   at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
>   at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
>   at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994)
>   at 
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303)
>   at 
> org.apache.ignite.internal.processors.datastructures.GridCacheSemaphoreImpl.acquire(GridCacheSemaphoreImpl.java:538)
>   at 
> org.apache.ignite.internal.processors.datastructures.GridCacheSemaphoreImpl.acquire(GridCacheSemaphoreImpl.java:525)
>   at 
> org.apache.ignite.internal.processors.cache.datastructures.GridCacheAbstractDataStructuresFailoverSelfTest$7.apply(GridCacheAbstractDataStructuresFailoverSelfTest.java:571)
>   at 
> org.apache.ignite.internal.util.lang.GridAbsClosure.run(GridAbsClosure.java:50)
>   at 
> org.apache.ignite.testframework.GridTestUtils$7.call(GridTestUtils.java:967)
>   at 
> org.apache.ignite.testframework.GridTestThread.run(GridTestThread.java:86)
> {noformat}
> Probably the semaphore is not properly released when a node leaves the 
> topology abruptly.
> In addition the tests should be rewritten to the way which is followed by 
> other data structures and atomics from this suite: using 
> {{ConstantTopologyChangeWorker}} and its descendants.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4926) .NET: Join fails in LINQ when subquery is using Select clause

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4926:
---
Fix Version/s: 2.1

> .NET: Join fails in LINQ when subquery is using Select clause
> -
>
> Key: IGNITE-4926
> URL: https://issues.apache.org/jira/browse/IGNITE-4926
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Reporter: Sergey Stronchinskiy
>Priority: Minor
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> Using {{Join}} with subquery works when subquery does not contain {{Select}} 
> clause:
> {code}
> var persons = GetPersonCache().AsCacheQueryable().Where(x => x.Key >= 0);
> var orgs = GetOrgCache().AsCacheQueryable().Where(x => x.Key > 10);
> var res = persons.Join(orgs,
> p => p.Value.OrganizationId,
> o => o.Value.Id, (p, o) => p)
> .Where(x => x.Key >= 0)
> .ToList();
> {code}
> And fails when subquery is using {{Select}}:
> {code}
> var res = persons
> .Join(
> orgs.Where(orgEntry => orgEntry.Value.Name == "Org_1")
> .Select(orgEntry => orgEntry.Key),
> e => e.Value.OrganizationId,
> i => i,
> (e, i) => e)
> .ToList();
> {code}
> Exception:
> {code}
> Failed to parse SQL query: select _T0._key, _T0._val from "".Person as _T0 
> inner join (select _T1._key from "".Organization as _T1 where (_T1._key > ?) 
> and (_T1.Name = ?) ) as _T2 on (_T2._key, _T2._val = _T0.OrganizationId) 
> where (_T0._key >= ?)
> Caused by: org.h2.jdbc.JdbcSQLException: Column "_T2._VAL" not found;
> {code}
> This can be reproduced in {{CacheLinqTest.TestSubqueryJoin}} by adding next:
> {code}
> var foo = persons
> .Join(
> orgs.Where(orgEntry => orgEntry.Value.Name == "Org_1")
> .Select(orgEntry => orgEntry.Key),
> e => e.Value.OrganizationId,
> i => i,
> (e, i) => e)
> .ToArray();
> {code}
> or
> {code}
> var foo = orgs
> .Where(orgEntry => orgEntry.Value.Name == "Org_1")
> .Select(orgEntry => orgEntry.Key);
> var bar = persons
> .Join(foo, e => e.Value.OrganizationId, i => i, (e, i) => e)
> .ToArray();
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (IGNITE-4926) .NET: Join fails in LINQ when subquery is using Select clause

2017-04-06 Thread Sergey Stronchinskiy (JIRA)
Sergey Stronchinskiy created IGNITE-4926:


 Summary: .NET: Join fails in LINQ when subquery is using Select 
clause
 Key: IGNITE-4926
 URL: https://issues.apache.org/jira/browse/IGNITE-4926
 Project: Ignite
  Issue Type: Bug
  Components: platforms
Reporter: Sergey Stronchinskiy
Priority: Minor


Using {{Join}} with subquery works when subquery does not contain {{Select}} 
clause:

{code}
var persons = GetPersonCache().AsCacheQueryable().Where(x => x.Key >= 0);
var orgs = GetOrgCache().AsCacheQueryable().Where(x => x.Key > 10);
var res = persons.Join(orgs,
p => p.Value.OrganizationId,
o => o.Value.Id, (p, o) => p)
.Where(x => x.Key >= 0)
.ToList();
{code}

And fails when subquery is using {{Select}}:

{code}
var res = persons
.Join(
orgs.Where(orgEntry => orgEntry.Value.Name == "Org_1")
.Select(orgEntry => orgEntry.Key),
e => e.Value.OrganizationId,
i => i,
(e, i) => e)
.ToList();
{code}

Exception:
{code}
Failed to parse SQL query: select _T0._key, _T0._val from "".Person as _T0 
inner join (select _T1._key from "".Organization as _T1 where (_T1._key > ?) 
and (_T1.Name = ?) ) as _T2 on (_T2._key, _T2._val = _T0.OrganizationId) where 
(_T0._key >= ?)
Caused by: org.h2.jdbc.JdbcSQLException: Column "_T2._VAL" not found;
{code}

This can be reproduced in {{CacheLinqTest.TestSubqueryJoin}} by adding next:

{code}
var foo = persons
.Join(
orgs.Where(orgEntry => orgEntry.Value.Name == "Org_1")
.Select(orgEntry => orgEntry.Key),
e => e.Value.OrganizationId,
i => i,
(e, i) => e)
.ToArray();
{code}

or

{code}
var foo = orgs
.Where(orgEntry => orgEntry.Value.Name == "Org_1")
.Select(orgEntry => orgEntry.Key);
var bar = persons
.Join(foo, e => e.Value.OrganizationId, i => i, (e, i) => e)
.ToArray();
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4925) IgniteCacheEntryListenerEagerTtlDisabledTest.testSynchronousEventsObjectKeyValue test fails while invoking from IgniteBinaryCacheTestSuite

2017-04-06 Thread ASF GitHub Bot (JIRA)

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

ASF GitHub Bot commented on IGNITE-4925:


GitHub user ezhuravl opened a pull request:

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

IGNITE-4925 Fix 
IgniteCacheEntryListenerEagerTtlDisabledTest.hronousEventsObjectKeyValue…



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-4925

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/1750.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #1750


commit b24e832ab1e17fe50c7b8bbddbbcf0207675cf61
Author: Evgenii Zhuravlev 
Date:   2017-04-06T13:02:44Z

IGNITE-4925 Fix 
IgniteCacheEntryListenerEagerTtlDisabledTest.testSynchronousEventsObjectKeyValue
 test




> IgniteCacheEntryListenerEagerTtlDisabledTest.testSynchronousEventsObjectKeyValue
>  test fails while invoking from IgniteBinaryCacheTestSuite 
> ---
>
> Key: IGNITE-4925
> URL: https://issues.apache.org/jira/browse/IGNITE-4925
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 2.0
>Reporter: Evgenii Zhuravlev
>Assignee: Evgenii Zhuravlev
> Fix For: 2.0
>
>




--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4904) .NET: DML via LINQ

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4904:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: DML via LINQ
> --
>
> Key: IGNITE-4904
> URL: https://issues.apache.org/jira/browse/IGNITE-4904
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Affects Versions: 1.9
>Reporter: Pavel Tupitsyn
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> Perform bulk update operations via LINQ: {{UPDATE WHERE}}, {{DELETE WHERE}}. 
> Insert can already be done on object level with {{ICache.PutAll}}.
> 1) {{DELETE WHERE}}. This is quite simple. We can provide an extension method 
> like this:
> {code}
> public static int DeleteAll(this ICache cache, 
> IQueryable> items);
> {code}
> 2) {{UPDATE WHERE}}. This is tricky, because LINQ only works with expression 
> trees, and multi-line methods are not supported. We should come up with a way 
> to provide a list of columns and values, something like
> {code}
> public static int UpdateAll(this ICache cache, 
> IQueryable> items, params UpdateAction[] actions);
> {code}
> where UpdateAction can consist of a MemberExpression and a value for that 
> member.
> We should probably do delete as a separate task first.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4818) .NET DayOfWeek does not work as a LINQ parameter

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4818:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET DayOfWeek does not work as a LINQ parameter
> 
>
> Key: IGNITE-4818
> URL: https://issues.apache.org/jira/browse/IGNITE-4818
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 1.9
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> IGNITE-4359 added support for {{DateTime.DayOfWeek}}, but it can't be used in 
> Where clause:
> {code}
> var res = persons.AsCacheQueryable().Where(x => x.Value.BirthDay.DayOfWeek == 
> DayOfWeek.Monday);
> {code}
> This fails because {{DayOfWeek.Monday}} is written as a serializable enum.
> Workaround is to cast to an int:
> {code}
> var res = persons.AsCacheQueryable().Where(x => 
> (int)x.Value.BirthDay.DayOfWeek == (int)DayOfWeek.Monday);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4543) .NET: Support multiple aggregates in LINQ

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4543:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Support multiple aggregates in LINQ
> -
>
> Key: IGNITE-4543
> URL: https://issues.apache.org/jira/browse/IGNITE-4543
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>  Labels: .NET, linq
> Fix For: 2.1
>
>
> Provide a way to express multiple aggregates in LINQ like we do in SQL:
> {{SELECT MIN(salary), MAX(salary) from Employee}},
> LINQ to SQL and EntityFramework allow constructs like these:
> {code}
> [Test]
> public void TestAggregatesMultiple()
> {
> var ints = GetPersonCache().AsCacheQueryable().Select(x => x.Key);
> var res = ints.GroupBy(x => 1).Select(g => new {Sum = g.Sum(), 
> Avg = g.Average()}).Single();
> Assert.AreEqual(ints.Sum(), res.Sum);
> Assert.AreEqual(ints.Average(), res.Avg);
> var res2 = ints.Select(x => new {Sum = ints.Sum(), Avg = 
> ints.Average()}).First();
> 
> Assert.AreEqual(ints.Sum(), res2.Sum);
> Assert.AreEqual(ints.Average(), res2.Avg);
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4723) .NET: Support REGEXP_LIKE in LINQ

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4723:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Support REGEXP_LIKE in LINQ
> -
>
> Key: IGNITE-4723
> URL: https://issues.apache.org/jira/browse/IGNITE-4723
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> {{REGEXP_REPLACE}} H2 function is supported in LINQ via {{Regex.Replace}}, 
> see {{MethodVisitor}}.
> Add mapping for {{REGEXP_LIKE}} via {{Regex.IsMatch}}.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4549) .NET: Add LINQPad samples to logging NuGet packages

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4549:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Add LINQPad samples to logging NuGet packages
> ---
>
> Key: IGNITE-4549
> URL: https://issues.apache.org/jira/browse/IGNITE-4549
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Priority: Trivial
>  Labels: .NET, newbie
> Fix For: 2.1
>
>
> Add LINQPad samples to Log4Net and NLog NuGet packages.
> Samples should include simple in-code file-based log configuration and 
> writing to the log.
> NLog example can be like this:
> {code}
> var nlogConfig = new LoggingConfiguration();
> var fileTarget = new FileTarget
> {
> FileName = "ignite_nlog.log"
> };
> nlogConfig.AddTarget("logfile", fileTarget);
> nlogConfig.LoggingRules.Add(new LoggingRule("*", LogLevel.Trace, 
> fileTarget));
> LogManager.Configuration = nlogConfig;
> var igniteConfig = new IgniteConfiguration
> {
> Logger = new IgniteNLogLogger()
> };
> Ignition.Start(igniteConfig);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4864) .NET: Support arrays in SQL

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4864:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Support arrays in SQL
> ---
>
> Key: IGNITE-4864
> URL: https://issues.apache.org/jira/browse/IGNITE-4864
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.7
>Reporter: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.1
>
>
> Ignite SQL supports arrays, for example, string array can be configured via 
> {{QueryEntity.ValueTypeName = "L[java.lang.String;";}} and then queried with 
> {{WHERE array_contains(ABC, ?);}}.
> * Update {{JavaTypes}} with array mappings
> * Add tests to make sure results and arguments are passed properly
> * Add support in LINQ (separate ticket?)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (IGNITE-4495) .NET: Support user-defined identity resolvers

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn resolved IGNITE-4495.

Resolution: Won't Fix

Not applicable anymore since user-defined resolver support has been removed

> .NET: Support user-defined identity resolvers
> -
>
> Key: IGNITE-4495
> URL: https://issues.apache.org/jira/browse/IGNITE-4495
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.0
>
>
> See {{BinaryTypeConfiguration.EqualityComparer}}: it supports predefined 
> implementations only.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4388) .NET: Improve LINQ error message when aggregates are used with multiple fields

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4388:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Improve LINQ error message when aggregates are used with multiple fields
> --
>
> Key: IGNITE-4388
> URL: https://issues.apache.org/jira/browse/IGNITE-4388
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.7, 1.8
>Reporter: Pavel Tupitsyn
>Priority: Trivial
>  Labels: .NET, LINQ
> Fix For: 2.1
>
>
> Current message is "Aggregate functions do not support multiple fields". This 
> happens when you try to apply aggregate function (such as COUNT) to a query 
> which selects multiple fields (select new {X, Y}). LINQ allows that, but we 
> can't express this in SQL.
> * See what Entity Framework does
> * Improve error message



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4419) .NET: Serilog integration

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4419:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Serilog integration
> -
>
> Key: IGNITE-4419
> URL: https://issues.apache.org/jira/browse/IGNITE-4419
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .NET
> Fix For: 2.1
>
>
> Serilog is another popular .NET logger: https://serilog.net/
> Integrate with Ignite.NET, see NLog and log4net integrations: IGNITE-3279, 
> IGNITE-3280



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4406) .NET: Control DateTime serialization via attribute

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4406:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Control DateTime serialization via attribute
> --
>
> Key: IGNITE-4406
> URL: https://issues.apache.org/jira/browse/IGNITE-4406
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .NET
> Fix For: 2.1
>
>
> .NET can write DateTime in internal format (preserves DateTime.Kind) and as 
> Timestamp (does not allow non-UTC values).
> By default we use internal format. To use Timestamp user has to mark field 
> with QuerySqlField (non obvious), or override IBinarizable.
> Provide a dedicated attribute to enforce timestamp mode.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4474) Ignite.createCache hangs on exception in CachePluginConfiguration.createProvider

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4474:
---
Fix Version/s: (was: 2.0)
   2.1

> Ignite.createCache hangs on exception in 
> CachePluginConfiguration.createProvider
> 
>
> Key: IGNITE-4474
> URL: https://issues.apache.org/jira/browse/IGNITE-4474
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Priority: Minor
> Fix For: 2.1
>
>
> When there is an exception during provider initialization, {{createCache}} 
> hangs.
> {code}
> public class CacheCfg implements CachePluginConfiguration {
> @Override public CachePluginProvider createProvider(CachePluginContext 
> ctx) {
> throw new IgniteException("foo");
> }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4377) Cannot find schema for object with compact footer

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4377:
---
Fix Version/s: (was: 2.0)
   2.1

> Cannot find schema for object with compact footer
> -
>
> Key: IGNITE-4377
> URL: https://issues.apache.org/jira/browse/IGNITE-4377
> Project: Ignite
>  Issue Type: Bug
>  Components: cache, compute
>Affects Versions: 1.7, 1.8
>Reporter: Pavel Tupitsyn
>Priority: Critical
> Fix For: 2.1
>
>
> When invoking a computation which returns an object from *client* node, 
> "Cannot find schema for object with compact footer" exception occurs some 
> times (only during first invocation)
> {code}
> class org.apache.ignite.binary.BinaryObjectException: Cannot find schema for 
> object with compact footer [typeId=2005649068, schemaId=-1206298342]
>   at 
> org.apache.ignite.internal.binary.BinaryReaderExImpl.getOrCreateSchema(BinaryReaderExImpl.java:1738)
>   at 
> org.apache.ignite.internal.binary.BinaryReaderExImpl.(BinaryReaderExImpl.java:279)
>   at 
> org.apache.ignite.internal.binary.BinaryReaderExImpl.(BinaryReaderExImpl.java:178)
>   at 
> org.apache.ignite.internal.binary.BinaryReaderExImpl.(BinaryReaderExImpl.java:157)
>   at 
> org.apache.ignite.internal.binary.GridBinaryMarshaller.deserialize(GridBinaryMarshaller.java:298)
>   at 
> org.apache.ignite.internal.binary.BinaryMarshaller.unmarshal0(BinaryMarshaller.java:100)
>   at 
> org.apache.ignite.marshaller.AbstractNodeNameAwareMarshaller.unmarshal(AbstractNodeNameAwareMarshaller.java:82)
>   at 
> org.apache.ignite.internal.util.IgniteUtils.unmarshal(IgniteUtils.java:9751)
>   at 
> org.apache.ignite.internal.processors.task.GridTaskWorker.onResponse(GridTaskWorker.java:808)
>   at 
> org.apache.ignite.internal.processors.task.GridTaskProcessor.processJobExecuteResponse(GridTaskProcessor.java:996)
>   at 
> org.apache.ignite.internal.processors.task.GridTaskProcessor$JobMessageListener.onMessage(GridTaskProcessor.java:1221)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1082)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:710)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoManager.access$1700(GridIoManager.java:102)
>   at 
> org.apache.ignite.internal.managers.communication.GridIoManager$5.run(GridIoManager.java:673)
>   at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>   at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>   at java.lang.Thread.run(Thread.java:745)
> {code}
> Reproducer:
> {code}
> package org.apache.ignite;
> import org.apache.ignite.platform.PlatformComputeBinarizable;
> import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
> public class ClientModeCompactFooterTest extends GridCommonAbstractTest {
> public ClientModeCompactFooterTest() {
> super(false);
> }
> public void test() throws Exception {
> for (int i =0; i < 100; i++) {
> startGrid("server", 
> "modules\\platforms\\dotnet\\Apache.Ignite.Core.Tests\\Config\\Compute\\compute-grid1.xml");
> Ignite client = startGrid("client", 
> "modules\\platforms\\dotnet\\Apache.Ignite.Core.Tests\\Config\\Compute\\compute-grid3.xml");
> PlatformComputeBinarizable res = 
> client.compute().execute("org.apache.ignite.platform.PlatformComputeEchoTask",
>  12);
> assertEquals(1, res.field);
> stopAllGrids();
> }
> }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (IGNITE-4376) SQL: Failed to run reduce query locally with a valid query

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn resolved IGNITE-4376.

Resolution: Fixed

Seems to be fixed as part of IGNITE-3860

> SQL: Failed to run reduce query locally with a valid query
> --
>
> Key: IGNITE-4376
> URL: https://issues.apache.org/jira/browse/IGNITE-4376
> Project: Ignite
>  Issue Type: Bug
>  Components: SQL
>Affects Versions: 1.7
>Reporter: Pavel Tupitsyn
> Fix For: 2.0
>
>
> Reported by Ignite.NET user:
> {code}
> javax.cache.CacheException: Failed to run reduce query locally.
> at 
> org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:754)
> at 
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing$5.iterator(IgniteH2Indexing.java:1119)
> at 
> org.apache.ignite.internal.processors.cache.QueryCursorImpl.iterator(QueryCursorImpl.java:98)
> at 
> org.apache.ignite.internal.processors.platform.cache.query.PlatformAbstractQueryCursor.processInLongOutLong(PlatformAbstractQueryCursor.java:142)
> at 
> org.apache.ignite.internal.processors.platform.PlatformAbstractTarget.inLongOutLong(PlatformAbstractTarget.java:66)
> Caused by: class org.apache.ignite.IgniteCheckedException: Failed to parse 
> SQL query: SELECT
> __C0 NATURALKEY,
> ((PR.PR_PER_PROJECTS_PERCENTCOMPLETED / 100.0) * SUM(__C1)) AS EXPR1
> FROM PUBLIC.__T0
> GROUP BY __C0, __C2
> at 
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.preparedStatementWithParams(IgniteH2Indexing.java:913)
> at 
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeSqlQueryWithTimer(IgniteH2Indexing.java:985)
> at 
> org.apache.ignite.internal.processors.query.h2.twostep.GridReduceQueryExecutor.query(GridReduceQueryExecutor.java:709)
> ... 4 more
> Caused by: org.h2.jdbc.JdbcSQLException: Column 
> "PR.PR_PER_PROJECTS_PERCENTCOMPLETED" not found; SQL statement:
> SELECT
> __C0 NATURALKEY,
> ((PR.PR_PER_PROJECTS_PERCENTCOMPLETED / 100.0) * SUM(__C1)) AS EXPR1
> FROM PUBLIC.__T0
> GROUP BY __C0, __C2 [42122-191]
> at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
> at org.h2.message.DbException.get(DbException.java:179)
> at org.h2.message.DbException.get(DbException.java:155)
> at org.h2.expression.ExpressionColumn.optimize(ExpressionColumn.java:147)
> at org.h2.expression.Operation.optimize(Operation.java:181)
> at org.h2.expression.Operation.optimize(Operation.java:181)
> at org.h2.expression.Alias.optimize(Alias.java:51)
> at org.h2.command.dml.Select.prepare(Select.java:852)
> at org.h2.command.Parser.prepareCommand(Parser.java:257)
> at org.h2.engine.Session.prepareLocal(Session.java:560)
> at org.h2.engine.Session.prepareCommand(Session.java:501)
> at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1188)
> at org.h2.jdbc.JdbcPreparedStatement.(JdbcPreparedStatement.java:73)
> at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:276)
> at 
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.prepareStatement(IgniteH2Indexing.java:425)
> at 
> org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.preparedStatementWithParams(IgniteH2Indexing.java:910)
> ... 6 more
> {code}
> Query (works in H2 console):
> {code}
> select pr.NATURALKEY, (pr.PR_PER_PROJECTS_PERCENTCOMPLETED / 100.0) * 
> sum(a.AS_RIO_ASSIGNMENTS_PERIODCOST) as Expr1
> from "Landscape".MI_MILESTONES mi 
> Inner join "Landscape".PR_HAS_MI_A t0 on t0.MI_ID_A = MI.NATURALKEY 
> Inner join "Landscape".PR_HAS_AS_A t1 on t1.PR_ID_HAS = t0.PR_ID_HAS 
> Inner join "Landscape".PR_HAS_OW_A t2 on t2.PR_ID_HAS = t0.PR_ID_HAS 
> Inner join "Landscape".AS_ASSIGNMENTS a on a.NATURALKEY = t1.AS_ID_A 
> inner join "Landscape".PR_PROJECTS pr on pr.NATURALKEY = t0.PR_ID_HAS 
> inner join "Landscape".OW_OWNERSHIP ow on ow.NATURALKEY=t2.OW_ID_A 
> group by 
> pr.NATURALKEY, pr.PR_PER_PROJECTS_PERCENTCOMPLETED
> {code}
> Query entity config:
> {code}
> 
>  valueTypeName="PR_Projects">
>   
>fieldTypeName="java.lang.Long" />
>fieldTypeName="java.lang.String" />
>fieldType="System.String" fieldTypeName="java.lang.String" />
>fieldType="System.String" fieldTypeName="java.lang.String" />
>fieldType="System.DateTime" fieldTypeName="java.sql.Timestamp" />
>fieldType="System.DateTime" fieldTypeName="java.sql.Timestamp" />
>fieldType="System.DateTime" fieldTypeName="java.sql.Timestamp" />
>fieldTypeName="java.lang.Integer" />
>fieldType="System.Int32" fieldTypeName="java.lang.Integer" />
>fieldType="System.Int32" fieldTypeName="java.lang.Integer" />
>

[jira] [Updated] (IGNITE-3979) .NET: Reorganize test suites

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3979:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Reorganize test suites
> 
>
> Key: IGNITE-3979
> URL: https://issues.apache.org/jira/browse/IGNITE-3979
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.1
>
>
> Considerations:
> * Ignite.NET has core module and a bunch of optional modules (LINQ, ASP.NET, 
> NLog, log4net, EntityFramework)
> * Good design is to have a separate test project per module
> * TeamCity spends considerable amount of time just to build sources (Java 
> build takes 4 minutes)
> Therefore, we should have separate test modules, but combine some of them on 
> TeamCity.
> For example, all optional modules can be combined into one TeamCity suite.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4070) .NET: Introduce transformers to SCAN queries

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4070:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Introduce transformers to SCAN queries
> 
>
> Key: IGNITE-4070
> URL: https://issues.apache.org/jira/browse/IGNITE-4070
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.1
>
>
> Same thing in .NET as IGNITE-2546. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4099) .NET: Review method group usage (micro-optimization)

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4099:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Review method group usage (micro-optimization)
> 
>
> Key: IGNITE-4099
> URL: https://issues.apache.org/jira/browse/IGNITE-4099
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .NET
> Fix For: 2.1
>
>
> There are a bunch of places where we use method group delegates, including 
> hot paths in serialization/deserialization.
> Method group syntax is more concise, but causes extra allocations and worse 
> performance: http://vibrantcode.com/2013/02/19/lambdas-vs-method-groups/
> Lambda syntax is more efficient. Static lambdas are cached, do not cause 
> allocations, and perform on par with regular methods.
> * The fact that R# suggests replacing lambdas with method groups does not  
> help. We should disable this in team-shared dotsettings file.
> * Heap Allocations R# plugin helps find these issues: 
> https://blog.jetbrains.com/dotnet/2014/06/06/heap-allocations-viewer-plugin/



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4101) .NET: Distributed LINQ parallel extensions

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4101:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Distributed LINQ parallel extensions
> --
>
> Key: IGNITE-4101
> URL: https://issues.apache.org/jira/browse/IGNITE-4101
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.1
>
>
> Parallel LINQ (PLINQ) speeds up regular LINQ-to-objects queries by executing 
> them in parallel in multiple threads: 
> https://msdn.microsoft.com/en-us/library/dd460688(v=vs.110).aspx
> We can implement a similar thing where parallel execution is performed by 
> Ignite in a distributed fashion.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4206) .NET: ADO.NET Data Provider

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-4206:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: ADO.NET Data Provider
> ---
>
> Key: IGNITE-4206
> URL: https://issues.apache.org/jira/browse/IGNITE-4206
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Pavel Tupitsyn
>  Labels: .NET
> Fix For: 2.1
>
>
> Implement ADO.NET Data Provider that works with Ignite cache



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3924) .NET: Integrate with Foundatio

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3924:
---
Fix Version/s: (was: 2ÑŽ1)
   2.1

> .NET: Integrate with Foundatio
> --
>
> Key: IGNITE-3924
> URL: https://issues.apache.org/jira/browse/IGNITE-3924
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .net
> Fix For: 2.1
>
>
> Foundatio (https://github.com/exceptionless/Foundatio) wraps multiple 
> frameworks (such as Redis) to provide unified interface for building 
> distributed applications.
> Ignite.NET can provide implementations for modules such as Caching, Queues, 
> Messaging, Jobs.
> Overview: http://codeopinion.com/in-memory-caching-with-foundatio/



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3924) .NET: Integrate with Foundatio

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3924:
---
Fix Version/s: (was: 2.0)
   2ÑŽ1

> .NET: Integrate with Foundatio
> --
>
> Key: IGNITE-3924
> URL: https://issues.apache.org/jira/browse/IGNITE-3924
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .net
> Fix For: 2.1
>
>
> Foundatio (https://github.com/exceptionless/Foundatio) wraps multiple 
> frameworks (such as Redis) to provide unified interface for building 
> distributed applications.
> Ignite.NET can provide implementations for modules such as Caching, Queues, 
> Messaging, Jobs.
> Overview: http://codeopinion.com/in-memory-caching-with-foundatio/



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3825) .NET: CacheEntryProcessor binary mode

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3825:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: CacheEntryProcessor binary mode
> -
>
> Key: IGNITE-3825
> URL: https://issues.apache.org/jira/browse/IGNITE-3825
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.6
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> Add binary mode support to Cache.Invoke.
> Currently the following fails with invalid cast:
> {code}
> Cache.WithKeepBinary().Invoke(...);
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Assigned] (IGNITE-3885) .NET: Describe development process on Wiki

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn reassigned IGNITE-3885:
--

Resolution: Fixed
  Assignee: Pavel Tupitsyn  (was: Prachi Garg)

> .NET: Describe development process on Wiki
> --
>
> Key: IGNITE-3885
> URL: https://issues.apache.org/jira/browse/IGNITE-3885
> Project: Ignite
>  Issue Type: Task
>  Components: documentation, platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Minor
>  Labels: .NET
> Fix For: 2.0
>
>
> Ignite wiki: 
> https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+Home
> Add .NET development process page:
> * Coding guidelines (naming conventions, etc)
> * Project structure
> * Code inspections, how to run locally and on TC
> * Test coverage
> * How to build (AnyCPU nuances, NuGet, embedded CPP part, Java, etc)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Issue Comment Deleted] (IGNITE-3885) .NET: Describe development process on Wiki

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3885:
---
Comment: was deleted

(was: Prachi, please have a look: 
https://cwiki.apache.org/confluence/display/IGNITE/Ignite.NET+Development)

> .NET: Describe development process on Wiki
> --
>
> Key: IGNITE-3885
> URL: https://issues.apache.org/jira/browse/IGNITE-3885
> Project: Ignite
>  Issue Type: Task
>  Components: documentation, platforms
>Reporter: Pavel Tupitsyn
>Assignee: Pavel Tupitsyn
>Priority: Minor
>  Labels: .NET
> Fix For: 2.0
>
>
> Ignite wiki: 
> https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+Home
> Add .NET development process page:
> * Coding guidelines (naming conventions, etc)
> * Project structure
> * Code inspections, how to run locally and on TC
> * Test coverage
> * How to build (AnyCPU nuances, NuGet, embedded CPP part, Java, etc)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3881) .NET: ICluster.StopNodes

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3881:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: ICluster.StopNodes
> 
>
> Key: IGNITE-3881
> URL: https://issues.apache.org/jira/browse/IGNITE-3881
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .net
> Fix For: 2.1
>
>
> See IgniteCluster.stopNodes in Java.
> There are also startNodes and restartNodes, but these only work with 
> Java-only nodes and ignite.sh/bat.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3697) .NET: Improve test coverage: reach 100% methods coverage

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3697:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Improve test coverage: reach 100% methods coverage
> 
>
> Key: IGNITE-3697
> URL: https://issues.apache.org/jira/browse/IGNITE-3697
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.8
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .net, newbie
> Fix For: 2.1
>
>
> Previous step achieved 100% class coverage, next step is to cover 100% 
> methods.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3717) .NET: GridSecurityProcessor support

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3717:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: GridSecurityProcessor support
> ---
>
> Key: IGNITE-3717
> URL: https://issues.apache.org/jira/browse/IGNITE-3717
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> Provide a way to secure .NET cluster natively. See GridSecurityProcessor in 
> Java, and the blog post: 
> http://smartkey.co.uk/development/securing-an-apache-ignite-cluster/



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3206) .NET: Automatic persistence

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3206:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Automatic persistence
> ---
>
> Key: IGNITE-3206
> URL: https://issues.apache.org/jira/browse/IGNITE-3206
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> See how Automatic Persistence works in Java: 
> http://apacheignite.gridgain.org/docs/automatic-persistence
> Think of a way to do the same in .NET with raw SqlClient and/or with 
> EntityFramework/NHibernate.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3222) IgniteCache.invokeAll for all cache entries

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3222:
---
Fix Version/s: (was: 2.0)
   2.1

> IgniteCache.invokeAll for all cache entries
> ---
>
> Key: IGNITE-3222
> URL: https://issues.apache.org/jira/browse/IGNITE-3222
> Project: Ignite
>  Issue Type: Task
>  Components: cache
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
> Fix For: 2.1
>
>
> Implement an invokeAll overload that processes all cache keys (not some 
> specific set).
> Proposed signature:
> {code}
> public void invokeAll(CacheEntryProcessor entryProcessor, Object... 
> args);
> public  Map invokeAll(CacheEntryProcessor V, T> entryProcessor, boolean returnAffectedOnly, Object... args);
> {code}
> This will apply the specified processor to all cache entries.
> First method does not return anything.
> Second method either returns all results for all entries, or only for entries 
> that have been changed by the processor in any way.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3255) .NET: Script execution

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3255:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Script execution
> --
>
> Key: IGNITE-3255
> URL: https://issues.apache.org/jira/browse/IGNITE-3255
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> Introduce an ability to execute C# scripts on remote nodes.
> This may be useful for:
> * Diagnostics and debugging on live cluster
> * Quick try-out for computations
> * Demo purposes
> This is a light-weight alternative to IGNITE-2492: we don't have to deal with 
> automatically detecting whether assembly needs to be loaded remotely, with 
> it's dependencies and AppDomain lifecycle. 
> Instead, we send a string, compile it remotely, execute in a separate 
> AppDomain and unload it.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-3267) .NET: Java and .NET nodes with default configs can not join

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn commented on IGNITE-3267:


This will probably be resolved in IGNITE-2398

> .NET: Java and .NET nodes with default configs can not join
> ---
>
> Key: IGNITE-3267
> URL: https://issues.apache.org/jira/browse/IGNITE-3267
> Project: Ignite
>  Issue Type: Bug
>  Components: platforms
>Affects Versions: 1.6
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .net
> Fix For: 2.0
>
>
> .NET sets BinaryConfiguration explicitly, while Java has 'null'. Need to find 
> a way to fix this.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4919) Remove support BinaryIdentityResolver

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn commented on IGNITE-4919:


Thanks, I've merged my changes.

> Remove support BinaryIdentityResolver
> -
>
> Key: IGNITE-4919
> URL: https://issues.apache.org/jira/browse/IGNITE-4919
> Project: Ignite
>  Issue Type: Task
>  Components: binary
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
> Fix For: 2.0
>
>
> We must get rid of BinaryIdentityResolver, because in new memory model, we 
> must provide stable binary key representation. 
> [discussion|http://apache-ignite-developers.2346864.n4.nabble.com/Stable-binary-key-representation-td15904.html]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (IGNITE-3596) Hadoop edition can't be compiled against spark 2.0.0

2017-04-06 Thread Evgenii Zhuravlev (JIRA)

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

Evgenii Zhuravlev resolved IGNITE-3596.
---
Resolution: Cannot Reproduce

> Hadoop edition can't be compiled against spark 2.0.0 
> -
>
> Key: IGNITE-3596
> URL: https://issues.apache.org/jira/browse/IGNITE-3596
> Project: Ignite
>  Issue Type: Bug
>Reporter: Sergey Kozlov
>Priority: Critical
>  Labels: important
> Fix For: 2.0
>
>
> {noformat}
> mvn clean install -f 
> /home/teamcity/BuildAgent/work/ce959aebc895eb20/apache-ignite/pom.xml 
> -Dignite.edition=hadoop -Dspark.version=2.0.0 -DskipTests
> ...
> [08:56:53] :   [exec] [WARNING]  
> org.apache.ignite:ignite-spark:1.7.0 requires scala version: 2.11.7
> [08:56:53] :   [exec] [WARNING]  
> com.twitter:chill_2.11:0.8.0 requires scala version: 2.11.7
> [08:56:53] :   [exec] [WARNING]  
> org.apache.spark:spark-core_2.11:2.0.0 requires scala version: 2.11.8
> [08:56:53] :   [exec] [WARNING] 
> Multiple versions of scala libraries detected!
> [08:56:53] :   [exec] [INFO] 
> /home/teamcity/BuildAgent/work/ce959aebc895eb20/apache-ignite/modules/spark/src/main/scala:-1:
>  info: compiling
> [08:56:53] :   [exec] [INFO] 
> Compiling 8 source files to 
> /home/teamcity/BuildAgent/work/ce959aebc895eb20/apache-ignite/modules/spark/target/classes
>  at 1469685413049
> [08:56:54] :   [exec] [ERROR] 
> /home/teamcity/BuildAgent/work/ce959aebc895eb20/apache-ignite/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala:25:
>  error: object Logging is not a member of package org.apache.spark
> [08:56:54] :   [exec] [ERROR] import 
> org.apache.spark.{Logging, SparkContext}
> [08:56:54] :   [exec] [ERROR]^
> [08:56:54] :   [exec] [ERROR] 
> /home/teamcity/BuildAgent/work/ce959aebc895eb20/apache-ignite/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala:37:
>  error: not found: type Logging
> [08:56:54] :   [exec] [ERROR] ) 
> extends Serializable with Logging {
> [08:56:54] :   [exec] [ERROR] 
> ^
> [08:56:54] :   [exec] [ERROR] 
> /home/teamcity/BuildAgent/work/ce959aebc895eb20/apache-ignite/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala:50:
>  error: not found: value logInfo
> [08:56:54] :   [exec] [ERROR] 
> logInfo("Will start Ignite nodes on " + workers + " workers")
> [08:56:54] :   [exec] [ERROR] 
> ^
> [08:56:55] :   [exec] [ERROR] 
> /home/teamcity/BuildAgent/work/ce959aebc895eb20/apache-ignite/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala:129:
>  error: not found: value logInfo
> [08:56:55] :   [exec] [ERROR] 
> logInfo("Setting IGNITE_HOME from driver not as it is not available on 
> this worker: " + igniteHome)
> [08:56:55] :   [exec] [ERROR] 
> ^
> [08:56:55] :   [exec] [ERROR] 
> /home/teamcity/BuildAgent/work/ce959aebc895eb20/apache-ignite/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala:146:
>  error: not found: value logError
> [08:56:55] :   [exec] [ERROR] 
> logError("Failed to start Ignite.", e)
> [08:56:55] :   [exec] [INFO]  
>^
> [08:56:55] :   [exec] [ERROR] 
> /home/teamcity/BuildAgent/work/ce959aebc895eb20/apache-ignite/modules/spark/src/main/scala/org/apache/ignite/spark/IgniteContext.scala:164:
>  error: not found: value logInfo
> [08:56:55] :   [exec] [ERROR] 
> logInfo("Will stop Ignite nodes on " + workers + " workers")
> [08:56:55] :   [exec] [ERROR] 
> ^
> [08:56:56] :   [exec] [ERROR] 6 
> errors found
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4524) Indexes usage in SQL functions like min/max

2017-04-06 Thread Sergey Kalashnikov (JIRA)

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

Sergey Kalashnikov commented on IGNITE-4524:


Applied review remarks. Had to re-create the branch and PR ( 
https://github.com/apache/ignite/pull/1749 )
[~sergi.vladykin], could you please have a look at the changes once again? 

> Indexes usage in SQL functions like min/max
> ---
>
> Key: IGNITE-4524
> URL: https://issues.apache.org/jira/browse/IGNITE-4524
> Project: Ignite
>  Issue Type: Bug
>  Components: SQL
>Reporter: Denis Magda
>Assignee: Sergey Kalashnikov
>  Labels: important
> Fix For: 2.0
>
>
> If to execute queries like this
> {code}
> select min(id) from MyValue
> select max(id) from MyValue
> {code}
> assuming that 'id' is an indexed field then the engine will not gain from 
> this. 
> The SQL engine needs to be improved so that the indexes are used for queries 
> like the ones above.
> More details can be found in this discussion:
> http://apache-ignite-developers.2346864.n4.nabble.com/min-max-SQL-and-indexes-td13492.html



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Created] (IGNITE-4925) IgniteCacheEntryListenerEagerTtlDisabledTest.testSynchronousEventsObjectKeyValue test fails while invoking from IgniteBinaryCacheTestSuite

2017-04-06 Thread Evgenii Zhuravlev (JIRA)
Evgenii Zhuravlev created IGNITE-4925:
-

 Summary: 
IgniteCacheEntryListenerEagerTtlDisabledTest.testSynchronousEventsObjectKeyValue
 test fails while invoking from IgniteBinaryCacheTestSuite 
 Key: IGNITE-4925
 URL: https://issues.apache.org/jira/browse/IGNITE-4925
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.0
Reporter: Evgenii Zhuravlev
Assignee: Evgenii Zhuravlev
 Fix For: 2.0






--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4644) Value from IgniteQueue in atomic mode could be lost

2017-04-06 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov updated IGNITE-4644:
-
Fix Version/s: 2.0

> Value from IgniteQueue in atomic mode could be lost
> ---
>
> Key: IGNITE-4644
> URL: https://issues.apache.org/jira/browse/IGNITE-4644
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.8
>Reporter: Dmitry Karachentsev
>Assignee: Anton Vinogradov
> Fix For: 2.0
>
>
> Assume following case (operations are going concurrently):
> 1) Client1 -> offer. Add new index in queue.
> 2) On Client1 happens JVM pause or short-time problem with connectivity to 
> cluster longer than 3 sec.
> 3) Client2 -> poll. Get index from cache, but no value available.
> 4) Client2 checks for value about 3 sec and if no value appears, just skips 
> it.
> Should be fixed somehow or make timeout configurable.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (IGNITE-4644) Value from IgniteQueue in atomic mode could be lost

2017-04-06 Thread Anton Vinogradov (JIRA)

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

Anton Vinogradov resolved IGNITE-4644.
--
Resolution: Fixed

Timeout now can be set by "IGNITE_ATOMIC_CACHE_QUEUE_RETRY_TIMEOUT" System 
Property 

> Value from IgniteQueue in atomic mode could be lost
> ---
>
> Key: IGNITE-4644
> URL: https://issues.apache.org/jira/browse/IGNITE-4644
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.8
>Reporter: Dmitry Karachentsev
>Assignee: Anton Vinogradov
>
> Assume following case (operations are going concurrently):
> 1) Client1 -> offer. Add new index in queue.
> 2) On Client1 happens JVM pause or short-time problem with connectivity to 
> cluster longer than 3 sec.
> 3) Client2 -> poll. Get index from cache, but no value available.
> 4) Client2 checks for value about 3 sec and if no value appears, just skips 
> it.
> Should be fixed somehow or make timeout configurable.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Commented] (IGNITE-4919) Remove support BinaryIdentityResolver

2017-04-06 Thread Dmitriy Govorukhin (JIRA)

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

Dmitriy Govorukhin commented on IGNITE-4919:


[~ptupitsyn] Done, please check.

> Remove support BinaryIdentityResolver
> -
>
> Key: IGNITE-4919
> URL: https://issues.apache.org/jira/browse/IGNITE-4919
> Project: Ignite
>  Issue Type: Task
>  Components: binary
>Reporter: Dmitriy Govorukhin
>Assignee: Dmitriy Govorukhin
> Fix For: 2.0
>
>
> We must get rid of BinaryIdentityResolver, because in new memory model, we 
> must provide stable binary key representation. 
> [discussion|http://apache-ignite-developers.2346864.n4.nabble.com/Stable-binary-key-representation-td15904.html]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4035) SQL: Avoid excessive calls of deterministic functions on same arguments

2017-04-06 Thread Andrew Mashenkov (JIRA)

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

Andrew Mashenkov updated IGNITE-4035:
-
Fix Version/s: (was: 2.0)
   2.1

> SQL: Avoid excessive calls of deterministic functions on same arguments
> ---
>
> Key: IGNITE-4035
> URL: https://issues.apache.org/jira/browse/IGNITE-4035
> Project: Ignite
>  Issue Type: Task
>  Components: SQL
>Affects Versions: 1.6, 1.7
>Reporter: Andrew Mashenkov
>Assignee: Sergey Kalashnikov
>  Labels: performance
> Fix For: 2.1
>
>
> In sql query example below, heavy "datediff" deterministic function will be 
> called 4 times per row. I'd expected function was called once per row. 
> Example:
> {noformat}
> Select
>   avg(datediff('s',ts1,ts2)) as avg_diff,
>   min(datediff('s',ts1,ts2)) as min_diff,
>   max(datediff('s',ts1,ts2)) as max_diff
> From table
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4788) JVM crash while accessing offheap rows of SQL query result.

2017-04-06 Thread Andrew Mashenkov (JIRA)

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

Andrew Mashenkov updated IGNITE-4788:
-
Fix Version/s: (was: 2.0)
   2.1

> JVM crash while accessing offheap rows of SQL query result.
> ---
>
> Key: IGNITE-4788
> URL: https://issues.apache.org/jira/browse/IGNITE-4788
> Project: Ignite
>  Issue Type: Bug
>  Components: SQL, swap
>Affects Versions: 1.8
>Reporter: Andrew Mashenkov
> Fix For: 2.1
>
> Attachments: hs_err_pid18543.log.txt, log.txt
>
>
> JVM crashed with SIGSEGV error while iterating over SQL query offheap rows.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4848) Enabling SSL can causes heavy GC.

2017-04-06 Thread Andrew Mashenkov (JIRA)

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

Andrew Mashenkov updated IGNITE-4848:
-
Fix Version/s: 2.1

> Enabling SSL can causes heavy GC.
> -
>
> Key: IGNITE-4848
> URL: https://issues.apache.org/jira/browse/IGNITE-4848
> Project: Ignite
>  Issue Type: Bug
>  Components: general
> Environment: Azul JVM
>Reporter: Andrew Mashenkov
> Fix For: 2.1
>
> Attachments: Screenshot from 2017-03-21 12-42-58.png, Screenshot from 
> 2017-03-21 12-47-35.png
>
>
> When SSL is enabled there are long GC pauses appear in logs. Heavy GC 
> sometimes results in grid segmentation.
> But, all works fine when SSL is disable.
> I've run test org.apache.ignite.loadtests.client.ClientTcpSslLoadTest and 
> found that with SSL enabled
> there are a growing number of phantom references in heap. PFA jfr screenshots 
> with SSL enabled and disabled.
> Seems, GridSelectorNioSessionImpl doesn't clear properly system data buffer 
> (a message queue) saved in its meta.
> Startpoint is GridNioServer.BUF_SSL_SYSTEM_META_KEY.
> Possibly, this is not only the reason.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Assigned] (IGNITE-4907) Excessive service instances can be started with dynamic deployment.

2017-04-06 Thread Andrew Mashenkov (JIRA)

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

Andrew Mashenkov reassigned IGNITE-4907:


Assignee: Andrew Mashenkov

> Excessive service instances can be started with dynamic deployment.
> ---
>
> Key: IGNITE-4907
> URL: https://issues.apache.org/jira/browse/IGNITE-4907
> Project: Ignite
>  Issue Type: Bug
>  Components: managed services
>Affects Versions: 1.9
>Reporter: Andrew Mashenkov
>Assignee: Andrew Mashenkov
> Fix For: 2.0
>
> Attachments: ServiceDeploymentBug.java
>
>
> More than needed service instances can be started when service deployed 
> dynamicly. 
> For next service configuration all 3 instances will be started even if 
> cluster has 2 ignites nodes only:
>   cfg.setMaxPerNodeCount(1);
>   cfg.setTotalCount(3);



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4918) ScanQuery filter class code is not updated on server once it has been changed on client.

2017-04-06 Thread Andrew Mashenkov (JIRA)

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

Andrew Mashenkov updated IGNITE-4918:
-
Fix Version/s: (was: 2.0)
   2.1

> ScanQuery filter class code is not updated on server once it has been changed 
> on client.
> 
>
> Key: IGNITE-4918
> URL: https://issues.apache.org/jira/browse/IGNITE-4918
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: 1.9
>Reporter: Andrew Mashenkov
> Fix For: 2.1
>
> Attachments: ScanQueryFilter.java
>
>
> PFA reproducer attached. Peer class loading should be enabled on both, server 
> and client.
> Server should NOT has scan query filter class in its classpath.
> Steps to reproduce:
> - start standalone server
> - run repro, it should work fine.
> - run repro with changed filter code, it will return same results as on 
> previous step.
> Looks like filter code is cached on server and is never being updated.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3181) .NET: Speed up TypeCaster with reflection.emit

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3181:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Speed up TypeCaster with reflection.emit
> --
>
> Key: IGNITE-3181
> URL: https://issues.apache.org/jira/browse/IGNITE-3181
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> Investigate whether emitted IL can be more efficient than compiled expression 
> tree due to less checks.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3111) .NET: Configure SSL without Spring

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3111:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Configure SSL without Spring
> --
>
> Key: IGNITE-3111
> URL: https://issues.apache.org/jira/browse/IGNITE-3111
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.6
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> User should be able to configure SLL in .NET terms without Spring and Java 
> KeyStore.
> See https://apacheignite.readme.io/docs/ssltls.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3189) .NET: Binarizables written from .NET can't be resolved on Java side

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3189:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Binarizables written from .NET can't be resolved on Java side
> ---
>
> Key: IGNITE-3189
> URL: https://issues.apache.org/jira/browse/IGNITE-3189
> Project: Ignite
>  Issue Type: Test
>  Components: platforms
>Affects Versions: 1.7
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> Steps to reproduce:
> * Make sure to clean all Ignite work directories (in home and in 
> apache.ignite.core.tests folders)
> * Run ServicesTest.TestCallJavaService
> * Observe "Failed resolve class for ID: -1313284961" error
> Even though PlatformComputeBinarizable is properly registered in 
> BinaryConfiguration, if it has not been *written by java*, it can't be *read 
> by java*. Something does not get updated in BinaryContext/MarshallerContext.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3170) .NET: Add user-friendly ToString overrides for public types

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3170:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Add user-friendly ToString overrides for public types
> ---
>
> Key: IGNITE-3170
> URL: https://issues.apache.org/jira/browse/IGNITE-3170
> Project: Ignite
>  Issue Type: Improvement
>  Components: newbie, platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net, newbie
> Fix For: 2.1
>
>
> Events, cache entry events, mutable cache entries, etc, should have 
> {{ToString}} overridden. See {{CacheEntry}} for example.
> {{IgniteConfiguration}} (and inner property classes) can be displayed as XML.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-1974) Marshaller error messages are user-unfriendly

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-1974:
---
Fix Version/s: (was: 2.0)
   2.1

> Marshaller error messages are user-unfriendly
> -
>
> Key: IGNITE-1974
> URL: https://issues.apache.org/jira/browse/IGNITE-1974
> Project: Ignite
>  Issue Type: Improvement
>  Components: general
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
> Fix For: 2.1
>
>
> {code}
> Failed to read class name from file [id=-320567023, 
> file=C:\W\incubator-ignite\work\marshaller\-320567023.classname]
> {code}
> Ignite developers may understand that there is some unregistered class, but 
> for the user this is meaningless.
> Reading class names from file in an implementation detail.
> We should provide a more user-friendly error message explaining what happened 
> and why.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2002) Data streamer does not work with peerClassLoadingEnabled

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2002:
---
Fix Version/s: (was: 2.0)
   2.1

> Data streamer does not work with peerClassLoadingEnabled
> 
>
> Key: IGNITE-2002
> URL: https://issues.apache.org/jira/browse/IGNITE-2002
> Project: Ignite
>  Issue Type: Bug
>  Components: cache, streaming
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
> Fix For: 2.1
>
>
> Add  to spring config, 
> run streamer tests or examples, there are exceptions in Java and flush hangs.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (IGNITE-3081) NearCacheConfiguration incorrectly extends MutableConfiguration

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn resolved IGNITE-3081.

Resolution: Invalid

Duplicates IGNITE-2558

> NearCacheConfiguration incorrectly extends MutableConfiguration
> ---
>
> Key: IGNITE-3081
> URL: https://issues.apache.org/jira/browse/IGNITE-3081
> Project: Ignite
>  Issue Type: Bug
>  Components: cache, community
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>Priority: Minor
> Fix For: 2.0
>
>
> NearCacheConfiguration extends MutableConfiguration, but does not use 
> anything inherited.
> This confuses both developers and users (there were questions in Gitter).
> Two solutions:
> * Remove this base class
> * Or, if compatibility is needed, override all members and throw exceptions 
> from them; update documentation to make this clear.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3053) Document cache store per-node behavior

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3053:
---
Fix Version/s: (was: 2.0)
   2.1

> Document cache store per-node behavior
> --
>
> Key: IGNITE-3053
> URL: https://issues.apache.org/jira/browse/IGNITE-3053
> Project: Ignite
>  Issue Type: Task
>  Components: documentation
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
> Fix For: 2.1
>
>
> Frequent user question is "which node does write-through/write-behind".
> For example: 
> http://apache-ignite-users.70518.x6.nabble.com/Persistent-CacheStore-and-backups-td1368.html



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2907) GridServiceNotFoundException is not descriptive

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2907:
---
Fix Version/s: (was: 2.0)
   2.1

> GridServiceNotFoundException is not descriptive
> ---
>
> Key: IGNITE-2907
> URL: https://issues.apache.org/jira/browse/IGNITE-2907
> Project: Ignite
>  Issue Type: Bug
>  Components: managed services
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>Priority: Minor
> Fix For: 2.1
>
>
> "Service node found" message does not make sense.
> * Message should be fixed
> * More details should be added (why is this situation possible, how to fix it)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2955) Exception in CacheStore.sessionEnd breaks the cache

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2955:
---
Fix Version/s: (was: 2.0)
   2.1

> Exception in CacheStore.sessionEnd breaks the cache
> ---
>
> Key: IGNITE-2955
> URL: https://issues.apache.org/jira/browse/IGNITE-2955
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
> Fix For: 2.1
>
>
> If there is an exception in user implementation of CacheStore.sessionEnd, 
> cache becomes unusable: TransactionRollbackException is thrown on any 
> consequent cache.put().
> Configuration:
> * 1 node
> * Local transactional write-through cache with a store



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2827) .NET: Write XmlSerializer types as binary

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2827:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Write XmlSerializer types as binary
> -
>
> Key: IGNITE-2827
> URL: https://issues.apache.org/jira/browse/IGNITE-2827
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> Types intended to be serialized with XmlSerializer can be identified by 
> [XmlRoot] attribute, or one of the [XmlElement], [XmlAttribute], etc 
> attributes on type members.
> We should write such types using Ignite binary format, and respect attributes 
> where applicable.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3006) .NET: ContinuousQuery.FilterFactory

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-3006:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: ContinuousQuery.FilterFactory
> ---
>
> Key: IGNITE-3006
> URL: https://issues.apache.org/jira/browse/IGNITE-3006
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> To conform to Java APIs:
> * Add ContinuousQuery.FilterFactory
> * Deprecate  ContinuousQuery.Filter
> Make sure that resource injection works.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2895) OS info in console is incorrect when using x86 JRE on x64 Windows

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2895:
---
Fix Version/s: (was: 2.0)
   2.1

> OS info in console is incorrect when using x86 JRE on x64 Windows
> -
>
> Key: IGNITE-2895
> URL: https://issues.apache.org/jira/browse/IGNITE-2895
> Project: Ignite
>  Issue Type: Bug
>  Components: general, newbie
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>Assignee: Rohit Mohta
>Priority: Trivial
> Fix For: 2.1
>
>
> Steps:
> * Use any x64 Windows (*nix might work too)
> * Use x86 JRE (by setting JAVA_HOME accordingly)
> * Run any test or example, see console log:
> {code} OS: Windows 8 6.2 x86{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2826) .NET: Write DataContract types as binary

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2826:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Write DataContract types as binary
> 
>
> Key: IGNITE-2826
> URL: https://issues.apache.org/jira/browse/IGNITE-2826
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> Types marked with [DataContract] attribute should be written in binary 
> format, respecting [DataMember] and other related attributes, so that 
> existing user types can be used in Ignite without any changes.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2890) .NET: Add CacheConfiguration.NodeFilter

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2890:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Add CacheConfiguration.NodeFilter
> ---
>
> Key: IGNITE-2890
> URL: https://issues.apache.org/jira/browse/IGNITE-2890
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.6
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> See ServiceConfiguration.NodeFilter
> * Caches start earlier than platform => need to pass pointer for static 
> CacheConfigurations
> * For dynamic cache start, no need for pointers



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2602) Queries: offset does not work with negative or MAX_VALUE limit

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2602:
---
Fix Version/s: (was: 2.0)
   2.1

> Queries: offset does not work with negative or MAX_VALUE limit
> --
>
> Key: IGNITE-2602
> URL: https://issues.apache.org/jira/browse/IGNITE-2602
> Project: Ignite
>  Issue Type: Bug
>  Components: cache, SQL
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
> Fix For: 2.1
>
>
> H2 allows specifying negative LIMIT with OFFSET: 
> http://www.h2database.com/html/grammar.html
> This does not work with Ignite (query returns empty result set).
> To work around this, I tried to specify Integer.MAX_VALUE, but this causes an 
> exception.
> Turns out, offset+limit should be <= Integer.MAX_VALUE, which is quite 
> inconvenient.
> I think we should support negative LIMIT for unlimited offset queries.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2764) .NET: LINQ plan caching

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2764:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: LINQ plan caching
> ---
>
> Key: IGNITE-2764
> URL: https://issues.apache.org/jira/browse/IGNITE-2764
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> Investigate EF/NHibernate: how do they calculate cache key from expression 
> tree to cache query plan?



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2746) .NET: Improve ReflectiveSerializer control with attributes

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2746:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Improve ReflectiveSerializer control with attributes
> --
>
> Key: IGNITE-2746
> URL: https://issues.apache.org/jira/browse/IGNITE-2746
> Project: Ignite
>  Issue Type: Improvement
>  Components: platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>Priority: Minor
>  Labels: .net
> Fix For: 2.1
>
>
> Allow custom field names and ordering (similar to DataMemberAttribute, for 
> example: 
> https://msdn.microsoft.com/en-us/library/system.runtime.serialization.datamemberattribute(v=vs.110).aspx)



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4324) ScanQuery throws incomprehensible exception when topology does not contain data nodes

2017-04-06 Thread Nikolay Tikhonov (JIRA)

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

Nikolay Tikhonov updated IGNITE-4324:
-
Fix Version/s: (was: 2.0)
   2.1

> ScanQuery throws incomprehensible exception when topology does not contain 
> data nodes
> -
>
> Key: IGNITE-4324
> URL: https://issues.apache.org/jira/browse/IGNITE-4324
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.7, 1.8
>Reporter: Nikolay Tikhonov
> Fix For: 2.1
>
> Attachments: Tests.patch
>
>
> ScanQuery throws incomprehensible exception when topology does not contain 
> data nodes (for example with node filter).  See attached test.
> {code}
> java.lang.IllegalArgumentException: bound must be positive
>   at java.util.Random.nextInt(Random.java:388)
>   at org.apache.ignite.internal.util.lang.GridFunc.rand(GridFunc.java:677)
>   at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryAdapter.nodes(GridCacheQueryAdapter.java:582)
>   at 
> org.apache.ignite.internal.processors.cache.query.GridCacheQueryAdapter.executeScanQuery(GridCacheQueryAdapter.java:527)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.igniteIterator(GridCacheAdapter.java:4119)
>   at 
> org.apache.ignite.internal.processors.cache.GridCacheAdapter.igniteIterator(GridCacheAdapter.java:4094)
>   at 
> org.apache.ignite.internal.processors.cache.IgniteCacheProxy.iterator(IgniteCacheProxy.java:1979)
>   at 
> org.apache.ignite.internal.CacheFilterQueryTest.testScanQuery(CacheFilterQueryTest.java:90)
>   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>   at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>   at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>   at java.lang.reflect.Method.invoke(Method.java:498)
>   at junit.framework.TestCase.runTest(TestCase.java:176)
>   at 
> org.apache.ignite.testframework.junits.GridAbstractTest.runTestInternal(GridAbstractTest.java:1768)
>   at 
> org.apache.ignite.testframework.junits.GridAbstractTest.access$000(GridAbstractTest.java:118)
>   at 
> org.apache.ignite.testframework.junits.GridAbstractTest$4.run(GridAbstractTest.java:1706)
>   at java.lang.Thread.run(Thread.java:745)
> [
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3653) P2P doesn't work for remote filter and filter factory.

2017-04-06 Thread Nikolay Tikhonov (JIRA)

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

Nikolay Tikhonov updated IGNITE-3653:
-
Fix Version/s: (was: 2.0)
   2.1

> P2P doesn't work for remote filter and filter factory.
> --
>
> Key: IGNITE-3653
> URL: https://issues.apache.org/jira/browse/IGNITE-3653
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.6
>Reporter: Nikolay Tikhonov
> Fix For: 2.1
>
> Attachments: CCP2PTest.patch
>
>
> Remote filter and filter factory classes were not deployed on nodes which 
> join to cluster after their initialization. Test attached.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2699) Starvation when CacheEntryListenerConfiguration.isSynchronous is true

2017-04-06 Thread Nikolay Tikhonov (JIRA)

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

Nikolay Tikhonov updated IGNITE-2699:
-
Fix Version/s: (was: 2.0)
   2,1

> Starvation when CacheEntryListenerConfiguration.isSynchronous is true
> -
>
> Key: IGNITE-2699
> URL: https://issues.apache.org/jira/browse/IGNITE-2699
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.5.0.final
>Reporter: Nikolay Tikhonov
> Fix For: 2,1
>
>
> When event notifications in {{CacheEntryListener}} configured as synchronous 
> possible situation that all thread in {{SYSTEM}} pool will be stuck on 
> waiting ack messages. It is necessary to make the processing of acknowledge 
> messages in another thread pool.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3454) Used Thread.getContextClassLoader() classloader for P2P

2017-04-06 Thread Nikolay Tikhonov (JIRA)

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

Nikolay Tikhonov updated IGNITE-3454:
-
Fix Version/s: (was: 2.0)
   2,1

> Used Thread.getContextClassLoader() classloader for P2P
> ---
>
> Key: IGNITE-3454
> URL: https://issues.apache.org/jira/browse/IGNITE-3454
> Project: Ignite
>  Issue Type: Bug
>  Components: cache
>Affects Versions: 1.6
>Reporter: Nikolay Tikhonov
> Fix For: 2,1
>
> Attachments: DeployTest_new.patch, DeployTest.patch
>
>
> {{GridClassLoaderCache#detectClassLoader}} tries to load class by 
> {{Thread.getContextClassLoader()}} when it possible. In some cases it to lead 
> to errors in cache operations:
> {noformat}
> Suppressed: class org.apache.ignite.IgniteCheckedException: Encountered 
> incompatible class loaders for cache [class1=[C, 
> class2=org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPartitionFullMap]
> at 
> org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager.registerClass(GridCacheDeploymentManager.java:666)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheDeploymentManager.registerClass(GridCacheDeploymentManager.java:611)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheMessage.prepareObject(GridCacheMessage.java:214)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheMessage.marshalInvokeArguments(GridCacheMessage.java:430)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateRequest.prepareMarshal(GridNearAtomicUpdateRequest.java:607)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.onSend(GridCacheIoManager.java:620)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:642)
> at 
> org.apache.ignite.internal.processors.cache.GridCacheIoManager.send(GridCacheIoManager.java:803)
> at 
> org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridNearAtomicUpdateFuture.mapSingle(GridNearAtomicUpdateFuture.java:469)
> ... 44 more
> {noformat}
> Test which reproduced the issue in attachment and see on 
> {{GridCacheDeploymentManager#registerClass(java.lang.Class, 
> java.lang.ClassLoader)}}.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4863) Log4jLogger can change RootLogger logging level unexpectedly.

2017-04-06 Thread Andrew Mashenkov (JIRA)

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

Andrew Mashenkov updated IGNITE-4863:
-
Fix Version/s: 2.0

> Log4jLogger can change RootLogger logging level unexpectedly.
> -
>
> Key: IGNITE-4863
> URL: https://issues.apache.org/jira/browse/IGNITE-4863
> Project: Ignite
>  Issue Type: Bug
>  Components: general
>Affects Versions: 1.5.0.final
>Reporter: Andrew Mashenkov
>Assignee: Andrew Mashenkov
> Fix For: 2.0
>
>
> Setting System property "IGNITE_CONSOLE_APPENDER" to true will set rootLogger 
> level to OFF that can be unexpectedly as well.
> See 
> http://apache-ignite-users.70518.x6.nabble.com/Logging-ignite-log4j-jar-td11400.html
> Seems, we should check if there is no other loggers configured which can 
> inherits rootLogger logging level before raising level or turning rootLogger 
> off.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4842) IgniteCache.containsKey() may return false if entry is not in local backup yet on atomic cache

2017-04-06 Thread Dmitry Karachentsev (JIRA)

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

Dmitry Karachentsev updated IGNITE-4842:

Fix Version/s: (was: 2.0)
   2.1

> IgniteCache.containsKey() may return false if entry is not in local backup 
> yet on atomic cache
> --
>
> Key: IGNITE-4842
> URL: https://issues.apache.org/jira/browse/IGNITE-4842
> Project: Ignite
>  Issue Type: Bug
>Affects Versions: 1.9
>Reporter: Dmitry Karachentsev
> Fix For: 2.1
>
>
> Reproducer is in [PR#1641|https://github.com/apache/ignite/pull/1641]



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4515) Throw exception when key and value fields mapped to the same DB columns

2017-04-06 Thread Dmitry Karachentsev (JIRA)

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

Dmitry Karachentsev updated IGNITE-4515:

Fix Version/s: (was: 2.0)
   2.1

> Throw exception when key and value fields mapped to the same DB columns
> ---
>
> Key: IGNITE-4515
> URL: https://issues.apache.org/jira/browse/IGNITE-4515
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache
>Affects Versions: 1.8
>Reporter: Dmitry Karachentsev
>Assignee: Dmitry Karachentsev
> Fix For: 2.1
>
>
> In case of using JDBC store and following config (pseudocode):
> KeyClass { field1; field2; field3 }, ValClass { field1; field2; field3 }
> Fields mapped to the same DB table TABLE_NAME and columns: field1 -> col1, 
> field2 -> col2, field3 -> col3.
> On node startup throw an exception with message that restricts such case. 
> Field mappings should not intersect.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-4395) Implement communication backpressure per policy - SYSTEM or PUBLIC

2017-04-06 Thread Dmitry Karachentsev (JIRA)

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

Dmitry Karachentsev updated IGNITE-4395:

Fix Version/s: (was: 2.0)
   2.1

> Implement communication backpressure per policy - SYSTEM or PUBLIC
> --
>
> Key: IGNITE-4395
> URL: https://issues.apache.org/jira/browse/IGNITE-4395
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache, compute
>Affects Versions: 1.7
>Reporter: Dmitry Karachentsev
>Assignee: Dmitry Karachentsev
> Fix For: 2.1
>
>
> 1) Start two data nodes with some cache.
> 2) From one node in async mode post some big number of jobs to another. That 
> jobs do some cache operations.
> 3) Grid hangs almost immediately and all threads are sleeping except public 
> ones, they are waiting for response.
> This happens because all cache and job messages are queued on communication 
> and limited with default number (1024). It looks like jobs are waiting for 
> cache responses that could not be received due to this limit.
> Proper solution here is to have communication backpressure per policy -
> SYSTEM or PUBLIC, but not single point as it is now. It could be achieved
> with having two queues per communication session or (which looks a bit
> easier to implement) to have separate connections.
> [PR#1331|https://github.com/apache/ignite/pull/1331] with test that leads to 
> grid hang.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-3117) Weblogic manual tests for HttpSession caching.

2017-04-06 Thread Dmitry Karachentsev (JIRA)

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

Dmitry Karachentsev updated IGNITE-3117:

Fix Version/s: (was: 2.0)
   2.1

> Weblogic manual tests for HttpSession caching.
> --
>
> Key: IGNITE-3117
> URL: https://issues.apache.org/jira/browse/IGNITE-3117
> Project: Ignite
>  Issue Type: Test
>  Components: websession
>Affects Versions: 1.6
>Reporter: Dmitry Karachentsev
>Assignee: Dmitry Karachentsev
>Priority: Minor
>  Labels: patch, test
> Fix For: 2.1
>
> Attachments: IGNITE_3117_servlet_tests.patch
>
>
> Simple tests that allow deploy and check that HttpSession is cached properly 
> in grid.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2657) .NET: SqlDependency for cache items

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2657:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: SqlDependency for cache items
> ---
>
> Key: IGNITE-2657
> URL: https://issues.apache.org/jira/browse/IGNITE-2657
> Project: Ignite
>  Issue Type: New Feature
>  Components: platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> Update cache when SQL Server data changes
> * https://msdn.microsoft.com/en-us/library/62xk7953(v=vs.110).aspx
> * http://www.alachisoft.com/ncache/database-synchronization.html



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Resolved] (IGNITE-2626) Binary marshaller: sort fields alphabetically

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn resolved IGNITE-2626.

Resolution: Duplicate

Already implemented as part of DML

> Binary marshaller: sort fields alphabetically
> -
>
> Key: IGNITE-2626
> URL: https://issues.apache.org/jira/browse/IGNITE-2626
> Project: Ignite
>  Issue Type: Improvement
>  Components: cache, platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
> Fix For: 2.0
>
>
> Currently we write object fields in the order they come from reflection.
> 1) There is no guarantee that this order is consistent across multiple calls
> 2) Platforms may have corresponding objects with different field order
> => There are situations when write and read field order is different, which 
> hurts performance.
> Sorting fields alphabetically in Java and platforms will ensure the same 
> ordering.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


[jira] [Updated] (IGNITE-2687) .NET: Call .NET services from Java

2017-04-06 Thread Pavel Tupitsyn (JIRA)

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

Pavel Tupitsyn updated IGNITE-2687:
---
Fix Version/s: (was: 2.0)
   2.1

> .NET: Call .NET services from Java
> --
>
> Key: IGNITE-2687
> URL: https://issues.apache.org/jira/browse/IGNITE-2687
> Project: Ignite
>  Issue Type: New Feature
>  Components: managed services, platforms
>Affects Versions: 1.1.4
>Reporter: Pavel Tupitsyn
>  Labels: .net
> Fix For: 2.1
>
>
> .NET services can be called via PlatformDotNetService interface, providing 
> method name and arguments. 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)


  1   2   3   >