1VFS_PREOPEN(8)            System Administration tools           VFS_PREOPEN(8)
2
3
4

NAME

6       vfs_preopen - Hide read latencies for applications reading numbered
7       files
8

SYNOPSIS

10       vfs objects = preopen
11

DESCRIPTION

13       This VFS module is part of the samba(7) suite.
14
15       This module assists applications that want to read numbered files in
16       sequence with very strict latency requirements. One area where this
17       happens in video streaming applications that want to read one file per
18       frame.
19
20       When you use this module, a number of helper processes is started that
21       speculatively open files and read a number of bytes to prime the file
22       system cache, so that later on when the real application's request
23       comes along, no disk access is necessary.
24
25       This module is stackable.
26

OPTIONS

28       preopen:posix-basic-regex = BOOL (default: no)
29           preopen:posix-basic-regex = yes changes the meaning of the
30           preopen:names option. Further details are described there.
31
32       preopen:names = /pattern1/pattern2/
33           preopen:names specifies the file name pattern(s) which should
34           trigger the preopen helpers to do their work. We assume that the
35           files are numbered incrementally. So if your file names are
36           numbered FRAME00000.frm FRAME00001.frm and so on you would list
37           them as preopen:names=/FRAME*.frm/. The default algorithm uses the
38           first (at least 3) digits it finds in order to calculate the name
39           of the next frames.
40
41           preopen:posix-basic-regex = yes changes the meaning of the
42           preopen:names option. It means 'POSIX Basic Regular Expression'
43           strings are used as patterns. The key is each pattern requires
44           exactly one 'subexpression' starting with '\(' and ending with '\)'
45           in order to specify the position of the digits representing the
46           incrementing frame numbers. Given a file names like
47           Movie7599Frame0v1234.txt, Movie7599Frame1v1234.txt,
48           Movie7599Frame2v1234.txt up to Movie7599Frame9v1234.txt you can use
49           preopen:names = /.*Frame\([0-9]\).*\.txt/ in order to match just a
50           single digits, this might not be a real world example, but it shows
51           the flexiblity that is possible here.
52
53       preopen:num_bytes = BYTES
54           Specifies the number of bytes the helpers should speculatively
55           read, defaults to 1.
56
57       preopen:helpers = NUM-PROCS
58           Number of forked helper processes, defaults to 1.
59
60       preopen:queuelen = NUM-FILES
61           Number of files that should be speculatively opened. Defaults to
62           the 10 subsequent files.
63
64       preopen:nomatch_log_level = LOGLEVEL
65           In order to debug or audit the usage of the preopen logic you can
66           use this option to specify at what log level details about
67           filenames not matching any pattern from 'preopen:names' are logged.
68
69           Defaults to the log level 5. See also smb.conf(5) in the 'log
70           level' section for special handling of the 'preopen' debug class.
71
72       preopen:match_log_level = LOGLEVEL
73           In order to debug or audit the usage of the preopen logic you can
74           use this option to specify at what log level details about
75           filenames actually matching a pattern from 'preopen:names' are
76           logged.
77
78           See also 'preopen:founddigits_log_level' and
79           'preopen:push_log_level'.
80
81           Defaults to the log level 5. See also smb.conf(5) in the 'log
82           level' section for special handling of the 'preopen' debug class.
83
84       preopen:nodigits_log_level = LOGLEVEL
85           In order to debug or audit problems with the preopen configuration
86           you can use this option to specify at what log level details about
87           filenames actually matching a pattern from 'preopen:names', but at
88           the same time don't contain the expected digits, are logged. This
89           is typically something the administrator wants to notice and adjust
90           the configuration in order to define more precisely where to find
91           the digits in the filename.
92
93           Defaults to the log level 1. See also smb.conf(5) in the 'log
94           level' section for special handling of the 'preopen' debug class.
95
96       preopen:founddigits_log_level = LOGLEVEL
97           In order to debug or audit the usage of the preopen logic you can
98           use this option to specify at what log level details about
99           filenames actually matching a pattern from 'preopen:names', and at
100           the same time having valid expected digits, are logged. This means
101           enough information is available in order to queue preopens.
102
103           Defaults to the log level 3. See also smb.conf(5) in the 'log
104           level' section for special handling of the 'preopen' debug class.
105
106       preopen:reset_log_level = LOGLEVEL
107           If a matching filename belongs to a different pattern from
108           'preopen:names', a different parent directory or differs in a
109           significant way from the last filename that was found before, the
110           module needs to reset it's internal queue state. This means that no
111           more preopens will be pushed to helper processes belonging to the
112           former queue state. In order to debug or audit such queue resets
113           you can use this option to specify at what log level details are
114           logged.
115
116           Defaults to the log level 5. See also smb.conf(5) in the 'log
117           level' section for special handling of the 'preopen' debug class.
118
119       preopen:push_log_level = LOGLEVEL
120           In order to debug or audit the usage of the preopen logic you can
121           use this option to specify at what log level details about
122           filenames actually pushed to preopen helper processes are logged.
123           This means they will actually be preopened soon.
124
125           Defaults to the log level 3. See also smb.conf(5) in the 'log
126           level' section for special handling of the 'preopen' debug class.
127
128       preopen:queue_log_level = LOGLEVEL
129           In order to debug details about internal queue processing you can
130           use this option to specify at what log level the details are
131           logged.
132
133           Defaults to the log level 10. See also smb.conf(5) in the 'log
134           level' section for special handling of the 'preopen' debug class.
135

VERSION

137       This man page is part of version 4.18.9 of the Samba suite.
138

AUTHOR

140       The original Samba software and related utilities were created by
141       Andrew Tridgell. Samba is now developed by the Samba Team as an Open
142       Source project similar to the way the Linux kernel is developed.
143
144       The PREOPEN VFS module was created with contributions from Volker
145       Lendecke and the developers at IBM.
146
147
148
149Samba 4.18.9                      11/30/2023                    VFS_PREOPEN(8)
Impressum