DB Cache 설치 및 네트워크 설정
DB cache 를 위한 게임 데이터베이스 스키마
DB cache 를 위한 데이터베이스 스키마는 사용자가 원하는대로 구성될 수 있습니다.
단, 다음 규칙을 준수해야 합니다.
RootUUID, OwnerUUID, UUID 필드가 들어가야 합니다.
RootUUID, OwnerUUID, UUID를 Combination PK로 지정하여 사용하면 인덱싱을 이용한 검색에 악영향을 줍니다. 따라서 각각의 index를 만들어 사용하는 것이 성능 향상에 도움이 됩니다.
상기 필드 중 RootUUID와 OwnerUUID는 Non-Unique Index 로 지정합니다. 그리고 UUID는 Primary Key로 지정합니다.
상기 필드는 MySQL 에서 varchar(38)로, MSSQL 에서는 uniqueidentifier 형식이어야 합니다.
Root table와 Child table의 이름은 중복되지 않아야 합니다.
DB cache 클라이언트와 서버가 사용하는 stored procedure 들이 자동으로 게임 데이터베이스 스키마에 추가되는데, 이를 수정하거나 제거하지 마십시오.
3가지 필수 인덱스 추가 예제 스크립트
DB cache 서버 준비
데이터베이스 스키마를 생성 후 DB cache server 인스턴스를 생성해야 하며, Proud.CDbCacheServer2 타입으로 인스턴스는 각 게임 서버들 사이에서 단 1개만 있으면 충분합니다.
인스턴스 | 설명 |
---|---|
Proud.CDbCacheServer2.New | 인스턴스 생성 |
Proud.CDbCacheServer2.Start | 실행 |
DB 인스턴스에 접속하는 connection string 은 ADO connection string 형식이며, 샘플에서 참고하실 수 있습니다.
DB cache server의 인증 key 는 DB cache 서버에서 접속을 식별하기 위한 DB cache client 에서 보내는 데이터입니다.
Proud.CDbCacheServer2.Start 를 호출할 때 Proud.CDbCacheServer2StartParameter.m_tableNames에 사용자에 의해 정의된 테이블 이름들이 들어가야 합니다.
Proud.CDbCacheServer2.Start 가 실행되는 동안 sp_Get<테이블이름>Data과 sp_Remove<테이블이름>Data 그리고 sp_Add<테이블이름>Data가 자동으로 생성됩니다.
DB Cache 클라이언트 준비
각 게임 서버(인증 서버, 게임 zone 서버, 로비 서버 등)은 Proud.CDbCacheClient2.New를 실행하여 client 인스턴스를 생성해야 하며, 타입은 Proud.CDbCacheClient2 입니다.
생성 후 Proud.CDbCacheClient2.Connect를 통해 DB cache server에 접속을 시도해야 합니다. 접속 시도는 비동기로 이루어지며 접속이 성공하거나 실패하면 Proud.IDbCacheClientDelegate2.OnJoinDbCacheServerComplete가 콜백됩니다. DB cache client는 내부적으로 Proud.CLanClient를 사용하는데 스레드 풀링 방식이므로 따로 FrameMove 가 없습니다.
DB cache server와의 연결 해제를 위해서는 Proud.CDbCacheClient2 객체를 파괴하거나 Proud.CDbCacheClient2.Disconnect를 호출합니다. 이때 DB cache 클라이언트는 Proud.IDbCacheClientDelegate2.OnLeaveDbCacheServer가 콜백됩니다.
Last updated