InstantDB      Basic Topics      Advanced Topics      Reference Topics
Documentation Home Page


Database Properties

An InstantDB database is almost entirely defined by its properties file. The values of most of these properties are described throughout this documentation. However this page provides a quick reference for them.

It is possible to have a completely empty properties file. In this case properties file must be in the current directory. InstantDB will then use defaults for all of the properties.

Note that java properties are case sensitive.

Property Default Usage
altStringHashing 0 If set to 1 then String hashes use the JDK Object.hashCode() function. By default, uses InstantDB's String hashing.
cacheAmount 256 or 10 The amount of each column to cache, expressed either as an absolute number of rows or as a percentage figure.
cacheCondition CACHE_ROWS Must be one of CACHE_ROWS or CACHE_PERCENT. Determines whether to cache columns in tables based on an absolute number of rows, or the percentage number of rows in the table.
controlColCacheSize 8192 Every table has a $$control column. It is worth caching more of this column than other columns to speed up table scans etc. This property is system wide.
currencyDecimal 2 Number of digits after decimal point in currency outputs.
currencySymbol $ Currency symbol used in currency outputs.
cacheResetPercent 10 The percentage cache hit improvement required in order to move the cache to a new location in a column.
dateFormat "yyyy-mm-dd" Default format for date columns.
dateTimeFormat "yyyy-mm-dd hh:nn:ss.lll" Default format for timestamp columns.
    Intentionally left blank.
defaultIsolationLevel 8 Sets the transaction isolation level. Higher levels provide greater locking. Allowed values are 1, 2, 4 and 8, corresponding to:

  • TRANSACTION_READ_UNCOMMITTED = 1
  • TRANSACTION_READ_COMMITTED = 2
  • TRANSACTION_REPEATABLE_READ = 4
  • TRANSACTION_SERIALIZABLE = 8 (default)
exportSQL 0 Non-zero means include SQL statements in the export file.
fastUpdate 0 Non-zero means that database changes do not get written to the database immediately. See tuning.html.
flushAfterCacheMisses 128 It is possible for the table read ahead buffer to become locked by a thread which is not making good use of it. If too many reads need to be done using the single row read ahead buffers then the main read ahead buffer is flushed and reallocated to a different transaction. This property sets the number of read ahead buffer misses that must occur before this happens.
garbageCollectStatements 0 If set to a non-zero value then InstantDB will check the amount of available memory after this number of statements have been executed. If greater than garbageCollectPercent is in use then garbage collection will be requested.
garbageCollectPercent The percent amount of memory which must be in use in order to trigger automatic garbage collection.
ignoreKeywords   Allows selected InstantDB keywords to be unreserved. e.g., ignoreKeywords=url,quote would allow the keywords url and quote to be used as table or column names.
indexLoad 5 Percentage of free space in an index that must be present before the index reorganizes itself.
indexPath tablePath Path where index tables are held. Can be absolute or relative to the properties file.
likeIgnoreCase 0 Set to 1 to cause LIKE clauses to always perform case insensitive comparisons.
milleniumBoundary 0 If set, then all two digit dates less than its value are interpreted as 21st century dates.
missesInCacheStats 100 The number of cache misses to include in calculations of the next base for the cache.
nowMeansTime 0 Set to 1 causes the date string "now" to store a full timestamp. Default is to store only the date for fields with now hour in the format string
noBanner 0 Non-zero means suppress the opening copyright message. Note: this is set on the java command line not in the database properties file. e.g., java -DnoBanner=1 ...
partitionCount 0 Number of table partitions defined
partition1
partition2
...
tablePath Absolute path to partition directories.
prepareIgnoresEscapes 0 Set this value to 1 (one) if you would like PreparedStatement.setString() to ignore "\" (backslash) characters when processing string constants. When set, InstantDB will not attempt to interpret \ as the start of an escape sequence.
readOnly 0 Non-zero means database is opened in read only mode.
recoveryPolicy 2 0 means do not perform recovery
1 means perform automatic recovery
2 (default) means prompt the user using standard in
relativeToProperties 0 Non-zero means paths are relative to the properties file.
resultsOnDisk 0 Non-zero means that results sets get instantiated on disk.
resultsSetCache CACHE_ROWS cacheCondition setting to use for results sets.
resultsSetCacheAmount 100 cacheAmount setting to use in results sets.
rowCacheSize 20 Number of rows to read into the disk look ahead buffer. Recommended to be set somewhere around 128 to 256.
searchDeletes 0 By default, InstantDB only does a cursory search for deleted rows during UPDATE statements. Setting searchDeletes=1 causes more detailed searches for deleted rows. This slows down UPDATE executions, but results in more compact tables.
singleRowCount 8 When doing a full table scan, InstantDB will normally use it's read ahead buffer to cache data. However, if multiple scans are in progress on a table then it is better to read single rows. This property defines the number of single row buffers that are held for this purpose.
strictLiterals 0 Same as SET LITERAL STRICT_ON. Prevents string literals being interpreted as column names or numbers.
systemCacheCondition CACHE_PERCENT Similar to cacheCondition but applies only to system tables. Normally system tables are 100% cached. This allows the size of system table caches to be reduced.
systemCacheSize 100 Similar to cacheAmount but applies only to system tables. Normally system tables are 100% cached. This allows the size of system table caches to be reduced.
systemPath tablePath Path where system tables are held. Can be absolute or relative to the properties file.
systemRows rowCacheSize Similar to rowCacheSize but applies only to system tables. Normally system tables are 100% cached, so maintaining a large read look ahead buffer is wasteful. This allows the size of the read ahead buffer for system tables to be reduced.
tablePath . Path where database tables are held. Can be absolute or relative to the properties file.
timeFormat "hh:nn:ss" Default format applied to TIME columns.
    Intentionally left blank.
timerCheck 5000 Interval in milliseconds between checks for timed out queries.
tmpPath tablePath Path where results set tables are held. Can be absolute or relative to the properties file.
traceConsole 0 Non-zero means trace output also directed to console.
traceFile   Relative or absolute path where exporting and tracing goes. NOTE - A relative path is relative to the current Java runtime directory. It is *not* relative to the properties file. This is regardless of the relativeToProperties setting.
traceLevel 0 Bitmap of various items that can be traced. See debug.html.
transLevel 1 Sets the level of transaction journalling. See trans.html.
transImports 100 When doing an import, defines the number of rows imported before the transaction is committed. Recommended value 8192.


Copyright © 2000, 2001 Lutris Technologies. All rights reserved.