CLIAMS:1. A file storage system (108) to receive a file from a client device (102-N), the file storage system (108) comprising:
a processor (132);
a determination module (142) coupled to the processor (132) to determine a primary set of virtual segments from amongst a plurality of virtual segments of the file to be received from the client device (102-N), wherein each of the plurality of virtual segments is a logical portion of the file; and
a receiving module (144) coupled to the processor (132) to:
establish a secure connection and a plurality of file transfer protocol connections corresponding to the secure connection, with the client device (102-N), to receive the primary set of virtual segments from the client device (102-N); and
receive, in parallel, the primary set of virtual segments from the client device (102-N) for storage, through the plurality of file transfer protocol connections.
2. The file storage system (108) as claimed in claim 1, wherein the secure connection is a Secure Shell (SSH) connection.
3. The file storage system (108) as claimed in claim 1, wherein a file transfer protocol connection is a Secure Shell File Transfer Protocol (SFTP) connection.
4. The file storage system (108) as claimed in claim 1, wherein each of the plurality of virtual segments is represented by a start byte and an end byte.
5. The file storage system (108) as claimed in claim 1, wherein each of the virtual segments is received through a different file transfer protocol connection.
6. The file storage system (108) as claimed in claim 1 further comprising an acknowledgement module (146) to invoke an Application programming interface (API) to logically merge the virtual segments of the primary set into a single file.
7. A client device (102-N) to transfer a file to a distributed file system (104), the client device (102-N) comprising:
a processor (110);
a segmentation module (120) coupled to the processor (110) to segment the file into a plurality of virtual segments, to be stored onto a plurality of data nodes of the distributed file system (104), wherein at least one virtual segment from amongst the plurality of virtual segments is to be stored onto a data node from amongst the plurality of data nodes;
a communication module (122) coupled to the processor (110) to receive a plurality of secure connection requests and at least one file transfer protocol connection request corresponding to each of the plurality of secure connection requests, from the plurality of data nodes, to transfer the plurality of virtual segments to the plurality of data nodes; and
a transferring module (124) coupled to the processor (110) to transfer the plurality of virtual segments to the plurality of data nodes of the distributed file system (104) through the plurality of secure connections, in parallel, wherein a virtual segment from amongst the plurality of virtual segments is transferred to a data node from amongst the plurality of data nodes through a respective file transfer protocol connection.
8. The client device (102-N) as claimed in claim 7, wherein the distributed file system (104) is a Hadoop Distributed File System (HDFS).
9. The client device (102-N) as claimed in claim 7, wherein a secure connection request is a Secure Shell (SSH) connection request.
10. The client device (102-N) as claimed in claim 7, wherein one secure connection request is obtained from each of the plurality of data nodes.
11. The client device (102-N) as claimed in claim 7, wherein a file transfer protocol connection request is a Secure Shell File Transfer Protocol (SFTP) connection request.
12. The client device (102-N) as claimed in claim 7, wherein the segmentation module (120) further determines a total number of virtual segments based on file size and size of each of the plurality of virtual segments.
13. The client device (102-N) as claimed in claim 12, wherein the size of each of the plurality of virtual segments is equal to a block size in the distributed file system (104).
14. The client device (102-N) as claimed in claim 12, wherein the size of each of the plurality of virtual segments is a multiple of a block size in the distributed file system (104).
15. A method for transferring a file to a distributed file system (104), the method comprising:
segmenting the file, to be stored onto a plurality of data nodes of the distributed file system (104), into a plurality of virtual segments, wherein at least one virtual segment from amongst the plurality of virtual segments is to be stored onto a data node from amongst the plurality of data nodes;
receiving a plurality of secure connection requests from the plurality of data nodes, for transferring the plurality of virtual segments to the plurality of data nodes;
obtaining at least one file transfer protocol connection request corresponding to each of the plurality of secure connection requests from the plurality of data nodes; and
transferring the plurality of virtual segments to the plurality of data nodes of the distributed file system (104) through the plurality of secure connections, in parallel, wherein a virtual segment from amongst the plurality of virtual segments is transferred to a data node from amongst the plurality of data nodes through a respective file transfer protocol connection, and wherein the virtual segment from amongst the plurality of virtual segments is stored on the data node from amongst the plurality of data nodes.
16. The method as claimed in claim 15, wherein the distributed file system (104) is a Hadoop Distributed File System (HDFS).
17. The method as claimed in claim 15, wherein each of the plurality of virtual segments is represented by a start byte and an end byte.
18. The method as claimed in claim 15, wherein one secure connection request is obtained from each of the plurality of data nodes.
19. A method for receiving a file from a client device (102-N), the method comprising:
determining a primary set of virtual segments from amongst a plurality of virtual segments of the file to be received from the client device (102-N), wherein each of the plurality of virtual segments is a logical portion of the file;
establishing a secure connection and a plurality of file transfer protocol connections corresponding to the secure connection, with the client device (102-N), for receiving the primary set of virtual segments from the client device (102-N); and
receiving, in parallel, the primary set of virtual segments from the client device (102-N) for storage, through the plurality of file transfer protocol connections.
20. The method as claimed in claim 19, wherein each of the virtual segments is received through a different file transfer protocol connection.
21. The method as claimed in claim 19, wherein the secure connection is a Secure Shell (SSH) connection.
22. The method as claimed in claim 19, wherein a file transfer protocol connection is a Secure Shell File Transfer Protocol (SFTP) connection.
23. The method as claimed in claim 19 further comprises invoking an Application programming interface (API) to logical merge the virtual segments of the primary set into a single file.
24. A non-transitory computer-readable medium having embodied thereon a computer program for executing a method comprising:
segmenting the file, to be stored onto a plurality of data nodes of the distributed file system (104), into a plurality of virtual segments, wherein at least one virtual segment from amongst the plurality of virtual segments is to be stored onto a data node from amongst the plurality of data nodes;
receiving a plurality of secure connection requests from the plurality of data nodes, for transferring the plurality of virtual segments to the plurality of data nodes;
obtaining at least one file transfer protocol connection request corresponding to each of the plurality of secure connection requests from the plurality of data nodes; and
transferring the plurality of virtual segments to the plurality of data nodes of the distributed file system (104) through the plurality of secure connections, in parallel, wherein a virtual segment from amongst the plurality of virtual segments is transferred to a data node from amongst the plurality of data nodes through a respective file transfer protocol connection, and wherein the virtual segment from amongst the plurality of virtual segments is stored on the data node from amongst the plurality of data nodes.
25. A non-transitory computer-readable medium having embodied thereon a computer program for executing a method comprising:
determining a primary set of virtual segments from amongst a plurality of virtual segments of a file to be received from a client device (102-N), wherein each of the plurality of virtual segments is a logical portion of the file;
establishing a secure connection and a plurality of file transfer protocol connections corresponding to the secure connection, with the client device (102-N), for receiving the primary set of virtual segments from the client device (102-N); and
receiving, in parallel, the primary set of virtual segments from the client device (102-N) for storage, through the plurality of file transfer protocol connections. ,TagSPECI:As Attached