Module: sip-router
Branch: janakj/flatstore
Commit: c4bddb54e21e2a78adf2910951e03ab359f71aa0
URL:
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=c4bddb5…
Author: Jan Janak <jan(a)iptel.org>
Committer: Jan Janak <jan(a)iptel.org>
Date: Mon Jun 23 17:29:11 2008 +0000
- missing READMEs added
---
modules/db_flatstore/README | 95 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 95 insertions(+), 0 deletions(-)
diff --git a/modules/db_flatstore/README b/modules/db_flatstore/README
new file mode 100644
index 0000000..715c2c3
--- /dev/null
+++ b/modules/db_flatstore/README
@@ -0,0 +1,95 @@
+1. Flatstore Module
+
+Jan Janak
+
+ FhG FOKUS
+ <jan(a)iptel.org>
+
+ Copyright � 2004, 2005 FhG FOKUS
+ Revision History
+ Revision $Revision$ $Date$
+ __________________________________________________________________
+
+ 1.1. Overview
+
+ 1.1.1. Rotating Log Files
+
+ 1.2. Parameters
+
+ 1.2.1. flush (integer)
+
+1.1. Overview
+
+ 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.
+
+ 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.
+
+ 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.
+
+ The acc module can be configured to use flatstore module as database
+ backend using the db_url_parameter:
+modparam("acc", "db_url", "flatstore:/var/log/acc")
+
+ 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.
+
+ Name of files in that directory will follow the following pattern:
+<table_name>_<process_name>.log
+
+ 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.
+
+1.1.1. Rotating Log Files
+
+ 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:
+ * Rename the files that you want to rotate:
+cd /var/log/acc
+mv acc_1.log acc_1.log.20050605
+mv acc_2.log acc_2.log.20050605
+mv acc_4.log acc_3.log.20050605
+...
+ Note that at this point SER will still be writing all data into the
+ renamed files.
+ * Send SER the fifo command to close and reopen the renamed files:
+serctl fifo flat_rotate
+ This will force SER to close the renamed files and open new ones
+ with original names, such as acc_1.log. 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.
+ * Move the renamed files somewhere else and process them.
+
+1.2. Parameters
+
+ Revision History
+ Revision $Revision$ $Date$
+
+1.2.1. flush (integer)
+
+ Enable or disable flushing after each write.
+
+ Default value is 1.