318 lines
10 KiB
Text
318 lines
10 KiB
Text
|
|
#######################################################
|
|
#
|
|
# Configuration options for the Mckoi SQL Database.
|
|
#
|
|
# NOTE: Lines starting with '#' are comments.
|
|
#
|
|
#######################################################
|
|
|
|
#
|
|
# database_path - The path where the database data files
|
|
# are located.
|
|
# See the 'root_path' configuration property for the
|
|
# details of how the engine resolves this to an
|
|
# absolute path in your file system.
|
|
|
|
database_path=./data
|
|
|
|
#
|
|
# log_path - The path the log files are written.
|
|
# See the 'root_path' configuration property for the
|
|
# details of how the engine resolves this to an
|
|
# absolute path in your file system.
|
|
# The log path must point to a writable directory. If
|
|
# no log files are to be kept, then comment out (or
|
|
# remove) the 'log_path' variable.
|
|
|
|
log_path=./log
|
|
|
|
#
|
|
# root_path - If this is set to 'jvm' then the root
|
|
# path of all database files is the root path of the
|
|
# JVM (Java virtual machine) running the database
|
|
# engine. If this property is set to 'configuration'
|
|
# or if it is not present then the root path is the
|
|
# path of this configuration file.
|
|
# This property is useful if you are deploying a
|
|
# database and need this configuration file to be the
|
|
# root of the directory tree of the database files.
|
|
|
|
root_path=configuration
|
|
#root_path=jvm
|
|
|
|
#
|
|
# jdbc_server_port - The TCP/IP port on this host where
|
|
# the database server is mounted. The default port
|
|
# of the Mckoi SQL Database server is '9157'
|
|
|
|
jdbc_server_port=9157
|
|
|
|
#
|
|
# ignore_case_for_identifiers - If enabled all
|
|
# identifiers are compared case insensitive. If
|
|
# disabled (the default) the case of the identifier
|
|
# is important.
|
|
# For example, if a table called 'MyTable' contains
|
|
# a column called 'my_column' and this property is
|
|
# enabled, the identifier 'MYTAble.MY_COlumN' will
|
|
# correctly reference the column of the table. If
|
|
# this property is disable a not found error is
|
|
# generated.
|
|
# This property is intended for compatibility with
|
|
# other database managements systems where the case
|
|
# of identifiers is not important.
|
|
|
|
ignore_case_for_identifiers=disabled
|
|
|
|
#
|
|
# socket_polling_frequency - Mckoi SQL maintains a pool
|
|
# of connections on the server to manage dispatching
|
|
# of commands to worker threads. All connections on
|
|
# the jdbc port are polled frequently, and ping
|
|
# requests are sent to determine if the TCP
|
|
# connection has closed or not. This value determines
|
|
# how frequently the connections are polled via the
|
|
# 'available' method.
|
|
# The value is the number of milliseconds between each
|
|
# poll of the 'available' method of the connections
|
|
# input socket stream. Different Java implementations
|
|
# will undoubtedly require this value to be tweaked.
|
|
# A value of '3' works great on the Sun NT Java 1.2.2
|
|
# and 1.3 Java runtimes.
|
|
#
|
|
# NOTE: This 'socket polling' module is a horrible hack
|
|
# and will be removed at some point when the threading
|
|
# performance improves or there is an API for non-
|
|
# blocking IO. I'll probably write an alternative
|
|
# version for use with the improved Java version.
|
|
|
|
socket_polling_frequency=3
|
|
|
|
|
|
|
|
# ----- PLUG-INS -----
|
|
|
|
#
|
|
# database_services - The services (as a Java class) that
|
|
# are registered at database boot time. Each service
|
|
# class is separated by a semi-colon (;) character.
|
|
# A database service must extend
|
|
# com.mckoi.database.ServerService
|
|
#
|
|
#database_services=mypackage.MyService
|
|
|
|
#
|
|
# function_factories - Registers one or more FunctionFactory
|
|
# classes with the database at boot time. A
|
|
# FunctionFactory allows user-defined functions to be
|
|
# incorporated into the SQL language. Each factory class
|
|
# is separated by a semi-colon (;) character.
|
|
#
|
|
#function_factories=mypackage.MyFunctionFactory
|
|
|
|
#
|
|
# The Java regular expression library to use. Currently
|
|
# the engine supports the Apache Jakarta regular expression
|
|
# library, and the GNU LGPL regular expression library.
|
|
# These two regular expression libraries can be found at the
|
|
# following web sites:
|
|
#
|
|
# GNU Regexp: http://www.cacas.org/~wes/java/
|
|
# Apache Regexp: http://jakarta.apache.org/regexp/
|
|
#
|
|
# The libraries provide similar functionality, however they
|
|
# are released under a different license. The GNU library
|
|
# is released under the LGPL and is compatible with GPL
|
|
# distributions of the database. The Apache Jakarta library
|
|
# is released under the Apache Software License and must not
|
|
# be linked into GPL distributions.
|
|
#
|
|
# Use 'regex_library=gnu.regexp' to use the GNU library, or
|
|
# 'regex_library=org.apache.regexp' to use the Apache
|
|
# library.
|
|
#
|
|
# NOTE: To use either library, you must include the
|
|
# respective .jar package in the Java classpath.
|
|
|
|
regex_library=gnu.regexp
|
|
|
|
|
|
|
|
|
|
# ----- PERFORMANCE -----
|
|
|
|
#
|
|
# data_cache_size - The maximum amount of memory (in bytes)
|
|
# to allow the memory cache to grow to. If this is set
|
|
# to a value < 4096 then the internal cache is disabled.
|
|
# It is recommended that a database server should provide
|
|
# a cache of 4 Megabytes (4194304). A stand alone
|
|
# database need not have such a large cache.
|
|
|
|
# data_cache_size=4194304
|
|
data_cache_size=0
|
|
|
|
#
|
|
# max_cache_entry_size - The maximum size of an element
|
|
# in the data cache. This is available for tuning
|
|
# reasons and the value here is dependant on the type
|
|
# of data being stored. If your data has more larger
|
|
# fields that would benefit from being stored in the
|
|
# cache then increase this value from its default of
|
|
# 8192 (8k).
|
|
|
|
max_cache_entry_size=8192
|
|
|
|
#
|
|
# lookup_comparison_list - When this is set to 'enabled'
|
|
# the database attempts to optimize sorting by generating
|
|
# an internal lookup table that enables the database to
|
|
# quickly calculate the order of a column without having
|
|
# to look at the data directly. The column lookup
|
|
# tables are only generated under certain query
|
|
# conditions. Set this to 'disabled' if the memory
|
|
# resources are slim.
|
|
|
|
lookup_comparison_list=enabled
|
|
|
|
#
|
|
# lookup_comparison_cache_size - The maximum amount of
|
|
# memory (in bytes) to allow for column lookup tables.
|
|
# If the maximum amount of memory is reached, the lookup
|
|
# table is either cached to disk so that is may be
|
|
# reloaded later if necessary, or removed from memory
|
|
# entirely. The decision is based on how long ago the
|
|
# table was last used.
|
|
#
|
|
# This property only makes sense if the
|
|
# 'lookup_comparison_list' property is enabled.
|
|
#
|
|
# NOTE: This property does nothing yet...
|
|
|
|
lookup_comparison_cache_size=2097152
|
|
|
|
#
|
|
# index_cache_size - The maximum amount of memory (in
|
|
# bytes) to allow for the storage of column indices.
|
|
# If the number of column indices in memory reaches
|
|
# this memory threshold then the index blocks are
|
|
# cached to disk.
|
|
#
|
|
# ISSUE: This is really an implementation of internal
|
|
# memory page caching but in Java. Is it necessary?
|
|
# Why not let the OS handle it with its page file?
|
|
#
|
|
# NOTE: This property does nothing yet...
|
|
|
|
index_cache_size=2097152
|
|
|
|
#
|
|
# max_worker_threads - The maximum number of worker
|
|
# threads that can be spawned to handle incoming
|
|
# requests. The higher this number, the more
|
|
# 'multi-threaded' the database becomes. The
|
|
# default setting is '4'.
|
|
|
|
maximum_worker_threads=4
|
|
|
|
#
|
|
# soft_index_storage - If this is set to 'enabled', the
|
|
# database engine will keep all column indices behind a
|
|
# soft reference. This enables the JVM garbage collector
|
|
# to reclaim memory used by the indexing system if the
|
|
# memory is needed.
|
|
#
|
|
# This is useful for an embedded database where requests
|
|
# are rare. When the database part is idle, the index
|
|
# memory (that can take up significant space for large
|
|
# tables) is reclaimed for other uses. For a dedicated
|
|
# database server it is recommended this is disabled.
|
|
#
|
|
# Enable this if you need the engine to use less memory.
|
|
# I would recommend the config property
|
|
# 'lookup_comparison_list' is disabled if this is enabled.
|
|
# The default setting is 'disabled'.
|
|
|
|
soft_index_storage=disabled
|
|
|
|
#
|
|
# dont_synch_filesystem - If this is enabled, the engine
|
|
# will not synchronize the file handle when a table change
|
|
# is committed. This will mean the data is not as
|
|
# safe but the 'commit' command will work faster. If this
|
|
# is enabled, there is a chance that committed changes will
|
|
# not get a chance to flush to the file system if the
|
|
# system crashes.
|
|
#
|
|
# It is recommended this property is left commented out.
|
|
#
|
|
#dont_synch_filesystem=enabled
|
|
|
|
#
|
|
# transaction_error_on_dirty_select - If this is disabled
|
|
# the 4th conflict (dirty read on modified table) will
|
|
# not be detected. This has transactional consequences
|
|
# that will cause data modifications to sometimes be
|
|
# out of syncronization. For example, one transaction
|
|
# adds an entry, and another concurrent transaction
|
|
# deletes all entries. If this is disabled this
|
|
# conflict will not be detected. The table will end up
|
|
# with the one entry added after commit.
|
|
#
|
|
# It is recommended this property is left commented out.
|
|
#
|
|
#transaction_error_on_dirty_select=disabled
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# ----- SPECIAL -----
|
|
|
|
#
|
|
# read_only - If this is set to 'enabled' then the database
|
|
# is readable and not writable. You may boot a database
|
|
# in read only mode from multiple VM's. If the database
|
|
# data files are stored on a read only medium such as a
|
|
# CD, then the property must be enabled else it will not
|
|
# be possible to boot the database.
|
|
# ( Uncomment the line below for read only mode )
|
|
#read_only=enabled
|
|
|
|
|
|
|
|
|
|
# ----- DEBUGGING -----
|
|
|
|
#
|
|
# debug_log_file - The file that is used to log all debug
|
|
# information. This file is stored in the 'log_path'
|
|
# path.
|
|
|
|
debug_log_file=debug.log
|
|
|
|
#
|
|
# debug_level - The minimum debug level of messages that
|
|
# are written to the log file. Reducing this number
|
|
# will cause more debug information to be written to
|
|
# the log.
|
|
# 10 = INFORMATION
|
|
# 20 = WARNINGS
|
|
# 30 = ALERTS
|
|
# 40 = ERRORS
|
|
|
|
debug_level=20
|
|
|
|
#
|
|
# table_lock_check - If this is enabled, every time a
|
|
# table is accessed a check is performed to ensure that
|
|
# the table owns the correct locks. If a lock assertion
|
|
# fails then an error is generated in the log file.
|
|
# This should not be enabled in a production system
|
|
# because the lock assertion check is expensive. However
|
|
# it should be used during testing because it helps to
|
|
# ensure locks are being made correctly.
|
|
|
|
table_lock_check=disabled
|