dtm_worker_detail
2016-09-03 14:27:01 0 举报
dtm_worker_detail是一个用于处理数据转换和同步的模块。它负责将源数据转换为目标格式,并确保数据的一致性和准确性。该模块具有高度可配置性,可以根据不同的需求进行定制。它还提供了详细的日志记录功能,以便开发人员可以跟踪和调试数据转换过程。此外,dtm_worker_detail还支持并行处理,以提高数据处理的效率。总之,dtm_worker_detail是一个强大而灵活的工具,可以帮助您轻松地处理和管理数据转换和同步任务。
作者其他创作
大纲/内容
if out of order
keep OUT/HUP
if NOT AUTOCOMMIT
insert/push_backnode-vecto perserver query order within server
d
STATE_READ_AUTH_RESULT
client cache_cmds
[save_global_trx_id]LSET dgtid:global_trx_id 1 2(commit)
push_back send_buf
if COMMIT
send handshake
IN
STATE_SEND_QUERY
send result
OUT
[save_global_status]EXISTS PREPARE_LOCKLSET xid_status:cur_xid 3 modify_time 4 affected_sids(curr servers) 0 1(prepare)
accept
LOCAL_XA_STATE_PREPARING
clear()
LOCAL_XA_STATE_STARTED
epoll
IN/HUP
STATE_READ_QUERY
if prepare lock(todo)
original query
read query
server Ap_vec_self_buf
STATE_CONNECTED_CLIENT
0
if QUERYof MULTI QUERY
STATE_READ_HANDSHAKE
XA ENDXA PREPARE
if MULTI QUERY
clientp_vec_last_query_servers
client pvs
[load_consistent_view]GET cur_checkpointHGETALL innodb_gid:checkpoint_xidSETEX checkpoint_xid:cur_xid 5 load[del_occupy_list]DEL checkpoint_xid:cur_xid
listen sock
if all prepared
set OUT/HUP
set IN/HUP
set 0
LOCAL_XA_STATE_STARTING
send QUERY
check user/pwd
client sock
setview_map[server's sid] = gtid from db reply(in case of write sql)
if all committed
client pvi
server A sock
send XA START
STATE_SEND_HANDSHAKE
read auth resultdirectly
clientp_map_multi_query
if not all committed
read query result
STATE_CONNECTED_SERVER
GLOBAL_XA_STATE_START
BEFORE LAST QUERY
OUT/HUP
client tranx state
1.SET NAMES2.USE DB
add READVIEW for SELECT
LOCAL_XA_STATE_COMMITTING
insert/push_backserver(redundant)to perserver query order across server
FOLLOWING SERVERS
1.SET NAMES2.USE DB3. XA START
handle DDL(todo)
STATE_SEND_AUTH_RESULT
GLOBAL_XA_STATE_COMMIT
[save_global_status]LSET xid_status:cur_xid 3 modify_time 4 affected_sids(curr servers) 0 1(prepare)
SQL_XA_START_NUM
server A tranx state
if XA START
STATE_READ_QUERY_RESULT
central redis
read auth
incrclient-query result cntserver-recv query num
getview_map[server]
if all local started
nothing
if START TRANSACTION
cache set charset
send auth result
set b_c_xid/view_map[this server's sid] from pvi
setview_map[this server's sid] from pvi
[save_global_trx_id]INCR global_trx_idRPUSH dgtid:global_trx_id cur_xid 1(prepare)
XA COMMIT
LOCAL_XA_STATE_COMMITTED
server A query
p_vec_last_query_servers[client-query result cnt]perserve query order
STATE_SEND_AUTH
if AUTOCOMMIT
if not all prepared
FIRST SERVER
LOCAL_XA_STATE_PREPARED
send auth
read handshake
worker redis
STATE_READ_AUTH
GLOBAL_XA_STATE_PREPARE
LAST QUERY
[save_global_status]RPUSH xid_status:cur_xid 0(start) 0 b_c_xid modify_time affected_sids(first server)INCR ref_count:b_c_xidSADD ref_count_set:b_c_xid cur_xid
append all server's vec_self_buf to client-send_bufand then free()
load view_mapbase_checkpoint_xid from central redis
client query
lock redis
cache use db
0 条评论
下一页