...
Description
The Apache Ignite needs cache rebalacing with transfering to support cache rebalancing as transferring partition files using zero - copy algorithm based algorithm based on an extension of communication SPI and Java NIO API.
Process overview
There are two participants in the process of balancing data:
...
The process of ordering cache groups for rebalancing rebalance remains the same. The
The whole process is described in terms of rebalance single cache group:
- The GridDhtPreloaderAssignments created for cache group (type of Map<ClusterNode, GridDhtPartitionDemandMessage>)
CommunicationSpi
...
To achieve the benefit from zero -file copy file tramsmission approach the we must delegate the file transferring to FileChannel#transferTo(long, long, java.nio.channels.WritableByteChannel) because the fast path of transferTo method is only executed if the destination buffer inherits from an internal JDK class.
- The CommunicationSpi needs to support
...
...
- connections between two nodes
...
- ;
- The WritableByteChannel needs to be accesses on the supplier side;
- The ReadableByteChannel needs to be read on the demander side;
- The CommunicationListener must be extended to respond on new incoming pipe connections;
Partition
...
transmission
The cache partition file transfer over the network must be done using file chunks with validation of received piece of data on the demander side.
...
- layer over the cache partition file
...
- must support direct using of FileChannel#transferTo method over the CommunicationSpi pipe connection;
- The process must support transferring the cache patition file by chunks one by one;
- The connection bandwidth of must have an ability to be limited at runtime;
Checkpoint on demand
Temp-WAL recovery
Risks and Assumptions
A few notes can be mentioned:
...
- system does not support zero
...
...
- , sending a file with FileChannel#transferTo might fail or yield worse performance.
For example, sending a large file doesn't work well
...
- enough on Windows;
- The ssl must be disabled to take an advantage of zero copy file transmission;
Discussion Links
// Links to discussions on the devlist, if applicable.
...