; 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,../asterix-server/target/tmp/asterix_nc1/iodevice2
#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5006

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

#jvm.args=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5007

[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=512MB

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

[common]
log.level = INFO
compiler.framesize=32KB
compiler.sortmemory=320KB
compiler.groupmemory=160KB
compiler.joinmemory=256KB
messaging.frame.size=4096
messaging.frame.count=512

[extension/org.apache.asterix.bad.lang.BADQueryTranslatorExtension]
enabled = true
[extension/org.apache.asterix.bad.lang.BADLangExtension]
enabled = true
[extension/org.apache.asterix.bad.metadata.BADMetadataExtension]
enabled = true
[extension/org.apache.asterix.bad.recovery.BADRecoveryExtension]
enabled = true