-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jay Sprenkle wrote: > This sounds exactly like what > causes the trashed shared MS Access databases I've seen and network locking > issues I see warnings about here.
No it isn't. > How is this supposed to work correctly without the client being notified? Err, the client OS is notified with an oplock break. > If I write an application that requires serialized access to a file, and > I rely > on operating system locking, if the operating system drops my locks > without notifying me my design breaks. You are totally confused. The application talks to the client OS (kernel). The abstraction is a kernel interface and file handles. The kernel then has a provider for the relevant filesystem. That provider then talks to a block layer or over the network. Oplocks etc are happening in that second part. They are not application visible. (1)Application <= (2)kernel => (3)redirector <= (4) network server Oplocks are something available in the SMB protocol (and recent NFS versions) between 3 and 4. They allow the redirector to optimize in the case when it is the only client with the file open. For example if oplocks are not available, then every read/write/lock request from the application (1) gets to the redirector (3) which has to contact the server (4) in order to satisfy the request. If the server (4) grants an oplock to the redirector (3) then that redirector knows it is the only client of the server with the file open. Therefore file contents cannot change so it can cache file content information. Similarly it can also do all byte range locking internally since no other client has the file open. If another client requests to open the file, then the server (4) sends the oplock break to the first redirector which will discard cached file contents and apply byte range locks it was handling internally, before acknowledging the oplock break. From that point on it has to send all read/write/lock requests to the server since the other client(s) could be modifying the file. At no point in all of this is the application(1) aware of oplocks, nor does it have any control over them. Heck even the kernel (2) doesn't know. It just hands all requests to the redirector (3) which can use oplocks to optimize performance. Roger -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFFpdWdmOOfHg372QQRArwkAKC+NX8C8KTBtL5DVKNZbefZ0W/VTACgi7Kr JBlumHql+rsB0AbjG/5NNpM= =YNJF -----END PGP SIGNATURE----- ----------------------------------------------------------------------------- To unsubscribe, send email to [EMAIL PROTECTED] -----------------------------------------------------------------------------