Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
VFS_PREOPEN(8)		   System Administration tools		  VFS_PREOPEN(8)

NAME
     vfs_preopen - Hide read latencies for applications reading numbered files

SYNOPSIS
     vfs objects = preopen

DESCRIPTION
     This VFS module is part of the samba(7) suite.

     This  module  assists  applications that want to read numbered files in se-
     quence with very strict latency requirements. One area where  this  happens
     in video streaming applications that want to read one file per frame.

     When  you	use  this  module,  a number of helper processes is started that
     speculatively open files and read a number of bytes to prime the file  sys-
     tem  cache,  so  that  later  on  when the real application's request comes
     along, no disk access is necessary.

     This module is stackable.

OPTIONS
     preopen:posix-basic-regex = BOOL (default: no)
	 preopen:posix-basic-regex  =  yes  changes  the  meaning  of  the  pre-
	 open:names option. Further details are described there.

     preopen:names = /pattern1/pattern2/
	 preopen:names	specifies  the file name pattern(s) which should trigger
	 the preopen helpers to do their work. We assume that the files are num-
	 bered incrementally. So if your file names are numbered  FRAME00000.frm
	 FRAME00001.frm    and	 so   on   you	 would	 list	them   as   pre-
	 open:names=/FRAME*.frm/. The default algorithm uses the first (at least
	 3) digits it finds in order to calculate the name of the next frames.

	 preopen:posix-basic-regex  =  yes  changes  the  meaning  of  the  pre-
	 open:names  option.  It  means 'POSIX Basic Regular Expression' strings
	 are used as patterns. The key is  each  pattern  requires  exactly  one
	 'subexpression'  starting  with  '\('	and ending with '\)' in order to
	 specify the position of the digits representing the incrementing  frame
	 numbers.    Given   a	 file	names	like   Movie7599Frame0v1234.txt,
	 Movie7599Frame1v1234.txt,	Movie7599Frame2v1234.txt      up      to
	 Movie7599Frame9v1234.txt     you     can     use     preopen:names    =
	 /.*Frame\([0-9]\).*\.txt/ in order to match just a single digits,  this
	 might not be a real world example, but it shows the flexibility that is
	 possible here.

     preopen:num_bytes = BYTES
	 Specifies  the  number  of bytes the helpers should speculatively read,
	 defaults to 1.

     preopen:helpers = NUM-PROCS
	 Number of forked helper processes, defaults to 1.

     preopen:queuelen = NUM-FILES
	 Number of files that should be speculatively opened. Defaults to the 10
	 subsequent files.

     preopen:nomatch_log_level = LOGLEVEL
	 In order to debug or audit the usage of the preopen logic you	can  use
	 this  option  to  specify at what log level details about filenames not
	 matching any pattern from 'preopen:names' are logged.

	 Defaults to the log level 5. See also smb.conf(5) in  the  'log  level'
	 section for special handling of the 'preopen' debug class.

     preopen:match_log_level = LOGLEVEL
	 In  order  to debug or audit the usage of the preopen logic you can use
	 this option to specify at what log level details about filenames  actu-
	 ally matching a pattern from 'preopen:names' are logged.

	 See also 'preopen:founddigits_log_level' and 'preopen:push_log_level'.

	 Defaults  to  the  log level 5. See also smb.conf(5) in the 'log level'
	 section for special handling of the 'preopen' debug class.

     preopen:nodigits_log_level = LOGLEVEL
	 In order to debug or audit problems with the preopen configuration  you
	 can  use  this  option to specify at what log level details about file-
	 names actually matching a pattern from 'preopen:names', but at the same
	 time don't contain the expected digits, are logged. This  is  typically
	 something  the  administrator wants to notice and adjust the configura-
	 tion in order to define more precisely where to find the digits in  the
	 filename.

	 Defaults  to  the  log level 1. See also smb.conf(5) in the 'log level'
	 section for special handling of the 'preopen' debug class.

     preopen:founddigits_log_level = LOGLEVEL
	 In order to debug or audit the usage of the preopen logic you	can  use
	 this  option to specify at what log level details about filenames actu-
	 ally matching a pattern from 'preopen:names', and at the same time hav-
	 ing valid expected digits, are logged. This means enough information is
	 available in order to queue preopens.

	 Defaults to the log level 3. See also smb.conf(5) in  the  'log  level'
	 section for special handling of the 'preopen' debug class.

     preopen:reset_log_level = LOGLEVEL
	 If  a	matching  filename  belongs  to  a  different pattern from 'pre-
	 open:names', a different parent directory or differs in  a  significant
	 way  from  the last filename that was found before, the module needs to
	 reset it's internal queue state. This means that no more preopens  will
	 be  pushed  to helper processes belonging to the former queue state. In
	 order to debug or audit such queue resets you can use	this  option  to
	 specify at what log level details are logged.

	 Defaults  to  the  log level 5. See also smb.conf(5) in the 'log level'
	 section for special handling of the 'preopen' debug class.

     preopen:push_log_level = LOGLEVEL
	 In order to debug or audit the usage of the preopen logic you	can  use
	 this  option to specify at what log level details about filenames actu-
	 ally pushed to preopen helper processes are  logged.  This  means  they
	 will actually be preopened soon.

	 Defaults  to  the  log level 3. See also smb.conf(5) in the 'log level'
	 section for special handling of the 'preopen' debug class.

     preopen:queue_log_level = LOGLEVEL
	 In order to debug details about internal queue processing you	can  use
	 this option to specify at what log level the details are logged.

	 Defaults  to  the log level 10. See also smb.conf(5) in the 'log level'
	 section for special handling of the 'preopen' debug class.

VERSION
     This man page is part of version 4.23.8 of the Samba suite.

AUTHOR
     The original Samba software and related utilities were  created  by  Andrew
     Tridgell.	Samba  is  now	developed  by  the  Samba Team as an Open Source
     project similar to the way the Linux kernel is developed.

     The PREOPEN VFS module was created with contributions from Volker	Lendecke
     and the developers at IBM.

Samba 4.23.8			   08/01/2026			  VFS_PREOPEN(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=vfs_preopen&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help