IP Library › Granted Patent US 7,085,892
Granted Patent B2
US 7,085,892 · App. 10/464,029 · Granted Aug 1, 2006

Method, system, and program for removing data in cache subject to a relationship

Assignee: International Business Machines Corporation
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 7,085,892
App. No.
10/464,029
Granted
Aug 1, 2006
Kind
B2
Abstract

Provided are a method, system, and program for managing data. A scan request is received to remove data from cache included in a relationship after the relationship is established. Processing the scan request is delayed for a delay time in response to receiving the scan request. After the delay time, a determination is made as to whether a condition with respect to the scan request is satisfied. The scan request is processed to remove data from cache that is included in the relationship associated with the scan request if the condition is satisfied.

Claims (65)

1. A method for managing data, comprising:

receiving a scan request to remove data from cache included in a relationship after the relationship is established;

delaying processing the scan request for a delay time in response to receiving the scan request;

after the delay time, determining whether a condition with respect to the scan request is satisfied; and

processing the scan request to remove data from cache that is included in the relationship associated with the scan request if the condition is satisfied.

2. The method of claim 1 , further comprising:

queuing the scan request in a scan queue, wherein the scan queue includes multiple scan requests to remove data in different relationships from cache, and wherein processing the scan request comprises processing one queued scan request in the scan queue.

3. The method of claim 2 , wherein determining whether the condition with respect to the scan request is satisfied comprises determining whether a time related to one queued scan request is less than a time period, wherein the condition is satisfied if the time related to the queued scan request is greater than the time period.

4. The method of claim 3 , wherein determining whether the time related to one queued scan request comprises determining whether a difference between a current time and a time of a last received scan request is less than a time period, wherein the condition is satisfied if the difference is greater than the time period.

5. The method of claim 4 , wherein the time period is a first time period, wherein the difference is a first difference, and wherein determining whether the condition with respect to the scan request is satisfied further comprises determining whether a second difference between a current time and an establish time of an oldest queued scan request is less than a second time period, wherein the condition is satisfied if the first difference is greater than the first time period and the second difference is greater than the second time period.

6. The method of claim 3 , further comprising:

after determining that the condition is satisfied, determining whether a maximum number of scan requests are being processed, wherein the scan request is processed if the number of scan requests being processed is less than the maximum number.

7. The method of claim 1 , further comprising:

after completing the processing of one scan request performing the steps of:

(i) determining whether a condition with respect to the scan request is satisfied after the delay time; and (ii) processing the scan request to remove data from cache that is included in the relationship associated with the scan request if the condition is satisfied.

8. The method of claim 1 , wherein delaying the processing of the scan request comprises queuing a scan task in a timer queue, wherein the queued scan task determines whether the condition is satisfied and, if so, allocates a scan request task to process the scan request.

9. The method of claim 8 , wherein the scan queue includes multiple scan requests to remove data in different relationships from cache, and wherein processing the scan request comprises processing one queued scan request in the scan queue, further comprising:

obtaining a lock on the scan task when queuing the scan task in the timer queue; and

after the scan request task completes the processing of the scan request, calling, with the scan request task, the scan task to process a next queued scan task.

10. The method of claim 9 , wherein the call to the scan task by one scan request task when completing the processing of one queued scan request or when the scan request is received is queued if the scan task is locked, wherein the queued call to the scan request is processed after the lock is released.

11. The method of claim 10 , further comprising:

after determining that the condition is satisfied, determining whether a maximum number of scan requests are being processed, wherein the scan request is processed by one scan request task if the number of scan requests being processed is less than the maximum number; and

releasing the lock on the scan task if the number of scan request tasks outstanding processing scan requests is greater than the maximum number.

12. The method of claim 1 , wherein the relationship comprises a point-in-time copy relationship between source and target data, and wherein removing the data from the cache that is included in the relationship comprises:

destaging source data in the relationship in cache before the relationship was established to the source device;

staging the source data in cache before the relationship was established to target data in cache; and

discarding target data in the relationship in cache before the relationship was established.

13. A system for managing data, comprising:

a cache;

means for receiving a scan request to remove data from the cache included in a relationship after the relationship is established;

means for delaying processing the scan request for a delay time in response to receiving the scan request;

means for determining, after the delay time, whether a condition with respect to the scan request is satisfied; and

means for processing the scan request to remove data from cache that is included in the relationship associated with the scan request if the condition is satisfied.

14. The system of claim 13 , further comprising:

means for queuing the scan request in a scan queue, wherein the scan queue includes multiple scan requests to remove data in different relationships from cache, and wherein processing the scan request comprises processing one queued scan request in the scan queue.

15. The system of claim 14 , wherein the means for determining whether the condition with respect to the scan request determines whether a time related to one queued scan request is less than a time period, wherein the condition is satisfied if the time related to the queued scan request is greater than the time period.

16. The system of claim 15 , wherein the means for determining whether the time related to one queued scan request determines whether a difference between a current time and a time of a last received scan request is less than a time period, wherein the condition is satisfied if the difference is greater than the time period.

17. The system of claim 13 , wherein the means for delaying the processing of the scan request queues a scan task in a timer queue, wherein the queued scan task determines whether the condition is satisfied and, if so, allocates a scan request task to process the scan request.

18. A device implementing code for managing data in cache, wherein the code causes operations to be performed, the operations comprising:

receiving a scan request to remove data from the cache included in a relationship after the relationship is established;

delaying processing the scan request for a delay time in response to receiving the scan request;

after the delay time, determining whether a condition with respect to the scan request is satisfied; and

processing the scan request to remove data from cache that is included in the relationship associated with the scan request if the condition is satisfied.

19. The device of claim 18 , wherein the operations further comprise:

queuing the scan request in a scan queue, wherein the scan queue includes multiple scan requests to remove data in different relationships from cache, and wherein processing the scan request comprises processing one queued scan request in the scan queue.

20. The device of claim 19 , wherein determining whether the condition with respect to the scan request is satisfied comprises determining whether a time related to one queued scan request is less than a time period, wherein the condition is satisfied if the time related to the queued scan request is greater than the time period.

21. The device of claim 20 , wherein determining whether the time related to one queued scan request comprises determining whether a difference between a current time and a time of a last received scan request is less than a time period, wherein the condition is satisfied if the difference is greater than the time period.

22. The device of claim 21 , wherein the time period is a first time period, wherein the difference is a first difference, and wherein determining whether the condition with respect to the scan request is satisfied further comprises determining whether a second difference between a current time and an establish time of an oldest queued scan request is less than a second time period, wherein the condition is satisfied if the first difference is greater than the first time period and the second difference is greater than the second time period.

23. The device of claim 20 , wherein the operations further comprise:

after determining that the condition is satisfied, determining whether a maximum number of scan requests are being processed, wherein the scan request is processed if the number of scan requests being processed is less than the maximum number.

24. The device of claim 18 , wherein the operations further comprise:

after completing the processing of one scan request performing the steps of:

(i) determining whether a condition with respect to the scan request is satisfied after the delay time; and (ii) processing the scan request to remove data from cache that is included in the relationship associated with the scan request if the condition is satisfied.

25. The device of claim 18 , wherein delaying the processing of the scan request comprises queuing a scan task in a timer queue, wherein the queued scan task determines whether the condition is satisfied and, if so, allocates a scan request task to process the scan request.

26. The device of claim 25 , wherein the scan queue includes multiple scan requests to remove data in different relationships from cache, and wherein processing the scan request comprises processing one queued scan request in the scan queue, further comprising:

obtaining a lock on the scan task when queuing the scan task in the timer queue; and

after the scan request task completes the processing of the scan request, calling, with the scan request task, the scan task to process a next queued scan task.

27. The device of claim 26 , wherein the call to the scan task by one scan request task when completing the processing of one queued scan request or when the scan request is received is queued if the scan task is locked, wherein the queued call to the scan request is processed after the lock is released.

28. The device of claim 27 , wherein the operations further comprise:

after determining that the condition is satisfied, determining whether a maximum number of scan requests are being processed, wherein the scan request is processed by one scan request task if the number of scan requests being processed is less than the maximum number; and

releasing the lock on the scan task if the number of scan request tasks outstanding processing scan requests is greater than the maximum number.

29. The device of claim 18 , wherein the relationship comprises a point-in-time copy relationship between source and target data, and wherein removing the data from the cache that is included in the relationship comprises:

destaging source data in the relationship in cache before the relationship was established to the source device;

staging the source data in cache before the relationship was established to target data in cache; and

discarding target data in the relationship in cache before the relationship was established.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2003
From: MARTINEZ, RICHARD KENNETH; HYDE, JOSEPH SMITH, II; CREATH, THOMAS JOHN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 014636/0535 →
Continuity (1)
Related Publication 20040260882A1 · Dec 23, 2004