<!--
 ! Licensed to the Apache Software Foundation (ASF) under one
 ! or more contributor license agreements.  See the NOTICE file
 ! distributed with this work for additional information
 ! regarding copyright ownership.  The ASF licenses this file
 ! to you under the Apache License, Version 2.0 (the
 ! "License"); you may not use this file except in compliance
 ! with the License.  You may obtain a copy of the License at
 !
 !   http://www.apache.org/licenses/LICENSE-2.0
 !
 ! Unless required by applicable law or agreed to in writing,
 ! software distributed under the License is distributed on an
 ! "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 ! KIND, either express or implied.  See the License for the
 ! specific language governing permissions and limitations
 ! under the License.
 !-->

<asterixConfiguration xmlns="asterixconf">
  <instanceName>docker-minitest</instanceName>
  <metadataNode>nc1</metadataNode>
  <store>
    <ncId>nc1</ncId>
    <storeDirs>storage1</storeDirs>
  </store>
  <store>
    <ncId>nc2</ncId>
    <storeDirs>storage2</storeDirs>
  </store>
  <coredump>
    <ncId>nc1</ncId>
    <coredumpPath>/asterixdb/</coredumpPath>
    <ncId>nc2</ncId>
    <coredumpPath>/asterixdb/</coredumpPath>
  </coredump>
  <transactionLogDir>
    <ncId>nc1</ncId>
    <txnLogDirPath>/asterixdb/txnLogs1/</txnLogDirPath>
  </transactionLogDir>
  <transactionLogDir>
    <ncId>nc2</ncId>
    <txnLogDirPath>/asterixdb/txnLogs2/</txnLogDirPath>
  </transactionLogDir>

  <property>
    <name>nc.java.opts</name>
    <value>-Xmx1536m</value>
    <description>JVM parameters for each Node Contoller (NC)</description>
  </property>

  <property>
    <name>cc.java.opts</name>
    <value>-Xmx1024m</value>
    <description>JVM parameters for each Cluster Contoller (CC)
    </description>
  </property>

  <property>
    <name>max.wait.active.cluster</name>
    <value>60</value>
    <description>Maximum wait (in seconds) for a cluster to be ACTIVE (all nodes are available)
      before a submitted query/statement can be executed. (Default = 60 seconds)
    </description>
  </property>

  <property>
    <name>storage.buffercache.pagesize</name>
    <value>128KB</value>
    <description>The page size in bytes for pages in the buffer cache.
      (Default = "131072" // 128KB)
    </description>
  </property>

  <property>
    <name>storage.buffercache.size</name>
    <value>512MB</value>
    <description>The size of memory allocated to the disk buffer cache.
      The value should be a multiple of the buffer cache page size(Default
      = "536870912" // 512MB)
    </description>
  </property>

  <property>
    <name>storage.buffercache.maxopenfiles</name>
    <value>214748364</value>
    <description>The maximum number of open files in the buffer cache.
      (Default = "214748364")
    </description>
  </property>

  <property>
    <name>storage.memorycomponent.pagesize</name>
    <value>128KB</value>
    <description>The page size in bytes for pages allocated to memory
      components. (Default = "131072" // 128KB)
    </description>
  </property>

  <property>
    <name>storage.memorycomponent.numpages</name>
    <value>256</value>
    <description>The number of pages to allocate for a memory component.
      This budget is shared by all the memory components of the primary
      index and all its secondary indexes across all I/O devices on a node.
      Note: in-memory components usually has fill factor of 75% since
      the pages are 75% full and the remaining 25% is un-utilized. (Default = 256)
    </description>
  </property>
  <property>
    <name>storage.metadata.memorycomponent.numpages</name>
    <value>64</value>
    <description>The number of pages to allocate for a memory component.
      (Default = 64)
    </description>
  </property>

  <property>
    <name>storage.memorycomponent.numcomponents</name>
    <value>2</value>
    <description>The number of memory components to be used per lsm index.
      (Default = 2)
    </description>
  </property>

  <property>
    <name>storage.memorycomponent.globalbudget</name>
    <value>512MB</value>
    <description>The total size of memory in bytes that the sum of all open memory
      components cannot exceed. Consider this as the buffer cache for all memory
      components of all indexes in a node. When this budget is fully used, a victim
      dataset will be chosen. The chosen dataset must be evicted and closed to make
      a space for another dataset. (Default = 512MB)
    </description>
  </property>

  <property>
    <name>storage.lsm.bloomfilter.falsepositiverate</name>
    <value>0.01</value>
    <description>The maximum acceptable false positive rate for bloom
      filters associated with LSM indexes. (Default = "0.01" // 1%)
    </description>
  </property>

  <property>
    <name>txn.log.buffer.numpages</name>
    <value>8</value>
    <description>The number of in-memory log buffer pages. (Default = "8")
    </description>
  </property>

  <property>
    <name>txn.log.buffer.pagesize</name>
    <value>512KB</value>
    <description>The size of pages in the in-memory log buffer. (Default =
      "524288" // 512KB)
    </description>
  </property>

  <property>
    <name>txn.log.partitionsize</name>
    <value>2GB</value>
    <description>The maximum size of a log file partition allowed before
      rotating the log to the next partition. (Default = "2147483648" //
      2GB)
    </description>
  </property>

  <property>
    <name>txn.log.checkpoint.lsnthreshold</name>
    <value>67108864</value>
    <description>The size of the window that the maximum LSN is allowed to
      be ahead of the checkpoint LSN by. (Default = ""67108864" // 64M)
    </description>
  </property>

  <property>
    <name>txn.log.checkpoint.pollfrequency</name>
    <value>120</value>
    <description>The time in seconds between that the checkpoint thread
      waits between polls. (Default = "120" // 120s)
    </description>
  </property>

  <property>
    <name>txn.log.checkpoint.history</name>
    <value>0</value>
    <description>The number of old log partition files to keep before
      discarding. (Default = "0")
    </description>
  </property>

  <property>
    <name>txn.lock.escalationthreshold</name>
    <value>1000</value>
    <description>The number of entity level locks that need to be acquired
      before the locks are coalesced and escalated into a dataset level
      lock. (Default = "1000")
    </description>
  </property>

  <property>
    <name>txn.lock.shrinktimer</name>
    <value>5000</value>
    <description>The time in milliseconds to wait before deallocating
      unused lock manager memory. (Default = "5000" // 5s)
    </description>
  </property>

  <property>
    <name>txn.lock.timeout.waitthreshold</name>
    <value>60000</value>
    <description>The time in milliseconds to wait before labeling a
      transaction which has been waiting for a lock timed-out. (Default =
      "60000" // 60s)
    </description>
  </property>

  <property>
    <name>txn.lock.timeout.sweepthreshold</name>
    <value>10000</value>
    <description>The time in milliseconds the timeout thread waits between
      sweeps to detect timed-out transactions. (Default = "10000" // 10s)
    </description>
  </property>

  <property>
    <name>compiler.sortmemory</name>
    <value>32MB</value>
    <description>The amount of memory in bytes given to sort operations.
      (Default = "33554432" // 32mb)
    </description>
  </property>

  <property>
    <name>compiler.joinmemory</name>
    <value>32MB</value>
    <description>The amount of memory in bytes given to join operations.
      (Default = "33554432" // 32mb)
    </description>
  </property>

  <property>
    <name>compiler.framesize</name>
    <value>128KB</value>
    <description>The Hyracks frame size that the compiler configures per
      job. (Default = "131072" // 128KB)
    </description>
  </property>

  <property>
    <name>web.port</name>
    <value>19001</value>
    <description>The port for the ASTERIX web interface. (Default = 19001)
    </description>
  </property>

  <property>
    <name>api.port</name>
    <value>19002</value>
    <description>The port for the ASTERIX API server. (Default = 19002)
    </description>
  </property>

  <property>
    <name>log.level</name>
    <value>INFO</value>
    <description>The minimum log level to be displayed. (Default = INFO)
    </description>
  </property>
</asterixConfiguration>
