[ https://issues.apache.org/jira/browse/IGNITE-10619?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16843788#comment-16843788 ]
Alexey Goncharuk commented on IGNITE-10619: ------------------------------------------- [~Mmuzaf], folks, The current API looks too complex to me. Are there any reasons to introduce our own Channel, ChannelId, IgniteSocketChannel, etc... ? Ignite is not a framework to transfer files, so internal API should be kept as simple as possible. I would suggest the following change to the GridIOManager: {code} public IgniteFuture<java.nio.channels.Channel> openChannel(ClusterNode rmtNode, Message channelInitMessage); public void addChannelListener(ChannelListener lsnr); interface ChannelListener { onChannelOpened(ClusterNode rmtNode, Message initMessage, Channel channel); } {code} The IgniteFileTransmitProcessor API also feels too redundant. The only thing that needs to be provided on the supplier side is an input stream/channel. I see no need in {{TransmitSessionFactory}} and sibling classes. [~DmitriyGovorukhin], [~ibessonov], can you take a look at the change as well? > Add support files transmission between nodes over connection via > CommunicationSpi > --------------------------------------------------------------------------------- > > Key: IGNITE-10619 > URL: https://issues.apache.org/jira/browse/IGNITE-10619 > Project: Ignite > Issue Type: Sub-task > Components: persistence > Reporter: Maxim Muzafarov > Assignee: Maxim Muzafarov > Priority: Major > Labels: iep-28 > > Partition preloader must support cache partition file relocation from one > cluster node to another (the zero copy algorithm [1] assume to be used by > default). To achieve this, the file transfer machinery must be implemented at > Apache Ignite over Communication SPI. > _CommunicationSpi_ > Ignite's Comminication SPI must support to: > * establishing channel connections to the remote node to an arbitrary topic > (GridTopic) with predefined processing policy; > * listening incoming channel creation events and registering connection > handlers on the particular node; > * an arbitrary set of channel parameters on connection handshake; > _FileTransmitProcessor_ > The file transmission manager must support to: > * using different approaches of incoming data handling – buffered and direct > (zero-copy approach of FileChannel#transferTo); > * transferring data by chunks of predefined size with saving intermediate > results; > * re-establishing connection if an error occurs and continue file > upload\download; > * limiting connection bandwidth (upload and download) at runtime; -- This message was sent by Atlassian JIRA (v7.6.3#76005)