IP Library › Granted Patent US 12,321,605
Granted Patent B2
US 12,321,605 · App. 18/310,800 · Granted Jun 3, 2025

Optimizing input/output operations per section of remote persistent storage

Inventors: Pramod V Gavali (Pune, IN); Shaikh Ikhlaque Ali (Bangalore, IN); Vinod A. Valecha (Pune, IN); Akash V. Gunjal (Belgaum, IN)
Assignee: International Business Machines Corporation
G06F3/0613G06F3/0646G06F3/067
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 12,321,605
App. No.
18/310,800
Granted
Jun 3, 2025
Kind
B2
Abstract

A computer-implemented method for optimizing input/output (I/O) operations per second (IOPS) of remote storage. The computer-implemented method includes receiving requests for read operations and write operations from users of an application, dynamically creating batches into which the requests can be aggregated, aggregating the requests into the batches and asynchronously passing each completed batch to the remote storage.

Claims (71)

1. A computer-implemented method for optimizing input/output (I/O) operations per second (IOPS) of remote storage, the computer-implemented method comprising:

receiving requests for read operations and write operations from users of an application;

dynamically creating batches into which the requests can be aggregated;

aggregating the requests into the batches; and

asynchronously passing each completed batch to the remote storage,

wherein the aggregating of the requests into the batches comprises grouping requests of a same type together and finding a batch for each request,

the finding of the batch for each request comprising sequentially:

first identifying of a first match between a table name describing a type of the request and a table name of a batch list,

second identifying of a second match, in an event the first match is not identified, between the table name describing the type of the request and a table name of a foreign key batch list such that the second identifying differs from the first identifying, and

third identifying of a third match, in an event the second match is not identified, between the table name describing the type of the request and a table name of a schema batch list such that the third identifying differs from the first and second identifying.

2. The computer-implemented method according to claim 1 , further comprising asynchronously passing each completed batch and each uncompleted batch to the remote storage in an event of a restart of the application.

3. The computer-implemented method according to claim 1 , further comprising:

receiving additional requests for read/write operations from the users;

distinguishing the additional requests from the requests; and

passing the additional requests to local storage.

4. The computer-implemented method according to claim 3 , further comprising aggregating the additional requests into batches with the requests.

5. The computer-implemented method according to claim 1 , wherein:

the dynamically creating of the batches is executed in accordance with batch quantity and batch frequency determinations,

the batch quantity determinations are based on pattern identification in database traffic data, and

the batch frequency determinations are based on relative quantities of the read operations and the write operations.

6. A computer program product for optimizing input/output (I/O) operations per second (IOPS) of remote storage, the computer program product comprising one or more computer readable storage media having computer readable program code collectively stored on the one or more computer readable storage media, the computer readable program code being executed by a processor of a computer system to cause the computer system to perform a method comprising:

receiving requests for read operations and write operations from users of an application;

dynamically creating batches into which the requests can be aggregated;

aggregating the requests into the batches; and

asynchronously passing each completed batch to the remote storage,

wherein the aggregating of the requests into the batches comprises grouping requests of a same type together and finding a batch for each request,

the finding of the batch for each request comprising sequentially:

first identifying of a first match between a table name describing a type of the request and a table name of a batch list,

second identifying of a second match, in an event the first match is not identified, between the table name describing the type of the request and a table name of a foreign key batch list such that the second identifying differs from the first identifying, and

third identifying of a third match, in an event the second match is not identified, between the table name describing the type of the request and a table name of a schema batch list such the third identifying differs from the first and second identifying.

7. The computer program product according to claim 6 , further comprising asynchronously passing each completed batch and each uncompleted batch to the remote storage in an event of a restart of the application.

8. The computer program product according to claim 6 , further comprising:

receiving additional requests for read/write operations from the users;

distinguishing the additional requests from the requests; and

passing the additional requests to local storage.

9. The computer program product according to claim 8 , further comprising aggregating the additional requests into batches with the requests.

10. The computer program product according to claim 6 , wherein:

the dynamically creating of the batches is executed in accordance with batch quantity and batch frequency determinations,

the batch quantity determinations are based on pattern identification in database traffic data, and

the batch frequency determinations are based on relative quantities of the read operations and the write operations.

11. A computing system comprising:

a processor;

a memory coupled to the processor; and

one or more computer readable storage media coupled to the processor, the one or more computer readable storage media collectively containing instructions that are executed by the processor via the memory to implement a method for optimizing input/output (I/O) operations per second (IOPS) of remote storage comprising:

receiving requests for read operations and write operations from users of an application;

dynamically creating batches into which the requests can be aggregated;

aggregating the requests into the batches; and

asynchronously passing each completed batch to the remote storage,

wherein the aggregating of the requests into the batches comprises grouping requests of a same type together and finding a batch for each request,

the finding of the batch for each request comprising sequentially:

first identifying of a first match between a table name describing a type of the request and a table name of a batch list,

second identifying of a second match, in an event the first match is not identified, between the table name describing the type of the request and a table name of a foreign key batch list such that the second identifying differs from the first identifying, and

third identifying of a third match, in an event the second match is not identified, between the table name describing the type of the request and a table name of a schema batch list such that the third identifying differs from the first and second identifying.

12. The computing system according to claim 11 , further comprising asynchronously passing each completed batch and each uncompleted batch to the remote storage in an event of a restart of the application.

13. The computing system according to claim 11 , further comprising:

receiving additional requests for read/write operations from the users;

distinguishing the additional requests from the requests;

passing the additional requests to local storage.

14. The computing system according to claim 11 , wherein:

the dynamically creating of the batches is executed in accordance with batch quantity and batch frequency determinations,

the batch quantity determinations are based on pattern identification in database traffic data, and

the batch frequency determinations are based on relative quantities of the read operations and the write operations.

15. The computer-implemented method according to claim 1 , further comprising:

running an additional request on local storage and on the remote storage; and

combining results into a union of the running of the additional request on the local storage and the running of the additional request on the remote storage.

16. The computer program product according to claim 6 , wherein the method for the optimizing of the I/O IOPS of the remote storage further comprises:

running an additional request on local storage and on the remote storage; and

combining results into a union of the running of the additional request on the local storage and the running of the additional request on the remote storage.

17. The computing system according to claim 11 , wherein the method for the optimizing of the I/O IOPS of the remote storage further comprises:

running an additional request on local storage and on the remote storage; and

combining results into a union of the running of the additional request on the local storage and the running of the additional request on the remote storage.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2023
From: GAVALI, PRAMOD V; ALI, SHAIKH IKHLAQUE; VALECHA, VINOD A.; GUNJAL, AKASH V.
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 063508/0166 →
Continuity (1)
Related Publication 20240370171A1 · Nov 7, 2024
References Cited (7)
US 9785360B1 · Ravindranath · 2017 [cited by examiner]
US 20170371828A1 · Brewer · 2017 [cited by examiner]
US 20200401343A1 · Lan · 2020 [cited by examiner]
US 20220035574A1 · Cain · 2022 [cited by examiner]
US 20220335009A1 · Paul et al. · 2022 [cited by applicant]
Microsoft, “Microsoft Sync Framework—Product Information”, https://learn.microsoft.com/en-us/previous-versions/sql/synchronization/mt490617(v=msdn.10), (Retrieved: Mar. 21, 2023), 3 pages. [cited by applicant]
Xu, et al., “Performance Analysis of Containerized Applications on Local and Remote Storage,” In International Conference on Massive Storage Systems and Technology (MSST), 2017, 12 pages. [cited by applicant]
Cited By (1)
US 12,743,530