FennelParameters

From LucidDB Wiki
Jump to: navigation, search

This page documents parameters which control the behavior of Fennel. Some of these are generic, some are component-specific, and some are test-specific. Many also appear in higher-level systems built on Fennel such as FarragoSystemParameters and LucidDbSystemParameters.

Applies To Name Domain Default Value Description
Common resourceDir filesystem path to directory ${FENNEL_HOME}/common Location from which localized resource string files will be loaded.
Common jniHandleTraceFile filesystem path to file empty string If non-empty, controls location where JNI handle tracing output is written
Cache cachePagesMax 32-bit integer (number of pages) 1024 Determines upper bound for number of pages cache can allocate. On startup, actual upper bound is set to the larger of this parameter and cachePagesInit. Subsequently, changes to cachePagesInit are limited by upper bound calculated at startup.
Cache cachePagesInit 32-bit integer (number of pages) 1024 Sets number of page memory buffers to allocate from the OS for Fennel's data cache (also used as a pool for volatile scratch memory allocated by ExecStreams). Increasing it after startup causes new free buffers to be allocated; decreasing it causes buffers to be released (flushing them first if they contain dirty data).
Cache cachePageSize 32-bit integer (number of bytes; must be a power of 2) 4096 Determines contiguous size of memory buffers allocated by cache. Also determines contiguous size of pages stored on disk; these are the elemental allocation units for all disk-based data structures such as indexes.
Cache processorCacheBytes 32-bit integer (number of bytes) -1 Controls the amount of last-level CPU cache (typically L2, sometimes L3) to be used by memory-conscious data structures for improved cache coherence. The default value of -1 requests an automatic setting; currently this is 2MB, but may be changed to hardware autodetect in the future. This parameter is not available before v0.9.2.
Cache cacheIdleFlushInterval 32-bit integer (number of milliseconds) 100 Controls rate at which dirty data is flushed from the cache via lazy writer thread. Set to 0 to disable the lazy writer.
Cache prefetchPagesMax 32-bit integer (number of pages) 12 Controls size of prefetch queue for access paths which use prefetch.
Cache prefetchThrottleRate 32-bit integer (number of pages) 10 In the event that prefetch has been throttled down due to rejected requests, controls number of successful prefetches which must occur before prefetch rate is increased again.
Cache, Resource Governor cacheReservePercentage integer between 1 and 99 inclusive 5 The percentage of the data cache that should be set aside for global resource usage. The remainder will be available to allocate to individual statements.
Cache, Resource Governor expectedConcurrentStatements 32-bit integer (number of statements) 4 The percentage of the data cache that should be set aside for global resource usage. The remainder will be available to allocate to individual statements.
Tests derived from CacheTestBase victimPolicy { twoq, lru, random } twoq Sets the cache victimization algorithm.
Tests derived from CacheTestBase diskPages 32-bit integer (number of pages) 1000 Size of file to create for tests which need persistence but which do not create a database
Cache when default twoq victim policy is being used freshmenPageQueuePercentage integer between 0 and 100 inclusive 25 Percentage of the total cache set aside for the freshmen queue
Cache when default twoq victim policy is being used pageHistoryQueuePercentage integer between 0 and 100 inclusive 100 Percentage of the total number of cache pages that dictates the number of pages in the history queue.
Device I/O deviceSchedulerType { threadPool, aioLinux, aioPolling, aioSignal } system-dependent Controls the scheduler used for disk I/O. threadPool means to fake asynchronous I/O via a thread pool, and use buffered file access. On Linux, aioLinux means to use libaio for asynchronous I/O, with O_DIRECT for unbuffered file access. The default is to to use libaio if available, otherwise to fallback to threadPool. On Windows, ioCompletionPort (the default) means to use asynchronous I/O via completion ports and unbuffered file access. aioSignal and aioPolling are for Unix variants such as Solaris which are currently not supported by Fennel. In all cases, if an unrecognized or unsupported value is set, the system silently reverts to default behavior to avoid causing startup failures.
Device I/O deviceSchedulerThreadCounts 32-bit integer (number of threads) 1 Suggested number of threads to dedicate to scheduling activities; the scheduler may adjust this number based on the setting for deviceSchedulerMaxRequests.
Device I/O deviceSchedulerMaxRequests 32-bit integer (number of I/O requests) 1024 The maximum number of simultaneous requests that this scheduler should be able to handle; additional requests may be queued (or rejected for prefetch).
Database databaseDir filesystem path to directory must be set explicitly, except tests will set this to working directory automatically Location where all data, temp, and log files will be created.
Database forceTxns { false, true } false Whether to force out all dirty pages at each commit. For logical transaction logging, this is not necessary, but some storage implementations such as LucidDB treat the database itself as a log structure.
Database (only when forceTxns=true) disableSnapshots { false, true } false Normally, forceTxns=true implies usage of snapshot page versioning; setting disableSnapshots=true reverts to using unversioned page updates.
Database databaseInitSize 32-bit integer (number of pages) 1000 Determines the number of pages desired when calculating the initial size of Fennel's db.dat file.
Database databaseMaxSize 32-bit integer (number of pages) no limit Determines maximum size to which db.dat file can grow. Further allocations will fail even if space remains in the file system.
Database databaseIncrementSize 32-bit integer (number of pages) 1 Determines number of pages by which to automatically extend the db.dat file when all existing pages have been allocated.
Database tempInitSize 32-bit integer (number of pages) 1000 Determines the number of pages desired when calculating the initial size of Fennel's temp.dat file.
Database tempMaxSize 32-bit integer (number of pages) no limit Determines maximum size to which temp.dat file can grow. Further allocations will fail even if space remains in the file system.
Database tempIncrementSize 32-bit integer (number of pages) 1 Determines number of pages by which to automatically extend the temp.dat file when all existing pages have been allocated.
Database databaseShadowLogInitSize 32-bit integer (number of pages) 1000 Determines the number of pages desired when calculating the initial size of Fennel's shadowlog.dat file.
Database databaseShadowLogMaxSize 32-bit integer (number of pages) no limit Determines maximum size to which shadowlog.dat file can grow. Further allocations will fail even if space remains in the file system.
Database databaseShadowLogIncrementSize 32-bit integer (number of pages) 1 Determines number of pages by which to automatically extend the shadowlog.dat file when all existing pages have been allocated.
Database databaseTxnLogInitSize 32-bit integer (number of pages) 1000 Determines the number of pages desired when calculating the initial size of Fennel's txnlog.dat file.
Database databaseTxnLogMaxSize 32-bit integer (number of pages) no limit Determines maximum size to which txnlog.dat file can grow. Further allocations will fail even if space remains in the file system.
Database databaseTxnLogIncrementSize 32-bit integer (number of pages) 1 Determines number of pages by which to automatically extend the txnlog.dat file when all existing pages have been allocated.
Database groupCommitInterval 32-bit integer (number of milliseconds) 30 Determines maximum latency for group commit.
ParallelExecStreamScheduler degreeOfParallelism 32-bit integer (number of concurrent tasks) 4 Configures the thread pool used for parallel execution.
Tests testSuiteNameBoost test suite name set automatically based on test being run Internal parameter; should not be set explicitly.
Tests testTraceFileName filesystem path to file set automatically based on test being run to ${FENNEL_HOME}/trace/%testSuiteNameBoost%_trace.log Controls location of test trace output.
Tests testTraceLevel integer in the domain { 300, 400, 500, 700, 800, 900, 1000, 10000 } from the TraceLevel enum 800 (TRACE_CONFIG) Controls verbosity of test trace output.
Tests testStatsFileName filesystem path to file /tmp/fennel.stats Controls location of stats monitoring file.
Tests testTraceStdout string (--Jvs 20:13, 25 November 2008 (EST): shouldn't this be boolean instead?) empty string If non-empty, trace output is also written to stdout.
Tests testDictionaryFileName filesystem path to file dictWords Location of dictionary words file used as data by some tests.
Tests derived from ThreadedTestBase testDuration 32-bit integer (number of seconds) 10 Duration for executing multi-threaded test.
Tests derived from ThreadedTestBase defaultThreads 32-bit integer (number of threads) 1 Default number of threads to execute for a given activity, if not overridden by a more specific parameter such as readSeqThreads.
Tests derived from PagingTestBase randomOps 32-bit integer 5000 Total number of requests to be executed by each random I/O thread.
Tests derived from PagingTestBase resizeCache 0 or 1 (--Jvs 20:13, 25 November 2008 (EST): shouldn't this be boolean?) 1 Whether to dynamically shrink and expand the cache during the test.
Tests derived from PagingTestBase readSeqThreads, writeSeqThreads, readRandThreads, writeRandThreads, readNoWaitThreads, writeNoWaitThreads, writeSkipThreads, scratchThreads, prefetchThreads, prefetchBatchThreads, allocateThreads, deallocateThreads 32-bit integer (number of threads) setting for %defaultThreads% This family of parameters controls the number of threads to execute for carrying out various kinds of concurrent I/O, as indicated by the parameter names.
BTreeTxnTest insertsPerTxn 32-bit integer (number of insert operations) 5 Controls the number of operations executed per insert transaction.
BTreeTxnTest deletesPerTxn 32-bit integer (number of delete operations) 5 Controls the number of operations executed per delete transaction.
BTreeTxnTest keysPerScan 32-bit integer (number of btree entries) 5 Controls the number of leaf btree entries iterated over by each scan transaction.
BTreeTxnTest maxKey 32-bit integer (key value) 1000000 Controls the maximum number randomly generated for a key value.
BTreeTxnTest checkpointInterval 32-bit integer (number of seconds) 20 Controls the interval in between checkpoint operations.
BTreeTxnTest testRollback 0 or 1 (--Jvs 20:13, 25 November 2008 (EST): shouldn't this be boolean?) 1 Whether to cause half of the transactions to end in rollback (instead of just committing all of them).
BTreeTxnTest insertThreads 32-bit integer (number of threads) setting for %defaultThreads% Controls the number of threads carrying out concurrent insert transactions.
BTreeTxnTest deleteThreads 32-bit integer (number of threads) setting for %defaultThreads% Controls the number of threads carrying out concurrent delete transactions.
BTreeTxnTest scanThreads 32-bit integer (number of threads) setting for %defaultThreads% Controls the number of threads carrying out concurrent scan transactions.
BTreeTxnTest fuzzyChecpoint 0 or 1 (--Jvs 20:13, 25 November 2008 (EST): shouldn't this be boolean?) 1 Whether to use fuzzy checkpoints instead of sharp checkpoints.
Personal tools
Product Documentation