# US 2018/0027048 A1 · File transmission method, apparatus, and distributed cluster file system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2018/0027048 A1
- Document ID: US20180027048A1
- Status: Published application
- Kind: A1
- Application number: 15/105,657
- Filed: 2015-02-13
- Published: 2018-01-25
- Earliest claimed: 2013-12-17
- Assignees: Tencent Technology (Shenzhen) Company Limited
- Applicants: Tencent Technology (Shenzhen) Company Limited
- Inventors: Lei Zhang
- Web page: https://patentgrep.com/patent/US20180027048A1

## CPC

- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- G06F 16/1824: {implemented using Network-attached Storage [NAS] architecture (distributed or networked storage systems G06F3/067; protocols for distributed storage of data in a network H04L67/1097)}
- H04L 12/403: with centralised control, e.g. polling
- H04L 67/1097: for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
- H04L 67/55: Push-based network services
- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A file transmission method includes: obtaining file information of a to-be-transmitted file from a distributed coordination node cluster; determining that at least one slave push node stores the to-be-transmitted file according to the file information of the to-be-transmitted file and heartbeat information of the at least one slave push node; wherein the heartbeat information of the at least one slave push node contains file information stored in the at least one slave push node, and the to-be-transmitted file is retrieved by the at least one slave push node from a file storage node cluster; generating a file transmission path, wherein the file transmission path comprises at least one destination node cluster; sending the file transmission path to the at least one slave push node, so that the at least one slave push node sends the to-be-transmitted file to the at least one destination node cluster through the file transmission path.

## Claims

### Claim 1

A distributed cluster file system, comprising:
a distributed coordination node cluster, comprising a plurality of coordination nodes which share information among them, and to generate file information of a to-be-transmitted file;
a file storage node cluster, comprising a plurality of storage nodes, and to store the to-be-transmitted file;
a push node cluster, comprising a master push node and at least one slave push node, wherein the master push node is to determine that at least one slave push node stores the to-be-transmitted file according to the file information of the to-be-transmitted file and heartbeat information of the at least one slave push node; the heartbeat information of the at least one slave push node contains file information stored in the at least one slave push node, and the to-be-transmitted file is retrieved by the at least one slave push node from the storage node cluster;
wherein the master push node is further to generate a file transmission path, and the file transmission path comprises at least one destination node cluster;
the master push node is further to send the file transmission path to the at least one slave push node, so that the at least one slave push node sends the to-be-transmitted file to the at least one destination node cluster according to the file transmission path; and
each of the at least one destination node cluster comprises a plurality of destination nodes.

### Claim 2 (depends on 1)

The distributed cluster file system of claim 1, wherein the master push node is to perform one or any combination of processes of:
obtaining the generated file transmission path, and when the generated file transmission path comprises a first destination node cluster, deleting the first destination node cluster from the generated file transmission path, and using the file transmission path from which the first destination node cluster has been deleted as a current file transmission path, wherein the first destination node cluster is a destination node cluster from which the master push node has not received its heartbeat information within a preset period of time;
obtaining the generated file transmission path, and when the generated file transmission path comprises a second destination node cluster, deleting the second destination node cluster from the generated file transmission path and using the file transmission path from which the second destination node cluster has been deleted as the current file transmission path, wherein the second destination node cluster is a destination node cluster on which a transmission mission is being executed;
obtaining the current file transmission path according to heartbeat information of a destination node, wherein the file transmission path comprises a third destination node cluster, and the third destination node cluster is a destination node cluster which is in an idle state;
obtaining the current file transmission path according to a data request for the to-be-transmitted file, wherein at least one destination node cluster in the file transmission path comprises a destination node cluster sending the data request.

### Claim 3 (depends on 1)

The distributed cluster file system of claim 1, wherein the heartbeat information of the at least one slave push node further contains status information of the at least one slave push node,
the master push node is to determine a slave push node which is in an idle state from the at least one slave push node according to the status information of the at least one slave push node; and
the master push node is to send the file transmission path to the slave push node which is in the idle state.

### Claim 4 (depends on 1)

The distributed cluster file system of claim 1, wherein the master push node is elected from a plurality of push nodes according to temporary node serial numbers, wherein the temporary node serial numbers are assigned by a distributed coordination system.

### Claim 5 (depends on 1)

The distributed cluster file system of claim 1, wherein the at least one slave push node is to check the file information of the to-be-transmitted file generated by the distributed coordination node cluster, and when determining that the at least one slave push node does not store the to-be-transmitted file according to the file information of the to-be-transmitted file, retrieve the to-be-transmitted file from the file storage node cluster.

### Claim 6 (depends on 1)

The distributed cluster file system of claim 1, further comprising a database,
the master push node is further to obtain file transmission progress information sent by a plurality of destination nodes in the file transmission path, and write the file transmission progress information into the database.

### Claim 7 (depends on 1)

The distributed cluster file system of claim 1, wherein a destination node is to, when receiving a data packet of the to-be-transmitted file, send the received data packet to a next destination node in the file transmission path; or
a destination node is to, when receiving a data packet of the to-be-transmitted file, send the received data packet to any one of other destination nodes which belong to the same destination node cluster as the destination node.

### Claim 8

A file transmission method, comprising:
obtaining, by a master push node, file information of a to-be-transmitted file from a distributed coordination node cluster;
determining, by the master push node, that at least one slave push node stores the to-be-transmitted file according to the file information of the to-be-transmitted file and heartbeat information of the at least one slave push node; wherein the heartbeat information of the at least one slave push node contains file information stored in the at least one slave push node, and the to-be-transmitted file is retrieved by the at least one slave push node from a file storage node cluster;
generating, by the master push node, a file transmission path, wherein the file transmission path comprises at least one destination node cluster;
sending, by the master push node, the file transmission path to the at least one slave push node, so that the at least one slave push node sends the to-be-transmitted file to the at least one destination node cluster through the file transmission path; and
wherein each of the at least one destination node cluster comprises a plurality of destination nodes.

### Claim 9 (depends on 8)

The file transmission method of claim 8, wherein generating, by the master push node, the file transmission path comprises one or any combination of processes of:
obtaining, by the master push node, the generated file transmission path, and when the generated file transmission path comprises a first destination node cluster, deleting the first destination node cluster from the generated file transmission path, and using the file transmission path from which the first destination node cluster has been deleted as a current file transmission path, wherein the first destination node cluster is a destination node cluster from which the master push node has not received its heartbeat information within a preset period of time;
obtaining, by the master push node, the generated file transmission path, and when the generated file transmission path comprises a second destination node cluster, deleting the second destination node cluster from the generated file transmission path, and using the file transmission path from which the second destination node cluster has been deleted as the current file transmission path, wherein the second destination node cluster is a destination node cluster on which a transmission mission is being executed;
obtaining, by the master push node, the current file transmission path according to heartbeat information of a destination node, wherein the file transmission path comprises a third destination node cluster, and the third destination node cluster is a destination node cluster which is in an idle state;
obtaining, by the master push node, the current file transmission path according to a data request for the to-be-transmitted file, wherein at least one destination node cluster in the file transmission path comprises a destination node cluster sending the data request.

### Claim 10 (depends on 8)

The file transmission method of claim 8, wherein the heartbeat information of the at least one slave push node further contains status information of the at least one slave push node, and sending, by the master push node, the file transmission path to the at least one slave push node comprises:
determining, by the master push node, a slave push node which is in an idle state from the at least one slave push node according to the status information of the at least one slave push node; and
sending, by the master push node, the file transmission path to the slave push node which is in the idle state.

### Claim 11 (depends on 8)

The file transmission method of claim 8, wherein the master push node is elected from a plurality of push nodes according to temporary node serial numbers, wherein the temporary node serial numbers are assigned by a distributed coordination system.

### Claim 12 (depends on 8)

The file transmission method of claim 8, wherein the to-be-transmitted file is retrieved by the at least one slave push node from the file storage node cluster when it is determined that the at least one slave push node does not store the to-be-transmitted file.

### Claim 13 (depends on 8)

The file transmission method of claim 8, after the master push node sends the file transmission path to the at least one slave push node, further comprising:
receiving, by the master push node, file transmission progress information sent by a plurality of destination nodes in the file transmission path, and writing the file transmission progress information into a database.

### Claim 14

(canceled)

### Claim 15

A file transmission apparatus, comprising:
a file information obtaining module, to obtain file information of a to-be-transmitted file from a distributed coordination node cluster;
a to-be-transmitted file determining module, to determine that at least one slave push node stores the to-be-transmitted file according to the file information of the to-be-transmitted file generated by the distributed coordination node cluster and heartbeat information of the at least one slave push node, wherein the heartbeat information of the at least one slave push node contains file information stored in the at least one slave push node, and the to-be-transmitted file is retrieved by the at least one slave push node from the file storage node cluster;
a path generating module, to generate a file transmission path, wherein the file transmission path comprises at least one destination node cluster; and
a path sending module, to send the file transmission path to the at least one slave push node, so that the at least one slave push node sends the to-be-transmitted file to the at least one destination node cluster through the file transmission path, wherein each of the at least one destination node cluster comprises a plurality of destination nodes.

### Claim 16 (depends on 15)

The file transmission apparatus of claim 15, wherein the path generating module is to perform one or any combination of processes of:
obtaining the generated file transmission path, and when the generated file transmission path comprises a first destination node cluster, deleting the first destination node cluster from the generated file transmission path, and using the file transmission path from which the first destination node cluster has been deleted as a current file transmission path, wherein the first destination node cluster is a destination node cluster from which the master push node has not received its heartbeat information within a preset period of time;
obtaining the generated file transmission path, and when the generated file transmission path comprises a second destination node cluster, deleting the second destination node cluster from the generated file transmission path, and using the file transmission path from which the second destination node cluster has been deleted as a current file transmission path, wherein the second destination node cluster is a destination node cluster on which a transmission mission is being executed;
obtaining a current file transmission path according to heartbeat information of a destination node, wherein the file transmission path comprises a third destination node cluster, and the third destination node cluster is a destination node cluster which is in an idle state;
obtaining the current file transmission path according to a data request for the to-be-transmitted file, wherein at least one destination node cluster in the file transmission path comprises a destination node cluster sending the data request.

### Claim 17 (depends on 15)

The file transmission apparatus of claim 15, wherein the heartbeat information of the at least one slave push node contains status information of the at least one slave push node, and the path sending module is to determine a slave push node which is in an idle state from the at least one slave push node according to the status information of the at least one slave push node, and send the file transmission path to the slave push node which is in the idle state.

### Claim 18 (depends on 15)

The file transmission apparatus of claim 15, wherein the master push node is elected from a plurality of push nodes according to temporary node serial numbers, wherein the temporary node serial numbers are assigned by a distributed coordination system.

### Claim 19 (depends on 15)

The file transmission apparatus of claim 15, wherein the to-be-transmitted file is retrieved by the at least one slave push node from the file storage node cluster when it is determined that the at least one slave push node does not store the to-be-transmitted file.

### Claim 20 (depends on 15)

The file transmission apparatus of claim 15, further comprising:
a writing module, to receive file transmission progress information sent by a plurality of destination nodes in the file transmission path, and write the file transmission progress information into a database.

### Claim 21

(canceled)
