IP Library Granted Patent US 10,917,469
Granted Patent B2
US 10,917,469 · App. 15/465,782 · Granted Feb 9, 2021

Read performance enhancement by enabling read from secondary in highly available cluster setup

Inventors: Manoj Kumar Tiwari (Bangalore, IN); Avik Sil (Bangalore, IN); Swamy Gowda Jayaramu (Bangalore, IN); Shibabrata Mondal (Bangalore, IN)
Assignee: Western Digital Technologies, Inc.
H04L67/1097H04L67/1095
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,917,469
App. No.
15/465,782
Granted
Feb 9, 2021
Kind
B2
Abstract

A computer-implemented method for efficiently accessing a secondary storage in highly available clustered storage environment may include receiving a client-initiated data request at a secondary server coupled to a secondary storage; determining request information about the client-initiated data request; determining with the secondary server whether to process the client-initiated data request on the secondary storage based on the determined request information; and responsive to determining that the secondary server should process the client-initiated data request, processing the client-initiated data request by the secondary server to retrieve data from the secondary storage.

Claims (81)

1. A system for efficiently accessing data in a highly available clustered storage, the system comprising:

a secondary server configured to receive, process, and distribute a client-initiated data request for accessing data;

a primary server coupled to the secondary server to receive the client-initiated data request and to provide data in response to the client-initiated data request;

a primary storage coupled to the primary server for providing data responsive to the client-initiated data request via the primary server; and

a secondary storage coupled to the secondary server for providing data responsive to the client-initiated data request via the secondary server, wherein, responsive to the received client-initiated data request, the secondary server is further configured to:

determine request information including:

a request input/output (I/O) type about the client-initiated data request;

a synchronization status of the primary storage and the secondary storage associated with the request; and

a location of the secondary storage associated with the request relative to the secondary server;

determine whether to process the client-initiated data request on the secondary server or on the primary server;

process the client-initiated data request using the secondary server to retrieve data from the secondary storage responsive to determining that:

the request I/O type of the client-initiated data request is a read request;

the primary storage and secondary storage associated with requested data are in synchronization; and

the location of the secondary storage associated with the requested data is within a determined distance to the secondary server; and

forward the client-initiated data request to the primary server to process the client-initiated data request responsive to determining that:

the request I/O type of the client-initiated data request is not a read request;

the primary storage and the secondary storage associated with the requested data are not in synchronization; or

the location of the secondary storage associated with the requested data is not within the determined distance to the secondary server.

2. The system of claim 1 , wherein:

the secondary server comprises a direct secondary interface module configured to retrieve requested data directly from the secondary storage.

3. The system of claim 2 , wherein the direct secondary interface module includes a request identification module to determine the request I/O type of the client-initiated data request.

4. The system of claim 2 , wherein the direct secondary interface module includes a locator module to determine the physical location of data corresponding to the client-initiated data request from a pool of storage devices including the primary storage and the secondary storage.

5. The system of claim 2 , wherein the direct secondary interface module includes a sync detector module to detect whether the primary storage and the secondary storage are in synchronization.

6. The system of claim 2 , wherein the direct secondary interface module includes a switch module for determining a working state to assign to the direct secondary interface module, the working state assigned based on a state of the secondary storage.

7. A computer-implemented method comprising:

receiving a client-initiated data request at a secondary server of a cluster of servers, the cluster of servers including a primary server coupled to a primary storage and the secondary server coupled to a secondary storage;

determining request information including:

a request input/output (I/O) type about the client-initiated data request;

a synchronization status of the primary storage and the secondary storage associated with the request and

a location of the secondary storage associated with the request relative to the secondary server;

determining with the secondary server whether to process the client-initiated data request on the secondary server or on the primary server;

processing the client-initiated data request by the secondary server to retrieve data from the secondary storage responsive to determining that:

the request I/O type of the client-initiated data request is a read request secondary server should process the client initiated data request;

the primary storage and secondary storage associated with requested data are in synchronization; and

the location of the secondary storage associated with the requested data is within a determined distance to the secondary server; and

forwarding, by the secondary server, the client-initiated data request to the primary server to process the client-initiated data request responsive to determining that:

the request I/O type of the client-initiated data request is not a read request;

the primary storage and the secondary storage associated with the requested data are not in synchronization; or

the location of the secondary storage associated with the requested data is not within the determined distance to the secondary server.

8. The computer-implemented method of claim 7 , wherein processing the client-initiated data request by the secondary server includes responding directly to the client-initiated data request by retrieving data from the secondary storage through a direct secondary interface.

9. The computer-implemented method of claim 8 , wherein:

the secondary server includes the direct secondary interface; and

the determined distance includes the direct secondary interface directly attaching the secondary server to the secondary storage.

10. The computer-implemented method of claim 7 , wherein:

the secondary server is clustered with the primary server in a highly available clustered storage system; and

the primary storage and the secondary storage are mirrored storage connected through a network.

11. The computer-implemented method of claim 7 , wherein determining with the secondary server whether to process the client-initiated data request on the secondary storage includes determining whether the secondary storage and the secondary server are on a same node.

12. The computer-implemented method of claim 7 , wherein determining with the secondary server whether to process the client-initiated data request on the secondary storage includes determining a working state to assign to a direct secondary interface between the secondary server and the secondary storage.

13. A system comprising:

a primary server comprising a first processor and a first memory;

a primary storage coupled to the primary server;

a secondary server comprising a second processor and a second memory; and

a secondary storage coupled to the secondary server,

wherein the secondary server further comprises:

means for receiving a client-initiated data request at the secondary server;

means for determining request information including:

a request input/output (I/O) type about the client-initiated data request;

a synchronization status of the primary storage and the secondary storage associated with the request and

a location of the secondary storage associated with the request relative to the secondary server; and

means for determining whether to process the client-initiated data request on the secondary server or on the primary server based on the determined request information, wherein:

processing the client-initiated data request by the secondary server to retrieve data from the secondary storage responsive to determining that:

the request I/O type of the client-initiated data request is a read request;

the primary storage and secondary storage associated with requested data are in synchronization; and

the location of the secondary storage associated with the requested data is within a determined distance to the secondary server; and

forwarding, by the secondary server, the client-initiated data request to the primary server to process the client-initiated data request responsive to determining that:

the request I/O type of the client-initiated data request is not a read request;

the primary storage and the secondary storage associated with the requested data are not in synchronization; or

the location of the secondary storage associated with the requested data is not within the determined distance to the secondary server.

14. The system of claim 13 , wherein processing the client-initiated data request by the secondary server includes responding directly to the client-initiated data request by retrieving data from the secondary storage through a direct secondary interface.

15. The system of claim 14 , wherein:

the secondary server includes the direct secondary interface; and

the determined distance includes the direct secondary interface directly attaching the secondary server to the secondary storage.

16. The system of claim 13 , wherein:

the secondary server is clustered with the primary server in a highly available clustered storage system; and

the primary storage and the secondary storage are mirrored storage connected through a network.

17. The system of claim 13 , wherein the means for determining with the secondary server whether to process the client-initiated data request on the secondary storage includes means for determining whether the secondary storage and the secondary server are on a same node.

18. The system of claim 13 , wherein the means for determining with the secondary server whether to process the client-initiated data request on the secondary storage includes means for determining a working state to assign to a direct secondary interface between the secondary server and the secondary storage.

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

determining the determined distance using a physical distance between the secondary server and the primary storage.

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

determining the determined distance using a latency in data transfer between the secondary server and the primary storage.

Assignments (5)
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2017
From: TIWARI, MANOJ KUMAR; SIL, AVIK; JAYARAMU, SWAMY GOWDA; MONDAL, SHIBABRATA
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 041685/0727 →
Continuity (1)
Related Publication 20180278685A1 · Sep 27, 2018