[jira] [Created] (IGNITE-8127) .NET: Fix flaky test ClientConnectionTest.TestClientDisposeWhileOperationsAreInProgress

2018-04-03 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-8127:


 Summary: .NET: Fix flaky test 
ClientConnectionTest.TestClientDisposeWhileOperationsAreInProgress
 Key: IGNITE-8127
 URL: https://issues.apache.org/jira/browse/IGNITE-8127
 Project: Ignite
  Issue Type: Bug
  Components: platforms
Affects Versions: 2.5
Reporter: Alexey Popov
Assignee: Alexey Popov


https://ci.ignite.apache.org/viewLog.html?buildId=1173105=buildResultsDiv=IgniteTests24Java8_IgnitePlatformNetLongRunning

Test(s) failed.   Some tasks should have failed.
  Expected: True
  But was:  False

   at NUnit.Framework.Assert.That(Object actual, IResolveConstraint expression, 
String message, Object[] args)
   at 
Apache.Ignite.Core.Tests.Client.ClientConnectionTest.TestClientDisposeWhileOperationsAreInProgress()
 in 
c:\BuildAgent\work\bd85361428dcdb1\modules\platforms\dotnet\Apache.Ignite.Core.Tests\Client\ClientConnectionTest.cs:line
 277




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IGNITE-8108) .NET: Fix flaky EntityFrameworkCacheInitializationTest.TestConfigurationAndStartup

2018-04-02 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-8108:


 Summary: .NET: Fix flaky 
EntityFrameworkCacheInitializationTest.TestConfigurationAndStartup
 Key: IGNITE-8108
 URL: https://issues.apache.org/jira/browse/IGNITE-8108
 Project: Ignite
  Issue Type: Bug
  Components: platforms
Affects Versions: 2.5
Reporter: Alexey Popov
Assignee: Alexey Popov


https://ci.ignite.apache.org/viewLog.html?buildId=1171195=IgniteTests24Java8_IgnitePlatformNetIntegrations=buildLog&_focus=6035

Test uses multicast ipFinder.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: IgniteConfiguration, TcpDiscoverySpi, TcpCommunicationSpi timeouts

2018-03-21 Thread Alexey Popov
Hi Yakov, 

Do the proposed changes look good to you?

Thanks,
Alexey



--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


[jira] [Created] (IGNITE-7889) .NET: linq GroupBy and Where does not work together.

2018-03-06 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7889:


 Summary: .NET: linq GroupBy and Where does not work together.
 Key: IGNITE-7889
 URL: https://issues.apache.org/jira/browse/IGNITE-7889
 Project: Ignite
  Issue Type: Bug
  Components: platforms
Affects Versions: 2.1
Reporter: Alexey Popov
Assignee: Alexey Popov


The following code completely ignores the Where condition:
{noformat}
var groupByQuery2 = models.Where(m => m.Value.DateTicks < 10 && 
m.Value.Dirty.HasValue).GroupBy(m => m.Value.ContractId)
.Select(g => new KeyValuePair<string, int>(g.Key, 
g.Select(m => m.Value.Version).Min()));
{noformat}

debugger shows SQL without WHERE:
{CacheQueryable [CacheName=someCache, TableName=MODEL, Query=SqlFieldsQuery 
[Sql=select _T0.CONTRACTID, min (_T0.VERSION)  from "someCache".MODEL as _T0 
group by (_T0.CONTRACTID), Arguments=[], Local=False, PageSize=1024, 
EnableDistributedJoins=False, EnforceJoinOrder=False, Timeout=00:00:00, 
ReplicatedOnly=False, Colocated=False, Schema=, Lazy=False]]}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IGNITE-7888) ODBC: Add support for SQL_ATTR_LOGIN_TIMEOUT

2018-03-06 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7888:


 Summary: ODBC: Add support for SQL_ATTR_LOGIN_TIMEOUT
 Key: IGNITE-7888
 URL: https://issues.apache.org/jira/browse/IGNITE-7888
 Project: Ignite
  Issue Type: Improvement
  Components: odbc
Affects Versions: 2.1
Reporter: Alexey Popov
Assignee: Igor Sapego
 Fix For: 2.5


It would be great if we can support SQL_ATTR_LOGIN_TIMEOUT even without 
login/password connection parameter. Now we have some default timeout for 
initial ODBC connection establishment.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: IgniteConfiguration, TcpDiscoverySpi, TcpCommunicationSpi timeouts

2018-03-06 Thread Alexey Popov
Yakov,

1. The proposal list of parameters to deprecate:
TcpDiscoverySpi.setConnectTimeout (covered by
IgniteConfiguration.setFailureDetectionTimeout)
TcpDiscoverySpi.setReconnectCount (covered by
IgniteConfiguration.setFailureDetectionTimeout)
TcpDiscoverySpi.setSocketTimeout (covered by
IgniteConfiguration.setFailureDetectionTimeout)
TcpDiscoverySpi.setAckTimeout (covered by
IgniteConfiguration.setFailureDetectionTimeout)
TcpDiscoverySpi.setMaxAckTimeout (covered by
IgniteConfiguration.setFailureDetectionTimeout)
TcpDiscoverySpi.setNetworkTimeout (IgniteConfiguration.setNetworkTimeout
should be used here)
TcpCommunicationSpi.setConnectTimeout (covered by
IgniteConfiguration.setFailureDetectionTimeout)
TcpCommunicationSpi.setMaxConnectTimeout (covered by
IgniteConfiguration.setFailureDetectionTimeout)
TcpCommunicationSpi.setReconnectCount (covered by
IgniteConfiguration.setFailureDetectionTimeout)
TcpCommunicationSpi.setSocketWriteTimeout
(IgniteConfiguration.setNetworkTimeout should be used here)

2. Internal logic should continue to use
IgniteConfiguration.setFailureDetectionTimeout and
IgniteConfiguration.setNetworkTimeout as it is now.
The deprecated parameters should be alive for a while with the corresponding
javadoc update.
TcpDiscoverySpi.getNetworkTimeout should use
IgniteConfiguration.getNetworkTimeout by default.
TcpCommunicationSpi.getSocketWriteTimeout should use
IgniteConfiguration.getNetworkTimeout by default.

In a few releases, the deprecated parameters could be removed.

3. I think we can keep the existent description of the parameters. Probably,
it could be updated for more clear statements for
IgniteConfiguration.setFailureDetectionTimeout and
IgniteConfiguration.setNetworkTimeout.

Thanks,
Alexey



--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


IgniteConfiguration, TcpDiscoverySpi, TcpCommunicationSpi timeouts

2018-03-01 Thread Alexey Popov
Hi Igniters,

We often see similar questions from users and customers related to
IgniteConfiguration, TcpDiscoverySpi, TcpCommunicationSpi timeouts and their
relations. And we see several side-effects after incorrect timeout
configuration.

I tried to briefly describe these timeout settings (please see below) and
found out that the most of them do not have sense in terms of cluster
functions/operations and could not be explained to the users.

I propose to deprecate most of them and leave only the timeouts we can
explain in common terms ( (setFailureDetectionTimeout, setNetworkTimeout,
setJoinTimeout and some others).

Please let me know your thoughts.

Thanks,
Alexey

GLOBAL:

IgniteConfiguration.setNetworkTimeout:
It is a global timeout for high-level operations where a network is
involved. For instance, IgniteMessaging delivery uses this timeout or
DiscoverySpi handshake.

IgniteConfiguration.setFailureDetectionTimeout:
It is a global timeout for detecting failures at IgniteSpi implementations
(including DiscoverySpi and CommunicationSpi).
The failure detection algorithm actually limits a range of simple network
operations related to a single logical operation (for instance, a reliable
delivery of some DiscoverySpi message within a cluster).
Failure detection timeout is a cumulative timeout for a socket connection,
sending and receiving data bytes and all possible socket retries (if some
failure happens). 
This timeout is intended to simplify the failure detection condition from a
user perspective.

IgniteConfiguration.setClientFailureDetectionTimeout: - it is a special case
for DiscoverySpi client-node Ignite.

TCP DISCOVERY SPI:

If you need more control over failure detection algorithm for
TcpDiscoverySpi you can explicitly use the following low-level options (that
will disable failureDetectoinTimeout logic):

1. TcpDiscoverySpi.setConnectTimeout - socket connection timeout
2. TcpDiscoverySpi.setReconnectCount - number of reconnect attempts used
when establishing connection with the remote node and sending messages to it
3. TcpDiscoverySpi.setSocketTimeout - socket write timeout. The write
operation will be repeated getReconnectCount() times if it exceeds this
timeout
4. TcpDiscoverySpi.setAckTimeout - message acknowledgment timeout. If a
message acknowledgment is not received within this timeout, sending is
considered as failed and SPI will try to repeat send operation. It is
automatically doubled for simultaneous retries up to getMaxAckTimeout value.
5. TcpDiscoverySpi.setMaxAckTimeout - maximum connection timeout, if the
getAckTimeout reaches getMaxAckTimeout then SPI give up sending retries

Another important TcpDiscoverySpi timeouts:

TcpDiscoverySpi.setJoinTimeout - It is a timeout for join process when a
new/restarted node joins a cluster. The node tries to connect to all
available IP addresses provided by ipFinder within this timeout.
If the timeout is exceeded, the node will give up and throw an exception
from Ignition.start().

TcpDiscoverySpi.setNetworkTimeout - timeout for high-level operations like
handshake. It looks like it should be deprecated and the
IgniteConfiguration.getNetworkTimeout should be used here.

TCP COMMUNICATION SPI:

If you need more control over failure detection algorithm for
TcpCommunicationSpi you can explicitly use the following low-level options
(that will disable failureDetectoinTimeout logic):

1. TcpCommunicationSpi.setConnectTimeout - socket connection timeout, will
be automatically doubled for simultaneous retries (up to getReconnectCount)
related to a single logical operation 
2. TcpCommunicationSpi.setMaxConnectTimeout - maximum connection timeout,
the higher limit of getReconnectCount-times doubled getConnectTimeout
3. TcpCommunicationSpi.setReconnectCount - number of reconnect attempts used
when establishing connection with the remote node and sending messages to it

Another important TcpCommunicationSpi timeouts:

TcpDiscoverySpi.setSocketWriteTimeout - timeout to send a message.
TcpDiscoverySpi.setIdleConnectionTimeout - maximum idle connection timeout
upon which a connection will be closed.




--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


[jira] [Created] (IGNITE-7851) .NET: linq query throws "Hexadecimal string with odd number of characters" exception

2018-02-28 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7851:


 Summary: .NET: linq query throws "Hexadecimal string with odd 
number of characters" exception
 Key: IGNITE-7851
 URL: https://issues.apache.org/jira/browse/IGNITE-7851
 Project: Ignite
  Issue Type: Bug
  Components: platforms, sql
Affects Versions: 2.3
Reporter: Alexey Popov
 Attachments: FirstOrDefaultKeyIssue.zip

Simple linq query with .Key throws an exception

{code}
var models = cache.AsCacheQueryable();
var entry = models.FirstOrDefault(m => m.Key == @"TST-1/1");
{code}


Apache.Ignite.Core.Common.IgniteException: Hexadecimal string with odd number 
of characters: "TST-1/1" [90003-195] ---> 
Apache.Ignite.Core.Common.JavaException: class 
org.apache.ignite.IgniteCheckedException: Hexadecimal string with odd number of 
characters: "TST-1/1" [90003-195]
at 
org.apache.ignite.internal.processors.platform.utils.PlatformUtils.unwrapQueryException(PlatformUtils.java:519)
at 
org.apache.ignite.internal.processors.platform.cache.PlatformCache.runFieldsQuery(PlatformCache.java:1240)
at 
org.apache.ignite.internal.processors.platform.cache.PlatformCache.processInStreamOutObject(PlatformCache.java:877)
at 
org.apache.ignite.internal.processors.platform.PlatformTargetProxyImpl.inStreamOutObject(PlatformTargetProxyImpl.java:79)
Caused by: javax.cache.CacheException: class 
org.apache.ignite.IgniteCheckedException: Hexadecimal string with odd number of 
characters: "TST-1/1" [90003-195]
at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:1917)
at 
org.apache.ignite.internal.processors.cache.IgniteCacheProxyImpl.query(IgniteCacheProxyImpl.java:585)
at 
org.apache.ignite.internal.processors.cache.GatewayProtectedCacheProxy.query(GatewayProtectedCacheProxy.java:368)
at 
org.apache.ignite.internal.processors.platform.cache.PlatformCache.runFieldsQuery(PlatformCache.java:1234)
... 2 more
Caused by: class org.apache.ignite.IgniteCheckedException: Hexadecimal string 
with odd number of characters: "TST-1/1" [90003-195]
at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2468)
at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.querySqlFields(GridQueryProcessor.java:1914)
... 5 more
Caused by: org.h2.message.DbException: Hexadecimal string with odd number of 
characters: "TST-1/1" [90003-195]
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.util.StringUtils.convertHexToBytes(StringUtils.java:930)
at org.h2.value.Value.convertTo(Value.java:957)
at 
org.apache.ignite.internal.processors.query.h2.H2Utils.convert(H2Utils.java:262)
at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.bindPartitionInfoParameter(IgniteH2Indexing.java:2520)
at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.calculateQueryPartitions(IgniteH2Indexing.java:2480)
at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.executeTwoStepsQuery(IgniteH2Indexing.java:1556)
at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.queryDistributedSqlFields(IgniteH2Indexing.java:1500)
at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$5.applyx(GridQueryProcessor.java:1909)
at 
org.apache.ignite.internal.processors.query.GridQueryProcessor$5.applyx(GridQueryProcessor.java:1907)
at 
org.apache.ignite.internal.util.lang.IgniteOutClosureX.apply(IgniteOutClosureX.java:36)
at 
org.apache.ignite.internal.processors.query.GridQueryProcessor.executeQuery(GridQueryProcessor.java:2445)
... 6 more
Caused by: org.h2.jdbc.JdbcSQLException: Hexadecimal string with odd number of 
characters: "TST-1/1" [90003-195]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
... 19 more

   --- End of inner exception stack trace ---
   at Apache.Ignite.Core.Impl.Unmanaged.UnmanagedCallbacks.Error(Void* target, 
Int32 errType, SByte* errClsChars, Int32 errClsCharsLen, SByte* errMsgChars, 
Int32 errMsgCharsLen, SByte* stackTraceChars, Int32 stackTraceCharsLen, Void* 
errData, Int32 errDataLen)
   at 
Apache.Ignite.Core.Impl.Unmanaged.IgniteJniNativeMethods.TargetInStreamOutObject(Void*
 ctx, Void* target, Int32 opType, Int64 memPtr)
   at Apache.Ignite.Core.Impl.PlatformJniTarget.InStreamOutObject(Int32 type, 
Action`1 writeAction)
   at Apache.Ignite.Core.Impl.Cache.CacheImpl`2.QueryFields[T](SqlFieldsQuery 
qry, Func`3 readerFunc)
   at 
Apache.Ignite.Linq.Impl.CacheField

[jira] [Created] (IGNITE-7824) Rollback part of IGNITE-7170 changes

2018-02-27 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7824:


 Summary: Rollback part of IGNITE-7170 changes
 Key: IGNITE-7824
 URL: https://issues.apache.org/jira/browse/IGNITE-7824
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: 2.4
Reporter: Alexey Popov


Please rollback changes done by mistake:

U.quietAndWarn(log, "Nodes started on local machine require 
more than 20% of physical RAM what can " +

back to:

U.quietAndWarn(log, "Nodes started on local machine require 
more than 80% of physical RAM what can " +




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IGNITE-7720) Update ODBC cluster configuration: replace OdbcConfiguration with ClientConnectorConfiguration

2018-02-15 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7720:


 Summary: Update ODBC cluster configuration: replace 
OdbcConfiguration with ClientConnectorConfiguration
 Key: IGNITE-7720
 URL: https://issues.apache.org/jira/browse/IGNITE-7720
 Project: Ignite
  Issue Type: Task
  Components: documentation
Affects Versions: 2.3
Reporter: Alexey Popov


https://apacheignite-sql.readme.io/docs/odbc-driver#section-cluster-configuration

Please note that ODBC configuration is depricated. It is better to update this 
page with 
ClientConnectorConfiguration

BTW, https://apacheignite-sql.readme.io/docs/jdbc-driver is already updated )

/**
 * ODBC configuration.
 * 
 * Deprecated as of Apache Ignite 2.1. Please use {@link 
ClientConnectorConfiguration} and
 * {@link 
IgniteConfiguration#setClientConnectorConfiguration(ClientConnectorConfiguration)}
 instead.
 */
@Deprecated
public class OdbcConfiguration {




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IGNITE-7705) DIscoverySpi should inherit networkTimeout from IgniteConfiguration

2018-02-14 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7705:


 Summary: DIscoverySpi should inherit networkTimeout from 
IgniteConfiguration
 Key: IGNITE-7705
 URL: https://issues.apache.org/jira/browse/IGNITE-7705
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.3
Reporter: Alexey Popov


Now we have global network timeout (from IgniteConfiguration) Please see 
{{IgniteConfiguration.setNetworkTimeout}}.
And we have a specific {{DiscoverySpi.setNetworkTimeout}}. DiscoverySpi should 
use a global network timeout (by default) if {{DiscoverySpi.setNetworkTimeout}} 
were not explicitly called.




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IGNITE-7704) Document IgniteConfiguration, TcpDiscoverySpi, TcpCommunicationSpi timeouts and their relations

2018-02-14 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7704:


 Summary: Document IgniteConfiguration, TcpDiscoverySpi, 
TcpCommunicationSpi timeouts and their relations
 Key: IGNITE-7704
 URL: https://issues.apache.org/jira/browse/IGNITE-7704
 Project: Ignite
  Issue Type: Improvement
  Components: documentation
Affects Versions: 2.3
Reporter: Alexey Popov


We often see similar questions related to IgniteConfiguration, TcpDiscoverySpi, 
TcpCommunicationSpi timeouts and their relations. And we see several 
side-effects after incorrect timeout configuration.

It looks like this question is not well documented.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IGNITE-7627) Introduce a new eviction policy to avoid eviction of Index pages

2018-02-05 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7627:


 Summary: Introduce a new eviction policy to avoid eviction of 
Index pages
 Key: IGNITE-7627
 URL: https://issues.apache.org/jira/browse/IGNITE-7627
 Project: Ignite
  Issue Type: Improvement
  Components: persistence
Reporter: Alexey Popov


It would be great if we can have a new type of eviction policy that does not 
affect index pages when persistence is on. So, the index pages always will be 
in-mem and that will improve an overall system performance for random reads 
with persistence is on.

For instance, MongoDB works that way. It always keeps all indexes in-mem.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Created] (IGNITE-7263) Daemon-mode Ignite node should not open client port (10800)

2017-12-20 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7263:


 Summary: Daemon-mode Ignite node should not open client 
port (10800)
 Key: IGNITE-7263
 URL: https://issues.apache.org/jira/browse/IGNITE-7263
 Project: Ignite
  Issue Type: Bug
  Components: visor
Affects Versions: 2.1
Reporter: Alexey Popov
Priority: Minor


When I run a Visor console with default configuration file it opens a default 
port (10800) for ODBC driver connection (and for thin JDBC, and for new "thin" 
client).
Then I run several Ignite nodes.

So after that, the ODBC driver with default settings goes directly to a Visor 
(daemon-mode Ignite) and does not able to get any data (daemon-mode Ignite does 
not keep any data)
It is better to avoid such situation.




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


[jira] [Created] (IGNITE-7247) C++: Change default mapper behavior for BinaryConfiguration

2017-12-19 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7247:


 Summary: C++: Change default mapper behavior for 
BinaryConfiguration
 Key: IGNITE-7247
 URL: https://issues.apache.org/jira/browse/IGNITE-7247
 Project: Ignite
  Issue Type: Improvement
  Components: platforms
Affects Versions: 2.3
Reporter: Alexey Popov


C# and Java use the following BinaryConfiguration params by default:
*BinaryBasicNameMapper with simpleName property set to false, and 
*BinaryBasicIdMapper with lowerCase property set to true.
while
C++ uses the following BinaryConfiguration params by default:
*BinaryBasicNameMapper with simpleName property set to *true*, and 
*BinaryBasicIdMapper with lowerCase property set to true.

So, the Java (for instance, a Visor app) can't join C++ nodes by default.

Let's have the default configuration properties the same for all platforms.

The same issue was changed for .NET under 
https://issues.apache.org/jira/browse/IGNITE-2398




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


[jira] [Created] (IGNITE-7192) JDBC: support FQDN to multiple IPs during connection establishment

2017-12-13 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7192:


 Summary: JDBC: support FQDN to multiple IPs during connection 
establishment
 Key: IGNITE-7192
 URL: https://issues.apache.org/jira/browse/IGNITE-7192
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc
Affects Versions: 2.1
Reporter: Alexey Popov


Thin JDBC driver may have FQDN (host name) at a connection string.
Currently, it resolves this FQDN to one IP and tries to connect to this IP only.
It is better to try to connect to multiple IPs one-by-one if DNS returns 
multiple A-records (FQDN can be resolved to several IPs) until successful 
connection. It could give a simple fallback option for the JDBC thin driver 
users.

A similar functionality is already implemented in ODBC driver.




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


[jira] [Created] (IGNITE-7191) JDBC: set socket buffer to 64k by default

2017-12-13 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7191:


 Summary: JDBC: set socket buffer to 64k by default
 Key: IGNITE-7191
 URL: https://issues.apache.org/jira/browse/IGNITE-7191
 Project: Ignite
  Issue Type: Improvement
  Components: jdbc
Affects Versions: 2.1
Reporter: Alexey Popov


TCP socket buffer size can significantly affect user-visible performance 
(actually, latency) for SQL queries, especially if Ignite cluster is run at the 
remote hosts. 
It is better to have 64k TCP socket buffer size (instead of default 8k) by 
default to avoid possible delays in TCP transport.



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


[jira] [Created] (IGNITE-7170) Fix javadoc MemoryConfiguration (20% instead of 80%)

2017-12-12 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7170:


 Summary: Fix javadoc MemoryConfiguration (20% instead of 80%)
 Key: IGNITE-7170
 URL: https://issues.apache.org/jira/browse/IGNITE-7170
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: 2.3
Reporter: Alexey Popov
Assignee: Alexey Popov
Priority: Trivial






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


[jira] [Created] (IGNITE-7153) Redis: BufferUnderflowException at GridRedisProtocolParser.readBulkStr for values > 8kb

2017-12-08 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7153:


 Summary: Redis: BufferUnderflowException at 
GridRedisProtocolParser.readBulkStr for values > 8kb
 Key: IGNITE-7153
 URL: https://issues.apache.org/jira/browse/IGNITE-7153
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: 2.3
 Environment: Win, PHP 7, php_redis-3.1.1-7.0
Reporter: Alexey Popov


Exception:
{noformat}
[15:03:23,690][SEVERE][grid-nio-worker-tcp-rest-0-#36][GridTcpRestProtocol] 
Failed to process selector key [ses=GridSelectorNioSessionImpl 
[worker=ByteBufferNioClientWorker [readBuf=java.nio.HeapByteBuffer[pos=28 
lim=8192 cap=8192], super=AbstractNioClientWorker [idx=0, bytesRcvd=0, 
bytesSent=0, bytesRcvd0=0, bytesSent0=0, select=true, super=GridWorker 
[name=grid-nio-worker-tcp-rest-0, igniteInstanceName=null, finished=false, 
hashCode=396395638, interrupted=false, 
runner=grid-nio-worker-tcp-rest-0-#36]]], writeBuf=null, readBuf=null, 
inRecovery=null, outRecovery=null, super=GridNioSessionImpl 
[locAddr=/127.0.0.1:6380, rmtAddr=/127.0.0.1:51794, createTime=1512734602674, 
closeTime=0, bytesSent=0, bytesRcvd=8192, bytesSent0=0, bytesRcvd0=8192, 
sndSchedTime=1512734602674, lastSndTime=1512734602674, 
lastRcvTime=1512734602674, readsPaused=false, 
filterChain=FilterChain[filters=[GridNioCodecFilter [parser=GridTcpRestParser 
[jdkMarshaller=JdkMarshaller [], routerClient=false], directMode=false]], 
accepted=true]]]
java.nio.BufferUnderflowException
at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:151)
at 
org.apache.ignite.internal.processors.rest.protocols.tcp.redis.GridRedisProtocolParser.readBulkStr(GridRedisProtocolParser.java:107)
at 
org.apache.ignite.internal.processors.rest.protocols.tcp.redis.GridRedisProtocolParser.readArray(GridRedisProtocolParser.java:86)
at 
org.apache.ignite.internal.processors.rest.protocols.tcp.GridTcpRestParser.decode(GridTcpRestParser.java:150)
at 
org.apache.ignite.internal.processors.rest.protocols.tcp.GridTcpRestParser.decode(GridTcpRestParser.java:70)
at 
org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:114)
at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at 
org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3392)
at 
org.apache.ignite.internal.util.nio.GridNioFilterChain.onMessageReceived(GridNioFilterChain.java:175)
at 
org.apache.ignite.internal.util.nio.GridNioServer$ByteBufferNioClientWorker.processRead(GridNioServer.java:1096)
at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2272)
at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2048)
at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1717)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at java.lang.Thread.run(Thread.java:748)
[15:03:23,691][SEVERE][grid-nio-worker-tcp-rest-0-#36][GridTcpRestProtocol] 
Closing NIO session because of unhandled exception.
class org.apache.ignite.internal.util.nio.GridNioException: null
at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.processSelectedKeysOptimized(GridNioServer.java:2296)
at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.bodyInternal(GridNioServer.java:2048)
at 
org.apache.ignite.internal.util.nio.GridNioServer$AbstractNioClientWorker.body(GridNioServer.java:1717)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:110)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.nio.BufferUnderflowException
at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:151)
at 
org.apache.ignite.internal.processors.rest.protocols.tcp.redis.GridRedisProtocolParser.readBulkStr(GridRedisProtocolParser.java:107)
at 
org.apache.ignite.internal.processors.rest.protocols.tcp.redis.GridRedisProtocolParser.readArray(GridRedisProtocolParser.java:86)
at 
org.apache.ignite.internal.processors.rest.protocols.tcp.GridTcpRestParser.decode(GridTcpRestParser.java:150)
at 
org.apache.ignite.internal.processors.rest.protocols.tcp.GridTcpRestParser.decode(GridTcpRestParser.java:70)
at 
org.apache.ignite.internal.util.nio.GridNioCodecFilter.onMessageReceived(GridNioCodecFilter.java:114)
at 
org.apache.ignite.internal.util.nio.GridNioFilterAdapter.proceedMessageReceived(GridNioFilterAdapter.java:109)
at 
org.apache.ignite.internal.util.nio.GridNioServer$HeadFilter.onMessageReceived(GridNioServer.java:3

RE: Does the Ignite C# client support distributed queues?

2017-12-01 Thread Alexey Popov
Hi Raymond,

You are right, distributed queues require changes at Ignite core. 
https://issues.apache.org/jira/browse/IGNITE-2701
It was created almost 1 year ago. Please vote for this feature.
As far as I know there is no plan/schedule for it. 

Thank you,
Alexey

From: Raymond Wilson
Sent: Friday, December 1, 2017 5:58 AM
To: u...@ignite.apache.org
Cc: dev@ignite.apache.org
Subject: RE: Does the Ignite C# client support distributed queues?

Looking at it I see it's blocked by 2701 (which has additional
dependencies, all of which say they are blocked by 2701).

I understand there is an intention to bring the C# client up to par with
the Java client. Is there a ticket/schedule yet for this?

Raymond.

-Original Message-
From: vkulichenko [mailto:valentin.kuliche...@gmail.com]
Sent: Friday, December 1, 2017 1:30 PM
To: u...@ignite.apache.org
Subject: RE: Does the Ignite C# client support distributed queues?

Oops, I read wrong! This is not supported. There is a ticket, but it
doesn't seem to be active at the moment:
https://issues.apache.org/jira/browse/IGNITE-1417

-Val



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/



RE: Ignite Logger & logging file config output

2017-12-01 Thread Alexey Popov
Yes, it is implemented for all Ignite loggers. 
However, some loggers (Slf4jLogger) does not have logging file configuration, 
so they show less details.

Thank you,
Alexey

From: Nikolai Tikhonov
Sent: Friday, December 1, 2017 5:21 PM
To: dev@ignite.apache.org
Subject: Re: Ignite Logger & logging file config output

Alexey,

Looks cool and helpful! I understand correctly that improvement is
implemented for all type of loggers which Ignite supports?

On Fri, Dec 1, 2017 at 5:18 PM, Alexey Popov <tank2.a...@gmail.com> wrote:

> Hi Denis,
>
> https://issues.apache.org/jira/browse/IGNITE-6971
>
> Sample quite=true output:
>
> [17:16:41]__  
> [17:16:41]   /  _/ ___/ |/ /  _/_  __/ __/
> [17:16:41]  _/ // (7 7// /  / / / _/
> [17:16:41] /___/\___/_/|_/___/ /_/ /___/
> [17:16:41]
> [17:16:41] ver. 2.4.0-SNAPSHOT#19700101-sha1:DEV
> [17:16:41] 2017 Copyright(C) Apache Software Foundation
> [17:16:41]
> [17:16:41] Ignite documentation: http://ignite.apache.org
> [17:16:41]
> [17:16:41] Quiet mode.
> [17:16:41]   ^-- Logging to file 'C:\incubator-ignite\work\log\
> ignite-7317b109.log'
> [17:16:41]   ^-- Logging by 'Log4JLogger [quiet=true,
> config=/C:/incubator-ignite/config/ignite-log4j.xml]'
> [17:16:41]   ^-- To see **FULL** console log here add -DIGNITE_QUIET=false
> or "-v" to ignite.{sh|bat}
> [17:16:41]
> [17:16:41] OS: Windows 10 10.0 amd64
> [17:16:41] VM information: Java(TM) SE Runtime Environment 1.8.0_141-b15
> Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 25.141-b15
> [17:16:41] Initial heap size is 254MB (should be no less than 512MB, use
> -Xms512m -Xmx512m).
> [17:16:41] Configured plugins:
> [17:16:41]   ^-- None
> [17:16:41]
>
> Sample verbose output:
>
> >>>__  
> >>>   /  _/ ___/ |/ /  _/_  __/ __/
> >>>  _/ // (7 7// /  / / / _/
> >>> /___/\___/_/|_/___/ /_/ /___/
> >>>
> >>> ver. 2.4.0-SNAPSHOT#19700101-sha1:DEV
> >>> 2017 Copyright(C) Apache Software Foundation
> >>>
> >>> Ignite documentation: http://ignite.apache.org
>
> 2017-12-01T17:06:49,403][INFO ][main][IgniteKernal%verboseLogGrid] Config
> URL: n/a
> 2017-12-01T17:06:49,403][INFO ][main][IgniteKernal%verboseLogGrid] Daemon
> mode: off
> 2017-12-01T17:06:49,403][INFO ][main][IgniteKernal%verboseLogGrid] OS:
> Windows 10 10.0 amd64
> 2017-12-01T17:06:49,404][INFO ][main][IgniteKernal%verboseLogGrid] OS
> user: gridgain
> 2017-12-01T17:06:49,408][INFO ][main][IgniteKernal%verboseLogGrid] PID:
> 5984
> 2017-12-01T17:06:49,408][INFO ][main][IgniteKernal%verboseLogGrid]
> Language runtime: Java Platform API Specification ver. 1.8
> 2017-12-01T17:06:49,408][INFO ][main][IgniteKernal%verboseLogGrid] VM
> information: Java(TM) SE Runtime Environment 1.8.0_141-b15 Oracle
> Corporation Java HotSpot(TM) 64-Bit Server VM 25.141-b15
> 2017-12-01T17:06:49,409][INFO ][main][IgniteKernal%verboseLogGrid] VM
> total memory: 3.5GB
> 2017-12-01T17:06:49,409][INFO ][main][IgniteKernal%verboseLogGrid] Remote
> Management [restart: off, REST: off, JMX (remote: off)]
> 2017-12-01T17:06:49,416][INFO ][main][IgniteKernal%verboseLogGrid]
> Logger: Log4J2Logger [quiet=false, config=C:\incubator-ignite\
> modules\core\src\test\config\log4j2-verbose-test.xml]
> 2017-12-01T17:06:49,417][INFO ][main][IgniteKernal%verboseLogGrid]
> IGNITE_HOME=C:\incubator-ignite
> 2017-12-01T17:06:49,417][INFO ][main][IgniteKernal%verboseLogGrid] VM
> arguments: [-ea, -Didea.test.cyclic.buffer.size=1048576,
> -javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition
> 2017.2.5\lib\idea_rt.jar=64660:C:\Program Files\JetBrains\IntelliJ IDEA
> Community Edition 2017.2.5\bin, -Dfile.encoding=UTF-8]
> 2017-12-01T17:06:49,417][INFO ][main][IgniteKernal%verboseLogGrid] System
> cache's DataRegion size is configured to 40 MB. Use
> DataStorageConfiguration.systemCacheMemorySize property to change the
> setting.
> 2017-12-01T17:06:49,427][INFO ][main][IgniteKernal%verboseLogGrid]
> Configured caches [in 'sysMemPlc' dataRegion: ['ignite-sys-cache']]
> 2017-12-01T17:06:49,430][WARN ][pub-#19%verboseLogGrid%][GridDiagnostic]
> This operating system has been tested less rigorously: Windows 10 10.0
> amd64. Our team will appreciate the feedback if you experience any problems
> running ignite in this environment.
> 2017-12-01T17:06:49,436][INFO ][main][IgniteKernal%verboseLogGrid] 3-rd
> party licenses can be found at: C:\incubator-ignite\libs\licenses
>
> Thank you,
> Alexey
>
> From: Denis Magda
> Sent: Tuesday, November 21, 2017 2:01 AM
> To: dev@ignite.apache.org
> Subject: Re: Ignite Logger & logging file config outp

RE: Ignite Logger & logging file config output

2017-12-01 Thread Alexey Popov
Hi Denis,

https://issues.apache.org/jira/browse/IGNITE-6971

Sample quite=true output:

[17:16:41]__   
[17:16:41]   /  _/ ___/ |/ /  _/_  __/ __/ 
[17:16:41]  _/ // (7 7// /  / / / _/   
[17:16:41] /___/\___/_/|_/___/ /_/ /___/  
[17:16:41] 
[17:16:41] ver. 2.4.0-SNAPSHOT#19700101-sha1:DEV
[17:16:41] 2017 Copyright(C) Apache Software Foundation
[17:16:41] 
[17:16:41] Ignite documentation: http://ignite.apache.org
[17:16:41] 
[17:16:41] Quiet mode.
[17:16:41]   ^-- Logging to file 
'C:\incubator-ignite\work\log\ignite-7317b109.log'
[17:16:41]   ^-- Logging by 'Log4JLogger [quiet=true, 
config=/C:/incubator-ignite/config/ignite-log4j.xml]'
[17:16:41]   ^-- To see **FULL** console log here add -DIGNITE_QUIET=false or 
"-v" to ignite.{sh|bat}
[17:16:41] 
[17:16:41] OS: Windows 10 10.0 amd64
[17:16:41] VM information: Java(TM) SE Runtime Environment 1.8.0_141-b15 Oracle 
Corporation Java HotSpot(TM) 64-Bit Server VM 25.141-b15
[17:16:41] Initial heap size is 254MB (should be no less than 512MB, use 
-Xms512m -Xmx512m).
[17:16:41] Configured plugins:
[17:16:41]   ^-- None
[17:16:41]

Sample verbose output:

>>>__    
>>>   /  _/ ___/ |/ /  _/_  __/ __/  
>>>  _/ // (7 7// /  / / / _/
>>> /___/\___/_/|_/___/ /_/ /___/   
>>> 
>>> ver. 2.4.0-SNAPSHOT#19700101-sha1:DEV
>>> 2017 Copyright(C) Apache Software Foundation
>>> 
>>> Ignite documentation: http://ignite.apache.org

2017-12-01T17:06:49,403][INFO ][main][IgniteKernal%verboseLogGrid] Config URL: 
n/a
2017-12-01T17:06:49,403][INFO ][main][IgniteKernal%verboseLogGrid] Daemon mode: 
off
2017-12-01T17:06:49,403][INFO ][main][IgniteKernal%verboseLogGrid] OS: Windows 
10 10.0 amd64
2017-12-01T17:06:49,404][INFO ][main][IgniteKernal%verboseLogGrid] OS user: 
gridgain
2017-12-01T17:06:49,408][INFO ][main][IgniteKernal%verboseLogGrid] PID: 5984
2017-12-01T17:06:49,408][INFO ][main][IgniteKernal%verboseLogGrid] Language 
runtime: Java Platform API Specification ver. 1.8
2017-12-01T17:06:49,408][INFO ][main][IgniteKernal%verboseLogGrid] VM 
information: Java(TM) SE Runtime Environment 1.8.0_141-b15 Oracle Corporation 
Java HotSpot(TM) 64-Bit Server VM 25.141-b15
2017-12-01T17:06:49,409][INFO ][main][IgniteKernal%verboseLogGrid] VM total 
memory: 3.5GB
2017-12-01T17:06:49,409][INFO ][main][IgniteKernal%verboseLogGrid] Remote 
Management [restart: off, REST: off, JMX (remote: off)]
2017-12-01T17:06:49,416][INFO ][main][IgniteKernal%verboseLogGrid] Logger: 
Log4J2Logger [quiet=false, 
config=C:\incubator-ignite\modules\core\src\test\config\log4j2-verbose-test.xml]
2017-12-01T17:06:49,417][INFO ][main][IgniteKernal%verboseLogGrid] 
IGNITE_HOME=C:\incubator-ignite
2017-12-01T17:06:49,417][INFO ][main][IgniteKernal%verboseLogGrid] VM 
arguments: [-ea, -Didea.test.cyclic.buffer.size=1048576, -javaagent:C:\Program 
Files\JetBrains\IntelliJ IDEA Community Edition 
2017.2.5\lib\idea_rt.jar=64660:C:\Program Files\JetBrains\IntelliJ IDEA 
Community Edition 2017.2.5\bin, -Dfile.encoding=UTF-8]
2017-12-01T17:06:49,417][INFO ][main][IgniteKernal%verboseLogGrid] System 
cache's DataRegion size is configured to 40 MB. Use 
DataStorageConfiguration.systemCacheMemorySize property to change the setting.
2017-12-01T17:06:49,427][INFO ][main][IgniteKernal%verboseLogGrid] Configured 
caches [in 'sysMemPlc' dataRegion: ['ignite-sys-cache']]
2017-12-01T17:06:49,430][WARN ][pub-#19%verboseLogGrid%][GridDiagnostic] This 
operating system has been tested less rigorously: Windows 10 10.0 amd64. Our 
team will appreciate the feedback if you experience any problems running ignite 
in this environment.
2017-12-01T17:06:49,436][INFO ][main][IgniteKernal%verboseLogGrid] 3-rd party 
licenses can be found at: C:\incubator-ignite\libs\licenses

Thank you,
Alexey

From: Denis Magda
Sent: Tuesday, November 21, 2017 2:01 AM
To: dev@ignite.apache.org
Subject: Re: Ignite Logger & logging file config output

Good point. Could you create a ticket and probably contribute this improvement?

—
Denis

> On Nov 20, 2017, at 3:12 AM, Alexey Popov <tank2.a...@gmail.com> wrote:
> 
> Hi Igniters,
> 
> Could you please advise why Ignite does not indicate 
> 1) the logger type it uses
> 2) the logger configuration file (name) it applies
> during startup?
> 
> Can we add such output to IgniteLogger implementations?
> 
> Thanks,
> Alexey
> 
> 
> 
> --
> Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/




RE: Thin Client Protocol documentation

2017-12-01 Thread Alexey Popov
Pavel,

I believe ClientListenerNioListener.onHandshake() could support more than one 
Handshake request format (be backward compatible), for instance, if we will 
have a new handshake code = 0xABCD that differs from 0x01 byte. 

It is a design vs architecture question.

I can’t understand why the legacy Handshake format should be used for a new 
protocol. If this protocol is supposed to be public it should have no 
exceptions for message formats.

Thank you,
Alexey

From: Pavel Tupitsyn
Sent: Thursday, November 30, 2017 12:11 PM
To: dev@ignite.apache.org
Subject: Re: Thin Client Protocol documentation

Hi Alexey,

1,2,3 are related only to handshake. All other operations are consistent.

Handshake request format is dictated by existing client connector that is
shared with ODBC and JDBC clients (see
ClientListenerNioListener.onHandshake).
so we can't add magic numbers or change operation code.

But yes, we can add server version to the handshake response, and I think
this makes sense.

> 4. The same comments for success flag (1 byte) and status code (4 bytes)
in responses. Let's leave only status code.
We don't have a success flag in responses, there is just a 4-byte status
code, 0 indicates success, everything else is an error.

Thanks,
Pavel

On Thu, Nov 30, 2017 at 12:01 PM, Alexey Popov <tank2.a...@gmail.com> wrote:

> Hi Pavel,
>
> Let me add my 5 cents.
>
> 1. It would be great if both Handshake request & response have some
> "magic" number (2 or 4 bytes) inside their msg body. That will simplify
> handling situations when non-Ignite client connects to Ignite server and
> vice versa.
>
> 2. It makes sense to add server version to successful Handshake response
> as well. It will help to understand & debug possible backward compatibility
> issues in the field by *.pcap logs analysis & etc.
>
> 3. Can we have a more strict header for all message types?
> As far as I understand,
> Handshake request has:
> 1) length - 4 byte
> 2) Handshake code - 1 byte
> 3) body - (length - 1) bytes
>
> while OP_CACHE_GET request has:
> 1) length - 4 byte
> 2) OP_CACHE_GET code - 2 bytes
> 3) request id - 4 bytes
> 4) body - (length - 2 - 4) bytes
>
> Why some messages have Operation code with 1 byte while others - 2 bytes?
> Why some requests/responses have request-id while others don't? Let's
> simplify parser work )
>
> 4. The same comments for success flag (1 byte) and status code (4 bytes)
> in responses. Let's leave only status code.
>
> Thank you,
> Alexey
>
> From: Pavel Tupitsyn
> Sent: Wednesday, November 22, 2017 4:04 PM
> To: dev@ignite.apache.org
> Subject: Thin Client Protocol documentation
>
> Igniters,
>
> I've put together a detailed description of our Thin Client protocol
> in form of IEP on wiki:
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-
> 9+Thin+Client+Protocol
>
>
> To clarify:
> - Protocol implementation is in master (see ClientMessageParser class)
> - Protocol has not been released yet, so we are free to change anything
> - Protocol is only used by .NET Thin Client for now, but is supposed to be
> used from other languages by third party contributors
> - More operations will be added in future, this is a first set of them,
> cache-related
>
>
> Please review the document and let me know your thoughts.
> Is there anything missing or wrong?
>
> We should make sure that the foundation is solid and extensible.
>
>
> Thanks,
> Pavel
>
>



RE: Thin Client Protocol documentation

2017-11-30 Thread Alexey Popov
Hi Pavel,

Let me add my 5 cents. 

1. It would be great if both Handshake request & response have some "magic" 
number (2 or 4 bytes) inside their msg body. That will simplify handling 
situations when non-Ignite client connects to Ignite server and vice versa. 

2. It makes sense to add server version to successful Handshake response as 
well. It will help to understand & debug possible backward compatibility issues 
in the field by *.pcap logs analysis & etc. 

3. Can we have a more strict header for all message types? 
As far as I understand, 
Handshake request has: 
1) length - 4 byte 
2) Handshake code - 1 byte 
3) body - (length - 1) bytes 

while OP_CACHE_GET request has: 
1) length - 4 byte 
2) OP_CACHE_GET code - 2 bytes 
3) request id - 4 bytes 
4) body - (length - 2 - 4) bytes 

Why some messages have Operation code with 1 byte while others - 2 bytes? Why 
some requests/responses have request-id while others don't? Let's simplify 
parser work ) 

4. The same comments for success flag (1 byte) and status code (4 bytes) in 
responses. Let's leave only status code. 

Thank you,
Alexey

From: Pavel Tupitsyn
Sent: Wednesday, November 22, 2017 4:04 PM
To: dev@ignite.apache.org
Subject: Thin Client Protocol documentation

Igniters,

I've put together a detailed description of our Thin Client protocol
in form of IEP on wiki:
https://cwiki.apache.org/confluence/display/IGNITE/IEP-9+Thin+Client+Protocol


To clarify:
- Protocol implementation is in master (see ClientMessageParser class)
- Protocol has not been released yet, so we are free to change anything
- Protocol is only used by .NET Thin Client for now, but is supposed to be
used from other languages by third party contributors
- More operations will be added in future, this is a first set of them,
cache-related


Please review the document and let me know your thoughts.
Is there anything missing or wrong?

We should make sure that the foundation is solid and extensible.


Thanks,
Pavel



[jira] [Created] (IGNITE-7047) NPE at org.jsr166.ConcurrentLinkedHashMap.replace

2017-11-28 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-7047:


 Summary: NPE at org.jsr166.ConcurrentLinkedHashMap.replace
 Key: IGNITE-7047
 URL: https://issues.apache.org/jira/browse/IGNITE-7047
 Project: Ignite
  Issue Type: Bug
  Components: general
Affects Versions: 2.1
Reporter: Alexey Popov
Assignee: Alexey Popov


NPE happens sometimes at heavy load after receiving 
GridDhtTxOnePhaseCommitAckRequest, no more details

ERROR 11/25/17 17:39:28 [::sys-stripe-2-#3%null%] cache.GridCacheIoManager> 
Failed processing message [senderId=0393e394-09a9-4c02-b33e-fb4d99c3539f, 
msg=GridDhtTxOnePhaseCommitAckRequest [vers=[GridCacheVersi
on [topVer=123129570, order=1511649564004, nodeOrder=2]], 
super=GridCacheMessage [msgId=95, depInfo=null, err=null, skipPrepare=false]]]
java.lang.NullPointerException
at 
org.jsr166.ConcurrentLinkedHashMap.replace(ConcurrentLinkedHashMap.java:1517)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.removeTxReturn(IgniteTxManager.java:1043)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processDhtTxOnePhaseCommitAckRequest(IgniteTxHandler.java:1070)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$700(IgniteTxHandler.java:95)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$8.apply(IgniteTxHandler.java:183)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$8.apply(IgniteTxHandler.java:181)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1042)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:561)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:126)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1097)
at 
org.apache.ignite.internal.util.StripedExecutor$Stripe.run(StripedExecutor.java:483)
at java.lang.Thread.run(Thread.java:745)
ERROR 11/25/17 17:39:28 [::sys-stripe-14-#15%null%] cache.GridCacheIoManager> 
Failed processing message [senderId=52c4ced0-49f3-4075-9b2f-7d619adf6d33, 
msg=GridDhtTxOnePhaseCommitAckRequest [vers=[GridCacheVersion 
[topVer=123129570, order=1511649564004, nodeOrder=4]], super=GridCacheMessage 
[msgId=97, depInfo=null, err=null, skipPrepare=false]]]
java.lang.NullPointerException
at 
org.jsr166.ConcurrentLinkedHashMap.replace(ConcurrentLinkedHashMap.java:1517)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxManager.removeTxReturn(IgniteTxManager.java:1043)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.processDhtTxOnePhaseCommitAckRequest(IgniteTxHandler.java:1070)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler.access$700(IgniteTxHandler.java:95)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$8.apply(IgniteTxHandler.java:183)
at 
org.apache.ignite.internal.processors.cache.transactions.IgniteTxHandler$8.apply(IgniteTxHandler.java:181)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1042)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:561)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:378)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:304)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:99)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:293)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.jav

Re: Data Rebalancing status API

2017-11-24 Thread Alexey Popov
Hm, actually, I've missed existent MXBean: RebalancingPartitionsCount.

Probably it should be enough.

Thanks,
Alexey



--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


Re: Confusing slf4j error messages

2017-11-24 Thread Alexey Popov
I've opened a ticket https://issues.apache.org/jira/browse/IGNITE-6828 some
time ago to fix this message.

If nobody argues I will prepare a patch.

Thanks,
Alexey



--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


Data Rebalancing status API

2017-11-24 Thread Alexey Popov
Hi Igniters,

I saw several cases when Ignite users/admins need to ensure if Data
Rebalancing is NOT in progress to prevent possible data loss.
For instance, when nodes one-by-one are moved out of the cluster for
maintenance and returned back by some script. 

Currently, this information could be received only by listening to
EVT_CACHE_REBALANCE_STARTED and EVT_CACHE_REBALANCE_STOPPED events. 

Why Ignite doesn't provide any public API to get a cache (or node)
rebalancing state?
Can we add some API for such purpose?

Thanks,
Alexey



--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


[jira] [Created] (IGNITE-6974) .NET: consoleWrite error during application shutdown

2017-11-21 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6974:


 Summary: .NET: consoleWrite error during application shutdown
 Key: IGNITE-6974
 URL: https://issues.apache.org/jira/browse/IGNITE-6974
 Project: Ignite
  Issue Type: Bug
  Components: platforms
Reporter: Alexey Popov
Priority: Minor


from Gitter:

Hey all (again xD)! Using Apache Ignite .NET 2.3 I (sometimes) get an error 
when shutting down my application. The error is only observable on server nodes 
and not on every shutdown. Seems like a kind of race condition.
The application runs as windows service. The windows application event log 
shows the following error (see above) and a I get a hs_err_pid[PID].log like 
that (snip):
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  
org.apache.ignite.internal.processors.platform.callback.PlatformCallbackUtils.consoleWrite(Ljava/lang/String;Z)V+0
j  
org.apache.ignite.internal.processors.platform.callback.PlatformCallbackGateway.consoleWrite(Ljava/lang/String;Z)V+2
j  
org.apache.ignite.internal.processors.platform.dotnet.PlatformDotNetConsoleStream.write([BII)V+18
j  java.io.PrintStream.write([BII)V+16
j  sun.nio.cs.StreamEncoder.writeBytes()V+120
j  sun.nio.cs.StreamEncoder.implFlushBuffer()V+11
j  sun.nio.cs.StreamEncoder.flushBuffer()V+15
j  java.io.OutputStreamWriter.flushBuffer()V+4
j  java.io.PrintStream.write(Ljava/lang/String;)V+27
j  java.io.PrintStream.print(Ljava/lang/String;)V+9
j  org.apache.ignite.internal.util.IgniteUtils.quiet(Z[Ljava/lang/Object;)V+126
j  org.apache.ignite.internal.IgniteKernal.stop0(Z)V+943
j  org.apache.ignite.internal.IgniteKernal.stop(Z)V+6
j  org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop0(Z)V+162
j  org.apache.ignite.internal.IgnitionEx$IgniteNamedInstance.stop(Z)V+26
j  org.apache.ignite.internal.IgnitionEx.stop(Ljava/lang/String;ZZ)Z+72
j  org.apache.ignite.Ignition.stop(Ljava/lang/String;Z)Z+3
j  
org.apache.ignite.internal.processors.platform.PlatformIgnition.stop(Ljava/lang/String;Z)Z+2
v  ~StubRoutines::call_stub
For me it seems that the Java side wants to write something to the (.NET) 
console using a callback and the underlying memory is already freed - therefore 
we get a AccessViolation



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


[jira] [Created] (IGNITE-6971) Ignite Logger type & logging file config indication

2017-11-21 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6971:


 Summary: Ignite Logger type & logging file config indication
 Key: IGNITE-6971
 URL: https://issues.apache.org/jira/browse/IGNITE-6971
 Project: Ignite
  Issue Type: Improvement
  Components: general
Affects Versions: 2.1
Reporter: Alexey Popov
Priority: Minor


Please see 
http://apache-ignite-developers.2346864.n4.nabble.com/Ignite-Logger-amp-logging-file-config-output-td24435.html



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


Ignite Logger & logging file config output

2017-11-20 Thread Alexey Popov
Hi Igniters,

Could you please advise why Ignite does not indicate 
1) the logger type it uses
2) the logger configuration file (name) it applies
during startup?

Can we add such output to IgniteLogger implementations?

Thanks,
Alexey



--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


[jira] [Created] (IGNITE-6955) Update com.google.code.simple-spring-memcached:spymemcached to 2.8.4

2017-11-20 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6955:


 Summary: Update 
com.google.code.simple-spring-memcached:spymemcached to 2.8.4
 Key: IGNITE-6955
 URL: https://issues.apache.org/jira/browse/IGNITE-6955
 Project: Ignite
  Issue Type: Improvement
  Components: examples
Affects Versions: 2.3
Reporter: Alexey Popov
Assignee: Alexey Popov
Priority: Minor


Please update com.google.code.simple-spring-memcached:spymemcached to 2.8.4 
version.
This version does not have "netty" dependencies



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


[jira] [Created] (IGNITE-6946) Change Ignite Logger configuration on the fly

2017-11-17 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6946:


 Summary: Change Ignite Logger configuration on the fly
 Key: IGNITE-6946
 URL: https://issues.apache.org/jira/browse/IGNITE-6946
 Project: Ignite
  Issue Type: Improvement
  Security Level: Public (Viewable by anyone)
  Components: general
Affects Versions: 2.3
Reporter: Alexey Popov


It would be great if we can change Ignite Logger configuration on the fly 
without restarting the cluster node. I will really help to debug an issue while 
it is reproducible at the current cluster state.
It should be done within the configured type of a logger, i.e. it is enough to 
change logging levels without changing the Logger type itself.

Such configuration change should be done for all supported logger types (JUL, 
log4j, log4i2 and others).

Also it should be done easily, for instance, via Visor, WebConsole or any other 
user-friendly tool ).



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


Re: Confusing slf4j error messages

2017-11-16 Thread Alexey Popov
It will utilize commons-logging (it is in dependency tree) according to
https://spring.io/blog/2009/12/04/logging-dependencies-in-spring/

"The nice thing about commons-logging is that you don’t need anything else
to make your application work. It has a runtime discovery algorithm that
looks for other logging frameworks in well known places on the classpath and
uses one that it thinks is appropriate (or you can tell it which one if you
need to). If nothing else is available you get pretty nice looking logs just
from the JDK (java.util.logging or JUL for short). You should find that your
Spring application works and logs happily to the console out of the box in
most situations, and that’s important."

Thanks,
Alexey





--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


Confusing slf4j error messages

2017-11-16 Thread Alexey Popov
Hi Igniters,

Ignite examples and Ignite itself with some configurations prints out
annoying messages related to slf4j:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further
details.

The reason for these messages is inside
org.springframework.data:spring-data-commons. It adds a dependency to
jcl-over-slf4j that "activates" slf4j. slf4j then tries to find
slf4j-TO-SOMELOGGER to forward all messages to SOMELOGGER. Actually, it does
not result in any issues with Ignite logging itself, it just confusing
Ignite users.

So, there are two options here to avoid these annoying messages:
1. exclude jcl-over-slf4j dependency from spring-data-commons in Ignite .pom
files
2. add slf4j-TO-SOMELOGGER (for instance, slf4j-log4j12 for log4j, or
slf4j-simple) dependency

Please advice on a better solution here.

Thank you,
Alexey




--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


[jira] [Created] (IGNITE-6907) Add LINQ many-to-many test and LINQ with transactions test

2017-11-14 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6907:


 Summary: Add LINQ many-to-many test and LINQ with transactions test
 Key: IGNITE-6907
 URL: https://issues.apache.org/jira/browse/IGNITE-6907
 Project: Ignite
  Issue Type: Improvement
  Security Level: Public (Viewable by anyone)
  Components: platforms
Affects Versions: 2.3
Reporter: Alexey Popov


1) Please add more many-to-many tests with LINQ.
2) Please add test with LINQ & Transactions to show/test how it could be used 
together

Probably it could be put to some example instead of unit tests




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


[jira] [Created] (IGNITE-6896) .NET: support Multidimensional Arrays in binary serializer

2017-11-13 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6896:


 Summary: .NET: support Multidimensional Arrays in binary serializer
 Key: IGNITE-6896
 URL: https://issues.apache.org/jira/browse/IGNITE-6896
 Project: Ignite
  Issue Type: Improvement
  Security Level: Public (Viewable by anyone)
  Components: platforms
Affects Versions: 2.3
Reporter: Alexey Popov


It is found that legacy 2D, 3D, etc. are not working in BinarySerializer.

Sample reproducer:
{code:java}
[Test]
public void TestXX()
{
var array2D = new float[32, 32];
var res = TestUtils.SerializeDeserialize(array2D);
Assert.AreEqual(array2D, res);
}
{code}

BTW, please note that 2D array in Java (a[2][2]) is just a jugged array:
obj = {byte[2][]@1928}
 0 = {byte[2]@1974}
 1 = {byte[2]@1975}



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


[jira] [Created] (IGNITE-6876) ODBC: Add support for SQL_ATTR_CONNECTION_TIMEOUT

2017-11-13 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6876:


 Summary: ODBC: Add support for SQL_ATTR_CONNECTION_TIMEOUT
 Key: IGNITE-6876
 URL: https://issues.apache.org/jira/browse/IGNITE-6876
 Project: Ignite
  Issue Type: Improvement
  Security Level: Public (Viewable by anyone)
  Components: odbc
Affects Versions: 2.1
Reporter: Alexey Popov


Remote ODBC client should be able to request a timeout for socket send/receive 
operations. It should be done with SQL_ATTR_CONNECTION_TIMEOUT attribute.
If an application with ODBC driver experiences a timeout for some query, it can 
continue to work after closing the connection and establishing a new one.



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


[jira] [Created] (IGNITE-6835) ODBC driver should handle ungraceful tcp disconnects

2017-11-07 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6835:


 Summary: ODBC driver should handle ungraceful tcp disconnects
 Key: IGNITE-6835
 URL: https://issues.apache.org/jira/browse/IGNITE-6835
 Project: Ignite
  Issue Type: Bug
  Security Level: Public (Viewable by anyone)
  Components: odbc
Affects Versions: 2.1
Reporter: Alexey Popov


It is found that ungraceful TCP disconnect makes ODBC driver stuck at socket 
recv().
Ungraceful TCP disconnect could be caused:
1. Network failure (or new firewall rules)
2. Remote party shutdown (Half Closed Connection)

So, the proposal is:
setup socket  options: 
1) SO_KEEPALIVE enabled
2) TCP_KEEPIDLE to 60 sec. It is 2 hour by default
3) TCP_KEEPINTVL to 5 (?) sec. It is 1 sec at Win and 75 sec at Linux by 
default.
4) send/receive buffers to some greater value (8k by default)




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


[jira] [Created] (IGNITE-6828) Confusing messages "SLF4J: Failed to load class" at Ignite start

2017-11-03 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6828:


 Summary: Confusing messages "SLF4J: Failed to load class" at 
Ignite start
 Key: IGNITE-6828
 URL: https://issues.apache.org/jira/browse/IGNITE-6828
 Project: Ignite
  Issue Type: Bug
  Security Level: Public (Viewable by anyone)
  Components: general
Affects Versions: 2.1
Reporter: Alexey Popov
Assignee: Alexey Popov


How to reproduce:
1. build Ignite
2. go to examples\
3. run: mvn exec:java 
-Dexec.mainClass="org.apache.ignite.examples.ExampleNodeStartup"

you will see the following confusing output:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further 
details.

SLF4J dependency comes from org.springframework.data:spring-data-commons:

[INFO] +- org.apache.ignite:ignite-spring-data:jar:2.3.0-SNAPSHOT:compile
[INFO] |  +- (org.apache.ignite:ignite-core:jar:2.3.0-SNAPSHOT:compile - 
omitted for duplicate)
[INFO] |  +- (org.apache.ignite:ignite-indexing:jar:2.3.0-SNAPSHOT:compile - 
omitted for duplicate)
[INFO] |  +- 
org.springframework.data:spring-data-commons:jar:1.13.1.RELEASE:compile
[INFO] |  |  +- (org.springframework:spring-core:jar:4.3.7.RELEASE:compile - 
omitted for duplicate)
[INFO] |  |  +- (org.springframework:spring-beans:jar:4.3.7.RELEASE:compile - 
omitted for duplicate)
[INFO] |  |  +- org.slf4j:slf4j-api:jar:1.7.24:compile
[INFO] |  |  \- org.slf4j:jcl-over-slf4j:jar:1.7.24:runtime
[INFO] |  | \- (org.slf4j:slf4j-api:jar:1.7.24:runtime - omitted for 
duplicate)
[INFO] |  \- (org.apache.ignite:ignite-spring:jar:2.3.0-SNAPSHOT:compile - 
omitted for duplicate)

We should remove this dependency because it is confusing and does not affects 
to Ignite logging functionality




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


Re: ipFinder configuration for Samples

2017-11-03 Thread Alexey Popov
I've created https://issues.apache.org/jira/browse/IGNITE-6826

Thanks,
Alexey



--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


ipFinder configuration for Samples

2017-10-31 Thread Alexey Popov
Hi, Igniters

I wonder why Ignite examples have multicast ipFinder for DiscoverySpi at
their configuration?
It is a quite common case to try them locally and Vm ipFinder is the best
option for that.
Multicast ipFinder adds some instability when several persons try & debug
samples or evaluate a new Ignite version at the same local network.

It looks like default ipFinder could simplify cluster deployment with
default configs. However, I hardly believe that someone deploys the samples
into remote hosts without changing IPs.

I propose to change default configs for examples from multicast to vm
ipFinder.

Thank you,
Alexey




--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


[jira] [Created] (IGNITE-6690) DiscoverySpi: Clientmode Ignite should not fail on handshake errors

2017-10-20 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6690:


 Summary: DiscoverySpi: Clientmode Ignite should not fail on 
handshake errors
 Key: IGNITE-6690
 URL: https://issues.apache.org/jira/browse/IGNITE-6690
 Project: Ignite
  Issue Type: Improvement
  Security Level: Public (Viewable by anyone)
  Components: general
Affects Versions: 2.2
Reporter: Alexey Popov
Assignee: Alexey Popov
 Fix For: 2.4


Ignite in Client mode should not fail on handshake unmarshalling errors. It 
should go to the next IP/port from ipFinder list

http://apache-ignite-developers.2346864.n4.nabble.com/DiscoverySpi-Handshake-unmarshalling-errors-at-Client-client-mode-td23467.html



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


DiscoverySpi Handshake unmarshalling errors at Client (client mode)

2017-10-20 Thread Alexey Popov
Hi Igniters, 

I am looking into Client DiscoverySpi procedure and see some differences in
Client behavior when it trying to connect to servers.
Case 1: If the Client can't connect (Connection refused) to some Server it
goes to the next IP/port from the ipFinder list.
Case 2: But if the client can't succesfully finish Discovery Handshake
procedure with the Server it does not try to connect to other IPs. It just
throws an TcpDiscoverySpi exception like this back to a user code
"class org.apache.ignite.IgniteCheckedException: Failed to start SPI:
TcpDiscoverySpi [addrRslvr=null, sockTimeout=5000, ackTimeout=5000,
marsh=JdkMarshaller [], reconCnt=10, maxAckTimeout=60,
forceSrvMode=false, clientReconnectDisabled=false]"

Case 2 can happen when IP/port was taken by non-Ignite server. For instance,
it could be taken by misconfigured HTTP server and the Client just can't
unmarshall the server HTTP response:

Caused by: java.io.StreamCorruptedException: invalid stream header: 48545450
at 
java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:857)
at java.io.ObjectInputStream.(ObjectInputStream.java:349)
at
org.apache.ignite.marshaller.jdk.JdkMarshallerObjectInputStream.(JdkMarshallerObjectInputStream.java:39)
at
org.apache.ignite.marshaller.jdk.JdkMarshaller.unmarshal0(JdkMarshaller.java:119)

So, I would like to change the client behavior in Case 2. It should handle
Discovery Handshake unmarshalling error in the same way it does with
"Connection refused" errors. It should try to connect to other servers.

Your thoughts?

Thanks,
Alexey




--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


[jira] [Created] (IGNITE-6627) .NET: cache deserialization fail with complex value type & enum

2017-10-13 Thread Alexey Popov (JIRA)
Alexey Popov created IGNITE-6627:


 Summary: .NET: cache deserialization fail with complex value type 
& enum
 Key: IGNITE-6627
 URL: https://issues.apache.org/jira/browse/IGNITE-6627
 Project: Ignite
  Issue Type: Bug
  Components: platforms
Affects Versions: 2.2
Reporter: Alexey Popov


There is an deserialization issue with complex structure.

Please see the sample code below:
{noformat}
public enum SampleEnum : byte
{
One = 0,
Two = 1,
Three = 2
}
{noformat}
{noformat}
var cache = ignite.GetOrCreateCache<string, 
Dictionary<SampleEnum, Dictionary<int, int>>>("mySampleCache");
cache.Put("DictData", Dict);
var result = cache.Get("DictData");
{noformat}

{{cache.Get("DictData"); }} fails with eception:
{"The constructor to deserialize an object of type 
'System.Collections.Generic.ObjectEqualityComparer`1[SampleProject.SampleEnum]' 
was not found."}

if we change 
Dictionary<SampleEnum, Dictionary<int, int>>
to 
Dictionary<int, Dictionary<int, int>>
then everything is ok



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


welcome

2017-09-29 Thread Alexey Popov
Hello Ignite Community!

My name is Alexey Popov. I want to contribute to Apache Ignite.
My Jira ID alexey.tank2

Thanks!