cubrid
cubrid copied to clipboard
[CBRD-26125] Coordinator for distributed transaction
http://jira.cubrid.org/browse/CBRD-26125
Purpose
현재, 일부 기능만 구현되어 있는 코디네이터를 확장 구현한다.
Implementation
코디네이터의 미구현 상태인 아래 7개의 function 중 5개 function (get_participants, send_prepare, send_commit, send_abort, dump_participant)을 dblink 기능과 cci XA를 이용하여 구현한다.
struct log_2pc_global_data
{
int (*get_participants) (int *particp_id_length, void **block_particps_ids);**
int (*lookup_participant) (void *particp_id, int num_particps, void *block_particps_ids);
char *(*sprintf_participant) (void *particp_id);
void (*dump_participants) (FILE * fp, int block_length, void *block_particps_id);
int (*send_prepare) (int gtrid, int num_particps, void *block_particps_ids);
bool (*send_commit) (int gtrid, int num_particps, int *particp_indices, void *block_particps_ids);
bool (*send_abort) (int gtrid, int num_particps, int *particp_indices, void *block_particps_ids, int collect);
};
Remarks
나머지 2개의 fucntion 중 lookup_participant는 필요 시 추후 구현, sprintf_participant는 이 함수를 호출하는 루틴에 직접 구현
/run medium sql