Methods for using log entries and heat zone thresholds in data servers for persistent memory
By logging memory writes on a temporary allocation unit and managing frequent writes with heat zones, the method addresses inefficiencies in persistent memory systems, improving performance and reducing resource load, thus optimizing byte-addressable write operations.
Patent Information
- Application Number
- PCT/EP2024/069411
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-07-09
- Publication Date
- 2026-01-15
AI Technical Summary
Existing methods for managing byte-addressable writes in persistent memory systems result in significant delays and inefficiencies due to cache exhaustion and high resource consumption, particularly when using RDMA and SSD tiering.
Implementing a method that logs memory writes on a temporary allocation unit and manages frequent writes using heat zones, optimizing performance by directly handling writes when a threshold is exceeded, reducing the load on replica CPU and SSD in favor of RDMA bandwidth and primary CPU resources.
This approach reduces major delays and complexity in byte addressing, ensuring efficient and timely data management by managing frequent writes using heat zones to prevent cache exhaustion and optimize performance.
Smart Images

Figure EP2024069411_15012026_PF_FP_ABST
Abstract
Description
[0001] METHODS FOR USING LOG ENTRIES AND HEAT ZONE THRESHOLDS IN DATA SERVERS FOR
[0002] PERSISTENT MEMORY
[0003] TECHNICAL FIELD
[0004] The disclosure relates generally to high performance access in enterprise and cloud (networked) distributed server, and more particularly, the disclosure relates to a method for use in a persistent memory system including a primary data server and a replication data server. Moreover, the disclosure relates to a method for use in a primary data server in a persistent memory system further including a replication data server, and a method for use in a replication data server in a persistent memory system further comprising a primary data server.
[0005] BACKGROUND
[0006] Persistent memory, PM is a memory technology that includes any method or apparatus for efficiently storing data structures such that they can continue to be accessed using memory instructions or memory application programming interfaces, APIs even after the process that created or last modified them has ended. However, compared to non-volatile random-access memory (NVRAM), the PM is more closely linked to the concept of persistence emphasizing program state that exists outside a fault zone of a process that created it. The process is a program under execution. The fault zone of the process is that subset of program state which could be corrupted by the process continuing to execute after incurring a fault, for instance due to an unreliable component used in the computer executing the program. However, unlike regular memory, the data in the PM is persistent and remains intact even after power loss. The performance characteristics of the PM vary based on how it is implemented, but they are generally near an order magnitude closer to those of volatile memory.
[0007] To implement the PM with maximum benefits in distributed systems, technologies such as Remote Direct Memory Access, RDMA are utilized. Efficient, memory-like access is the defining characteristic of the PM. RDMA provides one-sided operations, such as Read, and Write, allowing access to remote memory without involving central processing unit, CPU on the target or responder side. In RDMA, access control is managed by Memory Regions, MRs. These MRs are registered to the Remote Direct Memory Access network card, RNIC to enable secure and efficient data transfer. Other low-latency methods that allow byte-grain access to data also qualify, provided they offer similar efficiency and direct memory access.
[0008] The capabilities of the PM extend beyond non-volatility of stored bits. For instance, the loss of key metadata, such as page table entries or other constructs that translate virtual addresses to physical addresses, may render durable bits non-persistent. Hence, PM resembles more abstract forms of computer storage, such as file systems. Almost all existing PM technologies implement at least a basic file system that can be used for associating names or identifiers with stored extents, and at a minimum provide file system methods that can be used for naming and allocating such extents.
[0009] Using replication from PM to PM is fast but increases the cost of the solution. To reduce costs, solid state drive, SSD tiering can be added to the remote replica as a lower tier. SSDs are non-volatile storage devices that use flash memory to store data, offering faster performance and higher reliability compared to traditional hard drives. To push data from the primary to the replica, single-sided RDMA writes are used to a temporary persistent journal, which leverages MRs for secure data management. This data is then tiered to near SSD, balancing performance and cost efficiency. When access to an MR is no longer allowed, the MR can be invalidated. Attempting to access an invalidated MR triggers a critical network error and terminates the RDMA connection between the client and server. While the combined approach of using the RDMA for data transfer and SSD tiering is generally effective. However, the combined approach results in cache exhaustion if the data is not de-staged from cache to disk in a timely manner. An existing system implements coalescing method to prevent cache exhaustion. Implementing the coalescing method re-orders duplicate writes held in cache and writes them to the SSD in sequential stripes. This method works well for sector-sized, usually 512 or 4096 bytes, and larger data. However, for byte-addressable writes, the coalescing method would be very write-intensive and inefficient.
[0010] The impact of coalescing method on performance and complexity is significant, especially for byte addressing. Using coalescing method for byte-addressable writes results major delays to the replication process, which is problematic given the speed of persistent memory and RDMA. Additionally, byte-addressable writes can be as short as 4 bytes, which would require excessive resources to handle efficiently.
[0011] Therefore, there arises a need to address the aforementioned technical problems / drawbacks for high performance access in enterprise and cloud (networked) distributed storage.
[0012] SUMMARY
[0013] It is an object of the disclosure to provide a method for use in a persistent memory system including a primary data server and a replication data server, a method for use in a primary data server in a persistent memory system further including a replication data server, and a method for use in a replication data server in a persistent memory system further including a primary data server.
[0014] This object is achieved by the features of the independent claims. Further, implementation forms are apparent from the dependent claims, the description, and the figures.
[0015] According to a first aspect, there is provided a method for use in a persistent memory system including a primary data server and a replication data server. The method includes receiving a memory write by the primary data server. The memory write indicates a write operation for an allocation unit and in response thereto. The method includes writing a log entry by the primary data server to a replication log in the replication data server. The log entry includes an indication of the write operation. The method includes reading at least one replication allocation unit in the replication data server corresponding to the allocation unit(s) of the write operation(s) in the replication log and storing the replication allocation in a persistent temporary allocation unit. The method includes execute log entries in the replication log on the persistent temporary allocation unit. The method includes writing the persistent temporary allocation unit to the replication allocation unit. The method includes determining a number of writes by the primary data server to the allocation unit. The method includes determining whether the number of writes during a time period exceeds a heat zone threshold. The method includes writing the allocation unit of the primary data server to the replication allocation unit of the replication data server instead of writing the log entry to the replication data server. The method includes deleting the log entries by the replication data server for the allocation unit in the replication log.
[0016] By implementing this method, major delays in the replication for byte addressing can be reduced by directly handling frequent writes when a heat zone threshold is exceeded. By efficiently managing addressable writes, performance of the persistent memory system is improved and complexity for byte addressing is reduced. By implementing this method efficient and timely data management in persistent memory systems can be ensured. By implementing this method, the load on the replica CPU and SSD can be reduced in favor of extra RDMA bandwidth and primary CPU resources. By implementing this method, frequent writes are managed using heat zones to optimize performance and prevent cache exhaustion.
[0017] Optionally, the method further includes the primary data server writing the allocation unit of the primary data server directly to the replication allocation unit of the replication data server and refraining from writing the allocation unit of the primary data server to the persistent temporary allocation unit. Optionally, the method further includes the primary data server determining a number of writes to the allocation unit by determining the number of writes for a partition of the allocation unit, and writing the allocation unit of the primary data server to the replication data server by writing the partition of the allocation unit to the replication data server.
[0018] Optionally, the memory write is addressed on a byte-level.
[0019] Optionally, the primary data server writes to the replication data server utilizing Remote Direct Memory Access, RDMA, writes.
[0020] According to a second aspect, there is provided a method for use in a primary data server in a persistent memory system further including a replication data server. The method includes receiving a memory write indicating a write operation for an allocation unit and in response thereto. The method includes writing a log entry to a replication log in the replication data server. The log entry includes an indication of the write operation. The method includes determining a number of writes to the allocation unit. The method includes determining whether the number of writes during a time period exceeds a heat zone threshold. The method includes writing the allocation unit of the primary data server to the replication allocation unit of the replication data server instead of writing the log entry to the replication data server.
[0021] By implementing this method major delays in replication for byte addressing can be reduced by directly handling frequent writes when a heat zone threshold is exceeded. By efficiently managing addressable writes, performance of the persistent memory system is improved and complexity for byte addressing is improved. By implementing this method efficient and timely data management in persistent memory systems can be ensured. By implementing this method, the load on the replica CPU and SSD can be reduced in favor of extra RDMA bandwidth and primary CPU resources. By implementing this method frequent writes are managed using heat zones to optimize performance and prevent cache exhaustion.
[0022] According to a third aspect, there is provided a method for use in a replication data server in a persistent memory system further including a primary data server. The method includes receiving a write of an allocation unit of the primary data server to the replication allocation unit of the replication data server instead of receiving a write of a log entry to the replication data server, and in response thereto. The method includes deleting the log entries for the allocation unit in the replication log.
[0023] By implementing this method major delays in replication for byte addressing can be reduced by directly handling frequent writes. By efficiently managing addressable writes, performance of the persistent memory system is improved and complexity for byte addressing can be reduced. By implementing this method, efficient and timely data management in persistent memory systems is ensured.
[0024] According to a fourth aspect, there is provided a computer program product including program instructions for performing the method according to any preceding claim, when executed by one or more processors in a persistent memory system.
[0025] Therefore, in contradistinction to the existing solutions, the method logs and executes memory write operations on a temporary allocation unit before committing them to the final replication server in a persistent memory system, and managing frequent writes by utilizing heat zones to optimize performance. This method reduces the load on the replica CPU and SSD in favor of extra RDMA bandwidth and primary CPU resources, managing frequent writes using heat zones to optimize performance and prevent cache exhaustion.
[0026] These and other aspects of the disclosure will be apparent from the implementation s) described below. BRIEF DESCRIPTION OF DRAWINGS
[0027] Implementations of the disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0028] FIG. 1 is a block diagram that illustrates a persistent memory system including a primary data server and a replication data server, in accordance with an implementation of the disclosure;
[0029] FIG. 2 illustrates an exemplary method for use in a primary data server in a persistent memory system further including a replication data server in accordance with an implementation of the disclosure;
[0030] FIG. 3 illustrates a method for use in a replication data server in a persistent memory system further including a primary data server in accordance with an implementation of the disclosure;
[0031] FIG. 4 is a flow diagram that illustrates a method for use in a persistent memory system including a primary data server and a replication data server in accordance with an implementation of the disclosure;
[0032] FIG. 5 is a flow diagram that illustrates a method for use in a primary data server in a persistent memory system further including a replication data server in accordance with an implementation of the disclosure;
[0033] FIG. 6 is a flow diagram that illustrates a method for use in a replication data server in a persistent memory system further including a primary data server in accordance with an implementation of the disclosure; and
[0034] FIG. 7 is an illustration of a computer system in which the various architectures and functionalities of the various previous implementations may be implemented.
[0035] DETAILED DESCRIPTION OF THE DRAWINGS
[0036] Implementations of the disclosure provide a method for use in a persistent memory system including a primary data server and a replication data server. Moreover, the disclosure relates to a method for use in a primary data server in a persistent memory system further including a replication data server, and a method for use in a replication data server in a persistent memory system further including a primary data server.
[0037] To make solutions of the disclosure more comprehensible for a person skilled in the art, the following implementations of the disclosure are described with reference to the accompanying drawings.
[0038] Terms such as "a first", "a second", "a third", and "a fourth" (if any) in the summary, claims, and foregoing accompanying drawings of the disclosure are used to distinguish between similar objects and are not necessarily used to describe a specific sequence or order. It should be understood that the terms so used are interchangeable under appropriate circumstances, so that the implementations of the disclosure described herein are, for example, capable of being implemented in sequences other than the sequences illustrated or described herein. Furthermore, the terms "include" and "have" and any variations thereof, are intended to cover a non-exclusive inclusion. For example, a process, a method, a system, a product, or a device that includes a series of steps or units, is not necessarily limited to expressly listed steps or units but may include other steps or units that are not expressly listed or that are inherent to such process, method, product, or device.
[0039] FIG. 1 is a block diagram that illustrates a persistent memory system 100 including a primary data server 102 and a replication data server 104 in accordance with an implementation of the disclosure. The persistent memory system 100 includes the primary data server 102 and the replication data server 104. The primary data server 102 receives a memory write indicating a write operation for an allocation unit 106. In response thereto, the primary data server 102 writes a log entry to a replication log in the replication data server 104. The log entry includes an indication of the write operation. The replication data server 104 includes at least one replication allocation unit 108, and a persistent temporary allocation unit 110. The replication data server 104 reads the at least one replication allocation unit 108 in the replication data server 104 corresponding to the allocation unit(s) 106 of the write operation(s) in the replication log and stores the replication allocation in the persistent temporary allocation unit 110. The replication data server 104 executes log entries in the replication log on the persistent temporary allocation unit 110.
[0040] The replication data server 104 writes the persistent temporary allocation unit 110 to the replication allocation unit 108. The primary data server 102 determines a number of writes by the primary data server 102 to the allocation unit 106. The primary data server 102 determines whether the number of writes during a time period exceeds a heat zone threshold. The primary data server 102 writes the allocation unit 106 to the replication allocation unit 108 of the replication data server 104 instead of writing the log entry to the replication data server 104. The primary data server 102 deletes the log entries for the allocation unit 106 in the replication log.
[0041] The persistent memory system 100 reduces major delays in the replication for byte addressing by directly handling frequent writes when a heat zone threshold is exceeded. By efficiently managing addressable writes, the persistent memory system 100 improves performance and reduces complexity for byte addressing. The persistent memory system 100 ensures efficient and timely data management. The persistent memory system 100 reduces the load on the replica CPU and SSD in favor of extra RDMA bandwidth and primary CPU resources, managing frequent writes using heat zones to optimize performance and prevent cache exhaustion.
[0042] Optionally, the primary data server 102 writes the allocation unit 106 directly to the replication allocation unit 108 of the replication data server 104 and refraining from writing the allocation unit of the primary data server 102 to the persistent temporary allocation unit 110.
[0043] Optionally, the primary data server 102 determines a number of writes to the allocation unit 106 by determining the number of writes for a partition of the allocation unit 106, and the primary data server 102 writes to the replication data server 104 by writing the partition of the allocation unit 106 to the replication data server 104.
[0044] Optionally, the memory write is addressed on a byte-level.
[0045] Optionally, the primary data server 102 writes to the replication data server 104 utilizing Remote Direct Memory Access, RDMA, writes.
[0046] FIG. 2 is a block diagram that illustrates a primary data server 202 in a persistent memory system 200 further including a replication data server 204 in accordance with an implementation of the disclosure. The primary data server 202 receives a memory write indicating a write operation for an allocation unit 214A. In response thereto, the primary data server 202 writes a log entry to a replication log 206 in the replication data server 204. The log entry includes an indication of the write operation. The primary data server 202 determines a number of writes to the allocation unit 214A. The primary data server 202 determines whether the number of writes during a time period exceeds a heat zone threshold. The primary data server 202 writes the allocation unit 214A of the primary data server 202 to a replication allocation unit 208 of the replication data server 204 instead of writing the log entry to the replication data server 204. The log entry in the replication log 206 is executed on a persistent temporary allocation unit 210. Optionally, solid state device, SSD 212 includes the replication allocation unit 208 of the replication data server 204. The replication allocation unit 208 may be a mirror copy of the log entry.
[0047] The allocation unit 214A may be partitioned based on the log entry. For example, 2 Megabytes, MB allocation unit is partitioned into 4 Kilo bytes.
[0048] The persistent memory system 200 reduces major delays in replication for byte addressing by directly handling frequent writes when a heat zone threshold is exceeded. By efficiently managing addressable writes, the persistent memory system 200 improves performance and reduces complexity for byte addressing, ensuring efficient and timely data management. The persistent memory system 200 reduces the load on the replica CPU and SSD 212 in favor of extra RDMA bandwidth and primary CPU resources, managing frequent writes using heat zones to optimize performance and prevent cache exhaustion.
[0049] FIG. 3 is a block diagram that illustrates a replication data server 304 in a persistent memory system 300 further including a primary data server 302 in accordance with an implementation of the disclosure. The replication data server 304 receives a write of an allocation unit 314 A of the primary data server 302 to a replication allocation unit 308 of the replication data server 304 instead of receiving a write of a log entry to the replication data server 304. In response thereto, the replication data server 304 deletes the log entries for the allocation unit 314 A in the replication log 306. The log entry in the replication log 306 is executed on a persistent temporary allocation unit 310.
[0050] Optionally, solid state device, SSD 312 includes the replication allocation unit 308 of the replication data server 304.
[0051] For example, an indirection table in a hash table data structure, or the first few levels of red-black tree primary may count heat zones by partitioning the allocation unit 314A and counting writes per time (iops). For each partition, if partition iops exceed a threshold, primary async writes the whole partition over RDMA to replica volatile memory replica takes partition and overwrites corresponding range in the replication allocation unit 308, then scrubs (or skips) relevant entries in replication log.
[0052] The persistent memory system 300 reduces major delays in replication for byte addressing by directly handling frequent writes. By efficiently managing addressable writes, they improve performance and reduce complexity for byte addressing, ensuring efficient and timely data management. The persistent memory system 300 reduces the load on the replica CPU and solid state device, SSD 312 in favor of extra RDMA bandwidth and primary CPU resources, managing frequent writes using heat zones to optimize performance and prevent cache exhaustion.
[0053] FIG. 4 is a flow diagram that illustrates a method for use in a persistent memory system including a primary data server and a replication data server in accordance with an implementation of the disclosure. At step 402, a memory write is received by the primary data server. The memory write indicates a write operation for an allocation unit and in response thereto. At step 404, a log entry is written by the primary data server to a replication log in the replication data server. The log entry includes an indication of the write operation. At step 406, at least one replication allocation unit in the replication data server is read corresponding to the allocation unit(s) of the write operation(s) in the replication log and the replication allocation is stored in a persistent temporary allocation unit. At step 408, log entries in the replication log are executed on the persistent temporary allocation unit. At step 410, the persistent temporary allocation unit is written to the replication allocation unit. At step 412, a number of writes is determined by the primary data server to the allocation unit. At step 414, whether the number of writes during a time period exceeds a heat zone threshold is determined. At step 416, the allocation unit of the primary data server is written to the replication allocation unit of the replication data server instead of writing the log entry to the replication data server. At step 418, the log entries are deleted by the replication data server for the allocation unit in the replication log.
[0054] By implementing this method major delays in the replication for byte addressing can be reduced by directly handling frequent writes when a heat zone threshold is exceeded. By efficiently managing addressable writes, performance of the persistent memory system is improved and complexity for byte addressing can be reduced. By implementing this method efficient and timely data management in persistent memory systems can be ensured. By implementing this method, the load on the replica CPU and SSD can be reduced in favor of extra RDMA bandwidth and primary CPU resources. By implementing this method, frequent writes are managed using heat zones to optimize performance and prevent cache exhaustion.
[0055] Optionally, the method further includes the primary data server writing the allocation unit of the primary data server directly to the replication allocation unit of the replication data server and refraining from writing the allocation unit of the primary data server to the persistent temporary allocation unit.
[0056] Optionally, the method further includes the primary data server determining a number of writes to the allocation unit by determining the number of writes for a partition of the allocation unit, and writing the allocation unit of the primary data server to the replication data server by writing the partition of the allocation unit to the replication data server.
[0057] Optionally, the memory write is addressed on a byte-level.
[0058] Optionally, the primary data server writes to the replication data server utilizing Remote Direct Memory Access, RDMA, writes.
[0059] A computer program product is provided including program instructions for performing this method, when executed by one or more processors in the persistent memory system.
[0060] FIG. 5 is a flow diagram that illustrates a method for use in a primary data server in a persistent memory system further including a replication data server in accordance with an implementation of the disclosure. At step 502, a memory writes indicating a write operation for an allocation unit is received and in response thereto. At step 504, a log entry is written to a replication log in the replication data server. The log entry includes an indication of the write operation. At step 506, a number of writes is determined to the allocation unit. At step 508, whether the number of writes during a time period exceeds a heat zone threshold is determined. At step 510, the allocation unit of the primary data server is written to the replication allocation unit of the replication data server instead of writing the log entry to the replication data server.
[0061] By implementing this method, major delays in replication for byte addressing can be reduced by directly handling frequent writes when a heat zone threshold is exceeded. By efficiently managing addressable writes, performance of the persistent memory system is improved and complexity for byte addressing can be reduced. By implementing this method efficient and timely data management in persistent memory systems can be ensured. By implementing this method, the load on the replica CPU and SSD can be reduced in favor of extra RDMA bandwidth and primary CPU resources. By implementing this method, frequent writes are managed using heat zones to optimize performance and prevent cache exhaustion.
[0062] The following pseudo-code describes the method for use in the primary data server
[0063] Replicate(payload, len, offset, replica):
[0064] # single sided rdma write pariton = replica. offset_to_partition(offset)
[0065] If ( partition. incIO() > Threshold): replica.copy_partition() else replica.add_log_entry (payload, len, off set) FIG. 6 is a flow diagram that illustrates a method for use in a replication data server in a persistent memory system further including a primary data server in accordance with an implementation of the disclosure. At step 602, a write of an allocation unit of the primary data server is received to a replication allocation unit of the replication data server instead of a write of a log entry is received to the replication data server, and in response thereto. At step 604, the log entry is deleted for the allocation unit in the replication log.
[0066] By implementing this method major delays in replication for byte addressing can be reduced by directly handling frequent writes. By efficiently managing addressable writes, performance of the persistent memory system is improved and complexity for byte addressing can be reduced. By implementing this method, efficient and timely data management in persistent memory systems can be ensured.
[0067] The following pseudo-code describes the method for use in the replication data server
[0068] Handle_replication_log(log):
[0069] # keep polling the replication log and apply
[0070] While True:
[0071] While notj>artition_interrupt(): entry = log.getNextEntry(): entry . apply _to_ssd() partition.apply_to_ssd() scrub_log_entry()
[0072] FIG. 7 is an illustration of a computer system in which the various architectures and functionalities of the various previous implementations may be implemented. As shown, the computer system 700 includes at least one processor 704 that is connected to a bus 702, wherein the computer system 700 may be implemented using any suitable protocol, such as PCI (Peripheral Component Interconnect), PCI-Express, AGP (Accelerated Graphics Port), Hyper Transport, or any other bus or point-to-point communication protocol (s). The computer system 700 also includes a memory 706.
[0073] Control logic (software) and data are stored in the memory 706 which may take a form of random-access memory (RAM). In the disclosure, a single semiconductor platform may refer to a sole unitary semiconductor-based integrated circuit or chip. It should be noted that the term single semiconductor platform may also refer to multi-chip modules with increased connectivity which simulate on-chip modules with increased connectivity which simulate on-chip operation, and make substantial improvements over utilizing a conventional central processing unit (CPU) and bus implementation. Of course, the various modules may also be situated separately or in various combinations of semiconductor platforms per the desires of the user.
[0074] The computer system 700 may also include a secondary server 710. The secondary server 710 includes, for example, a hard disk drive and a removable server drive, representing a floppy disk drive, a magnetic tape drive, a compact disk drive, digital versatile disk (DVD) drive, recording device, universal serial bus (USB) flash memory. The removable server drive at least one of reads from and writes to a removable server unit in a well-known manner.
[0075] Computer programs, or computer control logic algorithms, may be stored in at least one of the memory 706 and the secondary server 710. Such computer programs, when executed, enable the computer system 700 to perform various functions as described in the foregoing. The memory 706, the secondary server 710, and any other server are possible examples of computer- readable media.
[0076] In an implementation, the architectures and functionalities depicted in the various previous figures may be implemented in the context of the processor 704, a graphics processor coupled to a communication interface 712, an integrated circuit (not shown) that is capable of at least a portion of the capabilities of both the processor 704 and a graphics processor, a chipset (namely, a group of integrated circuits designed to work and sold as a unit for performing related functions, and so forth).
[0077] Furthermore, the architectures and functionalities depicted in the various previous-described figures may be implemented in a context of a general computer system, a circuit board system, a game console system dedicated for entertainment purposes, an application-specific system. For example, the computer system 700 may take the form of a desktop computer, a laptop computer, a server, a workstation, a game console, an embedded system.
[0078] Furthermore, the computer system 700 may take the form of various other devices including, but not limited to a personal digital assistant (PDA) device, a mobile phone device, a smart phone, a television, and so forth. Additionally, although not shown, the computer system 700 may be coupled to a network (for example, a telecommunications network, a local area network (LAN), a wireless network, a wide area network (WAN) such as the Internet, a peer-to-peer network, a cable network, or the like) for communication purposes through an I / O interface 708.
[0079] It should be understood that the arrangement of components illustrated in the figures described are exemplary and that other arrangement may be possible. It should also be understood that the various system components (and means) defined by the claims, described below, and illustrated in the various block diagrams represent components in some systems configured according to the subject matter disclosed herein. For example, one or more of these system components (and means) may be realized, in whole or in part, by at least some of the components illustrated in the arrangements illustrated in the described figures.
[0080] In addition, while at least one of these components are implemented at least partially as an electronic hardware component, and therefore constitutes a machine, the other components may be implemented in software that when included in an execution environment constitutes a machine, hardware, or a combination of software and hardware.
[0081] Although the disclosure and its advantages have been described in detail, it should be understood that various changes, substitutions, and alterations can be made herein without departing from the spirit and scope of the disclosure as defined by the appended claims.
Claims
CLAIMS1. A method for use in a persistent memory system (100, 200, 300) comprising a primary data server (102, 202, 302) and a replication data server (104, 204, 304), wherein the method comprises the primary data server (102, 202, 302) receiving a memory write indicating a write operation for an allocation unit (106, 214A, 314A) and in response thereto writing a log entry to a replication log (206, 306) in the replication data server (104, 204, 304), wherein the log entry comprises an indication of the write operation, and wherein the method further comprises the replication data server (104, 204, 304) reading at least one replication allocation unit (108, 208, 308) in the replication data server (104, 204, 304) corresponding to the allocation unit(s) (106, 214A, 314A) of the write operation(s) in the replication log (206, 306) and storing the replication allocation in a persistent temporary allocation unit (110, 210, 310), execute log entries in the replication log (206, 306) on the persistent temporary allocation unit (110, 210, 310) and then writing the persistent temporary allocation unit (110, 210, 310) to the replication allocation unit (108, 208, 308), wherein the method is characterized in that the method further comprises the primary data server (102, 202, 302) determining a number of writes to the allocation unit (106, 214A, 314A), determining whether the number of writes during a time period exceeds a heat zone threshold, and if so, writing the allocation unit (106, 214A, 314A) of the primary data server (102, 202, 302) to the replication allocation unit (108, 208, 308) of the replication data server (104, 204, 304) instead of writing the log entry to the replication data server (104, 204, 304), and wherein the method further comprises the replication data server (104, 204, 304) deleting the log entries for the allocation unit (106, 214A, 314A) in the replication log (206, 306).
2. The method according to claim 1, wherein the method further comprises writing the allocation unit (106, 214A, 314A) of the primary data server directly to the replication allocation unit (108, 208, 308) of the replication data server (104, 204, 304) and refraining from writing the allocation unit (106, 214A, 314A) of the primary data server (102, 202, 302) to the persistent temporary allocation unit (110, 210, 310).
3. The method according to claim 1 or 2, the method further comprises determining a number of writes by the primary data server (102, 202, 302) to the allocation unit (106, 214A, 314A) by determining the number of writes for a partition of the allocation unit (106, 214A, 314A), and writing the allocation unit (106, 214A, 314A) of the primary data server (102, 202, 302) to the replication data server (104, 204, 304) by writing the partition of the allocation unit (106, 214A, 314A) to the replication data server (104, 204, 304) .
4. The method according to any preceding claim, wherein the memory write is addressed on a byte-level.
5. The method according to any preceding claim, wherein the primary data server (102, 202, 302) writes to the replication data server (104, 204, 304) utilizing Remote Direct Memory Access, RDMA, writes.
6. A method for use in a primary data server (102, 202, 302) in a persistent memory system (100, 200, 300) further comprising a replication data server (104, 204, 304), wherein the method comprises the primary data server (102, 202, 302) receiving a memory write indicating a write operation for an allocation unit (106, 214A, 314A) and in response thereto writing a log entry to a replication log (206, 306) in the replication data server (104, 204, 304), wherein the log entry comprises an indication of the write operation, and wherein the method is characterized in that the method further comprises the primary data server (102, 202, 302) determining a number of writes to the allocation unit (106, 214A, 314A), determining whether the number of writes during a time period exceeds a heat zone threshold, and if so,writing the allocation unit (106, 214A, 314A) of the primary data server (102, 202, 302) to the replication allocation unit (108, 208, 308) of the replication data server (104, 204, 304) instead of writing the log entry to the replication data server (104, 204, 304).
7. A method for use in a replication data server (104, 204, 304) in a persistent memory system (100, 200, 300) further comprising a primary data server (102, 202, 302), wherein the method comprises the replication data server (104, 204, 304) receiving a write of an allocation unit (106, 214A, 314A) of the primary data server (102, 202, 302) to a replication allocation unit (108, 208, 308) of the replication data server (104, 204, 304) instead of writing a log entry to the replication data server (104, 204, 304), and in response thereto deleting the log entry for the allocation unit (106, 214A, 314A) in the replication log (206, 306).
8. A computer program product comprising program instructions for performing the method according to any preceding claim, when executed by one or more processors in a persistent memory system (100, 200, 300).