THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
scp\rsync
commands can be used. The test environment showed us results – 270 MB/s
over the current 40 MB/s
single-threaded rebalance speed;FileChannel.transfertTo()
call is routed to the sendfile()
system call;Apache Ignite needs to support peer-2-peer cache partition file transfer using zero-copy algorithm based on extension of communication SPI.
The handshake message patched to support new type of connection.
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
/** */
private static final byte PIPE_DATA_TRANSFER_MASK = 0x01;
/**
* @return If socket will be used to transfer raw files.
*/
public boolean usePipeTransfer() {
return (flags & PIPE_DATA_TRANSFER_MASK) != 0;
}
/**
* @param usePipeTransfer {@code True} if socket should be used to transfer raw files.
*/
public final void usePipeTransfer(boolean usePipeTransfer) {
flags = usePipeTransfer ?
(byte)(flags | PIPE_DATA_TRANSFER_MASK) : (byte)(flags & ~PIPE_DATA_TRANSFER_MASK);
} |
Communication SPI support new connection type to communicate with peers via sockets.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
/**
* @return {@code True} if new type of direct connections supported.
*/
public default boolean pipeConnectionSupported() {
return false;
}
/**
* @param src Source cluster node to initiate connection with.
* @return Channel to listen.
* @throws IgniteSpiException If fails.
*/
public default ReadableByteChannel getRemotePipe(ClusterNode src) throws IgniteSpiException {
throw new UnsupportedOperationException();
}
/**
* @param dest Destination cluster node to communicate with.
* @param out Channel to write data.
* @throws IgniteSpiException If fails.
*/
public default void sendOnPipe(ClusterNode dest, WritableByteChannel out) throws IgniteSpiException {
throw new UnsupportedOperationException();
} |