[go: up one dir, main page]

WO2024132126A1 - Memory controller and method for backup system - Google Patents

Memory controller and method for backup system Download PDF

Info

Publication number
WO2024132126A1
WO2024132126A1 PCT/EP2022/087184 EP2022087184W WO2024132126A1 WO 2024132126 A1 WO2024132126 A1 WO 2024132126A1 EP 2022087184 W EP2022087184 W EP 2022087184W WO 2024132126 A1 WO2024132126 A1 WO 2024132126A1
Authority
WO
WIPO (PCT)
Prior art keywords
file
memory controller
command
hard
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/EP2022/087184
Other languages
French (fr)
Inventor
Idan Zach
Assaf Natanzon
Roman Yakovenko
Michael Hirsch
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to PCT/EP2022/087184 priority Critical patent/WO2024132126A1/en
Publication of WO2024132126A1 publication Critical patent/WO2024132126A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2066Optimisation of the communication load
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality

Definitions

  • the present disclosure relates generally to the field of data management and more specifically, to a memory controller and a method for a backup system (e.g., backup for a file-system with hard links).
  • BACKGROUND nowadays, various techniques are used for data protection, for example, continuous data protection (CDP), snapshot-based data protection (SDP), and the like.
  • CDP continuous data protection
  • SDP snapshot-based data protection
  • data protection data is continuously backed up to a remote site.
  • SDP snapshot-based data protection
  • the basic fundamental in CDP is to replicate any change done on the protected data, at the time when the change occurs.
  • the present disclosure provides a memory controller and a method for a backup system (e.g., backup for a file-system with hard links).
  • the present disclosure provides a solution to the existing problem of how to efficiently manage the file-system hard links for continuous data protection and backup of file-systems.
  • An objective of the present disclosure is to provide a solution that overcomes at least partially the problems encountered in the prior art and provides an improved memory controller and an improved method for a backup system.
  • FIG. 1 illustrates a memory controller for use in a backup system, in accordance with an embodiment of the present disclosure.
  • a block diagram 100 that represents a memory controller 102 for a backup system 104.
  • the backup system 104 includes a secondary file system 108, and optionally, a memory 110, and a network interface 112.
  • a primary file system 106 communicably coupled to a user application 116.
  • the primary file system 106 and the user application 116 optionally, comprised by a computing system 114.
  • the memory controller 102 may include suitable logic, circuitry, and/or interfaces that is configured to determine that whether a memory command received by the primary file system 106 is a DELETE command or a MOVE command.
  • Examples of the memory controller 102 may include, but are not limited to, a microcontroller, a microprocessor, a central processing unit (CPU), a complex instruction set computing (CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set (RISC) processor, a very long instruction word (VLIW) processor, a data processing unit, and other processors or control circuitry.
  • the backup system 104 may include suitable logic, circuitry, and/or interfaces that is configured to provide continuous data protection and backup for a file-system with hard links. Examples of the backup system 104 may include, but are not limited to, a computer, a personal digital assistant, a portable computing device, or an electronic device.
  • Examples of the network interface 112 may include but are not limited to, a computer port, a network socket, a network interface controller (NIC), and any other network interface device.
  • the computing system 114 may include suitable logic, circuitry, and/or interfaces that is configured to store the primary file system 106 and the user application 116. Examples of the computing system 114 may include but are not limited to, a computer, a personal digital assistant, a portable computing device, or an electronic device.
  • the user application 116 may include suitable logic, circuitry, and/or interfaces that is configured to send a memory command to the primary file system 106. In an implementation, the user application 116 may be a software application, a firmware application, and the like.
  • the memory controller 102 is further configured to retrieve the file address from the first hard link and structure the MOVE command to be from the file address to a file in a temporary folder, where the file is named as the file address.
  • the received memory command e.g., the DELETE command
  • includes the first hard link reference i.e., “myfile-hard-link1” which addresses the file (i.e., “myfile-hard-link1”).
  • the memory controller 102 retrieves the file address form the first hard link reference (i.e., “myfile-hard-link1”) and structure the MOVE command in such a way that the file that is moved to the temporary folder includes the file address of the file that is determined with the DELETE command.
  • file-system state can be assumed: /myfile-hard-link1 (refer to inode X) /myfile-hard-link2 (refer to inode X)
  • file-system operations may be considered: 1. App OPEN /myfile-hard-link1 2. App WRITE data into /myfile-hard-link1 3. App CLOSE /myfile-hard-link1 4. App DELETE /myfile-hard-link1 5.
  • File-System Snapshot Point The CFT data-structure at the snapshot point contains the summary of all the operations above.
  • the file statistics register can be used either directly during the DELETE operation or can be stored in a memory (e.g., the memory 110 of the backup system 104).
  • the memory controller 102 is further configured to determine that an end point of a snapshot process has been reached and in response thereto delete any files in the temporary folder.
  • the file i.e., “myfile-hard-link1”
  • the temporary location i.e., /tmp/. ⁇ inode number ⁇
  • the memory controller 102 for the backup system 104 efficiently backup the data of the primary file system 106 on the secondary file system 108 by supporting the file-system hard links in the continuous data protection mode as well as in the snapshot-based data protection mode. Moreover, the memory controller 102 resolves the problem of copy_file_range operations that uses the open file as a source between the DELETE and CLOSE FILE operation by replacing the DELETE operation with the MOVE operation. The memory controller 102 eliminates the requirement to scan the whole-file system for finding the second hard link for a file by replacing the DELETE operation with the MOVE operation if the file has more than one hard link reference.
  • the mode 304 i.e., snapshot interval
  • the mode 306 i.e., Normal mode
  • the mode 304 i.e., snapshot interval
  • the mode 308 i.e., CFT mode
  • the mode 304 i.e., snapshot interval
  • SDP snapshot-based data protection
  • the memory controller 102 is further configured to operate in the snapshot mode and where the memory controller 102 is further configured to, when operating in the snapshot mode determine the number of hard links for the file indicated by the first hard link and if the number of hard links is more than 1 then, replace the DELETE command and if the number of hard links is 1 then, refrain from replacing the DELETE command.
  • the memory controller 102 is further configured to determine the number of hard links by utilizing the file statistics register.
  • the memory controller 102 is further configured to determine that an end point of the snapshot process has been reached and in response thereto delete any files in the temporary folder.
  • the memory controller 102 is further configured to delete any files in the temporary folder generated by the memory controller 102 during the snapshot process and named as the file address.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A memory controller for a backup system, where a primary file system is backed up to a secondary file system. The primary file system receives a memory command from a user application. Further, the memory controller is configured to determine that the memory command is a DELETE command and then replace the DELETE command with a MOVE command to be performed by the primary file system. The disclosed memory controller for the backup system efficiently backup the data of the primary file system on the secondary file system by supporting the file-system hard links in the continuous data protection mode as well as in the snapshot-based data protection mode.

Description

MEMORY CONTROLLER AND METHOD FOR BACKUP SYSTEM TECHNICAL FIELD The present disclosure relates generally to the field of data management and more specifically, to a memory controller and a method for a backup system (e.g., backup for a file-system with hard links). BACKGROUND Nowadays, various techniques are used for data protection, for example, continuous data protection (CDP), snapshot-based data protection (SDP), and the like. In the continuous data protection, data is continuously backed up to a remote site. In contrast to the CDP, in the SDP, only the current data is backed up at a specific point in time. The basic fundamental in CDP is to replicate any change done on the protected data, at the time when the change occurs. However, such replication at the same time is not always possible, due to various challenges, such as slow network, no network coverage, or any other such issues. In an event of slow network or no network coverage, a source CDP agent is required to remember all the changes done on the protected data to replicate the changes later on, when the issue of network gets resolved. The modes of remembering or storing the changes are “change blocks tracking, CBT” in block-based replication systems and “change file-system tracking, CFT” in file-system based replication systems. For example, when a block device is protected, the source CDP agent may store a mapping of bits per block. When a block is written in the CBT mode, the source CDP agent may simply turn on the bit that corresponds to the written block. Moreover, when required the source CDP agent may read the blocks for which the bit is set and further send the data to the remote site. Although, in a directory-based file system, a hard link is a link that associates a name with a file. Thus, each file must have at least one hard link. The creation of additional hard links for same file makes the content of that file accessible via additional paths (i.e., multiple references to the same file are created). Currently, certain methods have been developed, to manage the file-system hard links for the backup of file-systems. For example, use of a CFT log, which is an ordered log of all operations that are executed on the file-system, including operations on hard-links. On requirement, all the operations are applied in the CFT log on the remote site. However, the CFT log is inefficiently handled these days. Another solution is the use of resynchronization (i.e., resync) in the file- system, once the issue that caused the CFT is resolved, the entire content of the file-system is just copied, including the hard links. There are certain limitations while using the resynchronization, that is copying the whole file-system consumes a lot of network resources even if no change at all has been done on the protected file-system. There are several options to implement the re-full sync (e.g., resync), but all these options require to process the whole file-system tree and hence, results in an inefficient use of system resources. Thus, there exists a technical problem of how to efficiently manage the file-system hard links for continuous data protection and backup of file-systems. Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with the conventional ways of managing the file-system hard links for the backup of file-systems. SUMMARY The present disclosure provides a memory controller and a method for a backup system (e.g., backup for a file-system with hard links). The present disclosure provides a solution to the existing problem of how to efficiently manage the file-system hard links for continuous data protection and backup of file-systems. An objective of the present disclosure is to provide a solution that overcomes at least partially the problems encountered in the prior art and provides an improved memory controller and an improved method for a backup system. One or more objectives of the present disclosure is achieved by the solutions provided in the enclosed independent claims. Advantageous implementations of the present disclosure are further defined in the dependent claims. In one aspect, the present disclosure provides a memory controller for a backup system, where a primary file system is backed up to a secondary file system. The primary file system receives a memory command from a user application. The memory controller is configured to determine that the memory command is a DELETE command and then replace the DELETE command with a MOVE command to be performed by the primary file system. The disclosed memory controller for the backup system efficiently backup the data of the primary file system on the secondary file system by supporting the file-system hard links in the continuous data protection mode as well as in the snapshot-based data protection mode. Moreover, the memory controller resolves the problem of copy_file_range operations that uses the open file as a source between the DELETE and CLOSE FILE operation by replacing the DELETE command with the MOVE command. Additionally, the memory controller uses a simple algorithm that supports the file-system hard-links. In an implementation form, the received memory command comprises a first hard link reference to file address, and wherein the memory controller is further configured to retrieve the file address from the first hard link and structure the MOVE command to be from the file address to a file in a temporary folder where, the file is named as the file address. This is advantageous to use the file address as the temporary file name to ensure the uniqueness of the file name. In a further implementation form, the memory controller is configured to operate in a continuous backup mode and wherein the memory controller is further configured to receive a second memory command, determine that the second memory command is a CLOSE FILE command indicating a second hard link reference, and in response thereto add a DELETE command for a file in the temporary folder where, the file is named as the file address according to the second hard link reference. This is advantageous to solve the copy_file_range operations that uses an open file as a source between the DELETE operation and the CLOSE FILE operation. In a further implementation form, the file address is an inode number. The use of the inode number in the file address ensures that the multiple hard-links for the same file are mapped to a same temporary file and name of the temporary file is unique for each file. In a further implementation form, the first hard link reference is the same as the second hard link reference, whereby the file name for the MOVE command is the same as for the DELETE command. In a further implementation form, the memory controller is configured to determine that the second hard link reference is for the same file as the first hard link reference prior to adding the DELETE command. In a further implementation form, the memory controller is further configured to operate in a snapshot mode, and wherein the memory controller is further configured to, when operating in the snapshot mode determine a number of hard links for the file indicated by the first hard link; and if the number of hard links is more than 1 then replace the DELETE command, and if the number of hard links is 1 then refrain from replacing the DELETE command. The disclosed memory controller eliminates the requirement to scan the whole-file system for finding the second hard link for a file by replacing the DELETE operation with the MOVE operation if the file has more than one hard link reference. The memory controller manifests efficient use of resources (i.e., system resources, for example, memory, network bandwidth, and the like). In a further implementation form, the memory controller is further configured to determine the number of hard links by utilizing a file statistics register. The use of the file statistics register enables a reliable determination of the number of hard links. In a further implementation form, the memory controller is further configured to determine that an end point of a snapshot process has been reached and in response thereto delete any files in the temporary folder. The deletion of files in the temporary folder supports the release of resources, including disk space, occupied by the files in a storage system. In a further implementation form, the memory controller is further configured to delete any files in the temporary folder generated by the memory controller during the snapshot process and named as a file address. The deletion of files in the temporary folder supports the release of resources, including disk space, occupied by the files in the storage system. In another aspect, the present disclosure provides a method for a backup system, where a primary file system is backed up to a secondary file system. The primary file system receives a memory command from a user application. The method comprises determining that the memory command is a DELETE command and then replacing the DELETE command with a MOVE command to be performed by the primary file system. The method achieves all the advantages and technical effects of the memory controller of the present disclosure. It is to be appreciated that all the aforementioned implementation forms can be combined. It has to be noted that all devices, elements, circuitry, units and means described in the present application could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the present application as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific embodiments, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof. It will be appreciated that features of the present disclosure are susceptible to being combined in various combinations without departing from the scope of the present disclosure as defined by the appended claims. Additional aspects, advantages, features and objects of the present disclosure would be made apparent from the drawings and the detailed description of the illustrative implementations construed in conjunction with the appended claims that follow. BRIEF DESCRIPTION OF THE DRAWINGS The summary above, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating the present disclosure, exemplary constructions of the disclosure are shown in the drawings. However, the present disclosure is not limited to specific methods and instrumentalities disclosed herein. Moreover, those in the art will understand that the drawings are not to scale. Wherever possible, like elements have been indicated by identical numbers. Embodiments of the present disclosure will now be described, by way of example only, with reference to the following diagrams wherein: FIG.1 illustrates a memory controller for use in a backup system, in accordance with an embodiment of the present disclosure; FIG.2 is a system diagram that illustrates backup of a primary file system to a secondary file system, in accordance with an embodiment of the present disclosure; FIG.3 is a diagram that illustrates different modes during continuous data protection and transition between different modes, in accordance with an embodiment of the present disclosure; and FIG.4 is a flowchart of a method for a backup system, in accordance with an embodiment of the present disclosure. In the accompanying drawings, an underlined number is employed to represent an item over which the underlined number is positioned or an item to which the underlined number is adjacent. A non-underlined number relates to an item identified by a line linking the non- underlined number to the item. When a number is non-underlined and accompanied by an associated arrow, the non-underlined number is used to identify a general item at which the arrow is pointing. DETAILED DESCRIPTION OF EMBODIMENTS The following detailed description illustrates embodiments of the present disclosure and ways in which they can be implemented. Although some modes of carrying out the present disclosure have been disclosed, those skilled in the art would recognize that other embodiments for carrying out or practicing the present disclosure are also possible. FIG. 1 illustrates a memory controller for use in a backup system, in accordance with an embodiment of the present disclosure. With reference to FIG.1, there is shown a block diagram 100 that represents a memory controller 102 for a backup system 104. Further, the backup system 104 includes a secondary file system 108, and optionally, a memory 110, and a network interface 112. There is further shown a primary file system 106 communicably coupled to a user application 116. The primary file system 106 and the user application 116 optionally, comprised by a computing system 114. The memory controller 102 may include suitable logic, circuitry, and/or interfaces that is configured to determine that whether a memory command received by the primary file system 106 is a DELETE command or a MOVE command. Examples of the memory controller 102 may include, but are not limited to, a microcontroller, a microprocessor, a central processing unit (CPU), a complex instruction set computing (CISC) processor, an application-specific integrated circuit (ASIC) processor, a reduced instruction set (RISC) processor, a very long instruction word (VLIW) processor, a data processing unit, and other processors or control circuitry. The backup system 104 may include suitable logic, circuitry, and/or interfaces that is configured to provide continuous data protection and backup for a file-system with hard links. Examples of the backup system 104 may include, but are not limited to, a computer, a personal digital assistant, a portable computing device, or an electronic device. Each of the primary file system 106 and the secondary file system 108 may include suitable logic, circuitry, and/or interfaces that is configured to store a plurality of files or directories. Moreover, the primary file system 106 is backed up by the secondary file system 108. Examples of each of the primary file system 106 and the secondary file system 108 may include, but are not limited to, a global file system (GFS), hierarchical file system (HFS), universal disk format (UDF), and the like. The memory 110 may include suitable logic, circuitry, and/or interfaces that is configured to store the instructions executable by the memory controller 102. Examples of implementation of the memory 110 may include, but are not limited to, an Electrically Erasable Programmable Read-Only Memory (EEPROM), Random Access Memory (RAM), Read-Only Memory (ROM), Hard Disk Drive (HDD), Flash memory, Solid-State Drive (SSD), persistent memory, remote direct memory access (RDMA), or CPU cache memory. The memory 110 may store an operating system or other program products (including one or more operation algorithms) to operate the backup system 104. The network interface 112 may include suitable logic, circuitry, and/or interfaces that is configured to establish communication among the memory controller 102, the primary file system 106, the secondary file system 108, and the memory 110. Examples of the network interface 112 may include but are not limited to, a computer port, a network socket, a network interface controller (NIC), and any other network interface device. The computing system 114 may include suitable logic, circuitry, and/or interfaces that is configured to store the primary file system 106 and the user application 116. Examples of the computing system 114 may include but are not limited to, a computer, a personal digital assistant, a portable computing device, or an electronic device. The user application 116 may include suitable logic, circuitry, and/or interfaces that is configured to send a memory command to the primary file system 106. In an implementation, the user application 116 may be a software application, a firmware application, and the like. There is provided the memory controller 102 for the backup system 104 where the primary file system 106 is backed up to the secondary file system 108. The primary file system 106 is configured to receive a memory command from the user application 116. The backup system 104 is a system in which the primary file system 106 is backed up to the secondary file system 108. The memory controller 102 is configured to provide the continuous data protection and backup of the primary file system 106 with hard links. The backup system 104 provides security of data stored in the primary file system 106. Further, the memory command is received by the primary file system 106 from the user application 116 in order to perform changes in the data stored in the primary file system 106. In an implementation, the primary file system 106 may be configured to receive the memory command from the user application 116 that may be installed in a user device, for example, a mobile phone, a computer, a laptop, and the like. In operation, the memory controller 102 is configured to determine that the memory command is a DELETE command and then replace the DELETE command with a MOVE command to be performed by the primary file system 106. After determination of the received command as the DELETE command, the memory controller 102 is configured to replace the DELETE command with the MOVE command. Further, the MOVE command is executed by the primary file system 106. By use of the MOVE command, the data which is required to be deleted by the DELETE command, is moved to a temporary location. In an implementation scenario, the following list of file-system operations may be considered: 1. App OPEN /myfile-hard-link1 2. App WRITE data into /myfile-hard-link1 3. App DELETE /myfile-hard-link1 4. App (continue to) WRITE data into /myfile-hard-link1 5. App CLOSE /myfile-hard-link1 In said implementation scenario, the primary file system 106 receives an OPEN command (#1 operation in the above list) which is used to open a file named as “myfile-hard-link1”. Thereafter, the primary file system 106 receives a WRITE data command (#2 operation in the above list) which is used to write data into the file (i.e., “myfile-hard-link1”). The primary file system 106 further receives a DELETE command (#3 operation in the above list) which is used to delete data from the file (i.e., “myfile-hard-link1”). After receiving the DELETE command, the memory controller 102 is configured to replace the file-system DELETE operation (#3 operation in the above list) with a file-system MOVE operation. In the file-system MOVE operation, the file (i.e., “myfile-hard-link1”) is stored at a temporary location. DELETE /myfile-hard-link1 → MOVE /myfile-hard-link1 /tmp/.X In accordance with an embodiment, the received memory command includes a first hard link reference to file address. The memory controller 102 is further configured to retrieve the file address from the first hard link and structure the MOVE command to be from the file address to a file in a temporary folder, where the file is named as the file address. In aforementioned implementation scenario, the received memory command (e.g., the DELETE command) includes the first hard link reference (i.e., “myfile-hard-link1”) which addresses the file (i.e., “myfile-hard-link1”). The memory controller 102 retrieves the file address form the first hard link reference (i.e., “myfile-hard-link1”) and structure the MOVE command in such a way that the file that is moved to the temporary folder includes the file address of the file that is determined with the DELETE command. For example, after replacing the DELETE command with the MOVE command according to the file-system operation as DELETE /myfile-hard-link1 → MOVE /myfile-hard-link1 /tmp/.X The file (i.e., “myfile-hard-link1”) with the first hard link reference is moved to the temporary folder (i.e., tmp/.X) by use of the MOVE command. Moreover, in an implementation, the creation of a file (e.g., “myfile-hard-link1”) and a hard link (e.g., the first hard link reference) is recorded by having both of the “original” fields set to null values. Similarly, the deletion of the file (i.e., “myfile-hard-link1”) and the hard link (i.e., the first hard link reference) is recorded by having both of the “last” fields set to null values. The changes in a whole file system structure, for example, which files are created and where (i.e., location of the files), which files are deleted, and which hard-links are created or deleted and where, such changes are saved in a compact format in a Change file-system tracking (CFT) mode. Generally, the hard link is a link that directly associates a name to a given file in the file system. When the given file is renamed then, a soft link changes a pointer, but the hard link still points to the underlying file even if the file name changes. The file address is used as the temporary file name in order to ensure uniqueness of the file name. However, in another implementation scenario, any other way of naming the temporary file may be used that ensures uniqueness of the temporary file name. In accordance with an embodiment, the file address is an inode number. The file (i.e., “myfile-hard-link1”) is moved to the temporary folder and includes the inode number (e.g., tmp/.X) in the file address, where X is the inode number. The inode number refers to an index node number. The inode is a data structure in a Unix-style file system that describes a file-system object, such as a file or a directory. Moreover, each inode has a unique identifier, called inode number. The use of the inode number in the temporary file name template (e.g., /tmp/.X) ensures that multiple hard- links for the same file are mapped to the same temporary file and the temporary file name is unique for each file. The inode number provides a unique naming of the temporary addresses and also make it possible to perform subsequent operations on the file stored in the temporary folder without having a structure, in contrast to a hard link reference and also, indicates a new temporary file. In accordance with an embodiment, the memory controller 102 is configured to operate in a continuous backup mode and where the memory controller 102 is further configured to receive a second memory command, determine that the second memory command is a CLOSE FILE command indicating a second hard link reference, and in response thereto add a DELETE command for a file in the temporary folder, wherein, the file is named as the file address according to the second hard link reference. The continuous backup mode enhances the security of the data. If the data stored in the primary file system 106 is crashed, then the continuous backup mode provides the backup of the data stored in the primary file system 106. Further, the memory controller 102 is configured to receive the second memory command and determine that the received second memory command is the CLOSE FILE command. In aforementioned implementation scenario, the memory controller 102 receives the CLOSE FILE command (#5 operation in the above list of file-system operations) in the form of a file-system operation as App CLOSE /myfile-hard-link1, which has the second hard link reference. After receiving the CLOSE FILE command, the memory controller 102 is further configured to forward the CLOSE operation and immediately generate the DELETE command for the file in the temporary folder. The file in the temporary folder is named as the file address according to the second hard link reference. CLOSE /myfile-hard-link1 → CLOSE /myfile-hard-link1 + DELETE /tmp/.X The forwarding of the CLOSE operation and generation of the DELETE command before executing the CLOSE operation, solves the copy_file_range operations that uses the open file as a source file between the file-system operations (#3 and #5 operations in the above list of file-system operations). Conventionally, the file remains open between the DELETE command (i.e., the DELETE operation) the CLOSE FILE command (i.e., CLOSE operation) hence, the file can be used as a source for a copy_file_range operation. In case of the continuous data protection, the above list of file-system operations (i.e., #1 to #5) are replicated above as-is, the replication system deletes the file before the time and is not able to recover to a point between the DELETE and the later CLOSE operation. In contrast to the conventional system, the memory controller 102 for the backup system 104 is configured to forward the second memory command of the CLOSE FILE before executing the DELETE command for the file stored in the temporary folder which further solves the problem of using the file as the source for the copy_file_range operation. In accordance with an embodiment, the first hard link reference is the same as the second hard link reference, whereby the file name for the MOVE command is the same as for the DELETE command. The first hard link reference and the second hard link reference is same which means that each of the first hard link reference and the second hard link reference is associated with the same file. Consequently, the MOVE command and the DELETE command are generated for the file having the same file name. In accordance with an embodiment, the memory controller 102 is configured to determine that the second hard link reference is for the same file as the first hard link reference prior to adding the DELETE command. By virtue of having the second hard link reference and the first hard link reference for the same file and prior to the addition of the DELETE command, the memory controller 102 is configured to ensure that the CLOSE FILE command is generated for the same file for which the DELETE command is replaced with the MOVE command. Moreover, the memory controller 102 is configured to ensure that the CLOSE FILE command is for a previously deleted file and also, to ensure that the deletion of inode (i.e., tmp/.X) is successful. In accordance with an embodiment, the continuous backup mode is a continuous data protection (CDP) mode. The CDP mode is a data protection type in which the data stored in the primary file system 106 is continuously backed up to the secondary file system 108. The CDP mode provides security of the data stored in the primary file system 106. In a case, if the CDP mode is disabled and the primary file system 106 loses the data, in such scenario it may be difficult to retrieve the data. In accordance with an embodiment, the continuous backup mode is a replication mode. The replication mode has the ability to provide a backup of the data stored in the primary file system 106. The replication mode creates the duplicate copy of the data and stores in a different location(s). If the data from the primary file system 106 is crashed, then the replication mode may be configured to retrieve the lost data. In accordance with an embodiment, the memory controller 102 is further configured to operate in a snapshot mode, and wherein the memory controller 102 is further configured to, when operating in the snapshot mode, determine a number of hard links for the file indicated by the first hard link and if the number of hard links is more than 1 then, replace the DELETE command, and if the number of hard links is 1 then, refrain from replacing the DELETE command. In the snapshot mode (or the snapshot data protection mode or change file-system tracking, CFT), a backup of all the current data of the primary file system 106 is created at a specific point of time in the secondary file system 108. When operating in the snapshot mode, the memory controller 102 is configured to determine the number of hard links for the file indicated by the first hard link reference. When operating in the snapshot mode, the CFT data structure has a bloom filter, which describes the locations changed in the files and the memory controller 102 is configured to create a snapshot and requires to apply the changes from the snapshot to a replication system. In an implementation scenario, the following file-system state can be assumed: /myfile-hard-link1 (refer to inode X) /myfile-hard-link2 (refer to inode X) Also, the following list of file-system operations may be considered: 1. App OPEN /myfile-hard-link1 2. App WRITE data into /myfile-hard-link1 3. App CLOSE /myfile-hard-link1 4. App DELETE /myfile-hard-link1 5. File-System Snapshot Point The CFT data-structure at the snapshot point contains the summary of all the operations above. However, it does NOT contain the locations of the other hard-links for the same file (e.g., “/myfile-hard-link2”) because there were no concrete operations for “/myfile-hard-link2” during the execution. Thereafter, the memory controller 102 is configured to determine the number of hard links for the file (i.e., “myfile-hard-link1”) indicated by the first hard link and if the number of hard links is more than 1 then, replace the DELETE command. In this implementation scenario, the file (i.e., “myfile-hard-link1”) indicated by the first hard link has two or more hard-links then, the memory controller 102 is configured to replace the DELETE operation (#4 in the list above) with a file-system MOVE operation to a temporary location which means that the file (i.e., “myfile-hard-link1”) with two or more hard links is stored to the temporary location or a temporary folder (e.g., /tmp/.{inode number}) according to DELETE /myfile-hard-link1 → MOVE /myfile-hard-link1 /tmp/.X where tmp/.X, is an inode number. Using the inode number in the temporary file name template ensures that multiple hard-links for the same file can be mapped to the same temporary file and the temporary file name is unique for each file. Moreover, a conventional CFT data-structure system contains a summary of aforementioned file-system operations (#1 to #5). A technical challenge associated with the conventional CFT data-structure is that a conventional memory controller that is going to use the conventional CFT data structure to replicate the snapshot requires to read the data of the file “/myfile hard- link1” from the snapshot, but the file known by that pathname no longer exists and the conventional memory controller does not know about the second hard link. In order to find the second hard link on the conventional CFT data structure, the conventional memory controller requires to scan the whole file-system, which is a cost intensive operation that requires a lot of resources and may take a long time. In another implementation scenario, the file (i.e., “myfile-hard-link1”) indicated by the first hard link has only one hard-link then, the memory controller 102 is configured to refrain from replacing the DELETE operation (#4 in the list above). In accordance with an embodiment, the memory controller 102 is further configured to determine the number of hard links by utilizing a file statistics register. The number of hard links for the file (e.g., “myfile-hard-link1”) is provided by utilizing the file statistics register (“STAT”). The file statistics register (“STAT”) can be used either directly during the DELETE operation or can be stored in a memory (e.g., the memory 110 of the backup system 104). In accordance with an embodiment, the memory controller 102 is further configured to determine that an end point of a snapshot process has been reached and in response thereto delete any files in the temporary folder. When the snapshot process has completed, the file (i.e., “myfile-hard-link1”) stored in the temporary folder or the temporary location (i.e., /tmp/.{inode number}) is deleted. In a case, if the files in the temporary folder (or temporary hard link) is not deleted, the storage system (i.e., the secondary file system 108) does not release the resources, including disk space, occupied by the file stored in the temporary folder. In accordance with an embodiment, the memory controller 102 is further configured to delete any files in the temporary folder generated by the memory controller 102 during the snapshot process and named as a file address. In other words, during the snapshot process the file (i.e., “myfile-hard-link1”) stored in the temporary folder is deleted according to DELETE the hard-link (e.g., “/myfile-hard-link1”) The deletion of the file moved to the temporary folder improves the efficiency of managing the data. Thus, the memory controller 102 for the backup system 104 efficiently backup the data of the primary file system 106 on the secondary file system 108 by supporting the file-system hard links in the continuous data protection mode as well as in the snapshot-based data protection mode. Moreover, the memory controller 102 resolves the problem of copy_file_range operations that uses the open file as a source between the DELETE and CLOSE FILE operation by replacing the DELETE operation with the MOVE operation. The memory controller 102 eliminates the requirement to scan the whole-file system for finding the second hard link for a file by replacing the DELETE operation with the MOVE operation if the file has more than one hard link reference. Thus, the memory controller 102 manifests efficient use of resources (i.e., system resources, for example, memory, network bandwidth, and the like). Additionally, the memory controller 102 uses a simple algorithm that supports the file-system hard-links. FIG.2 is a system diagram that illustrates backup of a primary file system to a secondary file system, in accordance with an embodiment of the present disclosure. FIG. 2 is described in conjunction with elements from FIG. 1. With reference to FIG. 2, there is shown a system diagram 200 that illustrates backup of the primary file system 106 comprised by a protected environment 202 (may also be referred to as a source) to the secondary file system 108 comprised by the backup system 104 (may also be referred to as a target). There is further shown an input/output (IO) interceptor 204, a snapshot shipper 206 and a plurality of snapshots 208. In the system diagram 200, the primary file system 106 (of FIG. 1) stored on the protected environment 202 (i.e., source) is backed up to the secondary file system 108 stored on the backup system 104 (i.e., target) by use of the memory controller 102. The primary file system 106 is a file-system, which is backed up to another storage system (i.e., the backup system 104) in form of the secondary file system 108, which can be used later to restore the data in case of failures of the primary file system 106 (i.e., source file system). A disaster recovery (DR) file- system is a file system in which the primary file system 106 (i.e., source file system) is continuously replicated to a remote location and can be used instead of the primary file system 106 (i.e., source file system) in case of disaster to the primary file system 106 (i.e., source file system). There is further shown that the primary file system 106 is configured to receive file-system operations (e.g., OPEN, WRITE DATA, DELETE, WRITE DATA, CLOSE FILE, and the like) from the user application 116 through the IO interceptor 204. Alternatively stated, the IO interceptor 204 forwards the file-system operations received from the user application 116 to the primary file system 106. Moreover, the IO interceptor 204 is configured to report the state changes (e.g., changes in CFT system or normal changes) to the memory controller 102. In response to, the memory controller 102 is configured to take one or more snapshots of the primary file system 106 and move the one or more snapshots to the snapshot shipper 206. The snapshot shipper 206 forwards the plurality of snapshots 208 of the primary file system 106 to the secondary file system 108. FIG. 3 is a diagram that illustrates different modes during continuous data protection and transition between different modes, in accordance with an embodiment of the present disclosure. FIG.3 is described in conjunction with elements from FIGs.1 and 2. With reference to FIG. 3, there is shown a diagram 300 that illustrates modes 302 to 308 during continuous data protection (CDP) and transition between different modes. In the diagram 300, there is further shown operations 310 to 322. At operation 310, the mode 302 of initial synchronization between the primary file system 106 and the secondary file system 108 is switched on. At operation 312, an error is detected in the initial synchronization and therefore, the mode 302 is started again. At operation 314, the initial synchronization is completed, after which the mode 302 of initial synchronization is switched to the mode 304 of snapshot interval (or intermediate mode). At operation 316, if the CDP mode of the primary file system 106 to the secondary file system 108 is successful, then the mode 304 (i.e., snapshot interval) is switched to the mode 306 (i.e., Normal mode). At operation 318, if the CDP of the primary file system 106 to the secondary file system 108 is erroneous, then the mode 304 (i.e., snapshot interval) is switched to the mode 308 (i.e., CFT mode). Moreover, in using the snapshot-based data protection (SDP) mode, the mode 304 (i.e., snapshot interval) can be switched to the mode 308 (i.e., the CFT mode). At operation 320, when operating in the SDP mode, the mode 308 (i.e., CFT mode) is closed. And, when operating in the CDP mode, the mode 308 is switched to the mode 306 (i.e., normal mode). At operation 322, when error occurs in operating the CDP mode, the mode 306 (i.e., normal mode) is switched to the mode 308 (i.e., CFT mode). FIG.4 is a flowchart of a method for a backup system, in accordance with an embodiment of the present disclosure. FIG.4 is described in conjunction with elements from FIGs.1, 2, and 3. With reference to FIG.4, there is shown a flowchart of method 400 for the backup system 104. The method 400 includes steps 402 and 404. There is provided the method 400 for the backup system 104, where the primary file system 106 is backed up to the secondary file system 108. The backup of the data stored on the primary file system 106 to the secondary file system 108 supports retrieval of data on failure of the primary file system 106. At step 402, the method 400 includes, receiving, by the primary file system 106, a memory command from the user application 116. The received memory command enables the changes in storage location(s) of the data of the primary file system 106. At step 404, the method 400 further includes, determining that the memory command is a DELETE command and then replacing the DELETE command with a MOVE command to be performed by the primary file system 106. The received memory command is determined as the DELETE command by the memory controller 102, then the memory controller 102 is configured to replace the DELETE command with the MOVE command to move the file to a temporary folder. In accordance with embodiment, the received memory command comprises the first hard link reference to file address, and where the memory controller 102 is further configured to retrieve the file address from the first hard link and structure the MOVE command to be from the file address to the file in the temporary folder, wherein the file is named as the file address. The memory controller 102 is configured to operate in the continuous backup mode and where the memory controller 102 is further configured to receive the second memory command. The memory controller 102 is further configured to determine that the second memory command is the CLOSE FILE command indicating the second hard link reference, and in response thereto add the DELETE command for the file in the temporary folder, where the file is named as the file address according to the second hard link reference. The first hard link reference is the same as the second hard link reference, whereby the file name for the MOVE command is the same as for the DELETE command. The memory controller 102 is further configured to determine that the second hard link reference is for the same file as the first hard link reference prior to adding the DELETE command. The file address is the inode number. The continuous backup mode is either the CDP mode or the replication mode. The memory controller 102 is further configured to operate in the snapshot mode and where the memory controller 102 is further configured to, when operating in the snapshot mode determine the number of hard links for the file indicated by the first hard link and if the number of hard links is more than 1 then, replace the DELETE command and if the number of hard links is 1 then, refrain from replacing the DELETE command. The memory controller 102 is further configured to determine the number of hard links by utilizing the file statistics register. The memory controller 102 is further configured to determine that an end point of the snapshot process has been reached and in response thereto delete any files in the temporary folder. The memory controller 102 is further configured to delete any files in the temporary folder generated by the memory controller 102 during the snapshot process and named as the file address. The steps 402 and 404 are only illustrative, and other alternatives can also be provided where one or more steps are added, one or more steps are removed, or one or more steps are provided in a different sequence without departing from the scope of the claim herein. There is further provided, a computer program product comprising program instructions for performing the method 400 when executed by one or more processors (e.g., the memory controller 102) in the file system, such as the primary file system 106 and the secondary file system 108. The computer program product is implemented as an algorithm, embedded in a software stored in a non-transitory computer-readable storage medium. The non-transitory computer-readable storage means may include but are not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. Examples of implementation of computer-readable storage medium, but are not limited to, Electrically Erasable Programmable Read-Only Memory (EEPROM), Random Access Memory (RAM), Read Only Memory (ROM), Hard Disk Drive (HDD), Flash memory, a Secure Digital (SD) card, Solid-State Drive (SSD), a computer-readable storage medium, and/or CPU cache memory. Modifications to embodiments of the present disclosure described in the foregoing are possible without departing from the scope of the present disclosure as defined by the accompanying claims. Expressions such as "including", "comprising", "incorporating", "have", "is" used to describe and claim the present disclosure are intended to be construed in a non-exclusive manner, namely allowing for items, components or elements not explicitly described also to be present. Reference to the singular is also to be construed to relate to the plural. The word "exemplary" is used herein to mean "serving as an example, instance or illustration". Any embodiment described as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments or to exclude the incorporation of features from other embodiments. The word "optionally" is used herein to mean "is provided in some embodiments and not provided in other embodiments". It is appreciated that certain features of the present disclosure, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the disclosure, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable combination or as suitable in any other described embodiment of the disclosure.

Claims

CLAIMS 1. A memory controller (102) for a backup system (104), where a primary file system (106) is backed up to a secondary file system (108), wherein the primary file system (106) receives a memory command from a user application (116), wherein the memory controller (102) is configured to determine that the memory command is a DELETE command and then replace the DELETE command with a MOVE command to be performed by the primary file system (106).
2. The memory controller (102) according to claim 1, wherein the received memory command comprises a first hard link reference to file address, and wherein the memory controller (102) is further configured to retrieve the file address from the first hard link and structure the MOVE command to be from the file address to a file in a temporary folder, wherein the file is named as the file address.
3. The memory controller (102) according to claim 2, wherein the memory controller (102) is configured to operate in a continuous backup mode and wherein the memory controller (102) is further configured to: receive a second memory command; determine that the second memory command is a CLOSE FILE command indicating a second hard link reference, and in response thereto add a DELETE command for a file in the temporary folder, wherein the file is named as the file address according to the second hard link reference.
4. The memory controller (102) according to claim 2 or 3, wherein the file address is an inode number.
5. The memory controller (102) according to claim 3 or 4, wherein the continuous backup mode is a Continuous Data Protection, CDP, mode.
6. The memory controller (102) according to claim 3 or 4, wherein the continuous backup mode is a Replication mode.
7. The memory controller (102) according to any of claims 3 to 6, wherein the first hard link reference is the same as the second hard link reference, whereby the file name for the MOVE command is the same as for the DELETE command.
8. The memory controller (102) according to any of claims 3 to 7, wherein the memory controller (102) is configured to determine that the second hard link reference is for the same file as the first hard link reference prior to adding the DELETE command.
9. The memory controller (102) according to any previous claim, wherein the memory controller (102) is further configured to operate in a snapshot, and wherein the memory controller (102) is further configured to, when operating in the snapshot mode: determine a number of hard links for the file indicated by the first hard link; and if the number of hard links is more than 1 then replace the DELETE command as in claim 1, and if the number of hard links is 1 then refrain from replacing the DELETE command.
10. The memory controller (102) according to claim 9, wherein the memory controller (102) is further configured to determine the number of hard links by utilizing a file statistics register.
11. The memory controller (102) according to claim 2 and 10, wherein the memory controller (102) is further configured to determine that an end point of a snapshot process has been reached and in response thereto delete any files in the temporary folder.
12. The memory controller (102) according to claim 11, wherein the memory controller (102) is further configured to delete any files in the temporary folder generated by the memory controller (102) during the snapshot process and named as a file address.
13. A method (400) for a backup system (104), where a primary file system (106) is backed up to a secondary file system (108), wherein the primary file system (106) receives a memory command from a user application (116), wherein the method (400) comprises determining that the memory command is a DELETE command and then replacing the DELETE command with a MOVE command to be performed by the primary file system (106).
14. A computer program product comprising program instructions for performing the method (400) according to claim 13, when executed by one or more processors in a file system.
PCT/EP2022/087184 2022-12-21 2022-12-21 Memory controller and method for backup system Ceased WO2024132126A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/EP2022/087184 WO2024132126A1 (en) 2022-12-21 2022-12-21 Memory controller and method for backup system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2022/087184 WO2024132126A1 (en) 2022-12-21 2022-12-21 Memory controller and method for backup system

Publications (1)

Publication Number Publication Date
WO2024132126A1 true WO2024132126A1 (en) 2024-06-27

Family

ID=84829760

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2022/087184 Ceased WO2024132126A1 (en) 2022-12-21 2022-12-21 Memory controller and method for backup system

Country Status (1)

Country Link
WO (1) WO2024132126A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182325A1 (en) * 2002-03-19 2003-09-25 Manley Stephen L. System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping
US20140181033A1 (en) * 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to track deleted files
US9031913B1 (en) * 2011-12-28 2015-05-12 Emc Corporation File replication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030182325A1 (en) * 2002-03-19 2003-09-25 Manley Stephen L. System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping
US9031913B1 (en) * 2011-12-28 2015-05-12 Emc Corporation File replication
US20140181033A1 (en) * 2012-12-21 2014-06-26 Commvault Systems, Inc. Systems and methods to track deleted files

Similar Documents

Publication Publication Date Title
US12117911B2 (en) Remote data replication method and system
US8015441B2 (en) Verification of computer backup data
US9396073B2 (en) Optimizing restores of deduplicated data
JP6309103B2 (en) Snapshot and clone replication
CN109726044B (en) Efficient restoration of multiple files from deduplication storage based on data chunk names
EP3477482B1 (en) Intelligent snapshot tiering
US7631018B2 (en) Flashback database
US9727273B1 (en) Scalable clusterwide de-duplication
US9043280B1 (en) System and method to repair file system metadata
JP2014526748A (en) Efficient data recovery
US10628298B1 (en) Resumable garbage collection
CN116303325A (en) Method, system, equipment and storage medium for protecting remote copy data
CN111143112B (en) Method, apparatus and computer readable storage medium for restoring metadata
US8595271B1 (en) Systems and methods for performing file system checks
CN114356849B (en) Data management method and device of file system, electronic equipment and storage medium
US11645333B1 (en) Garbage collection integrated with physical file verification
WO2024132126A1 (en) Memory controller and method for backup system
US10372683B1 (en) Method to determine a base file relationship between a current generation of files and a last replicated generation of files
US10078641B1 (en) Optimized lock detection in a change block tracker
US12475003B2 (en) Namespace recovery for key-value store (KVS)-persisted metadata
WO2024132178A1 (en) Continuous data protection controller, storage device controller, and methods for use in same
HK40066401B (en) Data management method for file system, apparatus, electronic device, and storage medium
HK40066401A (en) Data management method for file system, apparatus, electronic device, and storage medium
WO2025149177A1 (en) Method and system for copying production database storage to non-native backup storage
JP2007257416A (en) Data restoration method in replication system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22838838

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22838838

Country of ref document: EP

Kind code of ref document: A1