IP Library Granted Patent US 7,743,109
Granted Patent B2
US 7,743,109 · App. 11/701,139 · Granted Jun 22, 2010

Reducing round trips across a wide area network for resource locking by extended locking and delayed unlocking

Assignee: Cisco Technology, Inc.
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,743,109
App. No.
11/701,139
Granted
Jun 22, 2010
Kind
B2
Abstract

A locking mechanism for a data resource is disclosed, which can operate across LANs and a WAN. The technique temporarily imposes an extended lock on the requested data resource. While the extended lock is in force, all lock and unlock requests issued by the same client for the resource are managed exclusively by the local server. Once the last lock has been released, or after a timeout interval, the extended lock is canceled. Traffic across the WAN is reduced to a minimum of one round trip.

Claims (89)

1. A computer-implemented method for accessing a data resource by a client, comprising the steps of:

receiving across a local area network a first request from said client to lock a first portion of said data resource;

responsively to said first request, communicating across a wide area network to impose an extended lock on said data resource that reserves a range of said data resource for access thereof by said client; and

while avoiding modifying said extended lock by communication across said wide area network, performing the steps of:

issuing a grant of said first request to said client across said local area network;

thereafter receiving across said local area network a second request from said client to unlock a second portion of said data resource within a range of said extended lock;

issuing a grant of said second request to said client across said local area network;

awaiting, during a delay interval, a third request from said client across said local area network to lock a third portion of said local area network; and

in an event that said third request is not received, communicating a second time across said wide area network to cancel only a portion of said extended lock that corresponds to said second portion of said data resource.

2. The method according to claim 1 , wherein said first portion of said data resource is less than all of said data resource.

3. The method according to claim 2 , wherein said range is all of said data resource.

4. The method according to claim 2 , wherein said range exceeds said first portion of said data resource and is less than all of said data resource.

5. A computer-implemented method for accessing a data resource by a client on a first local area network, which is held on a file server on a second local area network, comprising the steps of:

intercepting in a local server a first request from said client to lock a first portion of said data resource, said local server being connected to said first local area network;

responsively to said first request, transmitting a first message via a wide area network from said local server to a remote server that is connected to said second local area network, requesting an extended lock on said data resource, said extended lock reserving all of said data resource for access thereof by said client;

receiving a second message from said remote server by said local server granting said extended lock;

responsively to said second message, issuing a grant of said first request to said client by said local server;

thereafter intercepting in said local server a second request from said client to lock a second portion of said data resource within a range of said extended lock;

responsively to said second request, while said extended lock is in force issuing a grant of said second request to said client by said local server;

intercepting in said local server a third request from said client to unlock said first portion of said data resource;

responsively to said third request and while said extended lock is in force, issuing a grant of said third request to said client by said local server;

after intercepting said third request queuing a third message in said local server requesting that said first portion of said data resource be unlocked; and

after elapse of a delay interval transmitting said third message via said wide area network from said local server to said remote server.

6. The method according to claim 5 , further comprising the steps of:

after intercepting said third request queuing a third message in said local server for a delay interval requesting that said first portion of said data resource be unlocked; and

during said delay interval intercepting in said local server a fourth request from said client to lock a third portion of said data resource; and

responsively to said fourth request, canceling said third message.

7. The method according to claim 5 , further comprising the steps of:

after intercepting said third request queuing a third message in said local server for a delay interval requesting that said first portion of said data resource be unlocked; and

during said delay interval intercepting in said local server a fourth request from another client to lock a third portion of said data resource; and

responsively to said fourth request, transmitting said third message via said wide area network from said local server to said remote server prior to elapse of said delay interval.

8. The method according to claim 5 , wherein said first message comprises a non-blocking lock request for said extended lock.

9. The method according to claim 5 , further comprising the steps of:

intercepting at least one additional request in said local server from said client to release all locks on said data resource being held in favor or said client; and

thereafter transmitting a cancellation message via said wide area network from said local server to said remote server to release said extended lock on said data resource.

10. The method according to claim 5 , wherein said data resource is a file.

11. A computer software product accessing a data resource by a client on a first local area network, which is held on a file server on a second local area network, including a computer-readable medium in which computer program instructions are stored, which instructions, when read by a computer connected to said first local area network, cause the computer to:

intercept a first request from said client to lock a first portion of said data resource;

transmit a first message via a wide area network to a remote server that is connected to said second local area network, requesting an extended lock on said data resource, said extended lock reserving a range of said data resource for access thereof by said client;

receive a second message from said remote server granting said extended lock;

issue, responsively to said second message, a grant of said first request to said client;

intercept thereafter a second request from said client to lock a second portion of said data resource within a range of said extended lock;

issue, responsively to said second request, and while said extended lock is in force, a grant of said second request to said client;

intercept a third request from said client to unlock said first portion of said data resource;

issue, responsively to said third request, and while said extended lock is in force, a grant of said third request to said client;

after intercepting said third request, queue a third message requesting that said first portion of said data resource be unlocked; and

transmit, after elapse of a delay interval, said third message via said wide area network to said remote server.

12. The computer software product according to claim 11 , wherein said first portion of said data resource is less than all of said data resource.

13. The computer software product according to claim 11 , wherein said range is all of said data resource.

14. The computer software product according to claim 11 , wherein said range exceeds said first portion of said data resource and is less than all of said data resource.

15. The computer software product according to claim 11 , wherein said computer is further instructed to:

after intercepting said third request, store a third message for a delay interval requesting that said first portion of said data resource be unlocked; and

intercept, during said delay interval, a fourth request from said client to lock a third portion of said data resource; and

cancel, responsively to said fourth request, said third message.

16. The computer software product according to claim 11 , wherein said computer is further instructed to:

after intercepting said third request, store a third message for a delay interval requesting that said first portion of said data resource be unlocked; and

intercept, during said delay interval, a fourth request from another client to lock a third portion of said data resource; and

transmit, responsively to said fourth request, said third message via said wide area network to said remote server prior to elapse of said delay interval.

17. The computer software product according to claim 11 , wherein said computer is further instructed to:

intercept at least one additional request from said client to release all locks on said data resource being held in favor or said client; and

transmit thereafter a cancellation message via said wide area network to said remote server to release said extended lock on said data resource.

18. A networked server for enabling access to a data resource by a client on a first local area network, which is held on a file server on a second local area network, comprising:

a first interface to said first local area network;

a second interface to a wide area network; and

one or more processors configured to:

intercept via said first interface a first request from said client to lock a first portion of said data resource;

transmit a first message via said second interface to a remote server that is connected to said second local area network, requesting an extended lock on said data resource, said extended lock reserving a range of said data resource for access thereof by said client;

receive via said second interface a second message from said remote server granting said extended lock;

issue, responsively to said second message, a grant of said first request to said client via said first interface;

intercept thereafter via said first interface a second request from said client to lock a second portion of said data resource within a range of said extended lock;

issue, via said first interface, responsively to said second request, while said extended lock is in force and while avoiding communication with said remote server, a grant of said second request to said client;

intercept via said first interface, while said extended lock is in force, a third request from said client to unlock said first portion of said data resource;

issue via said first interface, responsively to said third request and while avoiding communication with said remote server, a grant of said third request to said client;

queue, after intercepting said third request, a third message requesting that said first portion of said data resource be unlocked; and

transmit, after elapse of a delay interval, said third message to said remote server via said second interface.

19. The server according to claim 18 , wherein said first portion of said data resource is less than all of said data resource.

20. The server according to claim 18 , wherein said range is all of said data resource.

21. The server according to claim 18 , wherein said range exceeds said first portion of said data resource and is less than all of said data resource.

22. The server according to claim 18 , wherein said one or more processors are operative to:

after intercepting said third request, store a third message for a delay interval requesting that said first portion of said data resource be unlocked;

intercept via said first interface, during said delay interval, a fourth request from said client to lock a third portion of said data resource; and

cancel, responsively to said fourth request, said third message.

23. The server according to claim 18 , wherein said, one or more processors are operative to:

after intercepting said third request, store a third message for a delay interval requesting that said first portion of said data resource be unlocked;

intercept via said first interface, during said delay interval, a fourth request from another client to lock a third portion of said data resource; and

transmit, responsively to said fourth request, said third message via said second interface to said remote server prior to elapse of said delay interval.

24. The server according to claim 18 , wherein said one or more processors are operative to:

intercept via said first interface at least one additional request from said client to release all locks on said data resource being held in favor or said client; and

transmit thereafter a cancellation message via said second interface to said remote server to release said extended lock on said data resource.

Assignments (3)
MERGER Recorded Oct 30, 2014
From: ACTONA TECHNOLOGIES INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 034075/0750 →
CONFIRMATION OF LIQUIDATION Recorded Oct 30, 2014
From: ACTONA TECHNOLOGIES LTD.
To: ACTONA TECHNOLOGIES INC.
Reel/Frame 034113/0623 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2007
From: KAMINSKY, DANIEL; PANMAN, EVGENY; ROMANO, OPHIR; BEN-SHAUL, ISRAEL
To: CISCO TECHNOLOGY, INC.
Reel/Frame 019007/0692 →
Continuity (6)
Continuation In Part 1140826000 · Apr 20, 2006
Continuation 1048517800 · Jul 28, 2004
Provisional Application 6030905000 · Aug 1, 2001
Provisional Application 6033158200 · Nov 20, 2001
Provisional Application 6033859300 · Dec 11, 2001
Related Publication 20070143477A1 · Jun 21, 2007