Lock optimization and lock prediction approaches for reducing client-server messages
First Claim
1. A method, comprising the computer-implemented actions of:
- receiving first one or more lock requests for first one or more locks on a remote data resource that is linked by a slow communication link;
based on the first one or more lock requests, determining a sequence of new lock requests for new locks, including a plurality of predicted locks, on the remote data resource;
sending a first message that includes the sequence of new lock requests;
receiving a second message that includes second one or more locks on the remote data resource, wherein the second one or more locks correspond to second one or more lock requests of the sequence of new lock requests;
storing the second one or more locks; and
granting a particular lock of the second one or more locks in response to receiving a particular lock request for the particular lock on the remote data resource.
1 Assignment
0 Petitions
Accused Products
Abstract
Approaches are disclosed for lock optimization and lock prediction for reducing the number of client-server messages involved in working with server-based resources. First one or more lock requests for first one or more locks on a remote data resource that is linked by a slow communication link are received. Based on the first one or more lock requests, a sequence of lock requests for locks on the remote data resource is determined. A first message that includes the sequence of lock requests is sent. A second message is received. The second message includes second one or more locks on the remote data resource, where the second one or more locks correspond to second one or more lock requests of the sequence of lock requests. A particular lock of the second one or more locks is granted in response to receiving a particular lock request for the particular lock on the remote data resource.
-
Citations
35 Claims
-
1. A method, comprising the computer-implemented actions of:
-
receiving first one or more lock requests for first one or more locks on a remote data resource that is linked by a slow communication link; based on the first one or more lock requests, determining a sequence of new lock requests for new locks, including a plurality of predicted locks, on the remote data resource; sending a first message that includes the sequence of new lock requests; receiving a second message that includes second one or more locks on the remote data resource, wherein the second one or more locks correspond to second one or more lock requests of the sequence of new lock requests; storing the second one or more locks; and granting a particular lock of the second one or more locks in response to receiving a particular lock request for the particular lock on the remote data resource. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of optimizing communication exchanges, the method comprising the computer-implemented actions of:
-
at a local server that is communicatively connected to a remote server over a slow communication link, receiving first one or more lock requests for first one or more locks on a remote data resource of the remote server; based on the first one or more lock requests, determining a sequence of new lock requests for new locks, including plurality of predicted locks, on the remote data resource; sending a first message to the remote server, wherein the first message includes the sequence of new lock requests; receiving, from the remote server, a second message that includes second one or more locks on the remote data resource, wherein the second one or more locks correspond to second one or more lock requests of the sequence of new lock requests; storing the second one or more locks at the local server; and at the local server, granting a particular lock of the second one or more locks in response to receiving a particular lock request for the particular lock on the remote data resource. - View Dependent Claims (19, 20)
-
-
21. A system for optimizing communication exchanges, the system comprising:
-
a remote server that is communicatively connected to a file server over a Local Area Network (LAN) connection, wherein the file server manages a remote data resource; a local server that is communicatively connected to the remote server over a Wide Area Network (WAN) communication link, wherein the local server comprises; one or more processors; and one or more stored sequences of instructions, which instructions, when executed by the one or more processors, cause the one or more processors to perform the actions of; receiving first one or more lock requests for first one or more locks on the remote data resource; based on the first one or more lock requests, determining a sequence of new lock requests for new locks, including a plurality of predicted locks, on the remote data resource; sending a first message to the remote server, wherein the first message includes the sequence of new lock requests; receiving, from the remote server, a second message that includes second one or more locks on the remote data resource, wherein; the remote server has obtained the second one or more locks from the file server; and the second one or more locks correspond to second one or more lock requests of the sequence of new lock requests; storing the second one or more locks; and granting a particular lock of the second one or more locks in response to receiving a particular lock request for the particular lock on the remote data resource.
-
-
22. An apparatus, comprising:
-
receiving means for receiving first one or more lock requests for first one or more locks on a remote data resource that is linked by a slow communication link; determining means for determining, based on the first one or more lock requests, a sequence of new lock requests for new locks, including a plurality of predicted locks, on the remote data resource; sending means for sending a first message that includes the sequence of new lock requests; second receiving means for receiving a second message that includes second one or more locks on the remote data resource, wherein the second one or more locks correspond to second one or more lock requests of the sequence of new lock requests; storing means for storing the second one or more locks; and granting means for granting a particular lock of the second one or more locks in response to receiving a particular lock request for the particular lock on the remote data resource. - View Dependent Claims (23, 24, 25, 26)
-
-
27. An apparatus, comprising:
-
one or more processors; one or more storage devices storing one or more sequences of instructions, which the instructions, when executed by the one or more processors, cause the one or more processors to perform the actions of; receiving first one or more lock requests for first one or more locks on a remote data resource that is linked by a slow communication link; based on the first one or more lock requests, determining a sequence of new lock requests for new locks, including a plurality of predicted locks, on the remote data resource; sending a first message that includes the sequence of new lock requests; receiving a second message that includes second one or more locks on the remote data resource, wherein the second one or more locks correspond to second one or more lock requests of the sequence of new lock requests; storing the second one or more locks; and granting a particular lock of the second one or more locks in response to receiving a particular lock request for the particular lock on the remote data resource. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
-
-
35. A computer-readable storage device storing one or more sequences of instructions, which instructions, when executed by one or more processors, cause the one or more processors to perform the actions of:
-
receiving first one or more lock requests for first one or more locks on a remote data resource that is linked by a slow communication link; based on the first one or more lock requests, determining a sequence of new lock requests for new locks, including a plurality of predicted locks, on the remote data resource; sending a first message that includes the sequence of new lock requests; receiving a second message that includes second one or more locks on the remote data resource, wherein the second one or more locks correspond to second one or more lock requests of the sequence of new lock requests; storing the second one or more locks; and granting a particular lock of the second one or more locks in response to receiving a particular lock request for the particular lock on the remote data resource.
-
Specification