update multi-channel part
authorMichael Adam <obnox@samba.org>
Wed, 20 Apr 2016 15:15:02 +0000 (17:15 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 20 Apr 2016 15:15:13 +0000 (17:15 +0200)
multichannel.wiki

index 9c99aa0601ecc1ae04fbe7aae4d9c35a4aaf600c..93ab0b20f3bc5bf80c2f1a9551bf67055058f36c 100644 (file)
 ==== Multi-Channel $\in$ Samba ====
 
 <[block]{samba/smbd: multi-process}
-* '''Currently:''' process $\Leftrightarrow$ TCP connection
+* '''Originally:''' process $\Leftrightarrow$ TCP connection
 *<0> '''Idea:''' transfer new TCP connection to existing smbd
 *<0> '''How?''' ==> use fd-passing (sendmsg/recvmsg)
 *<0> '''When?'''
 ** ''Natural choice'': at SessionSetup (Bind)
 ** !Idea!: as early as possible, based on ClientGUID \\ %
 ==> per ClientGUID single process model
-*<0> !But!: This may not work! \frownie
+%%*<0> !But!: This may not work! \frownie
 [block]>
 
 ==== Multi-Channel $\in$ Samba ====
 ==== Multi-Channel $\in$ Samba ====
 
 <[block]{samba/smbd: multi-process}
-* '''Currently:''' process $\Leftrightarrow$ TCP connection
+* '''Originally:''' process $\Leftrightarrow$ TCP connection
 * '''Idea:''' transfer new TCP connection to existing smbd
 *<0> '''How?''' ==> use fd-passing (sendmsg/recvmsg)
 *<0> '''When?'''
 ** ''Natural choice'': at SessionSetup (Bind)
 ** !Idea!: as early as possible, based on ClientGUID \\ %
 ==> per ClientGUID single process model
-*<0> !But!: There may be problems! ... \frownie
+%%*<0> !But!: There may be problems! ... \frownie
 [block]>
 
 
 }
 
 
+==== Multi-Channel $\in$ Samba ====
+
+<[block]{samba/smbd: multi-process}
+* '''Originally:''' process $\Leftrightarrow$ TCP connection
+* '''Idea:''' transfer new TCP connection to existing smbd
+* '''How?''' ==> use fd-passing (sendmsg/recvmsg)
+*<2-> '''When?'''
+** ''Natural choice'': at SessionSetup (Bind)
+** !Idea!: as early as possible, based on ClientGUID \\ %
+==> per ClientGUID single process model
+%%*<0> !But!: There may be problems! ... \frownie
+[block]>
+
+
+==== Multi-Channel $\in$ Samba : pass by ClientGUID ====
+
+<[center]
+%%<<<smb3-mc-samba_exp.png,height=.9\textheight>>>
+<<<smb3-mc-samba.png,height=.9\textheight>>>
+[center]>
+
+
+==== Multi-Channel $\in$ Samba : pass by ClientGUID ====
+
+<[block]{Wait a minute - what about performance?}
+* Single process...
+* But we use short-lived worker-pthreads for I/O ops!
+* Benchmarks and tunings still to be done.
+[block]>
+
 %%%% ==== Multi-Channel $\in$ Samba ====
 %%%% 
 %%%% <[block]{samba/smbd: multi-process}
-%%%% * '''Currently:''' process $\Leftrightarrow$ TCP connection
-%%%% * '''Idea:''' transfer new TCP connection to existing smbd
-%%%% * '''How?''' ==> use fd-passing (sendmsg/recvmsg)
-%%%% *<2-> '''When?'''
-%%%% ** ''Natural choice'': at SessionSetup (Bind)
-%%%% ** !Idea!: as early as possible, based on ClientGUID \\ %
-%%%% ==> per ClientGUID single process model
-%%%% *<0> !But!: There may be problems! ... \frownie
-%%%% [block]>
-%%%% 
-%%%% 
-%%%% ==== Multi-Channel $\in$ Samba : pass by ClientGUID ====
-%%%% 
-%%%% <[center]
-%%%% %%<<<smb3-mc-samba_exp.png,height=.9\textheight>>>
-%%%% <<<smb3-mc-samba.png,height=.9\textheight>>>
-%%%% [center]>
-%%%% 
-%%%% 
-%%%% ==== Multi-Channel $\in$ Samba : pass by ClientGUID ====
-%%%% 
-%%%% <[block]{Wait a minute - what about performance?}
-%%%% * Single process...
-%%%% * But we use short-lived worker-pthreads for I/O ops!
-%%%% * Benchmarks and tunings still to be done.
-%%%% [block]>
-%%%% 
-%%%% ==== Multi-Channel $\in$ Samba ====
-%%%% 
-%%%% <[block]{samba/smbd: multi-process}
-%%%% * '''Currently:''' process $\Leftrightarrow$ TCP connection
+%%%% * '''Orignally:''' process $\Leftrightarrow$ TCP connection
 %%%% * '''Idea:''' transfer new TCP connection to existing smbd
 %%%% * '''How?''' ==> use fd-passing (sendmsg/recvmsg)
 %%%% * '''When?'''
 # implement lease break replay [TODO]
 }
 
-%%% ==== Multi-Channel $\in$ Samba : Status ====
-%%% 
-%%% <[block]{WIP code}
-%%% * @git://git.samba.org/obnox/samba/samba-obnox.git@
-%%% * branch: @master-multi-channel-obnox@
-%%% [block]>
-
-
-==== Multi-Channel $\in$ Samba: TODOs ====
-
-* Replay lease breaks upon channel failure (server $\rightarrow$ client)
-* teach socket\_wrapper fd-passing ( ==> selftest...)
-* clustering integration (CTDB)
-
-==== Multi-Channel $\in$ Samba : Clustering/CTDB ====
-
-+<2->{
-<[block]{Special considerations}
-* channels of one session only to one node !
-* do not bind connections to CTDB public IPs (can move)!
-* ==> !add static IPs on public interfaces! \\ %
-use these for interface discovery
-[block]>
-}
-
-
 ==== Multi-Channel $\in$ Samba : Details from @smbXsrv.idl@ ====
 %%==== @MSG\_SMBXSRV\_CONNECTION\_PASS@ ====
 
@@ -287,6 +261,33 @@ smbXsrv_session
 [block]>
 
 
+%%% ==== Multi-Channel $\in$ Samba : Status ====
+%%% 
+%%% <[block]{WIP code}
+%%% * @git://git.samba.org/obnox/samba/samba-obnox.git@
+%%% * branch: @master-multi-channel-obnox@
+%%% [block]>
+
+
+==== Multi-Channel $\in$ Samba: TODOs ====
+
+* Replay lease breaks upon channel failure (server $\rightarrow$ client)
+* teach socket\_wrapper fd-passing ( ==> selftest...)
+* clustering integration (CTDB)
+
+==== Multi-Channel $\in$ Samba : Clustering/CTDB ====
+
++<2->{
+<[block]{Special considerations}
+* channels of one session only to one node !
+* do not bind connections to CTDB public IPs (can move)!
+* ==> !add static IPs on public interfaces! \\ %
+use these for interface discovery
+[block]>
+}
+
+
+
 [frame]>
 
 <[sambabg]