⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 flatstore_user.sgml

📁 性能优秀的SIP Proxy
💻 SGML
字号:
<!-- Module User's Guide --><chapter>	<chapterinfo>	<revhistory>		<revision>		<revnumber>$Revision: 1.1 $</revnumber>		<date>$Date: 2005/10/25 11:19:33 $</date>		</revision>	</revhistory>	</chapterinfo>	<title>User's Guide</title>		<section>	<title>Overview</title>	<para>		Flatstore is one of so-called &ser; database modules. It does not		export any functions executable from the configuration scripts, but		it exports a subset of functions from the database API and thus		other module can use it instead of, for example, mysql module.	</para>	<para>		The module does not export all functions of the database API, it		supports only one function, insert. The module is limited but very		fast. It is especially suitable for storing accounting information		on sites with extremely high traffic. If MySQL is too slow or if		you get a huge amount of accounting data then you can consider		using this module. Note that the acc module is the only module that		was tested with flastore.	</para>	<para>		The format of the files produced by this module is plain text. Each		line consists of several fields, fields are separated by |		character. New information is always appended at the end of the		file, searching, deleting and updating of existing data is not		supported by the module.	</para>	<para>		The acc module can be configured to use flatstore module as		database backend using the db_url_parameter:	</para>	<programlisting>modparam("acc", "db_url", "flatstore:/var/log/acc")</programlisting>	<para>		This configuration options tells acc module that it should use the		flatstore module and the flatstore module should create all files		in /var/log/acc directory. The directory must exist and &ser;		processes must have permissions to create files in that directory.	</para>	<para>		Name of files in that directory will follow the following pattern:	</para>	<programlisting>&lt;table_name&gt;_&lt;process_name&gt;.log</programlisting>	<para>		For example, entries writen by &ser; process 8 into acc table would		be written in file acc_8.log. For each table there will be several		files, one file for every &ser; process that wrote some data into		that table. The main reason why there are several files for each		table is that it is much faster to have one file per process,		because it does not require any locking and thus &ser; processes will		not block each other. To get the complete data for a table you can		simply concatenate the contents of files with the same table name		but different process id.	</para>	<section id="rotating">		<title>Rotating Log Files</title>		<para>		There is a new &ser; FIFO interface command called flat_rotate.		When &ser; receives the command then it will close and reopen all		files used by flatstore module. The rotation itself has to be		done by another application (such as logrotate). Follow these		steps to rotate files generated by flatstore module:		</para>		<itemizedlist>		<listitem>			<para>			Rename the files that you want to rotate:			<screen>cd /var/log/accmv acc_1.log acc_1.log.20050605mv acc_2.log acc_2.log.20050605mv acc_4.log acc_3.log.20050605...			</screen>			Note that at this point &ser; will still be writing all			data into the renamed files.			</para>		</listitem>		<listitem>			<para>			Send &ser; the fifo command to close and reopen the			renamed files:			<screen>openserctl fifo flat_rotate			</screen>			This will force &ser; to close the renamed files and open			new ones with original names, such as			<filename>acc_1.log</filename>. New files will be open			at the point when &ser; has some data to write. It is			normal that the files will be not created immediately			if there is no traffic on the proxy server.			</para>		</listitem>		<listitem>			<para>			Move the renamed files somewhere else and process them.			</para>		</listitem>		</itemizedlist>	</section>	</section>	<section>	<title>Dependencies</title>	<section>		<title>&ser; Modules</title>		<para>		The following  modules must be loaded before this module:			<itemizedlist>			<listitem>			<para>				<emphasis>No dependencies on other &ser; modules</emphasis>.			</para>			</listitem>			</itemizedlist>		</para>	</section>	<section>		<title>External Libraries or Applications</title>		<para>		The following libraries or applications must be installed before running		&ser; with this module loaded:			<itemizedlist>			<listitem>			<para>				<emphasis>None</emphasis>.			</para>			</listitem>			</itemizedlist>		</para>	</section>	</section>	<section>	<title>Exported Parameters</title>	<section>		<title><varname>flush</varname> (integer)</title>		<para>		Enable or disable flushing after each write.		</para>		<para>		<emphasis>			Default value is 1.		</emphasis>		</para>		<example>		<title>Set <quote>flush</quote> parameter</title>		<programlisting format="linespecific">...modparam("flatstore", "flush", 0)...</programlisting>		</example>	</section>	</section>	<section>	<title>Exported Functions</title>	<para>	There are no function exported to routing script.	</para>	</section></chapter><!-- Keep this element at the end of the fileLocal Variables:sgml-parent-document: ("exec.sgml" "Book" "chapter")End:-->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -