ignite-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sboi...@apache.org
Subject [49/50] [abbrv] ignite git commit: Merge remote-tracking branch 'remotes/community/ignite-comm-opts2-1' into ignite-comm-balance
Date Fri, 21 Oct 2016 15:55:16 GMT
Merge remote-tracking branch 'remotes/community/ignite-comm-opts2-1' into ignite-comm-balance

# Conflicts:
#	modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
#	modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/9bf435c6
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/9bf435c6
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/9bf435c6

Branch: refs/heads/ignite-comm-balance
Commit: 9bf435c6712869f8d1b60b0efdb0f0d2e305ec80
Parents: 2b25194 67b9401
Author: sboikov <sboikov@gridgain.com>
Authored: Fri Oct 21 18:53:54 2016 +0300
Committer: sboikov <sboikov@gridgain.com>
Committed: Fri Oct 21 18:53:54 2016 +0300

----------------------------------------------------------------------
 bin/include/setenv.bat                          |     8 -
 bin/include/setenv.sh                           |    31 -
 .../s3/S3CheckpointManagerSelfTest.java         |     3 +
 .../checkpoint/s3/S3CheckpointSpiSelfTest.java  |     4 +
 .../s3/S3CheckpointSpiStartStopSelfTest.java    |     7 +
 .../s3/S3SessionCheckpointSelfTest.java         |     2 +
 .../s3/TcpDiscoveryS3IpFinderSelfTest.java      |     7 +
 .../ignite/testsuites/IgniteS3TestSuite.java    |    15 +-
 .../client/ClientReconnectionSelfTest.java      |     4 +-
 .../client/router/TcpSslRouterSelfTest.java     |     7 +-
 .../client/suite/IgniteClientTestSuite.java     |    71 +-
 .../rest/protocols/tcp/MockNioSession.java      |    11 +
 .../TcpDiscoveryCloudIpFinderSelfTest.java      |     6 +-
 .../ignite/testsuites/IgniteCloudTestSuite.java |     5 +-
 .../apache/ignite/IgniteSystemProperties.java   |     6 +
 .../store/jdbc/CacheAbstractJdbcStore.java      |     4 +-
 .../ignite/cache/store/jdbc/JdbcType.java       |     2 +-
 .../apache/ignite/compute/ComputeTaskSpis.java  |     8 +-
 .../configuration/FileSystemConfiguration.java  |     2 +-
 .../configuration/IgniteConfiguration.java      |     2 +-
 .../local/LocalIgfsSecondaryFileSystem.java     |    32 +-
 .../ignite/internal/GridKernalContext.java      |     8 +
 .../ignite/internal/GridKernalContextImpl.java  |    12 +
 .../ignite/internal/GridTaskSessionImpl.java    |    15 +-
 .../org/apache/ignite/internal/GridTopic.java   |     5 +-
 .../ignite/internal/IgniteComponentType.java    |    11 +-
 .../apache/ignite/internal/IgniteKernal.java    |    41 +-
 .../org/apache/ignite/internal/IgnitionEx.java  |    19 +
 .../internal/binary/BinaryClassDescriptor.java  |    16 +-
 .../internal/binary/BinaryEnumObjectImpl.java   |     5 +
 .../ignite/internal/binary/BinaryObjectEx.java  |     8 +
 .../internal/binary/BinaryObjectImpl.java       |     7 +
 .../binary/BinaryObjectOffheapImpl.java         |     7 +
 .../ignite/internal/binary/BinaryUtils.java     |     5 +-
 .../internal/binary/BinaryWriterExImpl.java     |     6 +-
 .../binary/builder/BinaryObjectBuilderImpl.java |    11 +-
 .../GridClientConnectionManagerAdapter.java     |     1 +
 .../client/router/impl/GridTcpRouterImpl.java   |     1 +
 .../logger/platform/PlatformLogger.java         |   223 +
 .../internal/managers/GridManagerAdapter.java   |    15 +
 .../managers/communication/GridIoManager.java   |   235 +-
 .../managers/communication/GridIoMessage.java   |    21 +
 .../communication/GridIoMessageFactory.java     |     7 +-
 .../communication/IgniteIoTestMessage.java      |   216 +
 .../discovery/GridDiscoveryManager.java         |    73 +-
 .../loadbalancer/GridLoadBalancerManager.java   |    10 +-
 .../processors/cache/GridCacheAdapter.java      |     7 +
 .../processors/cache/GridCacheProcessor.java    |     2 +
 .../cache/GridCacheSharedContext.java           |    24 +-
 .../cache/GridCacheSharedTtlCleanupManager.java |   132 +
 .../processors/cache/GridCacheTtlManager.java   |   145 +-
 .../processors/cache/GridCacheUtils.java        |     5 +
 .../dht/atomic/GridDhtAtomicUpdateRequest.java  |     9 +
 .../dht/atomic/GridNearAtomicUpdateRequest.java |     9 +
 .../distributed/near/GridNearCacheAdapter.java  |     7 +
 .../query/GridCacheQueryMetricsAdapter.java     |    12 +-
 .../cache/transactions/IgniteTxManager.java     |     5 +-
 .../processors/hadoop/HadoopClassLoader.java    |   487 +
 .../processors/hadoop/HadoopClasspathUtils.java |   424 +
 .../processors/hadoop/HadoopDefaultJobInfo.java |   156 +
 .../processors/hadoop/HadoopHelper.java         |    55 +
 .../processors/hadoop/HadoopJobInfo.java        |     4 +-
 .../processors/hadoop/HadoopLocations.java      |   123 +
 .../processors/hadoop/HadoopNoopHelper.java     |    66 +
 .../processors/hadoop/HadoopNoopProcessor.java  |     4 +-
 .../processors/igfs/IgfsDataManager.java        |     2 +-
 .../internal/processors/igfs/IgfsImpl.java      |    21 +-
 .../processors/igfs/IgfsKernalContextAware.java |    32 +
 .../internal/processors/igfs/IgfsProcessor.java |    17 +-
 .../processors/job/GridJobProcessor.java        |     3 +-
 .../internal/processors/odbc/OdbcProcessor.java |     1 +
 .../platform/PlatformAbstractBootstrap.java     |    18 +-
 .../platform/PlatformConfigurationEx.java       |     6 +
 .../platform/PlatformNoopProcessor.java         |    10 +
 .../processors/platform/PlatformProcessor.java  |    16 +
 .../platform/PlatformProcessorImpl.java         |    56 +
 .../callback/PlatformCallbackGateway.java       |    45 +
 .../callback/PlatformCallbackUtils.java         |    20 +
 .../cpp/PlatformCppConfigurationEx.java         |     6 +
 .../dotnet/PlatformDotNetBootstrap.java         |     9 +
 .../PlatformDotNetConfigurationClosure.java     |    11 +-
 .../dotnet/PlatformDotNetConfigurationEx.java   |    12 +-
 .../PlatformDotNetSessionLockProcessor.java     |     2 +-
 .../rest/protocols/tcp/GridTcpRestProtocol.java |     1 +
 .../session/GridTaskSessionProcessor.java       |     9 +-
 .../processors/task/GridTaskProcessor.java      |     3 +-
 .../processors/task/GridTaskWorker.java         |     2 +-
 .../util/GridBoundedConcurrentOrderedMap.java   |     5 +
 .../ignite/internal/util/IgniteUtils.java       |    23 +-
 .../util/SingleConsumerSpinCircularBuffer.java  |   370 +
 .../ignite/internal/util/StripedExecutor.java   |   194 +
 .../internal/util/ipc/IpcToNioAdapter.java      |     2 +-
 .../nio/GridConnectionBytesVerifyFilter.java    |     4 +-
 .../util/nio/GridNioAsyncNotifyFilter.java      |     4 +-
 .../internal/util/nio/GridNioCodecFilter.java   |     6 +-
 .../ignite/internal/util/nio/GridNioFilter.java |    10 +-
 .../internal/util/nio/GridNioFilterAdapter.java |     4 +-
 .../internal/util/nio/GridNioFilterChain.java   |     8 +-
 .../ignite/internal/util/nio/GridNioFuture.java |     4 +-
 .../util/nio/GridNioRecoveryDescriptor.java     |    95 +-
 .../ignite/internal/util/nio/GridNioServer.java |   863 +-
 .../internal/util/nio/GridNioSession.java       |    11 +
 .../internal/util/nio/GridNioSessionImpl.java   |    19 +-
 .../util/nio/GridSelectorNioSessionImpl.java    |    66 +-
 .../util/nio/GridTcpNioCommunicationClient.java |    44 +-
 .../internal/util/nio/SessionWriteRequest.java  |    85 +
 .../internal/util/nio/ssl/GridNioSslFilter.java |     4 +-
 .../util/nio/ssl/GridNioSslHandler.java         |     4 +-
 .../cache/VisorCacheResetQueryMetricsTask.java  |    69 +
 .../org/apache/ignite/spi/IgniteSpiAdapter.java |    11 +
 .../org/apache/ignite/spi/IgniteSpiContext.java |    26 +-
 .../communication/tcp/TcpCommunicationSpi.java  |   157 +-
 .../TcpDiscoveryMulticastIpFinder.java          |     3 -
 .../ignite/stream/socket/SocketStreamer.java    |     1 +
 .../CacheJdbcPojoStoreAbstractSelfTest.java     |    55 +-
 ...heJdbcPojoStoreBinaryMarshallerSelfTest.java |    12 +-
 .../IgniteClientReconnectCacheTest.java         |    35 +
 ...GridManagerLocalMessageListenerSelfTest.java |   222 +
 .../GridDiscoveryManagerAliveCacheSelfTest.java |     4 +-
 .../discovery/GridDiscoveryManagerSelfTest.java |     6 +-
 .../cache/GridCacheAbstractFullApiSelfTest.java |    13 +-
 ...ridCacheStoreManagerDeserializationTest.java |     1 +
 .../GridCacheTtlManagerNotificationTest.java    |   107 +-
 .../cache/GridCacheUtilsSelfTest.java           |    64 +-
 ...calCacheStoreManagerDeserializationTest.java |     2 +-
 .../IgniteCacheConfigVariationsFullApiTest.java |     7 +-
 ...niteCacheExpireAndUpdateConsistencyTest.java |     7 +
 .../GridCacheBinaryObjectsAbstractSelfTest.java |    37 +
 ...tomicClientOnlyMultiNodeFullApiSelfTest.java |    17 +-
 ...eAtomicNearOnlyMultiNodeFullApiSelfTest.java |    17 +-
 .../IgniteCacheExpiryPolicyTestSuite.java       |     2 +
 ...eCacheOnlyOneTtlCleanupThreadExistsTest.java |   102 +
 .../igfs/IgfsAbstractBaseSelfTest.java          |    10 +-
 .../processors/igfs/IgfsAbstractSelfTest.java   |    26 +-
 .../IgfsAtomicPrimaryMultiNodeSelfTest.java     |    39 +
 .../IgfsAtomicPrimaryOffheapTieredSelfTest.java |    39 +
 .../IgfsAtomicPrimaryOffheapValuesSelfTest.java |    39 +
 .../igfs/IgfsAtomicPrimarySelfTest.java         |    39 +
 ...SecondaryFileSystemDualAbstractSelfTest.java |     3 +-
 ...lSecondaryFileSystemProxyClientSelfTest.java |    28 +
 ...fsLocalSecondaryFileSystemProxySelfTest.java |   272 +
 .../processors/igfs/IgfsProxySelfTest.java      |     2 +-
 .../nio/impl/GridNioFilterChainSelfTest.java    |    18 +-
 .../loadtests/hashmap/GridCacheTestContext.java |     2 +
 ...cpCommunicationSpiMultithreadedSelfTest.java |     6 +-
 ...dTcpCommunicationSpiRecoveryAckSelfTest.java |     6 +-
 ...CommunicationRecoveryAckClosureSelfTest.java |     6 +-
 .../tcp/TcpClientDiscoverySpiMulticastTest.java |     2 +-
 .../spi/discovery/tcp/TcpDiscoverySelfTest.java |     2 +-
 .../TcpDiscoveryMulticastIpFinderSelfTest.java  |     6 +-
 .../GridInternalTasksLoadBalancingSelfTest.java |   201 +
 .../testframework/GridSpiTestContext.java       |   115 +-
 .../ignite/testframework/IgniteTestSuite.java   |   308 +-
 .../testframework/junits/GridAbstractTest.java  |    53 +-
 .../ignite/testsuites/IgniteIgfsTestSuite.java  |    16 +
 .../apache/ignite/testsuites/IgniteIgnore.java  |     9 +-
 .../testsuites/IgniteIgnoredTestSuite.java      |    63 -
 .../IgniteSpiLoadBalancingSelfTestSuite.java    |    34 +-
 .../ignite/testsuites/IgniteSpiTestSuite.java   |     6 +-
 .../hadoop/fs/BasicHadoopFileSystemFactory.java |   125 +-
 .../fs/CachingHadoopFileSystemFactory.java      |    54 +-
 .../hadoop/fs/HadoopFileSystemFactory.java      |    11 +-
 .../fs/IgniteHadoopFileSystemCounterWriter.java |    79 +-
 .../fs/IgniteHadoopIgfsSecondaryFileSystem.java |   402 +-
 .../fs/KerberosHadoopFileSystemFactory.java     |    77 +-
 .../hadoop/fs/v1/IgniteHadoopFileSystem.java    |    47 +-
 .../hadoop/fs/v2/IgniteHadoopFileSystem.java    |    47 +-
 .../IgniteHadoopClientProtocolProvider.java     |    11 +-
 .../mapreduce/IgniteHadoopMapReducePlanner.java |    22 +-
 .../IgniteHadoopWeightedMapReducePlanner.java   |     4 +-
 .../ignite/hadoop/util/UserNameMapper.java      |     4 +-
 .../processors/hadoop/HadoopClassLoader.java    |   964 --
 .../processors/hadoop/HadoopClasspathMain.java  |    44 -
 .../processors/hadoop/HadoopClasspathUtils.java |   461 -
 .../processors/hadoop/HadoopCommonUtils.java    |   154 +
 .../processors/hadoop/HadoopContext.java        |     1 -
 .../processors/hadoop/HadoopDefaultJobInfo.java |   156 -
 .../processors/hadoop/HadoopExternalSplit.java  |    88 +
 .../processors/hadoop/HadoopHelperImpl.java     |   120 +
 .../processors/hadoop/HadoopLocations.java      |   123 -
 .../hadoop/HadoopMapReduceCounterGroup.java     |   123 -
 .../hadoop/HadoopMapReduceCounters.java         |   228 -
 .../processors/hadoop/HadoopProcessor.java      |    32 +-
 .../processors/hadoop/HadoopSplitWrapper.java   |   119 +
 .../internal/processors/hadoop/HadoopUtils.java |   443 -
 .../hadoop/counter/HadoopCounterAdapter.java    |     1 +
 .../counter/HadoopPerformanceCounter.java       |    12 +-
 .../hadoop/delegate/HadoopDelegateUtils.java    |   138 +
 .../HadoopFileSystemCounterWriterDelegate.java  |    36 +
 .../HadoopFileSystemFactoryDelegate.java        |    36 +
 .../HadoopIgfsSecondaryFileSystemDelegate.java  |    28 +
 .../hadoop/fs/HadoopFileSystemCacheUtils.java   |   242 -
 .../hadoop/fs/HadoopFileSystemsUtils.java       |    51 -
 .../hadoop/fs/HadoopLazyConcurrentMap.java      |   212 -
 .../hadoop/fs/HadoopLocalFileSystemV1.java      |    39 -
 .../hadoop/fs/HadoopLocalFileSystemV2.java      |    88 -
 .../processors/hadoop/fs/HadoopParameters.java  |    94 -
 .../hadoop/fs/HadoopRawLocalFileSystem.java     |   314 -
 .../processors/hadoop/igfs/HadoopIgfs.java      |   202 -
 .../igfs/HadoopIgfsCommunicationException.java  |    57 -
 .../processors/hadoop/igfs/HadoopIgfsEx.java    |    93 -
 .../hadoop/igfs/HadoopIgfsFuture.java           |    97 -
 .../hadoop/igfs/HadoopIgfsInProc.java           |   510 -
 .../hadoop/igfs/HadoopIgfsInputStream.java      |   629 -
 .../processors/hadoop/igfs/HadoopIgfsIo.java    |    76 -
 .../processors/hadoop/igfs/HadoopIgfsIpcIo.java |   624 -
 .../hadoop/igfs/HadoopIgfsIpcIoListener.java    |    36 -
 .../hadoop/igfs/HadoopIgfsJclLogger.java        |   116 -
 .../hadoop/igfs/HadoopIgfsOutProc.java          |   524 -
 .../hadoop/igfs/HadoopIgfsOutputStream.java     |   201 -
 .../hadoop/igfs/HadoopIgfsProperties.java       |    86 -
 .../hadoop/igfs/HadoopIgfsProxyInputStream.java |   337 -
 .../igfs/HadoopIgfsProxyOutputStream.java       |   165 -
 ...fsSecondaryFileSystemPositionedReadable.java |   105 -
 .../hadoop/igfs/HadoopIgfsStreamDelegate.java   |    96 -
 .../igfs/HadoopIgfsStreamEventListener.java     |    39 -
 .../processors/hadoop/igfs/HadoopIgfsUtils.java |   174 -
 .../hadoop/igfs/HadoopIgfsWrapper.java          |   552 -
 .../impl/HadoopMapReduceCounterGroup.java       |   124 +
 .../hadoop/impl/HadoopMapReduceCounters.java    |   229 +
 .../processors/hadoop/impl/HadoopUtils.java     |   328 +
 .../HadoopBasicFileSystemFactoryDelegate.java   |   164 +
 .../HadoopCachingFileSystemFactoryDelegate.java |    75 +
 .../HadoopDefaultFileSystemFactoryDelegate.java |    62 +
 ...doopFileSystemCounterWriterDelegateImpl.java |   108 +
 ...doopIgfsSecondaryFileSystemDelegateImpl.java |   472 +
 ...HadoopKerberosFileSystemFactoryDelegate.java |   112 +
 .../impl/fs/HadoopFileSystemCacheUtils.java     |   243 +
 .../hadoop/impl/fs/HadoopFileSystemsUtils.java  |    51 +
 .../hadoop/impl/fs/HadoopLazyConcurrentMap.java |   210 +
 .../hadoop/impl/fs/HadoopLocalFileSystemV1.java |    40 +
 .../hadoop/impl/fs/HadoopLocalFileSystemV2.java |    89 +
 .../hadoop/impl/fs/HadoopParameters.java        |    94 +
 .../impl/fs/HadoopRawLocalFileSystem.java       |   315 +
 .../processors/hadoop/impl/igfs/HadoopIgfs.java |   203 +
 .../igfs/HadoopIgfsCommunicationException.java  |    57 +
 .../hadoop/impl/igfs/HadoopIgfsEx.java          |    94 +
 .../hadoop/impl/igfs/HadoopIgfsFuture.java      |    97 +
 .../hadoop/impl/igfs/HadoopIgfsInProc.java      |   511 +
 .../hadoop/impl/igfs/HadoopIgfsInputStream.java |   630 +
 .../hadoop/impl/igfs/HadoopIgfsIo.java          |    76 +
 .../hadoop/impl/igfs/HadoopIgfsIpcIo.java       |   625 +
 .../impl/igfs/HadoopIgfsIpcIoListener.java      |    36 +
 .../hadoop/impl/igfs/HadoopIgfsJclLogger.java   |   116 +
 .../hadoop/impl/igfs/HadoopIgfsOutProc.java     |   525 +
 .../impl/igfs/HadoopIgfsOutputStream.java       |   202 +
 .../hadoop/impl/igfs/HadoopIgfsProperties.java  |    87 +
 .../impl/igfs/HadoopIgfsProxyInputStream.java   |   338 +
 .../impl/igfs/HadoopIgfsProxyOutputStream.java  |   166 +
 ...fsSecondaryFileSystemPositionedReadable.java |   106 +
 .../impl/igfs/HadoopIgfsStreamDelegate.java     |    96 +
 .../igfs/HadoopIgfsStreamEventListener.java     |    39 +
 .../hadoop/impl/igfs/HadoopIgfsUtils.java       |   175 +
 .../hadoop/impl/igfs/HadoopIgfsWrapper.java     |   554 +
 .../hadoop/impl/proto/HadoopClientProtocol.java |   354 +
 .../hadoop/impl/v1/HadoopV1CleanupTask.java     |    65 +
 .../hadoop/impl/v1/HadoopV1Counter.java         |   107 +
 .../hadoop/impl/v1/HadoopV1MapTask.java         |   122 +
 .../hadoop/impl/v1/HadoopV1OutputCollector.java |   138 +
 .../hadoop/impl/v1/HadoopV1Partitioner.java     |    44 +
 .../hadoop/impl/v1/HadoopV1ReduceTask.java      |   101 +
 .../hadoop/impl/v1/HadoopV1Reporter.java        |    81 +
 .../hadoop/impl/v1/HadoopV1SetupTask.java       |    57 +
 .../hadoop/impl/v1/HadoopV1Splitter.java        |   103 +
 .../processors/hadoop/impl/v1/HadoopV1Task.java |    98 +
 .../processors/hadoop/impl/v2/HadoopDaemon.java |   126 +
 .../impl/v2/HadoopSerializationWrapper.java     |   139 +
 .../impl/v2/HadoopShutdownHookManager.java      |    98 +
 .../hadoop/impl/v2/HadoopV2CleanupTask.java     |    73 +
 .../hadoop/impl/v2/HadoopV2Context.java         |   244 +
 .../hadoop/impl/v2/HadoopV2Counter.java         |    89 +
 .../processors/hadoop/impl/v2/HadoopV2Job.java  |   452 +
 .../impl/v2/HadoopV2JobResourceManager.java     |   324 +
 .../hadoop/impl/v2/HadoopV2MapTask.java         |    99 +
 .../hadoop/impl/v2/HadoopV2Partitioner.java     |    44 +
 .../hadoop/impl/v2/HadoopV2ReduceTask.java      |    91 +
 .../hadoop/impl/v2/HadoopV2SetupTask.java       |    66 +
 .../hadoop/impl/v2/HadoopV2Splitter.java        |   112 +
 .../processors/hadoop/impl/v2/HadoopV2Task.java |   186 +
 .../hadoop/impl/v2/HadoopV2TaskContext.java     |   563 +
 .../impl/v2/HadoopWritableSerialization.java    |    76 +
 .../hadoop/jobtracker/HadoopJobTracker.java     |    23 +-
 .../planner/HadoopDefaultMapReducePlan.java     |     7 +-
 .../hadoop/proto/HadoopClientProtocol.java      |   349 -
 .../child/HadoopChildProcessRunner.java         |    16 +-
 .../HadoopExternalCommunication.java            |     5 +-
 .../communication/HadoopIpcToNioAdapter.java    |     2 +-
 .../communication/HadoopMarshallerFilter.java   |     4 +-
 .../hadoop/v1/HadoopV1CleanupTask.java          |    64 -
 .../processors/hadoop/v1/HadoopV1Counter.java   |   106 -
 .../processors/hadoop/v1/HadoopV1MapTask.java   |   122 -
 .../hadoop/v1/HadoopV1OutputCollector.java      |   137 -
 .../hadoop/v1/HadoopV1Partitioner.java          |    44 -
 .../hadoop/v1/HadoopV1ReduceTask.java           |   101 -
 .../processors/hadoop/v1/HadoopV1Reporter.java  |    81 -
 .../processors/hadoop/v1/HadoopV1SetupTask.java |    56 -
 .../processors/hadoop/v1/HadoopV1Splitter.java  |   102 -
 .../processors/hadoop/v1/HadoopV1Task.java      |    97 -
 .../processors/hadoop/v2/HadoopDaemon.java      |   126 -
 .../hadoop/v2/HadoopExternalSplit.java          |    89 -
 .../hadoop/v2/HadoopSerializationWrapper.java   |   138 -
 .../hadoop/v2/HadoopShutdownHookManager.java    |    98 -
 .../hadoop/v2/HadoopSplitWrapper.java           |   119 -
 .../hadoop/v2/HadoopV2CleanupTask.java          |    72 -
 .../processors/hadoop/v2/HadoopV2Context.java   |   243 -
 .../processors/hadoop/v2/HadoopV2Counter.java   |    88 -
 .../processors/hadoop/v2/HadoopV2Job.java       |   445 -
 .../hadoop/v2/HadoopV2JobResourceManager.java   |   323 -
 .../processors/hadoop/v2/HadoopV2MapTask.java   |    99 -
 .../hadoop/v2/HadoopV2Partitioner.java          |    44 -
 .../hadoop/v2/HadoopV2ReduceTask.java           |    91 -
 .../processors/hadoop/v2/HadoopV2SetupTask.java |    65 -
 .../processors/hadoop/v2/HadoopV2Splitter.java  |   111 -
 .../processors/hadoop/v2/HadoopV2Task.java      |   185 -
 .../hadoop/v2/HadoopV2TaskContext.java          |   560 -
 .../hadoop/v2/HadoopWritableSerialization.java  |    75 -
 .../HadoopClientProtocolEmbeddedSelfTest.java   |    35 -
 .../hadoop/HadoopClientProtocolSelfTest.java    |   654 -
 .../hadoop/cache/HadoopTxConfigCacheTest.java   |    42 -
 ...KerberosHadoopFileSystemFactorySelfTest.java |   121 -
 .../util/BasicUserNameMapperSelfTest.java       |   133 -
 .../util/ChainedUserNameMapperSelfTest.java     |   107 -
 .../util/KerberosUserNameMapperSelfTest.java    |    99 -
 .../ignite/igfs/Hadoop1DualAbstractTest.java    |   158 -
 .../igfs/Hadoop1OverIgfsDualAsyncTest.java      |    30 -
 .../igfs/Hadoop1OverIgfsDualSyncTest.java       |    30 -
 .../igfs/HadoopFIleSystemFactorySelfTest.java   |   317 -
 .../HadoopIgfs20FileSystemAbstractSelfTest.java |  2040 ---
 ...Igfs20FileSystemLoopbackPrimarySelfTest.java |    74 -
 ...oopIgfs20FileSystemShmemPrimarySelfTest.java |    74 -
 .../igfs/HadoopIgfsDualAbstractSelfTest.java    |   321 -
 .../igfs/HadoopIgfsDualAsyncSelfTest.java       |    32 -
 .../ignite/igfs/HadoopIgfsDualSyncSelfTest.java |    32 -
 ...adoopIgfsSecondaryFileSystemTestAdapter.java |   149 -
 ...oopSecondaryFileSystemConfigurationTest.java |   575 -
 .../apache/ignite/igfs/IgfsEventsTestSuite.java |   285 -
 .../igfs/IgfsNearOnlyMultiNodeSelfTest.java     |   223 -
 .../IgniteHadoopFileSystemAbstractSelfTest.java |  2432 ---
 .../IgniteHadoopFileSystemClientSelfTest.java   |   212 -
 ...IgniteHadoopFileSystemHandshakeSelfTest.java |   389 -
 .../IgniteHadoopFileSystemIpcCacheSelfTest.java |   214 -
 .../IgniteHadoopFileSystemLoggerSelfTest.java   |   298 -
 ...niteHadoopFileSystemLoggerStateSelfTest.java |   329 -
 ...adoopFileSystemLoopbackAbstractSelfTest.java |    46 -
 ...SystemLoopbackEmbeddedDualAsyncSelfTest.java |    33 -
 ...eSystemLoopbackEmbeddedDualSyncSelfTest.java |    33 -
 ...leSystemLoopbackEmbeddedPrimarySelfTest.java |    33 -
 ...SystemLoopbackEmbeddedSecondarySelfTest.java |    34 -
 ...SystemLoopbackExternalDualAsyncSelfTest.java |    33 -
 ...eSystemLoopbackExternalDualSyncSelfTest.java |    33 -
 ...leSystemLoopbackExternalPrimarySelfTest.java |    33 -
 ...SystemLoopbackExternalSecondarySelfTest.java |    34 -
 ...condaryFileSystemInitializationSelfTest.java |   214 -
 ...teHadoopFileSystemShmemAbstractSelfTest.java |    91 -
 ...ileSystemShmemEmbeddedDualAsyncSelfTest.java |    33 -
 ...FileSystemShmemEmbeddedDualSyncSelfTest.java |    33 -
 ...pFileSystemShmemEmbeddedPrimarySelfTest.java |    33 -
 ...ileSystemShmemEmbeddedSecondarySelfTest.java |    33 -
 ...ileSystemShmemExternalDualAsyncSelfTest.java |    33 -
 ...FileSystemShmemExternalDualSyncSelfTest.java |    33 -
 ...pFileSystemShmemExternalPrimarySelfTest.java |    33 -
 ...ileSystemShmemExternalSecondarySelfTest.java |    33 -
 .../hadoop/HadoopAbstractMapReduceTest.java     |   429 -
 .../hadoop/HadoopAbstractSelfTest.java          |   239 -
 .../hadoop/HadoopAbstractWordCountTest.java     |   175 -
 .../hadoop/HadoopClassLoaderTest.java           |   110 -
 .../hadoop/HadoopCommandLineTest.java           |   474 -
 .../HadoopDefaultMapReducePlannerSelfTest.java  |   615 -
 .../processors/hadoop/HadoopErrorSimulator.java |   326 -
 .../hadoop/HadoopFileSystemsTest.java           |   155 -
 .../processors/hadoop/HadoopGroupingTest.java   |   307 -
 .../hadoop/HadoopJobTrackerSelfTest.java        |   345 -
 .../hadoop/HadoopMapReduceEmbeddedSelfTest.java |   253 -
 .../HadoopMapReduceErrorResilienceTest.java     |   154 -
 .../processors/hadoop/HadoopMapReduceTest.java  |    66 -
 .../hadoop/HadoopNoHadoopMapReduceTest.java     |    47 -
 .../processors/hadoop/HadoopPlannerMockJob.java |   168 -
 .../hadoop/HadoopPopularWordsTest.java          |   298 -
 .../HadoopSerializationWrapperSelfTest.java     |    79 -
 .../processors/hadoop/HadoopSharedMap.java      |     1 +
 .../hadoop/HadoopSnappyFullMapReduceTest.java   |    36 -
 .../processors/hadoop/HadoopSnappyTest.java     |   102 -
 .../hadoop/HadoopSortingExternalTest.java       |    46 -
 .../processors/hadoop/HadoopSortingTest.java    |   303 -
 .../hadoop/HadoopSplitWrapperSelfTest.java      |    72 -
 .../processors/hadoop/HadoopStartup.java        |    54 -
 .../hadoop/HadoopTaskExecutionSelfTest.java     |   567 -
 .../hadoop/HadoopTasksAllVersionsTest.java      |   260 -
 .../processors/hadoop/HadoopTasksV1Test.java    |    58 -
 .../processors/hadoop/HadoopTasksV2Test.java    |    77 -
 .../hadoop/HadoopTestClassLoader.java           |   106 +
 .../hadoop/HadoopTestRoundRobinMrPlanner.java   |    71 -
 .../hadoop/HadoopTestTaskContext.java           |   228 -
 .../processors/hadoop/HadoopTestUtils.java      |   178 -
 .../hadoop/HadoopUserLibsSelfTest.java          |   260 -
 .../processors/hadoop/HadoopV2JobSelfTest.java  |   100 -
 .../hadoop/HadoopValidationSelfTest.java        |    53 -
 .../HadoopWeightedMapReducePlannerTest.java     |   599 -
 .../HadoopWeightedPlannerMapReduceTest.java     |    38 -
 .../hadoop/books/alice-in-wonderland.txt        |  3735 -----
 .../processors/hadoop/books/art-of-war.txt      |  6982 ---------
 .../hadoop/books/huckleberry-finn.txt           | 11733 ---------------
 .../processors/hadoop/books/sherlock-holmes.txt | 13052 -----------------
 .../processors/hadoop/books/tom-sawyer.txt      |  8858 -----------
 .../hadoop/deps/CircularWIthHadoop.java         |    32 -
 .../hadoop/deps/CircularWithoutHadoop.java      |    27 -
 .../processors/hadoop/deps/WithCast.java        |    41 -
 .../hadoop/deps/WithClassAnnotation.java        |    28 -
 .../hadoop/deps/WithConstructorInvocation.java  |    31 -
 .../processors/hadoop/deps/WithExtends.java     |    27 -
 .../processors/hadoop/deps/WithField.java       |    29 -
 .../processors/hadoop/deps/WithImplements.java  |    36 -
 .../hadoop/deps/WithIndirectField.java          |    27 -
 .../processors/hadoop/deps/WithInitializer.java |    33 -
 .../processors/hadoop/deps/WithInnerClass.java  |    31 -
 .../hadoop/deps/WithLocalVariable.java          |    38 -
 .../hadoop/deps/WithMethodAnnotation.java       |    32 -
 .../hadoop/deps/WithMethodArgument.java         |    31 -
 .../hadoop/deps/WithMethodCheckedException.java |    31 -
 .../hadoop/deps/WithMethodInvocation.java       |    31 -
 .../hadoop/deps/WithMethodReturnType.java       |    31 -
 .../hadoop/deps/WithMethodRuntimeException.java |    31 -
 .../processors/hadoop/deps/WithOuterClass.java  |    38 -
 .../hadoop/deps/WithParameterAnnotation.java    |    31 -
 .../processors/hadoop/deps/WithStaticField.java |    29 -
 .../hadoop/deps/WithStaticInitializer.java      |    34 -
 .../processors/hadoop/deps/Without.java         |    25 -
 .../hadoop/examples/HadoopWordCount1.java       |    94 -
 .../hadoop/examples/HadoopWordCount1Map.java    |    79 -
 .../hadoop/examples/HadoopWordCount1Reduce.java |    61 -
 .../hadoop/examples/HadoopWordCount2.java       |   111 -
 .../examples/HadoopWordCount2Combiner.java      |    45 -
 .../hadoop/examples/HadoopWordCount2Mapper.java |    88 -
 .../examples/HadoopWordCount2Reducer.java       |   113 -
 .../impl/HadoopAbstractMapReduceTest.java       |   430 +
 .../hadoop/impl/HadoopAbstractSelfTest.java     |   239 +
 .../impl/HadoopAbstractWordCountTest.java       |   175 +
 .../hadoop/impl/HadoopCommandLineTest.java      |   476 +
 .../HadoopDefaultMapReducePlannerSelfTest.java  |   619 +
 .../hadoop/impl/HadoopErrorSimulator.java       |   326 +
 .../hadoop/impl/HadoopFileSystemsTest.java      |   155 +
 .../hadoop/impl/HadoopGroupingTest.java         |   302 +
 .../hadoop/impl/HadoopJobTrackerSelfTest.java   |   334 +
 .../impl/HadoopMapReduceEmbeddedSelfTest.java   |   249 +
 .../HadoopMapReduceErrorResilienceTest.java     |   154 +
 .../hadoop/impl/HadoopMapReduceTest.java        |    66 +
 .../impl/HadoopNoHadoopMapReduceTest.java       |    47 +
 .../hadoop/impl/HadoopPlannerMockJob.java       |   175 +
 .../hadoop/impl/HadoopPopularWordsTest.java     |   298 +
 .../HadoopSerializationWrapperSelfTest.java     |    80 +
 .../impl/HadoopSnappyFullMapReduceTest.java     |    36 +
 .../hadoop/impl/HadoopSnappyTest.java           |   104 +
 .../hadoop/impl/HadoopSortingExternalTest.java  |    46 +
 .../hadoop/impl/HadoopSortingTest.java          |   304 +
 .../hadoop/impl/HadoopSplitWrapperSelfTest.java |    72 +
 .../processors/hadoop/impl/HadoopStartup.java   |    54 +
 .../impl/HadoopTaskExecutionSelfTest.java       |   550 +
 .../hadoop/impl/HadoopTasksAllVersionsTest.java |   264 +
 .../hadoop/impl/HadoopTasksV1Test.java          |    62 +
 .../hadoop/impl/HadoopTasksV2Test.java          |    81 +
 .../impl/HadoopTestRoundRobinMrPlanner.java     |    75 +
 .../hadoop/impl/HadoopTestTaskContext.java      |   233 +
 .../processors/hadoop/impl/HadoopTestUtils.java |   178 +
 .../hadoop/impl/HadoopTxConfigCacheTest.java    |    42 +
 .../hadoop/impl/HadoopUserLibsSelfTest.java     |   261 +
 .../hadoop/impl/HadoopV2JobSelfTest.java        |   108 +
 .../hadoop/impl/HadoopValidationSelfTest.java   |    53 +
 .../HadoopWeightedMapReducePlannerTest.java     |   602 +
 .../HadoopWeightedPlannerMapReduceTest.java     |    38 +
 .../hadoop/impl/books/alice-in-wonderland.txt   |  3735 +++++
 .../processors/hadoop/impl/books/art-of-war.txt |  6982 +++++++++
 .../hadoop/impl/books/huckleberry-finn.txt      | 11733 +++++++++++++++
 .../hadoop/impl/books/sherlock-holmes.txt       | 13052 +++++++++++++++++
 .../processors/hadoop/impl/books/tom-sawyer.txt |  8858 +++++++++++
 .../HadoopClientProtocolEmbeddedSelfTest.java   |    35 +
 .../client/HadoopClientProtocolSelfTest.java    |   654 +
 .../hadoop/impl/examples/HadoopWordCount1.java  |    94 +
 .../impl/examples/HadoopWordCount1Map.java      |    79 +
 .../impl/examples/HadoopWordCount1Reduce.java   |    61 +
 .../hadoop/impl/examples/HadoopWordCount2.java  |   111 +
 .../impl/examples/HadoopWordCount2Combiner.java |    45 +
 .../impl/examples/HadoopWordCount2Mapper.java   |    88 +
 .../impl/examples/HadoopWordCount2Reducer.java  |   113 +
 ...KerberosHadoopFileSystemFactorySelfTest.java |   126 +
 .../impl/igfs/Hadoop1DualAbstractTest.java      |   157 +
 .../impl/igfs/Hadoop1OverIgfsDualAsyncTest.java |    32 +
 .../impl/igfs/Hadoop1OverIgfsDualSyncTest.java  |    32 +
 .../igfs/HadoopFIleSystemFactorySelfTest.java   |   345 +
 .../HadoopIgfs20FileSystemAbstractSelfTest.java |  2047 +++
 ...Igfs20FileSystemLoopbackPrimarySelfTest.java |    77 +
 ...oopIgfs20FileSystemShmemPrimarySelfTest.java |    77 +
 .../igfs/HadoopIgfsDualAbstractSelfTest.java    |   328 +
 .../impl/igfs/HadoopIgfsDualAsyncSelfTest.java  |    32 +
 .../impl/igfs/HadoopIgfsDualSyncSelfTest.java   |    32 +
 ...adoopIgfsSecondaryFileSystemTestAdapter.java |   153 +
 ...oopSecondaryFileSystemConfigurationTest.java |   583 +
 .../hadoop/impl/igfs/IgfsEventsTestSuite.java   |   289 +
 .../igfs/IgfsNearOnlyMultiNodeSelfTest.java     |   226 +
 .../IgniteHadoopFileSystemAbstractSelfTest.java |  2435 +++
 .../IgniteHadoopFileSystemClientSelfTest.java   |   216 +
 ...IgniteHadoopFileSystemHandshakeSelfTest.java |   393 +
 .../IgniteHadoopFileSystemIpcCacheSelfTest.java |   215 +
 .../IgniteHadoopFileSystemLoggerSelfTest.java   |   299 +
 ...niteHadoopFileSystemLoggerStateSelfTest.java |   332 +
 ...adoopFileSystemLoopbackAbstractSelfTest.java |    50 +
 ...SystemLoopbackEmbeddedDualAsyncSelfTest.java |    33 +
 ...eSystemLoopbackEmbeddedDualSyncSelfTest.java |    33 +
 ...leSystemLoopbackEmbeddedPrimarySelfTest.java |    33 +
 ...SystemLoopbackEmbeddedSecondarySelfTest.java |    34 +
 ...SystemLoopbackExternalDualAsyncSelfTest.java |    33 +
 ...eSystemLoopbackExternalDualSyncSelfTest.java |    33 +
 ...leSystemLoopbackExternalPrimarySelfTest.java |    33 +
 ...SystemLoopbackExternalSecondarySelfTest.java |    34 +
 ...condaryFileSystemInitializationSelfTest.java |   217 +
 ...teHadoopFileSystemShmemAbstractSelfTest.java |    94 +
 ...ileSystemShmemEmbeddedDualAsyncSelfTest.java |    33 +
 ...FileSystemShmemEmbeddedDualSyncSelfTest.java |    33 +
 ...pFileSystemShmemEmbeddedPrimarySelfTest.java |    33 +
 ...ileSystemShmemEmbeddedSecondarySelfTest.java |    33 +
 ...ileSystemShmemExternalDualAsyncSelfTest.java |    33 +
 ...FileSystemShmemExternalDualSyncSelfTest.java |    33 +
 ...pFileSystemShmemExternalPrimarySelfTest.java |    33 +
 ...ileSystemShmemExternalSecondarySelfTest.java |    33 +
 .../collections/HadoopAbstractMapTest.java      |   175 +
 .../HadoopConcurrentHashMultimapSelftest.java   |   280 +
 .../collections/HadoopHashMapSelfTest.java      |   133 +
 .../collections/HadoopSkipListSelfTest.java     |   320 +
 .../streams/HadoopDataStreamSelfTest.java       |   153 +
 .../taskexecutor/HadoopExecutorServiceTest.java |   119 +
 .../HadoopExternalTaskExecutionSelfTest.java    |   232 +
 .../HadoopExternalCommunicationSelfTest.java    |   222 +
 .../impl/util/BasicUserNameMapperSelfTest.java  |   134 +
 .../util/ChainedUserNameMapperSelfTest.java     |   111 +
 .../util/KerberosUserNameMapperSelfTest.java    |   100 +
 .../collections/HadoopAbstractMapTest.java      |   174 -
 .../HadoopConcurrentHashMultimapSelftest.java   |   278 -
 .../collections/HadoopHashMapSelfTest.java      |   131 -
 .../collections/HadoopSkipListSelfTest.java     |   318 -
 .../streams/HadoopDataStreamSelfTest.java       |   150 -
 .../hadoop/state/HadoopGroupingTestState.java   |    40 +
 .../state/HadoopJobTrackerSelfTestState.java    |    45 +
 .../HadoopMapReduceEmbeddedSelfTestState.java   |    32 +
 .../HadoopTaskExecutionSelfTestValues.java      |    51 +
 .../taskexecutor/HadoopExecutorServiceTest.java |   118 -
 .../HadoopExternalTaskExecutionSelfTest.java    |   232 -
 .../HadoopExternalCommunicationSelfTest.java    |   220 -
 .../testsuites/IgniteHadoopTestSuite.java       |   114 +-
 .../IgniteIgfsLinuxAndMacOSTestSuite.java       |    25 +-
 modules/ignored-tests/README.txt                |     4 +
 modules/ignored-tests/pom.xml                   |   233 +
 .../testsuites/IgniteIgnoredTestSuite.java      |    57 +
 .../apache/ignite/testsuites/package-info.java  |    22 +
 .../CacheAbstractQueryMetricsSelfTest.java      |     6 +-
 .../stream/jms11/IgniteJmsStreamerTest.java     |   206 +-
 .../jms11/IgniteJmsStreamerTestSuite.java       |     2 +-
 ...titionedCacheJtaLookupClassNameSelfTest.java |     4 +-
 .../ignite/testsuites/IgniteJtaTestSuite.java   |     3 +-
 .../cpp/jni/include/ignite/jni/exports.h        |     2 +
 .../platforms/cpp/jni/include/ignite/jni/java.h |    13 +
 modules/platforms/cpp/jni/project/vs/module.def |     3 +-
 modules/platforms/cpp/jni/src/exports.cpp       |    12 +-
 modules/platforms/cpp/jni/src/java.cpp          |    72 +-
 modules/platforms/cpp/odbc-test/Makefile.am     |     1 +
 .../cpp/odbc-test/include/test_utils.h          |     8 +
 .../cpp/odbc-test/project/vs/odbc-test.vcxproj  |     1 +
 .../project/vs/odbc-test.vcxproj.filters        |     3 +
 .../cpp/odbc-test/src/api_robustness_test.cpp   |  1006 ++
 .../src/application_data_buffer_test.cpp        |   129 +-
 .../platforms/cpp/odbc-test/src/column_test.cpp |    10 +-
 .../cpp/odbc-test/src/queries_test.cpp          |   143 +-
 .../platforms/cpp/odbc-test/src/row_test.cpp    |     4 +-
 modules/platforms/cpp/odbc/Makefile.am          |     3 +-
 .../platforms/cpp/odbc/include/ignite/odbc.h    |     6 +-
 .../ignite/odbc/app/application_data_buffer.h   |    58 +-
 .../odbc/include/ignite/odbc/app/parameter.h    |    27 +-
 .../cpp/odbc/include/ignite/odbc/common_types.h |    26 +-
 .../include/ignite/odbc/config/configuration.h  |    17 +-
 .../cpp/odbc/include/ignite/odbc/statement.h    |    58 +-
 .../platforms/cpp/odbc/project/vs/module.def    |     1 -
 .../platforms/cpp/odbc/project/vs/odbc.vcxproj  |     2 +-
 .../odbc/src/app/application_data_buffer.cpp    |   343 +-
 .../platforms/cpp/odbc/src/app/parameter.cpp    |   126 +-
 modules/platforms/cpp/odbc/src/common_types.cpp |     3 +
 .../cpp/odbc/src/config/configuration.cpp       |    27 +
 .../cpp/odbc/src/config/connection_info.cpp     |    35 +-
 modules/platforms/cpp/odbc/src/connection.cpp   |     2 +-
 .../odbc/src/diagnostic/diagnostic_record.cpp   |    18 +
 modules/platforms/cpp/odbc/src/entry_points.cpp |    49 +-
 modules/platforms/cpp/odbc/src/odbc.cpp         |   240 +-
 modules/platforms/cpp/odbc/src/statement.cpp    |   152 +-
 .../IgniteSessionStateStoreProviderTest.cs      |    13 +
 .../IgniteOutputCacheProvider.cs                |     2 +-
 .../IgniteSessionStateStoreProvider.cs          |     8 +-
 .../Apache.Ignite.AspNet/Impl/ConfigUtil.cs     |    13 +-
 .../Impl/IgniteSessionStateItemCollection.cs    |     4 +-
 .../Apache.Ignite.Core.Tests.NuGet.csproj       |    28 +-
 .../Log4NetTest.cs                              |    87 +
 .../Apache.Ignite.Core.Tests.NuGet/NLogTest.cs  |    82 +
 .../packages.config                             |    15 +-
 .../Apache.Ignite.Core.Tests.csproj             |    30 +-
 .../Binary/BinaryStringTest.cs                  |    26 +-
 .../Compute/ComputeApiTest.cs                   |    26 +
 .../Config/Log/custom-log.xml                   |    50 +
 .../Config/Log/dotnet-log4j.xml                 |   143 +
 .../IgniteConfigurationSerializerTest.cs        |    35 +-
 .../Log/CustomLoggerTest.cs                     |   430 +
 .../Log/DefaultLoggerTest.cs                    |   114 +
 .../Log/Log4NetLoggerTest.cs                    |   188 +
 .../Log/NLogLoggerTest.cs                       |   166 +
 .../ProjectFilesTest.cs                         |    37 +-
 .../Apache.Ignite.Core.Tests/TestUtils.cs       |    26 +
 .../Apache.Ignite.Core.Tests/packages.config    |    24 +
 .../Apache.Ignite.Core.csproj                   |     6 +-
 .../Cache/Configuration/CacheConfiguration.cs   |    19 +-
 .../Cache/Configuration/QueryEntity.cs          |    25 +-
 .../Cache/Configuration/QueryField.cs           |    19 +-
 .../Apache.Ignite.Core/Cluster/IClusterGroup.cs |    14 +
 .../Apache.Ignite.Core/Common/JavaException.cs  |     1 +
 .../Apache.Ignite.Core/Compute/ICompute.cs      |     6 +-
 .../dotnet/Apache.Ignite.Core/IIgnite.cs        |     8 +
 .../Apache.Ignite.Core/IgniteConfiguration.cs   |    91 +
 .../IgniteConfigurationSection.xsd              |    12 +
 .../dotnet/Apache.Ignite.Core/Ignition.cs       |    39 +-
 .../Apache.Ignite.Core/Impl/Binary/JavaTypes.cs |    29 +-
 .../Impl/Cluster/ClusterGroupImpl.cs            |     6 +
 .../Common/IgniteConfigurationXmlSerializer.cs  |    21 +-
 .../Apache.Ignite.Core/Impl/Common/Logger.cs    |    37 -
 .../Impl/Compute/ComputeFunc.cs                 |     5 +-
 .../Impl/Compute/ComputeJob.cs                  |    10 +-
 .../Impl/Compute/ComputeOutFunc.cs              |     5 +-
 .../dotnet/Apache.Ignite.Core/Impl/Ignite.cs    |    19 +-
 .../Apache.Ignite.Core/Impl/IgniteManager.cs    |     6 +-
 .../Apache.Ignite.Core/Impl/IgniteProxy.cs      |    13 +
 .../Apache.Ignite.Core/Impl/IgniteUtils.cs      |    26 +-
 .../Apache.Ignite.Core/Impl/Log/JavaLogger.cs   |   110 +
 .../Impl/Unmanaged/IgniteJniNativeMethods.cs    |     7 +
 .../Impl/Unmanaged/UnmanagedCallbackHandlers.cs |     3 +
 .../Impl/Unmanaged/UnmanagedCallbacks.cs        |    83 +-
 .../Impl/Unmanaged/UnmanagedUtils.cs            |    27 +-
 .../Apache.Ignite.Core/Log/CategoryLogger.cs    |    82 +
 .../dotnet/Apache.Ignite.Core/Log/ILogger.cs    |    51 +
 .../dotnet/Apache.Ignite.Core/Log/LogLevel.cs   |    53 +
 .../Apache.Ignite.Core/Log/LoggerExtensions.cs  |   320 +
 .../NuGet/LINQPad/PutGetExample.linq            |     2 +-
 .../NuGet/LINQPad/QueryExample.linq             |     6 +-
 .../NuGet/LINQPad/QueryExample.linq             |     4 +-
 .../Apache.Ignite.Log4Net.csproj                |    76 +
 .../Apache.Ignite.Log4Net.nuspec                |    50 +
 .../Apache.Ignite.Log4Net.snk                   |   Bin 0 -> 596 bytes
 .../IgniteLog4NetLogger.cs                      |   123 +
 .../Properties/AssemblyInfo.cs                  |    40 +
 .../Apache.Ignite.Log4Net/packages.config       |    20 +
 .../Apache.Ignite.NLog.csproj                   |    74 +
 .../Apache.Ignite.NLog.nuspec                   |    50 +
 .../Apache.Ignite.NLog/Apache.Ignite.NLog.snk   |   Bin 0 -> 596 bytes
 .../Apache.Ignite.NLog/IgniteNLogLogger.cs      |   125 +
 .../Properties/AssemblyInfo.cs                  |    40 +
 .../dotnet/Apache.Ignite.NLog/packages.config   |     4 +
 modules/platforms/dotnet/Apache.Ignite.sln      |    28 +
 .../Events/LocalListener.cs                     |     2 +-
 .../parser/dialect/JdbcMetadataDialect.java     |     4 +-
 .../p2p/GridP2PUserVersionChangeSelfTest.java   |     7 +-
 .../testsuites/IgniteResourceSelfTestSuite.java |    11 +-
 .../testsuites/IgniteSpringTestSuite.java       |    15 +-
 modules/web-console/DEVNOTES.txt                |    25 +-
 modules/web-console/backend/.babelrc            |     9 -
 modules/web-console/backend/.eslintrc           |     4 +-
 modules/web-console/backend/.gitignore          |     2 -
 modules/web-console/backend/app/agent.js        |    66 +-
 modules/web-console/backend/app/app.js          |     2 +
 modules/web-console/backend/app/browser.js      |    41 +-
 modules/web-console/backend/app/index.js        |   116 -
 modules/web-console/backend/app/mongo.js        |     7 +-
 modules/web-console/backend/app/mongoose.js     |    29 +
 modules/web-console/backend/app/settings.js     |    10 +-
 .../backend/errors/AuthFailedException.js       |     2 +-
 .../backend/errors/DuplicateKeyException.js     |     2 +-
 .../backend/errors/IllegalAccessError.js        |     4 +-
 .../backend/errors/IllegalArgumentException.js  |     2 +-
 .../backend/errors/MissingResourceException.js  |     2 +-
 modules/web-console/backend/errors/index.js     |    14 +-
 modules/web-console/backend/index.js            |    89 +-
 modules/web-console/backend/injector.js         |     2 +-
 modules/web-console/backend/package.json        |    23 +-
 modules/web-console/backend/routes/demo.js      |     8 +-
 modules/web-console/backend/routes/public.js    |    69 +-
 modules/web-console/backend/services/auth.js    |    79 +-
 modules/web-console/backend/services/domains.js |     2 +
 modules/web-console/backend/services/mails.js   |    16 +-
 .../web-console/backend/services/sessions.js    |     4 +-
 modules/web-console/backend/test/app/db.js      |    66 +
 .../web-console/backend/test/app/httpAgent.js   |    50 +
 .../web-console/backend/test/app/mockgoose.js   |    30 +
 .../web-console/backend/test/data/accounts.json |     5 +-
 .../web-console/backend/test/data/caches.json   |    30 +-
 .../web-console/backend/test/data/clusters.json |    10 +-
 .../web-console/backend/test/data/domains.json  |    10 +
 .../web-console/backend/test/data/igfss.json    |     4 +-
 .../web-console/backend/test/data/spaces.json   |    14 +
 modules/web-console/backend/test/index.js       |    35 +
 modules/web-console/backend/test/injector.js    |    43 +-
 .../web-console/backend/test/routes/clusters.js |    83 +
 .../web-console/backend/test/routes/public.js   |    68 +
 .../backend/test/unit/AuthService.test.js       |   107 +
 .../backend/test/unit/CacheService.test.js      |    20 +-
 .../backend/test/unit/ClusterService.test.js    |    19 +-
 .../backend/test/unit/DomainService.test.js     |    19 +-
 .../backend/test/unit/IgfsService.test.js       |    19 +-
 modules/web-console/frontend/app/app.config.js  |     2 +-
 modules/web-console/frontend/app/app.js         |    27 +-
 .../frontend/app/data/jdbc-types.json           |    44 +
 .../frontend/app/data/sql-keywords.json         |    41 +
 .../frontend/app/decorator/tooltip.js           |    38 +-
 .../directives/retain-selection.directive.js    |    67 +
 .../ui-ace-pom/ui-ace-pom.controller.js         |     4 +-
 .../frontend/app/helpers/jade/form.jade         |     1 +
 .../helpers/jade/form/form-field-datalist.jade  |     8 +-
 .../helpers/jade/form/form-field-dropdown.jade  |     8 +-
 .../app/helpers/jade/form/form-field-label.jade |     4 +-
 .../helpers/jade/form/form-field-number.jade    |     8 +-
 .../helpers/jade/form/form-field-password.jade  |    47 +
 .../app/helpers/jade/form/form-field-text.jade  |    10 +-
 .../frontend/app/helpers/jade/mixins.jade       |   101 +-
 .../modules/configuration/Version.service.js    |    25 +
 .../configuration/configuration.module.js       |     2 +
 .../configuration/generator/Pom.service.js      |    30 +-
 .../form/validator/java-identifier.directive.js |     4 +-
 .../form/validator/java-keywords.directive.js   |     6 +-
 .../validator/java-package-name.directive.js    |     4 +-
 .../java-package-specified.directive.js         |     7 +-
 .../modules/form/validator/uuid.directive.js    |    12 +-
 .../frontend/app/modules/sql/Notebook.data.js   |    16 +-
 .../states/configuration/caches/memory.jade     |     5 +-
 .../states/configuration/caches/query.jade      |    12 +-
 .../configuration/clusters/cache-key-cfg.jade   |     2 +-
 .../configuration/clusters/communication.jade   |     2 +-
 .../states/configuration/clusters/odbc.jade     |    47 +
 .../states/configuration/domains/general.jade   |     4 +-
 .../states/configuration/domains/query.jade     |    16 +-
 .../configuration/summary/summary.controller.js |    24 +-
 .../app/modules/version/Version.provider.js     |    32 -
 .../app/services/ErrorPopover.service.js        |     3 +
 .../frontend/app/services/JavaTypes.service.js  |   163 +-
 .../app/services/LegacyUtils.service.js         |    44 -
 .../frontend/app/services/SqlTypes.service.js   |    67 +
 .../frontend/controllers/admin-controller.js    |     7 +-
 .../frontend/controllers/caches-controller.js   |    14 +
 .../frontend/controllers/domains-controller.js  |    86 +-
 .../frontend/controllers/profile-controller.js  |     5 +-
 .../frontend/generator/generator-common.js      |    19 +-
 .../frontend/generator/generator-java.js        |    89 +-
 .../frontend/generator/generator-properties.js  |     2 +-
 .../frontend/generator/generator-xml.js         |    17 +-
 .../frontend/public/stylesheets/form-field.scss |   108 +
 .../frontend/public/stylesheets/style.scss      |     1 +
 .../frontend/test/unit/JavaTypes.test.js        |    82 +-
 .../frontend/test/unit/SqlTypes.test.js         |    68 +
 .../frontend/views/configuration/clusters.jade  |     1 +
 .../views/configuration/domains-import.jade     |   116 +-
 .../IgniteWebSessionSelfTestSuite.java          |    68 +-
 .../WebSessionReplicatedSelfTest.java           |    28 +
 .../WebSessionReplicatedV1SelfTest.java         |    28 +
 .../internal/websession/WebSessionSelfTest.java |     2 +
 .../WebSessionTransactionalSelfTest.java        |    48 +
 .../WebSessionTransactionalV1SelfTest.java      |    28 +
 .../websession/WebSessionV1SelfTest.java        |    28 +
 .../yardstick/cache/IgniteIoTestBenchmark.java  |    73 +
 .../io/IgniteIoTestAbstractBenchmark.java       |    61 +
 .../io/IgniteIoTestSendAllBenchmark.java        |    32 +
 .../io/IgniteIoTestSendRandomBenchmark.java     |    35 +
 parent/pom.xml                                  |     2 +-
 pom.xml                                         |     7 +
 772 files changed, 91698 insertions(+), 80717 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/9bf435c6/modules/core/src/main/java/org/apache/ignite/IgniteSystemProperties.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9bf435c6/modules/core/src/main/java/org/apache/ignite/internal/util/IgniteUtils.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9bf435c6/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
index 2a4a2bf,acdba5e..448b3c8
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioServer.java
@@@ -45,9 -45,7 +45,10 @@@ import java.util.Map
  import java.util.Map.Entry;
  import java.util.Set;
  import java.util.concurrent.ConcurrentLinkedQueue;
 +import java.util.concurrent.ThreadLocalRandom;
 +import java.util.concurrent.atomic.AtomicInteger;
 +import java.util.concurrent.atomic.AtomicLong;
+ import java.util.concurrent.locks.LockSupport;
  import org.apache.ignite.IgniteCheckedException;
  import org.apache.ignite.IgniteException;
  import org.apache.ignite.IgniteLogger;
@@@ -92,8 -89,8 +93,11 @@@ import static org.apache.ignite.interna
   */
  public class GridNioServer<T> {
      /** */
 +    public static final String IGNITE_IO_BALANCE_RANDOM_BALANCE = "IGNITE_IO_BALANCE_RANDOM_BALANCER";
 +
++    /** */
+     private static final boolean DISABLE_PARK = IgniteSystemProperties.getBoolean("DISABLE_PARK", false);
+ 
      /** Default session write timeout. */
      public static final int DFLT_SES_WRITE_TIMEOUT = 5000;
  
@@@ -437,7 -414,7 +456,9 @@@
  
          NioOperationFuture<Boolean> fut = new NioOperationFuture<>(impl, NioOperation.CLOSE);
  
 -        clientWorkers.get(impl.selectorIndex()).offer(fut, impl.selectorIndex());
 +        impl.offerStateChange(fut);
++        // TODO
++        // clientWorkers.get(impl.selectorIndex()).offer(fut, impl.selectorIndex());
  
          return fut;
      }
@@@ -634,11 -615,8 +684,11 @@@
       *
       */
      public void dumpStats() {
 +        U.warn(log, "NIO server statistics [readerSesBalanceCnt=" + readerMoveCnt.get() +
 +            ", writerSesBalanceCnt=" + writerMoveCnt.get() + ']');
 +
          for (int i = 0; i < clientWorkers.size(); i++)
-             clientWorkers.get(i).offer(new NioOperationFuture<Void>(null, NioOperation.DUMP_STATS));
+             clientWorkers.get(i).offer(new NioOperationFuture<Void>(null, NioOperation.DUMP_STATS), i);
      }
  
      /**
@@@ -1354,9 -1428,9 +1502,9 @@@
      /**
       * Thread performing only read operations from the channel.
       */
 -    private abstract class AbstractNioClientWorker extends GridWorker {
 +    private abstract class AbstractNioClientWorker extends GridWorker implements GridNioWorker {
          /** Queue of change requests on this selector. */
-         private final ConcurrentLinkedQueue<NioOperationFuture> changeReqs = new ConcurrentLinkedQueue<>();
+         private final ConcurrentLinkedQueue<SessionChangeRequest> changeReqs = new ConcurrentLinkedQueue<>();
  
          /** Selector to select read events. */
          private Selector selector;
@@@ -1367,22 -1441,21 +1515,37 @@@
          /** Worker index. */
          private final int idx;
  
 +        /** */
 +        private long bytesRcvd;
 +
 +        /** */
 +        private long bytesSent;
 +
 +        /** */
 +        private volatile long bytesRcvd0;
 +
 +        /** */
 +        private volatile long bytesSent0;
 +
 +        /** Sessions assigned to this worker. */
 +        private final GridConcurrentHashSet<GridSelectorNioSessionImpl> workerSessions =
 +            new GridConcurrentHashSet<>();
 +
+         /** Writer worker flag. */
+         final boolean writer;
+ 
+         /** {@code True} if calls 'selector.select'. */
+         private volatile boolean select;
+ 
+         /** {@code True} if calls 'LockSupport.park'. */
+         private volatile boolean park;
+ 
+         /** Number of sessions which require writes. */
+         protected int writeSesCnt;
+ 
+         /** */
+         protected int pendingAcks;
+ 
          /**
           * @param idx Index of this worker in server's array.
           * @param gridName Grid name.
@@@ -1475,41 -1550,21 +1640,49 @@@
              }
          }
  
-         /** {@inheritDoc} */
-         @Override public void offer(GridNioFuture req) {
-             changeReqs.offer((NioOperationFuture)req);
+         /**
+          * Adds socket channel to the registration queue and wakes up reading thread.
+          *
+          * @param req Change request.
+          * @param workerIdx Worker thread index.
+          */
+         private void offer(SessionChangeRequest req, int workerIdx) {
+             changeReqs.offer(req);
  
-             selector.wakeup();
+             if (select)
+                 selector.wakeup();
+             else if (park)
+                 LockSupport.unpark(clientThreads[workerIdx]);
          }
  
 +        /** {@inheritDoc} */
 +        @Override public void offer(Collection<GridNioFuture> reqs) {
 +            for (GridNioFuture req : reqs)
 +                changeReqs.offer((NioOperationFuture)req);
 +
 +            selector.wakeup();
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public List<GridNioFuture> clearSessionRequests(GridNioSession ses) {
 +            List<GridNioFuture> sesReqs = null;
 +
 +            for (GridNioServer.NioOperationFuture changeReq : changeReqs) {
 +                if (changeReq.session() == ses && !(changeReq instanceof SessionMoveFuture)) {
 +                    boolean rmv = changeReqs.remove(changeReq);
 +
 +                    assert rmv : changeReq;
 +
 +                    if (sesReqs == null)
 +                        sesReqs = new ArrayList<>();
 +
 +                    sesReqs.add(changeReq);
 +                }
 +            }
 +
 +            return sesReqs;
 +        }
 +
          /**
           * Processes read and write events and registration requests.
           *
@@@ -1531,66 -1586,10 +1704,60 @@@
                                  break;
                              }
  
 +                            case MOVE: {
 +                                SessionMoveFuture f = (SessionMoveFuture)req;
 +
 +                                GridSelectorNioSessionImpl ses = f.session();
 +
 +                                if (idx == f.toIdx) {
 +                                    assert f.movedSocketChannel() != null : f;
 +
 +                                    boolean add = workerSessions.add(ses);
 +
 +                                    assert add;
 +
 +                                    ses.finishMoveSession(this);
 +
 +                                    if (idx % 2 == 0)
 +                                        readerMoveCnt.incrementAndGet();
 +                                    else
 +                                        writerMoveCnt.incrementAndGet();
 +
 +                                    SelectionKey key = f.movedSocketChannel().register(selector,
 +                                        SelectionKey.OP_READ | SelectionKey.OP_WRITE,
 +                                        ses);
 +
 +                                    ses.key(key);
 +
 +                                    f.onDone(true);
 +                                }
 +                                else {
 +                                    assert f.movedSocketChannel() == null : f;
 +
 +                                    if (workerSessions.remove(ses)) {
 +                                        ses.startMoveSession(this);
 +
 +                                        SelectionKey key = ses.key();
 +
 +                                        assert key.channel() != null : key;
 +
 +                                        f.movedSocketChannel((SocketChannel)key.channel());
 +
 +                                        key.cancel();
 +
 +                                        clientWorkers.get(f.toIndex()).offer(f);
 +                                    }
 +                                    else
 +                                        f.onDone(false);
 +                                }
 +
 +                                break;
 +                            }
 +
                              case REQUIRE_WRITE: {
-                                 //Just register write key.
-                                 SelectionKey key = req.session().key();
- 
-                                 if (key.isValid()) {
-                                     key.interestOps(key.interestOps() | SelectionKey.OP_WRITE);
+                                 SessionWriteRequest req = (SessionWriteRequest)req0;
  
-                                     // Update timestamp to protected against false write timeout.
-                                     ((GridNioSessionImpl)key.attachment()).bytesSent(0);
-                                 }
+                                 registerWrite((GridSelectorNioSessionImpl)req.session());
  
                                  break;
                              }
@@@ -1767,6 -1744,96 +1912,102 @@@
          }
  
          /**
+          * @param ses Session.
+          */
+         final void registerWrite(GridSelectorNioSessionImpl ses) {
+             SelectionKey key = ses.key();
+ 
+             if (key.isValid()) {
+                 if ((key.interestOps() & SelectionKey.OP_WRITE) == 0) {
+                     key.interestOps(key.interestOps() | SelectionKey.OP_WRITE);
+ 
+                     writeSesCnt++;
+                 }
+ 
+                 // Update timestamp to protected against false write timeout.
+                 ses.bytesSent(0);
+             }
+         }
+ 
+         /**
+          *
+          */
+         private void dumpStats() {
+             StringBuilder sb = new StringBuilder();
+ 
+             Set<SelectionKey> keys = selector.keys();
+ 
+             sb.append(U.nl())
+                 .append(">> Selector info [idx=").append(idx)
+                 .append(", keysCnt=").append(keys.size())
++                .append(", bytesRcvd=").append(bytesRcvd)
++                .append(", bytesRcvd0=").append(bytesRcvd0)
++                .append(", bytesSent=").append(bytesSent)
++                .append(", bytesSent0=").append(bytesSent0)
+                 .append("]").append(U.nl());
+ 
+             for (SelectionKey key : keys) {
+                 GridSelectorNioSessionImpl ses = (GridSelectorNioSessionImpl)key.attachment();
+ 
+                 MessageWriter writer = ses.meta(MSG_WRITER.ordinal());
+                 MessageReader reader = ses.meta(GridDirectParser.READER_META_KEY);
+ 
+                 sb.append("    Connection info [")
+                     .append("in=").append(ses.accepted())
+                     .append(", rmtAddr=").append(ses.remoteAddress())
+                     .append(", locAddr=").append(ses.localAddress());
+ 
+                 GridNioRecoveryDescriptor outDesc = ses.outRecoveryDescriptor();
+ 
+                 if (outDesc != null) {
+                     sb.append(", msgsSent=").append(outDesc.sent())
+                         .append(", msgsAckedByRmt=").append(outDesc.acked())
+                         .append(", descIdHash=").append(System.identityHashCode(outDesc));
+                 }
+                 else
+                     sb.append(", outRecoveryDesc=null");
+ 
+                 GridNioRecoveryDescriptor inDesc = ses.inRecoveryDescriptor();
+ 
+                 if (inDesc != null) {
+                     sb.append(", msgsRcvd=").append(inDesc.received())
+                         .append(", lastAcked=").append(inDesc.lastAcknowledged())
+                         .append(", descIdHash=").append(System.identityHashCode(inDesc));
+                 }
+                 else
+                     sb.append(", inRecoveryDesc=null");
+ 
+                 sb.append(", bytesRcvd=").append(ses.bytesReceived())
++                    .append(", bytesRcvd0=").append(ses.bytesReceived0())
+                     .append(", bytesSent=").append(ses.bytesSent())
++                    .append(", bytesSent0=").append(ses.bytesSent0())
+                     .append(", opQueueSize=").append(ses.writeQueueSize())
+                     .append(", msgWriter=").append(writer != null ? writer.toString() : "null")
+                     .append(", msgReader=").append(reader != null ? reader.toString() : "null");
+ 
+                 int cnt = 0;
+ 
+                 for (SessionWriteRequest req : ses.writeQueue()) {
+                     if (cnt == 0)
+                         sb.append(",\n opQueue=[").append(req);
+                     else
+                         sb.append(',').append(req);
+ 
+                     if (++cnt == 5) {
+                         sb.append(']');
+ 
+                         break;
+                     }
+                 }
+ 
+ 
+                 sb.append("]").append(U.nl());
+             }
+ 
+             U.warn(log, sb.toString());
+         }
+ 
+         /**
           * Processes keys selected by a selector.
           *
           * @param keys Selected keys.
@@@ -2988,203 -3147,10 +3409,213 @@@
      /**
       *
       */
 +    private class SizeBasedBalancer implements IgniteRunnable {
 +        /** */
 +        private long lastBalance;
 +
 +        /** */
 +        private final long balancePeriod;
 +
 +        /**
 +         * @param balancePeriod Period.
 +         */
 +        SizeBasedBalancer(long balancePeriod) {
 +            this.balancePeriod = balancePeriod;
 +        }
 +
 +        /** {@inheritDoc} */
 +        @Override public void run() {
 +            long now = U.currentTimeMillis();
 +
 +            if (lastBalance + balancePeriod < now) {
 +                lastBalance = now;
 +
 +                long maxRcvd0 = -1, minRcvd0 = -1, maxSent0 = -1, minSent0 = -1;
 +                int maxRcvdIdx = -1, minRcvdIdx = -1, maxSentIdx = -1, minSentIdx = -1;
 +
 +                for (int i = 0; i < clientWorkers.size(); i++) {
 +                    GridNioServer.AbstractNioClientWorker worker = clientWorkers.get(i);
 +
 +                    int sesCnt = worker.workerSessions.size();
 +
 +                    if (i % 2 == 0) {
 +                        // Reader.
 +                        long bytesRcvd0 = worker.bytesRcvd0;
 +
 +                        if ((maxRcvd0 == -1 || bytesRcvd0 > maxRcvd0) && bytesRcvd0 > 0 && sesCnt > 1) {
 +                            maxRcvd0 = bytesRcvd0;
 +                            maxRcvdIdx = i;
 +                        }
 +
 +                        if (minRcvd0 == -1 || bytesRcvd0 < minRcvd0) {
 +                            minRcvd0 = bytesRcvd0;
 +                            minRcvdIdx = i;
 +                        }
 +                    }
 +                    else {
 +                        // Writer.
 +                        long bytesSent0 = worker.bytesSent0;
 +
 +                        if ((maxSent0 == -1 || bytesSent0 > maxSent0) && bytesSent0 > 0 && sesCnt > 1) {
 +                            maxSent0 = bytesSent0;
 +                            maxSentIdx = i;
 +                        }
 +
 +                        if (minSent0 == -1 || bytesSent0 < minSent0) {
 +                            minSent0 = bytesSent0;
 +                            minSentIdx = i;
 +                        }
 +                    }
 +                }
 +
 +                if (log.isDebugEnabled())
 +                    log.debug("Balancing data [minSent0=" + minSent0 + ", minSentIdx=" + minSentIdx +
 +                        ", maxSent0=" + maxSent0 + ", maxSentIdx=" + maxSentIdx +
 +                        ", minRcvd0=" + minRcvd0 + ", minRcvdIdx=" + minRcvdIdx +
 +                        ", maxRcvd0=" + maxRcvd0 + ", maxRcvdIdx=" + maxRcvdIdx + ']');
 +
 +                if (maxSent0 != -1 && minSent0 != -1) {
 +                    GridSelectorNioSessionImpl ses = null;
 +
 +                    long sentDiff = maxSent0 - minSent0;
 +                    long delta = sentDiff;
 +                    double threshold = sentDiff * 0.9;
 +
 +                    GridConcurrentHashSet<GridSelectorNioSessionImpl> sessions =
 +                        clientWorkers.get(maxSentIdx).workerSessions;
 +
 +                    for (GridSelectorNioSessionImpl ses0 : sessions) {
 +                        long bytesSent0 = ses0.bytesSent0();
 +
 +                        if (bytesSent0 < threshold &&
 +                            (ses == null || delta > U.safeAbs(bytesSent0 - sentDiff / 2))) {
 +                            ses = ses0;
 +                            delta = U.safeAbs(bytesSent0 - sentDiff / 2);
 +                        }
 +                    }
 +
 +                    if (ses != null) {
 +                        if (log.isDebugEnabled())
 +                            log.debug("Will move session to less loaded writer [ses=" + ses +
 +                                ", from=" + maxSentIdx + ", to=" + minSentIdx + ']');
 +
 +                        moveSession(ses, maxSentIdx, minSentIdx);
 +                    }
 +                    else {
 +                        if (log.isDebugEnabled())
 +                            log.debug("Unable to find session to move for writers.");
 +                    }
 +                }
 +
 +                if (maxRcvd0 != -1 && minRcvd0 != -1) {
 +                    GridSelectorNioSessionImpl ses = null;
 +
 +                    long rcvdDiff = maxRcvd0 - minRcvd0;
 +                    long delta = rcvdDiff;
 +                    double threshold = rcvdDiff * 0.9;
 +
 +                    GridConcurrentHashSet<GridSelectorNioSessionImpl> sessions =
 +                        clientWorkers.get(maxRcvdIdx).workerSessions;
 +
 +                    for (GridSelectorNioSessionImpl ses0 : sessions) {
 +                        long bytesRcvd0 = ses0.bytesReceived0();
 +
 +                        if (bytesRcvd0 < threshold &&
 +                            (ses == null || delta > U.safeAbs(bytesRcvd0 - rcvdDiff / 2))) {
 +                            ses = ses0;
 +                            delta = U.safeAbs(bytesRcvd0 - rcvdDiff / 2);
 +                        }
 +                    }
 +
 +                    if (ses != null) {
 +                        if (log.isDebugEnabled())
 +                            log.debug("Will move session to less loaded reader [ses=" + ses +
 +                                ", from=" + maxRcvdIdx + ", to=" + minRcvdIdx + ']');
 +
 +                        moveSession(ses, maxRcvdIdx, minRcvdIdx);
 +                    }
 +                    else {
 +                        if (log.isDebugEnabled())
 +                            log.debug("Unable to find session to move for readers.");
 +                    }
 +                }
 +
 +                for (int i = 0; i < clientWorkers.size(); i++) {
 +                    GridNioServer.AbstractNioClientWorker worker = clientWorkers.get(i);
 +
 +                    worker.reset0();
 +                }
 +            }
 +        }
 +    }
 +
 +    /**
 +     * For tests only.
 +     */
 +    @SuppressWarnings("unchecked")
 +    private class RandomBalancer implements IgniteRunnable {
 +        /** {@inheritDoc} */
 +        @Override public void run() {
 +            ThreadLocalRandom rnd = ThreadLocalRandom.current();
 +
 +            int w1 = rnd.nextInt(clientWorkers.size());
 +
 +            if (clientWorkers.get(w1).workerSessions.isEmpty())
 +                return;
 +
 +            int w2 = rnd.nextInt(clientWorkers.size());
 +
 +            while (w2 == w1)
 +                w2 = rnd.nextInt(clientWorkers.size());
 +
 +            GridNioSession ses = randomSession(clientWorkers.get(w1));
 +
 +            if (ses != null) {
 +                log.info("Move session [from=" + w1 +
 +                    ", to=" + w2 +
 +                    ", ses=" + ses + ']');
 +
 +                moveSession(ses, w1, w2);
 +            }
 +        }
 +
 +        /**
 +         * @param worker Worker.
 +         * @return NIO session.
 +         */
 +        private GridNioSession randomSession(GridNioServer.AbstractNioClientWorker worker) {
 +            Collection<GridNioSession> sessions = worker.workerSessions;
 +
 +            int size = sessions.size();
 +
 +            if (size == 0)
 +                return null;
 +
 +            int idx = ThreadLocalRandom.current().nextInt(size);
 +
 +            Iterator<GridNioSession> it = sessions.iterator();
 +
 +            int cnt = 0;
 +
 +            while (it.hasNext()) {
 +                GridNioSession ses = it.next();
 +
 +                if (cnt == idx)
 +                    return ses;
 +            }
 +
 +            return null;
 +        }
 +
 +    }
++
++    /**
++     *
++     */
+     interface SessionChangeRequest {
+         /**
+          * @return Requested change operation.
+          */
+         NioOperation operation();
+     }
  }

http://git-wip-us.apache.org/repos/asf/ignite/blob/9bf435c6/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridNioSessionImpl.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ignite/blob/9bf435c6/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
----------------------------------------------------------------------
diff --cc modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
index 5d885784a,e578035..ff5d9ae
--- a/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/util/nio/GridSelectorNioSessionImpl.java
@@@ -20,11 -20,9 +20,11 @@@ package org.apache.ignite.internal.util
  import java.net.InetSocketAddress;
  import java.nio.ByteBuffer;
  import java.nio.channels.SelectionKey;
 +import java.util.ArrayList;
  import java.util.Collection;
 +import java.util.List;
  import java.util.concurrent.Semaphore;
- import java.util.concurrent.atomic.AtomicInteger;
+ import java.util.concurrent.atomic.AtomicBoolean;
  import org.apache.ignite.IgniteLogger;
  import org.apache.ignite.internal.util.tostring.GridToStringExclude;
  import org.apache.ignite.internal.util.typedef.internal.LT;
@@@ -45,12 -43,9 +45,9 @@@ class GridSelectorNioSessionImpl extend
      @GridToStringExclude
      private SelectionKey key;
  
 -    /** Worker index for server */
 -    private final int selectorIdx;
 +    /** Current worker thread. */
 +    private GridNioWorker worker;
  
-     /** Size counter. */
-     private final AtomicInteger queueSize = new AtomicInteger();
- 
      /** Semaphore. */
      @GridToStringExclude
      private final Semaphore sem;
@@@ -71,8 -66,11 +68,14 @@@
      private final IgniteLogger log;
  
      /** */
 +    private List<GridNioFuture> pendingStateChanges;
 +
++    /** */
+     final AtomicBoolean procWrite = new AtomicBoolean();
+ 
+     /** */
+     private Object sysMsg;
+ 
      /**
       * Creates session instance.
       *


Mime
View raw message