; 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.

[nc/asterix_nc1]
txn.log.dir=target/tmp/asterix_nc1/txnlog
core.dump.dir=target/tmp/asterix_nc1/coredump
iodevices=target/tmp/asterix_nc1/iodevice1,target/tmp/asterix_nc1/iodevice2
nc.api.port=19004

[nc/asterix_nc2]
ncservice.port=9091
txn.log.dir=target/tmp/asterix_nc2/txnlog
core.dump.dir=target/tmp/asterix_nc2/coredump
iodevices=target/tmp/asterix_nc2/iodevice1,target/tmp/asterix_nc2/iodevice2
nc.api.port=19005

[nc]
address=127.0.0.1
command=asterixnc
app.class=org.apache.asterix.hyracks.bootstrap.NCApplication
jvm.args=-Xmx4096m -Dnode.Resolver="org.apache.asterix.external.util.IdentitiyResolverFactory"
storage.buffercache.pagesize=32KB
storage.buffercache.size=48MB
storage.memorycomponent.globalbudget=128MB

[cc]
address = 127.0.0.1
app.class=org.apache.asterix.hyracks.bootstrap.CCApplication
heartbeat.period=2000
heartbeat.max.misses=25

[common]
log.level = INFO
compiler.framesize=32KB
compiler.sortmemory=320KB
compiler.groupmemory=160KB
compiler.joinmemory=256KB
compiler.windowmemory=192KB
messaging.frame.size=4096
messaging.frame.count=512
txn.log.partitionsize=2MB
txn.log.buffer.pagesize=128KB
txn.log.checkpoint.pollfrequency=2147483647
storage.max.active.writable.datasets=50