Open Source RDBMS - Seamless, Scalable, Stable and Free

한국어 | Login |Register

Versions available for this page: CUBRID 8.4.3 |  CUBRID 9.0.0 | 

shard 설정 변경

shard.conf

기본 설정 파일인 shard.conf를 아래와 같이 변경한다.

주의 : 포트 번호 및 공유 메모리 식별자는 현재 시스템에서 사용하지 않는 값으로 적절히 변경해야 한다.

[shard]

MASTER_SHM_ID           =45501

ADMIN_LOG_FILE          =log/broker/cubrid_broker.log

 

[%shard1]

SERVICE                 =ON

BROKER_PORT             =45511

MIN_NUM_APPL_SERVER     =1  

MAX_NUM_APPL_SERVER     =1  

APPL_SERVER_SHM_ID      =45511

LOG_DIR                 =log/broker/sql_log

ERROR_LOG_DIR           =log/broker/error_log

SQL_LOG                 =ON

TIME_TO_KILL            =120

SESSION_TIMEOUT         =300

KEEP_CONNECTION         =ON

MAX_PREPARED_STMT_COUNT =1024

SHARD_DB_NAME           =shard1

SHARD_DB_USER           =shard

SHARD_DB_PASSWORD       =shard123

NUM_PROXY_MIN           =1  

NUM_PROXY_MAX           =1  

PROXY_LOG_FILE          =log/broker/proxy_log

PROXY_LOG               =ALL

MAX_CLIENT              =10

METADATA_SHM_ID         =45591

SHARD_CONNECTION_FILE   =shard_connection.txt

SHARD_KEY_FILE          =shard_key.txt

CUBRID의 경우 shard_connection.txt에 서버의 포트 번호를 별도로 설정하지 않고 cubrid.conf 설정 파일의 cubrid_port_id 파라미터를 사용하므로, cubrid.confcubrid_port_id 파라미터를 서버와 동일하게 설정한다.

# TCP port id for the CUBRID programs (used by all clients).

cubrid_port_id=41523

shard_key.txt

shard key 해시 값에 대한 shard DB 매핑 설정 파일인 shard_key.txt 파일을 아래와 같이 설정한다.

  • [%shard_key] : shard key 섹션 설정
  • 기본 해시 함수에 의한 shard key 해시 결과가 0~63인 경우 shard #0 에서 질의 수행
  • 기본 해시 함수에 의한 shard key 해시 결과가 64~127인 경우 shard #1 에서 질의 수행
  • 기본 해시 함수에 의한 shard key 해시 결과가 128~191인 경우 shard #2 에서 질의 수행
  • 기본 해시 함수에 의한 shard key 해시 결과가 192~255인 경우 shard #3 에서 질의 수행

[%shard_key]

#min    max     shard_id

0       63      0

64      127     1

128     191     2

192     255     3

shard_connection.txt

shard 구성 데이터베이스 설정 파일인 shard_connection.txt 파일을 아래와 같이 설정한다.

  • shard #0의 실제 데이터베이스 이름과 connection 정보
  • shard #1의 실제 데이터베이스 이름과 connection 정보
  • shard #2의 실제 데이터베이스 이름과 connection 정보
  • shard #3의 실제 데이터베이스 이름과 connection 정보

# shard-id  real-db-name  connection-info

#                         * cubrid : hostname, hostname, ...

#                         * mysql  : hostname:port

0           shard1        HostA

1           shard1        HostB

2           shard1        HostC

3           shard1        HostD