Basic Topics | Advanced Topics | Reference Topics | |
Documentation Home Page |
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:
|
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. |