# US 2014/0195488 A1 · Intelligent Selection of Replication Node for File Data Blocks in GPFS-SNC

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

- Number: US 2014/0195488 A1
- Document ID: US20140195488A1
- Status: Published application
- Kind: A1
- Application number: 13/738,033
- Filed: 2013-01-10
- Published: 2014-07-10
- Earliest claimed: 2013-01-10
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Sandeep R. Patil; Prasenjit Sarkar; Riyazahamad M. Shiraguppi; Gandhi Sivakumar
- Web page: https://patentgrep.com/patent/US20140195488A1

## CPC

- G06F 16/1752: {based on file chunks}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A mechanism is provided in a data processing system for replicating writing of a file with striping. The mechanism writes a file at an owner node within a plurality of nodes in a data processing system. The mechanism divides the file into a plurality of file chunks. The mechanism identifies at least one replication node within the plurality of nodes having a duplicate copy of a respective file chunk within the plurality of file chunks. The mechanism selects a plurality of replication nodes for the plurality of file chunks based on identification at least one replication node within the plurality of nodes having a duplicate copy of a respective file chunk and replicates the file at the plurality of replication nodes based on the selection of the plurality of replication nodes.

## Claims

### Claim 1

A method, in a data processing system, for replicating writing of a file with striping, the method comprising:
writing a file at an owner node within a plurality of nodes in a data processing system;
dividing the file into a plurality of file chunks;
identifying at least one replication node within the plurality of nodes having a duplicate copy of a respective file chunk within the plurality of file chunks;
selecting a plurality of replication nodes for the plurality of file chunks based on identification at least one replication node within the plurality of nodes having a duplicate copy of a respective file chunk; and
replicating the file at the plurality of replication nodes based on the selection of the plurality of replication nodes.

### Claim 2 (depends on 1)

The method of claim 1, wherein writing a file at an owner node comprises:
receiving a request to write a file at an upper layer in the data processing system;
selecting, by the upper layer, the owner node from the plurality of nodes; and
writing, by the upper layer, the file to the owner node, wherein the owner node writes the file to one or more local disks that are local to the owner node.

### Claim 3 (depends on 2)

The method of claim 2, wherein the local node does not share the one or more local disks with others of the plurality of nodes.

### Claim 4 (depends on 1)

The method of claim 1, wherein identifying at least one replication node having a duplicate copy of a respective file chunk comprises:
performing a hash function on each file chunk to form a hash value;
looking up each hash value in a hash repository; and
identifying a replication node having a duplicate copy of a given file chunk responsive to a hash value of the given file chunk having an entry in the hash repository.

### Claim 5 (depends on 4)

The method of claim 4, wherein performing the hash function on each file chunk is performed by a common de-duplication engine in the upper layer.

### Claim 6 (depends on 4)

The method of claim 4, wherein performing the hash function on each file chunk is performed by a local hash engine at the owner node.

### Claim 7 (depends on 4)

The method of claim 4, wherein the hash repository is within the upper layer.

### Claim 8 (depends on 4)

The method of claim 4, wherein identifying at least one replication node having a duplicate copy of a respective file chunk further comprises
add an entry to a duplicate set for each file chunk for which a duplicate copy is already stored at a replication node; and
add an entry to a no-duplicate set for each file chunk for which no duplicate copy is stored at a replication node.

### Claim 9 (depends on 8)

The method of claim 8, wherein identifying at least one replication node having a duplicate copy of a respective file chunk comprises passing the duplicate set and the no-duplicate set to the owner node.

### Claim 10 (depends on 8)

The method of claim 8, wherein selecting a plurality of replication nodes for the plurality of file chunks comprises selecting a replication node within the plurality of nodes for each file chunk having an entry in the no-duplicate set based on replication data balancing requirements such that file data are uniform across the plurality of nodes.

### Claim 11 (depends on 8)

The method of claim 8, wherein replicating the file at the plurality of replication nodes comprises transferring pointer information for each file chunk having an entry in the duplication list to a corresponding selected replication nodes, wherein the pointer information points to the copy of the file chunk at the selected replication node.

### Claim 12 (depends on 11)

The method of claim 11, wherein replicating the file at the plurality of replication nodes comprises creating, by the selected replication node, a copy of the file chunk data.

### Claim 13

A computer program product comprising a computer readable storage medium having a computer readable program stored therein, wherein the computer readable program, when executed on a computing device, causes the computing device to:
write a file at an owner node within a plurality of nodes in a data processing system;
divide the file into a plurality of file chunks;
identify at least one replication node within the plurality of nodes having a duplicate copy of a respective file chunk within the plurality of file chunks;
select a plurality of replication nodes for the plurality of file chunks based on identification at least one replication node within the plurality of nodes having a duplicate copy of a respective file chunk; and
replicate the file at the plurality of replication nodes based on the selection of the plurality of replication nodes.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein writing a file at an owner node comprises:
receiving a request to write a file at an upper layer in the data processing system;
selecting, by the upper layer, the owner node from the plurality of nodes; and
writing, by the upper layer, the file to the owner node, wherein the owner node writes the file to one or more local disks that are local to the owner node.

### Claim 15 (depends on 13)

The computer program product of claim 13, wherein identifying at least one replication node having a duplicate copy of a respective file chunk comprises:
performing a hash function on each file chunk to form a hash value;
looking up each hash value in a hash repository; and
identifying a replication node having a duplicate copy of a given file chunk responsive to a hash value of the given file chunk having an entry in the hash repository.

### Claim 16 (depends on 15)

The computer program product of claim 15, wherein performing the hash function on each file chunk is performed by a common de-duplication engine in the upper layer.

### Claim 17 (depends on 15)

The computer program product of claim 15, wherein performing the hash function on each file chunk is performed by a local hash engine at the owner node.

### Claim 18 (depends on 13)

The computer program product of claim 13, wherein replicating the file at the plurality of replication nodes comprises transferring pointer information to the at least one replication node having a duplicate copy of a respective file chunk, wherein the pointer information points to the copy of the file chunk at the selected replication node.

### Claim 19 (depends on 13)

The computer program product of claim 13, wherein the computer readable program is stored in a computer readable storage medium in a data processing system and wherein the computer readable program was downloaded over a network from a remote data processing system.

### Claim 20 (depends on 13)

The computer program product of claim 13, wherein the computer readable program is stored in a computer readable storage medium in a server data processing system and wherein the computer readable program is downloaded over a network to a remote data processing system for use in a computer readable storage medium with the remote system.

### Claim 21

An apparatus, comprising:
a processor; and
a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to:
write a file at an owner node within a plurality of nodes in a data processing system;
divide the file into a plurality of file chunks;
identify at least one replication node within the plurality of nodes having a duplicate copy of a respective file chunk within the plurality of file chunks;
select a plurality of replication nodes for the plurality of file chunks based on identification at least one replication node within the plurality of nodes having a duplicate copy of a respective file chunk; and
replicate the file at the plurality of replication nodes based on the selection of the plurality of replication nodes.

### Claim 22 (depends on 21)

The apparatus of claim 21, wherein identifying at least one replication node having a duplicate copy of a respective file chunk comprises:
performing a hash function on each file chunk to form a hash value;
looking up each hash value in a hash repository; and
identifying a replication node having a duplicate copy of a given file chunk responsive to a hash value of the given file chunk having an entry in the hash repository.

### Claim 23 (depends on 22)

The apparatus of claim 22, wherein performing the hash function on each file chunk is performed using a common de-duplication engine in the upper layer.

### Claim 24 (depends on 22)

The apparatus of claim 22, wherein performing the hash function on each file chunk is performed using a local hash engine at the owner node.

### Claim 25 (depends on 21)

The apparatus of claim 21, wherein replicating the file at the plurality of replication nodes comprises transferring pointer information to the at least one replication node having a duplicate copy of a respective file chunk, wherein the pointer information points to the copy of the file chunk at the selected replication node.
