Reducing round trips across a wide area network for resource locking by extended locking and delayed unlocking
First Claim
Patent Images
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.
3 Assignments
0 Petitions
Accused Products
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.
34 Citations
24 Claims
-
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. - View Dependent Claims (2, 3, 4)
-
-
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. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
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. - View Dependent Claims (12, 13, 14, 15, 16, 17)
-
-
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. - View Dependent Claims (19, 20, 21, 22, 23, 24)
-
Specification