{{#!k2hr3template }}
#
# K2HDKC DBaaS based on Trove
#
# Copyright 2020 Yahoo Japan Corporation
# Copyright 2024 LY Corporation
#
# K2HDKC DBaaS is a Database as a Service compatible with Trove which
# is DBaaS for OpenStack.
# Using K2HR3 as backend and incorporating it into Trove to provide
# DBaaS functionality. K2HDKC, K2HR3, CHMPX and K2HASH are components
# provided as AntPickax.
# 
# For the full copyright and license information, please view
# the license file that was distributed with this source code.
#
# AUTHOR:   Takeshi Nakatani
# CREATE:   Mon Sep 14 2020
# REVISION:
#

#
# GLOBAL SECTION
#
[GLOBAL]
FILEVERSION         = 1
DATE                = Thu, 28 May 2020 04:56:20  0000
GROUP               = {{= %cluster-name% }}
MODE                = {{= %chmpx-mode% }}
CHMPXIDTYPE         = NAME
DELIVERMODE         = hash
MAXCHMPX            = 256
REPLICA             = 1
MAXMQSERVER         = 8
MAXMQCLIENT         = 128
MQPERATTACH         = 8
MAXQPERSERVERMQ     = 8
MAXQPERCLIENTMQ     = 8
MAXMQPERCLIENT      = 16
MAXHISTLOG          = 0
{{ if 'SERVER' == %chmpx-mode% }}
PORT                = {{= %chmpx-server-port% }}
CTLPORT             = {{= %chmpx-server-ctlport% }}
SELFCTLPORT         = {{= %chmpx-server-ctlport% }}
{{ else }}
CTLPORT             = {{= %chmpx-slave-ctlport% }}
SELFCTLPORT         = {{= %chmpx-slave-ctlport% }}
{{ endif }}
SELFCUK             = __SELF_INSTANCE_ID__
RWTIMEOUT           = 10000
RETRYCNT            = 500
CONTIMEOUT          = 1000
MQRWTIMEOUT         = 500
MQRETRYCNT          = 10000
MQACK               = no
AUTOMERGE           = on
DOMERGE             = on
MERGETIMEOUT        = 0
SOCKTHREADCNT       = 8
MQTHREADCNT         = 8
MAXSOCKPOOL         = 16
SOCKPOOLTIMEOUT     = 0
SSL                 = no
K2HFULLMAP          = on
K2HMASKBIT          = 4
K2HCMASKBIT         = 8
K2HMAXELE           = 16

#
# SERVER NODES SECTION
#
{{ foreach %host_key% in %yrn:yahoo:::__TROVE_K2HDKC_TENANT_NAME__:role:__TROVE_K2HDKC_CLUSTER_NAME__/server/hosts/ip% }}
    {{ %one_host% = %yrn:yahoo:::__TROVE_K2HDKC_TENANT_NAME__:role:__TROVE_K2HDKC_CLUSTER_NAME__/server/hosts/ip%{%host_key%} }}
[SVRNODE]
NAME                = {{= %one_host%{'host'} }}
CUK                 = {{= %one_host%{'cuk'} }}
PORT                = {{= %chmpx-server-port% }}
CTLPORT             = {{= %chmpx-server-ctlport% }}
SSL                 = no
    {{ if %one_host%{'inboundip'} }}
ENDPOINTS           = {{= %one_host%{'inboundip'} }}:{{= %chmpx-server-port% }}
CTLENDPOINTS        = {{= %one_host%{'inboundip'} }}:{{= %chmpx-server-ctlport% }}
REVERSE_PEERS       = {{= %one_host%{'inboundip'} }}
    {{ endif }}
    {{ if %one_host%{'outboundip'} }}
FORWARD_PEERS       = {{= %one_host%{'outboundip'} }}
    {{ endif }}
{{ done }}

#
# SLAVE NODES SECTION
#
{{ if 0 < %yrn:yahoo:::__TROVE_K2HDKC_TENANT_NAME__:role:__TROVE_K2HDKC_CLUSTER_NAME__/slave/hosts/ip%.length }}
    {{ foreach %host_key% in %yrn:yahoo:::__TROVE_K2HDKC_TENANT_NAME__:role:__TROVE_K2HDKC_CLUSTER_NAME__/slave/hosts/ip% }}
        {{ %one_host% = %yrn:yahoo:::__TROVE_K2HDKC_TENANT_NAME__:role:__TROVE_K2HDKC_CLUSTER_NAME__/slave/hosts/ip%{%host_key%} }}
[SLVNODE]
NAME                = {{= %one_host%{'host'} }}
CUK                 = {{= %one_host%{'cuk'} }}
CTLPORT             = {{= %chmpx-slave-ctlport% }}
SSL                 = no
        {{ if %one_host%{'inboundip'} }}
CTLENDPOINTS        = {{= %one_host%{'inboundip'} }}:{{= %chmpx-slave-ctlport% }}
REVERSE_PEERS       = {{= %one_host%{'inboundip'} }}
        {{ endif }}
        {{ if %one_host%{'outboundip'} }}
FORWARD_PEERS       = {{= %one_host%{'outboundip'} }}
        {{ endif }}
    {{ done }}
{{ else }}
#
# This is output as a dummy slave node when there are no slave nodes.
# If the slave node definition does not exist, CHMPX will not start.
# To avoid this, register only one localhost as a dummy.
#
[SLVNODE]
NAME                = 127.0.0.1
CUK                 = dummy_cuk
CTLPORT             = {{= %chmpx-slave-ctlport% }}
SSL                 = no
{{ endif }}

{{ if 'SERVER' == %chmpx-mode% }}
#
# K2HDKC SECTION
#
[K2HDKC]
K2HTYPE             = file
K2HFILE             = /var/lib/antpickax/data/k2hdkc.k2h
K2HFULLMAP          = on
K2HINIT             = no
K2HMASKBIT          = 8
K2HCMASKBIT         = 8
K2HMAXELE           = 32
K2HPAGESIZE         = 512
MAXTHREAD           = 20
{{ endif }}

#
# Local variables:
# tab-width: 4
# c-basic-offset: 4
# End:
# vim600: expandtab sw=4 ts=4 fdm=marker
# vim<600: expandtab sw=4 ts=4
#
