//  This file tells Drill to consider this module when class path scanning.
//  This file can also include any supplementary configuration information.
//  This file is in HOCON format, see https://github.com/typesafehub/config/blob/master/HOCON.md for more information.

drill: {
  classpath.scanning: {
    packages += "org.apache.drill.exec.fn.impl.testing",
    packages += "org.apache.drill.exec.physical.config",
    packages += "org.apache.drill.exec.store",
    packages += "org.apache.drill.exec.testing",
    packages += "org.apache.drill.exec.rpc.user.security.testing"
  }
  test.query.printing.silent : false,
  exec: {
    cluster-id: "drillbits1"
    rpc: {
      user: {
        server: {
          port: 31010
          threads: 1
        }
        client: {
          threads: 1
        }
      },
      bit: {
        server: {
          port : 31011,
          retry:{
            count: 7200,
            delay: 500
          },
          threads: 1
        }
      },
      use.ip : false
    },
    sys.store.provider.local.path: "file:/tmp/drill/tests",
    udf.directory.fs: "local",
    operator: {
      packages += "org.apache.drill.exec.physical.config"
    },
    optimizer: {
      implementation: "org.apache.drill.exec.opt.IdentityOptimizer"
    },
    functions: ["org.apache.drill.expr.fn.impl"],
    storage: {
      packages += "org.apache.drill.exec.store"
    },
    metrics : {
      context: "drillbit",
      log.enabled: true
    },
    zk: {
      connect: "localhost:2181",
      root: "drill/happy",
      refresh: 5,
      timeout: 5000,
      retry: {
        count: 7200,
        delay: 500
      }
    },
    functions: ["org.apache.drill.expr.fn.impl"],
    network: {
      start: 35000
    },
    work: {
      max.width.per.endpoint: 2,
      global.max.width: 100,
      executor.threads: 4
    }
  }
}
