Updated on 2022-02-21 GMT+08:00

DSS Three-Copies of Data Mechanism

What Is the Three-Copies of Data Mechanism?

The backend storage system of DSS employs the three-copies of data mechanism to guarantee data reliability. In this mechanism, one piece of data is by default divided into multiple 1 MB data blocks. Each data block is saved in three copies, and these copies are stored on different nodes in the system according to the distributed algorithms.

The three copies of data mechanism has the following characteristics:
  • The storage system saves the data copies on different disks of different servers, ensuring that services are not interrupted in case of a single physical device failure.
  • The storage system guarantees tight consistency between the data copies.

For example, for data block P1 on physical disk A of server A, the storage system backs up its data to P1'' on physical disk B of server B and to P1' on physical disk C of server C. Data blocks P1, P1', and P1'' are the three copies of the same data block. If physical disk A where P1 resides is faulty, P1' and P1'' can continue providing storage services, ensuring service continuity.

Figure 1 Three-copies of data mechanism

How Does the Three-Copies of Data Mechanism Keep Data Consistency?

Data consistency includes the following two aspects: When an application writes a piece of data to the system, the three copies of the data in the storage system must be consistent. When any of the three copies is read by the application later, the data on this copy is consistent with the data previously written to it.

The three copies of data mechanism keeps data consistency in the following ways:

  • Data is simultaneously written to the three copies of the data.

    When an application writes data, the storage system writes it to the three copies of the data simultaneously. In addition, the system returns the write success response to the application only after the data has been written to all of its copies.

  • Storage system automatically restores the damaged copy in case of a data read failure.

    When an application fails to read data, the system automatically identifies the failure cause. If the data cannot be read from a physical disk sector, the system reads the data from another copy of the data on another node and writes it back to the original disk sector. This mechanism ensures the number of data copies and data consistency among data copies.

How Does the Three-Copies of Data Mechanism Rapidly Rebuild Data?

Each physical disk in the storage system stores multiple data blocks, whose copies are scattered on the nodes in the system according to certain distribution rules. When a physical server or disk fault is detected, the storage system automatically rebuilds the data. Since the copies of data blocks are scattered on different nodes, the storage system will start the data rebuild on multiple nodes simultaneously during a data restore, with only a small amount of data on each node. In this way, the system eliminates the potential performance bottlenecks that may occur when a large amount of data needs to be rebuilt on a single node, and therefore minimizes the adverse impacts exerted on upper-layer applications.

Figure 2 shows the data rebuild process.

Figure 2 Data rebuild process

Figure 3 shows the data rebuild principle. For example, if physical disks on server F are faulty, the data blocks on these physical disks will be rebuilt on the physical disks of other servers.

Figure 3 Data rebuild principle

What Are the Differences Between Three-Copies of Data and Disk Backup

The three-copies of data mechanism improves the reliability of the data stored on DSS disks. It is used to tackle data loss or inconsistency caused by physical device faults.

Whereas, disk backup is used to prevent data loss or inconsistency caused by misoperation, viruses, or hacker attacks. Therefore, you are advised to create backups to back up the DSS disk data on a timely basis.