IP Library Granted Patent US 10,990,567
Granted Patent B2
US 10,990,567 · App. 16/043,483 · Granted Apr 27, 2021

Automated decision engine for setting I/O service level objectives for I/O tagging

Inventors: Drew P. Tonnesen (Bedford, NH); Yaron Dar (Sudbury, MA); Felix Shvaiger (Nashua, NH); Arieh Don (Newton, MA)
Assignee: EMC IP Holding Company LLC
G06F16/211G06F16/2282
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 10,990,567
App. No.
16/043,483
Granted
Apr 27, 2021
Kind
B2
Abstract

Techniques for processing I/O operations may include: receiving, an I/O operation including a tag value denoting a process of a database application that issued the I/O operation; determining, in accordance with the tag value, whether the I/O operation is directed to a data file storing content of a database or a log file of recorded operations of the database; and responsive to determining the I/O operation is directed to a data file storing content of the database, performing processing including: determining a current configuration setting of the database that indicates whether the database is configured for use with the database application as an in-memory database; and determining, in accordance with current configuration setting of the database, a first service level objective for the I/O operation, wherein the first service level objective for the I/O operation is a default service level objective or a revised service level objective.

Claims (56)

1. A computer implemented method of processing I/O (input/output) operations comprising:

receiving, using a processor at a data storage system, an I/O operation including a tag value denoting a process of a database application that issued the I/O operation;

determining, using a processor and in accordance with the tag value of the I/O operation, whether the I/O operation is directed to a data file storing content of a database or a log file of recorded operations of the database; and

responsive to determining the I/O operation is directed to the data file storing content of the database, performing first processing using a processor, the first processing including:

determining a current configuration setting of the database indicating whether the database is configured for use with the database application as an in-memory database; and

determining, in accordance with the current configuration setting of the database, a first service level objective for the I/O operation, wherein the first service level objective for the I/O operation is a default service level objective or a revised service level objective.

2. The computer implemented method of claim 1 , wherein the database is configured as an in-memory database and the database is stored in memory of a host that includes the database application and the process that issued the I/O operation.

3. The computer implemented method of claim 2 , wherein the first processing includes:

determining whether the revised service level objective denotes a higher level of performance than the default service level objective; and

responsive to determining the revised service level objective denotes a higher level of performance than the default service level objective, setting the first service level objective for the I/O operation to the default service level objective and otherwise setting the first service level objective for the I/O operation to the revised service level objective.

4. The computer implemented method of claim 2 , further comprising:

asynchronously flushing updates of the in-memory database from the host to the data storage system, wherein the updates are applied to a copy of the database stored on non-volatile storage of the data storage system.

5. The computer implemented method of claim 1 , wherein the database is configured as an on-disk database stored on the data storage system.

6. The computer implemented method of claim 5 , wherein the first processing includes:

determining whether the revised service level objective denotes a higher level of performance than the default service level objective; and

responsive to determining the revised service level objective denotes a higher level of performance than the default service level objective, setting the first service level objective for the I/O operation to the revised service level objective and otherwise setting the first service level objective for the I/O operation to the default service level objective.

7. The computer implemented method of claim 1 , further comprising:

monitoring I/Os received on the data storage system and extracting first information regarding the received I/Os, the first information including whether each of the received I/Os is a read or write, an I/O size of each of the received I/Os, and a tag value of each of the received I/Os; and

updating I/O statistics in accordance with the first information, wherein the I/O statistics denote, for each of a plurality of defined tag values, an I/O pattern observed in connection with received I/O operations having said each defined tag value.

8. The computer implemented method of claim 7 , wherein the database application includes the process and a second process each associated with a different one of the plurality of defined tag values, and wherein a first portion of the I/O statistics denotes a first I/O pattern for the process of the database application and a second portion of the I/O statistics denotes a second I/O pattern for the second process of the database application.

9. The computer implemented method of claim 8 , further comprising:

matching first I/O statistics for the database application with one of a plurality of I/O profiles, wherein the first I/O statistics for the database application include the first portion and the second portion of the I/O statistics;

determining, in accordance with the one I/O profile matching the first I/O statistics, an expected database configuration setting denoting whether a database storing content associated with the one I/O profile is configured as in-memory or on-disk; and

setting the current configuration setting of the database to the expected database configuration setting associated with the one I/O profile matching the first I/O statistics for the database application.

10. A system comprising:

a processor; and

a memory comprising code stored thereon that, when executed, performs a method of processing I/O (input/output) operations comprising:

receiving, at a data storage system, an I/O operation including a tag value denoting a process of a database application that issued the I/O operation;

determining, in accordance with the tag value of the I/O operation, whether the I/O operation is directed to a data file storing content of a database or a log file of recorded operations of the database; and

responsive to determining the I/O operation is directed to the data file storing content of the database, performing first processing including:

determining a current configuration setting of the database indicating whether the database is configured for use with the database application as an in-memory database; and

determining, in accordance with the current configuration setting of the database, a first service level objective for the I/O operation, wherein the first service level objective for the I/O operation is a default service level objective or a revised service level objective.

11. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method of processing I/O (input/output) operations comprising:

receiving, at a data storage system, an I/O operation including a tag value denoting a process of a database application that issued the I/O operation;

determining, in accordance with the tag value of the I/O operation, whether the I/O operation is directed to a data file storing content of a database or a log file of recorded operations of the database; and

responsive to determining the I/O operation is directed to the data file storing content of the database, performing first processing including:

determining a current configuration setting of the database indicating whether the database is configured for use with the database application as an in-memory database; and

determining, in accordance with the current configuration setting of the database, a first service level objective for the I/O operation, wherein the first service level objective for the I/O operation is a default service level objective or a revised service level objective.

12. The non-transitory computer readable medium of claim 11 , wherein the database is configured as an in-memory database and the database is stored in memory of a host that includes the database application and the process that issued the I/O operation.

13. The non-transitory computer readable medium of claim 12 , wherein the first processing includes:

determining whether the revised service level objective denotes a higher level of performance than the default service level objective; and

responsive to determining the revised service level objective denotes a higher level of performance than the default service level objective, setting the first service level objective for the I/O operation to the default service level objective and otherwise setting the first service level objective for the I/O operation to the revised service level objective.

14. The non-transitory computer readable medium of claim 12 , wherein the method further comprises:

asynchronously flushing updates of the in-memory database from the host to the data storage system, wherein the updates are applied to a copy of the database stored on non-volatile storage of the data storage system.

15. The non-transitory computer readable medium of claim 11 , wherein the database is configured as an on-disk database stored on the data storage system.

16. The non-transitory computer readable medium of claim 15 , wherein the first processing includes:

determining whether the revised service level objective denotes a higher level of performance than the default service level objective; and

responsive to determining the revised service level objective denotes a higher level of performance than the default service level objective, setting the first service level objective for the I/O operation to the revised service level objective and otherwise setting the first service level objective for the I/O operation to the default service level objective.

17. The non-transitory computer readable medium of claim 11 , wherein the method further includes:

monitoring I/Os received on the data storage system and extracting first information regarding the received I/Os, the first information including whether each of the received I/Os is a read or write, an I/O size of each of the received I/Os, and a tag value of each of the received I/Os; and

updating I/O statistics in accordance with the first information, wherein the I/O statistics denote, for each of a plurality of defined tag values, an I/O pattern observed in connection with received I/O operations having said each defined tag value.

18. The non-transitory computer readable medium of claim 17 , wherein the database application includes the process and a second process each associated with a different one of the plurality of defined tag values, and wherein a first portion of the I/O statistics denotes a first I/O pattern for the process of the database application and a second portion of the I/O statistics denotes a second I/O pattern for the second process of the database application.

19. The non-transitory computer readable medium of claim 18 , wherein the method further includes:

matching first I/O statistics for the database application with one of a plurality of I/O profiles, wherein the first I/O statistics for the database application include the first portion and the second portion of the I/O statistics;

determining, in accordance with the one I/O profile matching the first I/O statistics, an expected database configuration setting denoting whether a database storing content associated with the one I/O profile is configured as in-memory or on-disk; and

setting the current configuration setting of the database to the expected database configuration setting associated with the one I/O profile matching the first I/O statistics for the database application.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 25, 2018
From: SHVAIGER, FELIX
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046454/0591 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 24, 2018
From: TONNESEN, DREW P.; DAR, YARON; DON, ARIEH
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 046442/0152 →