IP Library Granted Patent US 10,180,914
Granted Patent B2
US 10,180,914 · App. 15/582,392 · Granted Jan 15, 2019

Dynamic domain name service caching

Inventor: Walter Ted Hulick (Pearland, TX)
Assignee: Cisco Technology, Inc.
G06F12/145G06F9/4418G06F9/4552G06F12/0868G06F12/128G06F2212/1052G06F2212/604G06F2212/621
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,180,914
App. No.
15/582,392
Granted
Jan 15, 2019
Kind
B2
Abstract

In one aspect, a system for controlling domain name service (DNS) caching is disclosed, the system includes a processor; a memory; and one or more modules stored in the memory and executable by a processor to perform various operations. The various operations include maintain a hard cache on a local disk that includes a file of DNS entries that persists and available for access by an application after a reboot of a Java Virtual Machine (JVM) system running the application; populate a runtime positive soft cache with the entries from the hard cache, wherein the positive soft cache represents DNS entries assumed to be successful for resolving DNS client calls from the application that persists until the reboot of the JVM system running the application; and load entries into the runtime positive soft cache populated from the hard cache in response to an application making DNS client calls.

Claims (73)

1. A system for controlling domain name service (DNS) caching, the system including:

a processor;

a memory; and

one or more modules stored in the memory and executable by a processor to perform operations including:

maintain a hard cache on a local disk that includes a file of DNS entries that persists and available for access by an application after a reboot of a Java Virtual Machine (JVM) system running the application;

populate a runtime positive soft cache with the DNS entries from the hard cache, wherein the runtime positive soft cache represents DNS entries assumed to be successful for resolving DNS client calls from the application that persists until the reboot of the JVM system running the application;

load the DNS entries assumed to be successful into the runtime positive soft cache populated from the hard cache in response to an application making DNS client calls;

maintain a negative soft cache that represents unsuccessful DNS entries that fail to resolve DNS client calls from the application;

enter a verification phase that verifies the DNS entries in the hard cache;

update the hard cache responsive to the verification phase;

enter a sleep phase;

wake up from the sleep phase;

reenter the verification phase; and

update the hard cache responsive to the reentered verification phase.

2. The system of claim 1 , wherein the one or more modules are configured to repeat the verification phase, sleep phase, and the wake up phase periodically.

3. The system of claim 1 , wherein the one or more modules are configured to enter the verification phase including:

verify the DNS entries of the negative soft cache.

4. The system of claim 3 , wherein the one or more modules are configured to enter the verification phase including:

verify the DNS entries of the runtime positive soft cache.

5. The system of claim 4 , wherein the one or more modules are configured to verify the DNS entries of the runtime positive soft cache including:

retry each entry in the positive soft cache to determine whether each entry is successful or unsuccessful;

determine whether an address for each successful entry in the runtime positive soft cache has changed; and

flag each successful entry in the runtime positive soft cache with the addressed changed as a security issue.

6. The system of claim 4 , wherein the one or more modules are configured to compare the negative soft cache with the hard cache.

7. The system of claim 6 , wherein the one or more modules are configured to remove any entry in the hard cache that is also found in the negative soft cache.

8. The system of claim 4 , wherein the one or more modules are configured to compare the runtime positive soft cache with the hard cache.

9. The system of claim 8 , wherein the one or more modules are configured to:

overwrite any entry in the hard cache that is found as a match in the runtime positive soft cache; and

retain any entry in the hard cache that is not found as a match in the runtime positive soft cache.

10. The system of claim 3 , wherein the one or more modules are configured to verify the DNS entries of the negative soft cache including:

retry each entry in the soft negative cache to determine whether each entry is successful or unsuccessful; and

move each successful entry from the negative soft cache to the runtime positive soft cache.

11. A method for controlling domain name service (DNS) caching, the method including:

maintaining a hard cache on a local disk that includes a file of DNS entries that persists and available for access by an application after a reboot of a Java Virtual Machine (JVM) system running the application;

populating a runtime positive soft cache with the DNS entries from the hard cache, wherein the runtime positive soft cache represents DNS entries assumed to be successful for resolving DNS client calls from the application that persists until the reboot of the JVM system running the application;

loading the DNS entries assumed to be successful into the runtime positive soft cache populated from the hard cache in response to an application making DNS client calls;

maintaining a negative soft cache that represents unsuccessful DNS entries that fail to resolve DNS client calls from the application;

entering a verification phase that verifies the DNS entries in the hard cache;

updating the hard cache responsive to the verification phase;

entering a sleep phase;

waking up from the sleep phase;

reentering the verification phase; and

updating the hard cache responsive to the reentered verification phase.

12. The method of claim 11 , including repeating the verification phase, sleep phase, and the wake up phase periodically.

13. The method of claim 11 , wherein the entering the verification phase includes:

verifying the DNS entries of the negative soft cache.

14. The method of claim 13 , wherein entering the verification phase include:

verifying the DNS entries of the runtime positive soft cache.

15. The method of claim 14 , including comparing the runtime positive soft cache with the hard cache.

16. The method of claim 15 , including:

overwriting any entry in the hard cache that is found as a match in the runtime positive soft cache; and

retaining any entry in the hard cache that is not found as a match in the runtime positive soft cache.

17. The method of claim 13 , wherein the verifying the DNS entries of the negative soft cache include:

retrying each entry in the soft negative cache to determine whether each entry is successful or unsuccessful; and

moving each successful entry from the negative soft cache to the runtime positive soft cache.

18. The method of claim 17 , wherein verifying the DNS entries of the positive soft cache include:

retrying each entry in the runtime positive soft cache to determine whether each entry is successful or unsuccessful;

determining whether an address for each successful entry in the runtime positive soft cache has changed; and

flagging each successful entry in the runtime positive soft cache with the addressed changed as a security issue.

19. The method of claim 17 , including comparing the negative soft cache with the hard cache.

20. The method of claim 17 , including removing any entry in the hard cache that is also found in the negative soft cache.

21. A non-transitory computer readable medium embodying one or more software modules executable by a processor for performing operations for controlling domain name service (DNS) caching, the operations including:

maintaining a hard cache on a local disk that includes a file of DNS entries that persists and available for access by an application after a reboot of a Java Virtual Machine (JVM) system running the application;

populating a runtime positive soft cache with the DNS entries from the hard cache, wherein the runtime positive soft cache represents DNS entries assumed to be successful for resolving DNS client calls from the application that persists until the reboot of the JVM system running the application;

loading the DNS entries assumed to be successful into the runtime positive soft cache populated from the hard cache in response to an application making DNS client calls;

maintaining a negative soft cache that represents unsuccessful DNS entries that fail to resolve DNS client calls from the application;

enter a verification phase that verifies the DNS entries in the hard cache;

updating the hard cache responsive to the verification phase;

entering a sleep phase;

waking up from the sleep phase;

reentering the verification phase; and

updating the hard cache responsive to the reentered verification phase.

22. The non-transitory computer readable medium of claim 21 , wherein the one or more modules are configured to repeat the verification phase, sleep phase, and the wake up phase periodically.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2017
From: APPDYNAMICS LLC
To: CISCO TECHNOLOGY, INC.
Reel/Frame 044173/0050 →
CHANGE OF NAME Recorded Jun 23, 2017
From: APPDYNAMICS, INC.
To: APPDYNAMICS LLC
Reel/Frame 042964/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2017
From: HULICK, WALTER TED
To: APPDYNAMICS, INC.
Reel/Frame 042249/0975 →
Continuity (1)
Related Publication 20180314648A1 · Nov 1, 2018
Cited By (1)
US 12,255,867