IP Library Granted Patent US 11,614,887
Granted Patent B2
US 11,614,887 · App. 17/729,218 · Granted Mar 28, 2023

Method and system for accelerating storage of data in write-intensive computer applications

Inventors: Guofeng Li (Dublin, IE); Ken Jinks (Dublin, IE); Ian Dowse (Dublin, IE); Alex Caldas Peixoto (Dublin, IE); Franciszek Korta (Dublin, IE)
Assignee: CORVIL LIMITED
G06F3/0656G06F3/0613G06F3/0619G06F3/0653G06F3/0683
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,614,887
App. No.
17/729,218
Granted
Mar 28, 2023
Kind
B2
Abstract

A method of optimising a service rate of a buffer in a computer system having memory stores of first and second type is described. The method selectively services the buffer by routing data to each of the memory store of the first type and the second type based on read/write capacity of the memory store of the first type.

Claims (39)

1. A method of controlling a service rate of a memory buffer in a system comprising a memory store of a first type and a memory store of a second type, the second type being different to the first type in having a lower write endurance, the system being configured to selectively service the memory buffer by selectively writing data from the memory buffer to each of the memory store of the first type and memory store of the second type, the method comprising:

monitoring write operations to the memory buffer to identify the rate of incoming data to the memory buffer, the write operations being resultant from incoming data to the system, the memory buffer having a known capacity of data that it can store;

monitoring a service rate of the memory buffer, the service rate being the rate at which the incoming data is written from the memory buffer to at least one of the memory store of the first type and the memory store of the second type;

using the monitored write operations and service rate to dynamically determining a cache-rate parameter, the cache rate parameter identifying a proportion of the data in the memory buffer to be written to each of the memory store of the first type and the memory store of the second type, the determined cache rate parameter being varied to ensure that the service rate of the memory buffer is at least equal to the rate of incoming data to the memory buffer;

using the determined cache-rate parameter to selectively read the data from the memory buffer and write that data to one of the memory store of the first type and memory store of the second type.

2. The method of claim 1 wherein the cache-rate parameter is a variable parameter, a value of the variable parameter controlling the proportion of the data from the memory buffer that is written to each of the memory store of the first type and the memory store of the second type, the proportion varying from all of the data being written to the memory store of the first type and none to the memory store of the second type to all of the data being written to the memory store of the second type and none to the memory store of the first type.

3. The method of claim 1 wherein the cache-rate parameter has a determined optimum value that optimizes a total combined write-rate of data to each of the memory store of the first type and the memory store of the second type.

4. The method of claim 3 wherein the optimum value is a calibrated value determined by monitoring a total data write-rate when the system is under load.

5. The method of claim 1 wherein the determined cache rate parameter is dynamically varied to ensure that volume of data within the memory buffer is below the capacity of the memory buffer.

6. The method of claim 1 wherein the cache-rate parameter selectively controls the writing of data to the memory store of the second type to ensure that the memory buffer has sufficient service capacity to store the incoming data.

7. The method of claim 1 comprising periodically refreshing the cache-rate parameter, a frequency of refresh of the cache-rate parameter being based on a capacity of the memory buffer, a maximum data rate of incoming traffic and a service capacity of the memory store of the first type.

8. The method of claim 1 comprising defining a write back parameter, the write back parameter controlling a write back rate at which data is written back from the memory store of the second type to the memory store of the first type.

9. The method of claim 8 comprising periodically refreshing the write back parameter, a frequency of refresh being based on a volume capacity of the memory buffer, a maximum data rate of incoming traffic and a service capacity of the memory store of the first type.

10. The method of claim 9 comprising periodically refreshing the cache-rate parameter, a frequency of refresh of the cache-rate parameter being based on a capacity of the memory buffer, a maximum data rate of incoming traffic and a service capacity of the memory store of the first type, and wherein the frequency of refresh of the write back parameter is equal to the frequency of refresh of the cache-rate parameter.

11. The method of claim 10 comprising defining a maximum write-back rate, the maximum write-back rate having a value sufficient to prevent the memory buffer from filling during time periods shorter than a refresh cycle of each of the cache-rate and write-back rate parameters and wherein the write back rate reduces the service rate of the memory buffer by an amount up to a value equal to the maximum write back rate.

12. The method of claim 1 wherein the memory store of the first type is an electromechanical type memory.

13. The method of claim 1 wherein the memory store of the second type is a flash type memory.

14. The method of claim 1 comprising monitoring usage of the memory store of the first type and adjusting cache rate parameter in response to that monitored usage.

15. The method of claim 14 wherein the monitored usage comprises at least one of data writing or data reading requests to the memory store of the first type.

16. The method of claim 15 wherein the monitored usage indicates demand for accelerated reading of data from the memory store of the first type, the adjusting the cache rate parameter effecting an increased usage of the memory store of the second type in response to that demand for accelerated reading.

17. The method of claim 1 comprising monitoring a wear-level parameter of the memory store of the second type, the wear-level parameter being a value related to a lifetime storage capacity of the memory store of the second type, the method further comprising adjusting the cache-rate parameter in response to variations in the monitored wear-level parameter.

18. The method of claim 17 wherein the wear-level parameter is a function of usage of the memory store of the second type, the method comprising monitoring usage of the memory store of the second type and based on a projected deviation from a preconfigured wear rate threshold modifying future usage of the memory store of the second type in read or write operations.

19. A non-transitory computer program storage device readable by a processor of a computer system and tangibly embodying a program of instructions executable by the processor of the computer system to perform method steps for reading data from memory, the method steps comprising:

monitoring write operations to the memory buffer, the write operations being resultant from incoming data to the system, the memory buffer having a known capacity of data that it can store;

monitoring a service rate of the memory buffer, the service rate being the rate at which the incoming data is written from the memory buffer to at least one of the memory store of the first type and the memory store of the second type;

using the monitored write operations and service rate to dynamically determine a cache-rate parameter, the cache rate parameter identifying a proportion of the data in the memory buffer to be written to each of the memory store of the first type and the memory store of the second type, the determined cache rate parameter being varied to ensure that the service rate of the memory buffer is at least equal to the rate of incoming data to the memory buffer;

using the cache-rate parameter to selectively read the data from the memory buffer and write that data to one of the memory store of the first type and memory store of the second type.

20. A computer system comprising:

a memory buffer defining a network interface for receiving network traffic;

a memory store of a first type and a memory store of a second type, the second type being different to the first type;

at least one processor;

the system being configured to selectively service the memory buffer by selectively writing data from the memory buffer to each of the memory store of the first type and memory store of the second type by:

monitoring write operations to the memory buffer, the write operations being resultant from incoming data to the system, the memory buffer having a known capacity of data that it can store;

monitoring a service rate of the memory buffer, the service rate being the rate at which the incoming data is written from the memory buffer to at least one of the memory store of the first type and the memory store of the second type

using the monitored write operations and service rate to dynamically determine a cache-rate parameter, the cache rate parameter identifying a proportion of the data in the memory buffer to be written to each of the memory store of the first type and the memory store of the second type, the determined cache rate parameter being varied to ensure that the service rate of the memory buffer is at least equal to the rate of incoming data to the memory buffer;

using the determined cache-rate parameter to selectively read the data from the memory buffer and write that data to one of the memory store of the first type and memory store of the second type.

21. The system of claim 20 wherein the memory store of the first type is an electromechanical type memory and the memory store of the second type is a flash type memory.

22. The system of claim 20 wherein the system is further configured to:

monitor a wear-level parameter of the memory store of the second type, the wear-level parameter being a value related to a lifetime storage capacity of the memory store of the second type, and adjust the cache-rate parameter in response to variations in the monitored wear-level parameter; wherein the wear-level parameter is a function of usage of the memory store of the second type, the method comprising monitoring usage of the memory store of the second type and based on a projected deviation from a preconfigured wear rate threshold modifying future usage of the memory store of the second type in read or write operations.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Jul 10, 2026
From: OBSIDIAN AGENCY SERVICES, INC., AS COLLATERAL AGENT
To: CORVIL LIMITED
Reel/Frame 075237/0803 →
SECURITY INTEREST Recorded Jul 10, 2026
From: CORVIL LIMITED
To: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
Reel/Frame 075239/0094 →
SECURITY INTEREST Recorded Dec 13, 2024
From: CORVIL LIMITED
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 069632/0457 →
RELEASE OF SECURITY INTEREST Recorded Jan 29, 2024
From: WESTERN ALLIANCE BANK
To: PICO QUANTITATIVE TRADING LLC; SPRYWARE, LLC; CORVIL LIMITED; CORVIL, INC.; PICO QUANTITATIVE TRADING HOLDINGS LLC
Reel/Frame 066283/0698 →
SECURITY INTEREST Recorded Feb 7, 2023
From: PICO QUANTITATIVE TRADING LLC; SPRYWARE, LLC; CORVIL LIMITED; CORVIL, INC.; PICO QUANTITATIVE TRADING HOLDINGS LLC
To: WESTERN ALLIANCE BANK
Reel/Frame 062614/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 26, 2022
From: LI, GUOFENG; JINKS, KEN; DOWSE, IAN; PEIXOTO, ALEX CALDAS; KORTA, FRANCISZEK
To: CORVIL LIMITED
Reel/Frame 059732/0596 →
Continuity (2)
Continuation 16911905 · Jun 25, 2020
Related Publication 20220253241A1 · Aug 11, 2022