IP Library › Granted Patent US 9,235,618
Granted Patent B2
US 9,235,618 · App. 13/858,007 · Granted Jan 12, 2016

Systems and methods for caching of SQL responses using integrated caching

Inventors: Shaleen Sharma (Bangalore, IN); Sudish Sah (Bangalore, IN); Rajesh Joshi (Bangalore, IN)
Assignee: CITRIX SYSTEMS, INC.
G06F17/30457
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 9,235,618
App. No.
13/858,007
Filed
Apr 6, 2013
Granted
Jan 12, 2016
Kind
B2
Examiner
LE, HUNG D
Art Unit
2161
USPC
707/769
Abstract

Systems and methods of the present disclosure provide for caching, by a device intermediary to a client and a database, a result of a structured query language (SQL) query request. In some embodiments, the device intermediary to a plurality of clients and a database receives a SQL response from the database to a first SQL query request of a client of the plurality of clients. The device may maintain a cache of SQL responses from the database. The device may identify that the first SQL query request matches a rule of a policy for caching SQL responses from the database. The policy may include a cache action to take when the rule is matched. The device may perform, responsive to the policy, on the SQL response the cache action identified by the policy.

Claims (28)

1. A method for caching by a device intermediary to a client and a database a result of a structured query language (SQL) query request, the method comprising:

(a) receiving, by a device intermediary to a plurality of clients and a database, a SQL response from the database to a first structured query language (SQL) query request of a client of the plurality of clients, the device maintaining a cache of SQL responses from the database;

(b) identifying, by the device, that the first SQL query request matches a rule of a policy for caching SQL responses from the database, the policy comprising a cache action to take on a response to a query when the rule is matched; and

(c) performing, by the device responsive to the policy, on the SQL response received from the database the cache action identified by the policy matching the first SQL query request.

2. The method of claim 1 , further comprising identifying, by the device, that the SQL response from the first SQL query request is stored in the cache responsive to receiving from one of the plurality of clients a second SQL query request comprising the SQL query of the first SQL query request.

3. The method of claim 2 , further comprising serving, by the device, the SQL response from the cache responsive to the second SQL query request.

4. The method of claim 1 , wherein step (a) further comprises maintaining, by the device, SQL responses in the cache via a hash of two or more of the following: username, database name, character set and client version.

5. The method of claim 1 , wherein step (b) further comprises identifying, by the device, that an expression of the rule matches SQL content of the first SQL query request.

6. The method of claim 1 , wherein step (b) further comprises identifying, by the device, that the cache action of the policy specifies an action of one of to store to cache, not cache or invalidate a corresponding cache entry.

7. The method of claim 1 , wherein step (c) further comprises storing, by the device, the SQL response to the cache responsive to the cache action of the policy specifying an action to cache.

8. The method of claim 1 , wherein step (c) further comprises invalidating, by the device, the SQL response stored in the cache responsive to the cache action of the policy specifying an action to invalidate.

9. The method of claim 1 , further comprising identifying, by the device, that the policy specifies a selector for identifying a group of content to which the policy applies.

10. The method of claim 9 , further comprising performing, by the device, the cache action of the policy on the group of content identified by the selector.

11. A system for caching by a device intermediary to a client and a database a result of a structured query language (SQL) query request, the system comprising:

a device intermediary to a plurality of clients and a database;

a cache of the device configured to cache SQL responses from the database;

a database proxy of the device receiving an SQL response from the database to a first structured query language (SQL) query request of a client of the plurality of clients;

a policy engine configured to identify that the first SQL query request matches a rule of a policy for caching SQL responses from the database, the policy comprising a cache action to take on a response to a query when the rule is matched; and

wherein the device, responsive to the policy, is configured to perform on the SQL response received from the database the cache action identified by the policy matching the first SQL query request.

12. The system of claim 11 , wherein the database proxy is configured to identify that the SQL response from the first SQL query request is stored in the cache responsive to receiving from one of the plurality of clients a second SQL query request comprising the SQL query of the first SQL query request.

13. The system of claim 12 , wherein the database proxy is configured to serve the SQL response from the cache responsive to the second SQL query request.

14. The system of claim 11 , wherein the cache maintains SQL responses in the cache via a hash of two or more of the following: username, database name, character set and client version.

15. The system of claim 11 , wherein the policy engine is configured to identify that an expression of the rule matches SQL content of the first SQL query request.

16. The system of claim 11 , wherein the policy engine is configured to identify that the cache action of the policy specifies an action of one of to store to cache, not cache or invalidate a corresponding cache entry.

17. The system of claim 11 , wherein the device is configured to store the SQL response to the cache responsive to the cache action of the policy specifying an action to cache.

18. The system of claim 11 , wherein the device is configured to invalidate the SQL response stored in the cache responsive to the cache action of the policy specifying an action to invalidate.

19. The system of claim 11 , wherein the policy engine is configured to identify that the policy specifies a selector for identifying a group of content to which the policy applies.

20. The system of claim 19 , wherein the device is further configured to perform the cache action of the policy on the group of content identified by the selector.

Assignments (9)
PATENT SECURITY AGREEMENT Recorded Aug 15, 2025
From: CLOUD SOFTWARE GROUP, INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 072488/0172 →
SECURITY INTEREST Recorded May 24, 2024
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067662/0568 →
PATENT SECURITY AGREEMENT Recorded Apr 14, 2023
From: CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.); CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 063340/0164 →
RELEASE AND REASSIGNMENT OF SECURITY INTEREST IN PATENT (REEL/FRAME 062113/0001) Recorded Apr 14, 2023
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: CITRIX SYSTEMS, INC.; CLOUD SOFTWARE GROUP, INC. (F/K/A TIBCO SOFTWARE INC.)
Reel/Frame 063339/0525 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 062112/0262 →
PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 062113/0470 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Oct 7, 2022
From: TIBCO SOFTWARE INC.; CITRIX SYSTEMS, INC.
To: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
Reel/Frame 062113/0001 →
SECURITY INTEREST Recorded Sep 30, 2022
From: CITRIX SYSTEMS, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION
Reel/Frame 062079/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2013
From: SHARMA, SHALEEN; SAH, SUDISH; JOSHI, RAJESH
To: CITRIX SYSTEMS, INC.
Reel/Frame 030353/0519 →
Continuity (1)
Related Publication 20140304294A1 · Oct 9, 2014