Best practices: Adding Persistent Handle support

Stefan Metzmacher metze at samba.org
Fri Jun 2 11:57:23 UTC 2017


Am 02.06.2017 um 13:45 schrieb Stefan Metzmacher via samba-technical:
> Hi Chris,
> 
>> I'm working on Persistent (and Durable) handles.  For Persistent handles, I
>> need to enable a connection-level capability plus a share-level capability.
>>
>> It seems (to me) that I should add a per-share configuration variable that
>> indicates that the specified share supports Continuous Availability (CA;
>> Persistent Handles).
>>
>> My other thought, however, is this:
>> - I am implementing CA using a VFS module.  I believe that this is a valid
>>   approach, because it allows us to adapt to whatever underlying mechanism
>>   the file system might support on its own.
>> - We can also write a "generic" Persistent Handle VFS module that works
>>   with whatever mechanism Martin and Amitay develop.
> 
> The core smbd engine needs to have support for persistent handles first.
> 
> There're 3 layers:
> - the top level one:
>   That has all the mappings from wire to the internal state
>   see smbXsrv_open and smbXsrv_open_global0. I guess these
>   will always be maintained by the core smbd logic, so
>   we need a way to distribute these persistent to all nodes
>   in a cluster or across smbd restarts on a non-clustered server.
> 
> - a glue layer:
>   This maintains the locking.tdb, brlock.tdb, lease_db.tdb,
>   in theory this can be moved behind the vfs layer, but
>   it would require a lot of work. So the core smbd layer
>   need to keep them persistent.
> 
> - the filesystem layer:
>   This maintains the file descriptor (from the kernel or a userspace
>   filesystem) and the kernel oplocks, kernel share modes and posix
>   locks. This is hidden behind the VFS and the VFS module
>   needs to keep them persistent.

Here we would need
SMB_VFS_PERSISTENT_{COOKIE,UPGRADE,DISCONNECT,RECONNECT}()
similar to SMB_VFS_DURABLE_{COOKIE,DISCONNECT,RECONNECT}(), but
with some more options, so they can be used to implement durable,
resilient and persistent handles.

metze


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20170602/9f948767/signature.sig>


More information about the samba-technical mailing list