SMB request prefetching
First Claim
1. A method for implementing simple message block (SMB) request prefetching, the method comprising:
- monitoring, at an optimizer node of a communications system, network traffic to identify an SMB request, the network traffic comprising communications from a user system on a client side of the communications system to an addressable content location on a server side of the communications system, the optimizer node being disposed in the communications system between the user system and the content location; and
when a first SMB request is identified;
analyzing the first SMB request to determine an associated request memory offset indicating a memory offset within a file affected by the first SMB request;
determining whether the request memory offset matches one of a set of known memory offsets maintained by the optimizer node, each of the set of known memory offsets being associated with at least one additional memory offset previously determined as likely to be associated with a second SMB request requested by the user system within a first time threshold subsequent to the first SMB request;
determine whether the first SMB request is an SMB locking request or an SMB unlocking request; and
when the request memory offset matches one of the set of known memory offsets maintained by the optimizer node, prefetching an SMB locking request and an SMB unlocking request, both associated with the at least one additional memory offset;
wherein the prefetching step occurs only when the first SMB request is an SMB locking request.
5 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are described for accelerating a user experience involving transactions with a remote file server by identifying and prefetching simple message block (SMB) requests. Embodiments exploit applications'"'"' usage of certain SMB request offset value patterns to reliably prefetch SMB requests. Requests from a user to a remote file server are intercepted by a proxy server disposed in the communications network relatively local to the file server. When a known SMB request offset value is detected and other conditions are met, a set of other SMB request offset values is prefetched by the proxy server according to a predetermined pattern. These prefetched requests may be sent, along with the original request, in a single transaction over the communications link from the proxy server to the requesting user (e.g., via a proxy client associated with the requesting user).
-
Citations
18 Claims
-
1. A method for implementing simple message block (SMB) request prefetching, the method comprising:
-
monitoring, at an optimizer node of a communications system, network traffic to identify an SMB request, the network traffic comprising communications from a user system on a client side of the communications system to an addressable content location on a server side of the communications system, the optimizer node being disposed in the communications system between the user system and the content location; and when a first SMB request is identified; analyzing the first SMB request to determine an associated request memory offset indicating a memory offset within a file affected by the first SMB request; determining whether the request memory offset matches one of a set of known memory offsets maintained by the optimizer node, each of the set of known memory offsets being associated with at least one additional memory offset previously determined as likely to be associated with a second SMB request requested by the user system within a first time threshold subsequent to the first SMB request; determine whether the first SMB request is an SMB locking request or an SMB unlocking request; and when the request memory offset matches one of the set of known memory offsets maintained by the optimizer node, prefetching an SMB locking request and an SMB unlocking request, both associated with the at least one additional memory offset; wherein the prefetching step occurs only when the first SMB request is an SMB locking request. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for implementing simple message block (SMB) request prefetching, the system comprising:
-
at least one hardware element; a traffic monitoring subsystem disposed at an optimizer node of a communications system between a user system and a content server and configured to monitor network traffic to identify an SMB request, the network traffic comprising communications from a user system on the client side to a content server on the server side; a traffic analyzer subsystem, communicatively coupled with the optimizer node, and configured, when a first SMB request is identified, to; analyze the first SMB request to determine an associated request memory offset indicating a memory offset within a file affected by the first SMB request; determine whether the request memory offset matches one of a set of known memory offsets maintained by the optimizer node, each of the set of known memory offsets being associated with at least one additional memory offset previously determined as likely to be associated with a second SMB request requested by the user system within a first time threshold subsequent to the first SMB request; and determine whether the first SMB request is an SMB locking request or an SMB unlocking request; and a prefetching subsystem, communicatively coupled with the traffic analyzer subsystem, and configured to; prefetch an SMB locking request and an SMB unlocking request, both associated with the at least one additional memory offset, when the request memory offset matches one of the set of known memory offsets maintained by the optimizer node; and prefetch the SMB locking request and the SMB unlocking request associated with the at least one additional memory offset only when the first SMB request is an SMB locking request. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A non-transitory machine-readable medium having stored thereon a series of instructions which, when executed by a processor, cause the processor to implement simple message block (SMB) request prefetching according to steps comprising:
-
monitoring, at an optimizer node of a communications system, network traffic to identify either an SMB locking request or an SMB unlocking request, the network traffic comprising communications from a user system on a client side of the communications system to an addressable content location on a server side of the communications system, the optimizer node being disposed in the communications system between the user system and the content location; and when a first SMB request is identified; analyzing the first SMB request to determine an associated request memory offset indicating a memory offset within a file affected by the first SMB request; determining whether the request memory offset matches one of a set of known memory offsets maintained by the optimizer node, each of the set of known memory offsets being associated with at least one additional memory offset previously determined as likely to be associated with a second SMB request requested by the user system within a first time threshold subsequent to the first SMB request; determine whether the first SMB request is an SMB locking request or an SMB unlocking request; and when the request memory offset matches one of the set of known memory offsets maintained by the optimizer node, prefetching an SMB locking request and an SMB unlocking request, both associated with the at least one additional memory offset; wherein the prefetching step occurs only when the first SMB request is an SMB locking request. - View Dependent Claims (16, 17, 18)
-
Specification