Skip to content

Commit 5d9c4fe

Browse files
committed
update
1 parent 7924a9f commit 5d9c4fe

18 files changed

+150
-197
lines changed

etc/slave.cf

+7-7
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
user terry terry
66

77
# pid
8-
pid /var/run/rs/rs_slave.pid
8+
pid /tmp/rs_slave.pid
99

1010
# daemon
1111
daemon 1
1212

1313
# log path
14-
log /var/log/rs/rs_slave.log
14+
log /tmp/rs_slave.log
1515

1616
# log debug level(DEBUG : 2, INFO : 1, ERR : 0)
1717
log.level 2
@@ -24,7 +24,7 @@ listen.addr 127.0.0.1
2424
listen.port 1919
2525

2626
# slave.info path
27-
slave.info /home/terry/Documents/MySQL-Syncer/etc/slave.info
27+
slave.info /tmp/slave.info
2828

2929
# redis addr
3030
redis.addr 127.0.0.1
@@ -33,13 +33,13 @@ redis.addr 127.0.0.1
3333
redis.port 6379
3434

3535
# slab init size
36-
slab.initsize 100
36+
pool.initsize 100
3737

3838
# slab max memory size (10MB)
39-
slab.memsize 10485760
39+
pool.memsize 10485760
4040

4141
# slab slab class grow factor
42-
slab.factor 1.5
42+
pool.factor 1.5
4343

4444
# ring buffer num
4545
ringbuf.num 10000
@@ -54,4 +54,4 @@ binlog.savesec 30
5454
filter.tables test.test
5555

5656
# recv buffer length
57-
recvbuf.len 10485760
57+
recvbuf.size 10485760

rs.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

3-
master_pid=/var/run/rs/rs_master.pid
4-
slave_pid=/var/run/rs/rs_slave.pid
3+
master_pid=/tmp/rs_master.pid
4+
slave_pid=/tmp/rs_slave.pid
55

66
cur_path=$(pwd)
77

src/core/rs_buf.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,14 @@ int rs_recv_tmpbuf(rs_buf_t *b, int fd, void *data, uint32_t size)
6969
b->last = b->start;
7070

7171
do {
72-
n = rs_read(fd, b->pos, b->size);
72+
n = rs_read(fd, b->last, b->size);
7373

7474
if(n <= 0) {
7575
return RS_ERR;
7676
}
7777

7878
b->last += n;
79-
} while(b->last - b->pos > s);
79+
} while((b->last - b->pos) < s);
8080

8181
rs_memcpy((char *) data + l, b->pos, s);
8282
b->pos += s;

src/core/rs_io.c

-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ int rs_size_read(int fd, void *buf, size_t size)
3939
n = rs_read(fd, pack_buf + cur_size, size - cur_size);
4040

4141
if(n <= 0) {
42-
rs_log_err(rs_errno, "rs_read() failed");
4342
return RS_ERR;
4443
}
4544

src/master/rs_dump_listen.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ void *rs_start_accept_thread(void *data)
125125
}
126126

127127
rd->pool = rs_create_pool(mi->pool_initsize, mi->pool_memsize,
128-
rs_pagesize, RS_POOL_CLASS_IDX, mi->pool_factor,
128+
1 * 1024 * 1024, RS_POOL_CLASS_IDX, mi->pool_factor,
129129
RS_POOL_PREALLOC);
130130

131131
if(rd->pool == NULL) {

src/master/rs_filter_binlog.c

+15-14
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@ int rs_def_filter_data_handle(rs_reqdump_data_t *rd)
1111

1212
int rs_binlog_create_data(rs_reqdump_data_t *rd)
1313
{
14-
int i, r, len;
15-
char istr[UINT32_LEN + 1];
14+
int r, len;
15+
char istr[UINT32_LEN + 1], *p;
1616
rs_binlog_info_t *bi;
1717
rs_ringbuf_data_t *rbd;
1818

19-
i = 0;
2019
bi = &(rd->binlog_info);
20+
p = NULL;
2121

2222
if(bi->mev == 0) {
2323
if(bi->skip_n++ % RS_SKIP_DATA_FLUSH_NUM != 0) {
@@ -31,13 +31,6 @@ int rs_binlog_create_data(rs_reqdump_data_t *rd)
3131
r = rs_ringbuf_set(rd->ringbuf, &rbd);
3232

3333
if(r == RS_FULL) {
34-
if(i % 60 == 0) {
35-
rs_log_debug(0, "ringbuf is full");
36-
i = 0;
37-
}
38-
39-
i += RS_RING_BUFFER_FULL_SLEEP_SEC;
40-
4134
sleep(RS_RING_BUFFER_FULL_SLEEP_SEC);
4235
continue;
4336
}
@@ -68,7 +61,7 @@ int rs_binlog_create_data(rs_reqdump_data_t *rd)
6861
return RS_ERR;
6962
}
7063

71-
len = snprintf(rbd->data, rbd->len, "%s,%s,%c", rd->dump_file,
64+
len = snprintf(rbd->data, rbd->len, "%s,%s\n%c", rd->dump_file,
7265
istr, bi->mev);
7366

7467
if(len < 0) {
@@ -94,15 +87,23 @@ int rs_binlog_create_data(rs_reqdump_data_t *rd)
9487
}
9588

9689
len = snprintf(rbd->data, rbd->len,
97-
"%s,%u\n%c,%s.%s%c%u%s%u%s%s",
90+
"%s,%u\n%c,%s.%s%c",
9891
rd->dump_file, rd->dump_pos, bi->mev, bi->db,
99-
bi->tb, 0, bi->cn, bi->ct, bi->ml, bi->cm,
100-
(char *) bi->data);
92+
bi->tb, 0);
10193

10294
if(len < 0) {
10395
rs_log_err(rs_errno, "snprintf() failed");
10496
return RS_ERR;
10597
}
98+
99+
p = (char *) rbd->data + len;
100+
p = rs_cpymem(p, &(bi->cn), 4);
101+
p = rs_cpymem(p, bi->ct, bi->cn);
102+
p = rs_cpymem(p, &(bi->ml), 4);
103+
p = rs_cpymem(p, bi->cm, bi->ml);
104+
105+
rs_memcpy(p, bi->data, rbd->len - len - 8 - bi->cn -
106+
bi->ml);
106107
}
107108
}
108109

src/master/rs_master_info.c

+4-5
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ rs_master_info_t *rs_init_master_info(rs_master_info_t *om)
1717
nl = 1;
1818
nd = 1;
1919

20-
p = rs_create_pool(200, 1024 * 1024 * 10, rs_pagesize, RS_POOL_CLASS_IDX,
21-
1.5, RS_POOL_PREALLOC);
20+
p = rs_create_pool(200, 1024 * 1024 * 10, 1 * 1024 *1024, RS_POOL_CLASS_IDX
21+
, 1.5, RS_POOL_PREALLOC);
2222

2323
if(p == NULL) {
2424
return NULL;
@@ -52,11 +52,10 @@ rs_master_info_t *rs_init_master_info(rs_master_info_t *om)
5252
/* exit accpet thread */
5353
if(om->accept_thread != 0) {
5454
if((err = pthread_cancel(om->accept_thread)) != 0) {
55-
rs_log_err(err, "pthread_cancel() failed, accept_thread");
55+
rs_log_err(err, "pthread_cancel() failed");
5656
} else {
5757
if((err = pthread_join(om->accept_thread, NULL)) != 0) {
58-
rs_log_err(err, "pthread_join() failed, "
59-
"accept_thread");
58+
rs_log_err(err, "pthread_join() failed");
6059
}
6160
}
6261
}

src/master/rs_parse_binlog.c

+9-36
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ int rs_binlog_header_handler(rs_reqdump_data_t *rd)
8383
"event length : %u\n"
8484
"event next position : %u\n"
8585
"dump position : %u\n"
86-
"data length : %u\n"
87-
"\n=====================================\n",
86+
"data length : %u\n",
8887
bi->svrid,
8988
bi->t,
9089
bi->el,
@@ -144,11 +143,9 @@ int rs_binlog_query_handler(rs_reqdump_data_t *rd)
144143
bi->log_format = RS_BINLOG_FORMAT_SQL_STATEMENT;
145144

146145
rs_log_debug(0,
147-
"\n========== query event ==============\n"
148-
"database name : %s\n"
146+
"\ndatabase name : %s\n"
149147
"query sql : %s\n"
150-
"next position : %u\n"
151-
"\n=====================================\n",
148+
"next position : %u\n",
152149
bi->db,
153150
bi->sql,
154151
bi->np
@@ -200,17 +197,9 @@ int rs_binlog_intvar_handler(rs_reqdump_data_t *rd)
200197
rs_memcpy(&(bi->ai), p, RS_BINLOG_INTVAR_INSERT_ID_LEN);
201198

202199
#if x86_64
203-
rs_log_debug(0,
204-
"\n========== intvar event ==============\n"
205-
"increment id : %lu"
206-
"\n=====================================\n",
207-
bi->ai);
200+
rs_log_debug(0, "\nincrement id : %lu", bi->ai);
208201
#elif x86_32
209-
rs_log_debug(0,
210-
"\n========== intvar event ==============\n"
211-
"increment id : %llu"
212-
"\n=====================================\n",
213-
bi->ai);
202+
rs_log_debug(0, "\nincrement id : %llu", bi->ai);
214203

215204
#endif
216205

@@ -233,10 +222,8 @@ int rs_binlog_xid_handler(rs_reqdump_data_t *rd)
233222
}
234223

235224
rs_log_debug(0,
236-
"\n========== xid event ==============\n"
237-
"tran : %d\n"
238-
"tran id : %lu"
239-
"\n=====================================\n",
225+
"\ntran : %d\n"
226+
"tran id : %lu",
240227
bi->tran,
241228
bi->tranid);
242229

@@ -310,12 +297,10 @@ int rs_binlog_table_map_handler(rs_reqdump_data_t *rd)
310297
}
311298

312299
rs_log_debug(0,
313-
"\n========== table map event ==============\n"
314-
"database : %s\n"
300+
"\ndatabase : %s\n"
315301
"table : %s\n"
316302
"column num : %u\n"
317-
"skip : %d"
318-
"\n=========================================\n",
303+
"skip : %d",
319304
bi->db,
320305
bi->tb,
321306
bi->cn,
@@ -350,10 +335,6 @@ int rs_binlog_write_rows_handler(rs_reqdump_data_t *rd)
350335
bi->log_format = RS_BINLOG_FORMAT_ROW_BASED;
351336
bi->mev = RS_WRITE_ROWS_EVENT;
352337

353-
rs_log_debug(0,
354-
"\n========== write rows event =============\n"
355-
);
356-
357338
if((r = rs_binlog_create_data(rd)) != RS_OK) {
358339
return r;
359340
}
@@ -391,10 +372,6 @@ int rs_binlog_update_rows_handler(rs_reqdump_data_t *rd)
391372
bi->log_format = RS_BINLOG_FORMAT_ROW_BASED;
392373
bi->mev = RS_UPDATE_ROWS_EVENT;
393374

394-
rs_log_debug(0,
395-
"\n========== update rows event =============\n"
396-
);
397-
398375
if((r = rs_binlog_create_data(rd)) != RS_OK) {
399376
return r;
400377
}
@@ -432,10 +409,6 @@ int rs_binlog_delete_rows_handler(rs_reqdump_data_t *rd)
432409
bi->log_format = RS_BINLOG_FORMAT_ROW_BASED;
433410
bi->mev = RS_DELETE_ROWS_EVENT;
434411

435-
rs_log_debug(0,
436-
"\n========== delete rows event =============\n"
437-
);
438-
439412
if((r = rs_binlog_create_data(rd)) != RS_OK) {
440413
return r;
441414
}

src/master/rs_read_binlog.c

+34
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,37 @@
33
#include <rs_core.h>
44
#include <rs_master.h>
55

6+
char *rs_binlog_event_name[] = {
7+
NULL,
8+
"START_EVENT_V3",
9+
"QUERY_EVENT",
10+
"STOP_EVENT",
11+
"ROTATE_EVENT",
12+
"INTVAR_EVNET",
13+
"LOAD_EVENT",
14+
"SLAVE_EVENT",
15+
"CREATE_FILE_EVENT",
16+
"APPEND_BLOCK_EVENT",
17+
"EXEC_LOAD_EVENT",
18+
"DELETE_FILE_EVENT",
19+
"NEW_LOAD_EVENT",
20+
"RAND_EVENT",
21+
"USER_VAR_EVENT",
22+
"FORMAT_DESCRIPTION_EVENT",
23+
"XID_EVENT",
24+
"BEGIN_LOAD_QUERY_EVENT",
25+
"EXECUTE_LOAD_QUERY_EVENT",
26+
"TABLE_MAP_EVENT",
27+
"PRE_GA_WRITE_ROWS_EVENT",
28+
"PRE_GA_UPDATE_ROWS_EVENT",
29+
"PRE_GA_DELETE_ROWS_EVENT",
30+
"WRITE_ROWS_EVENT",
31+
"UPDATE_ROWS_EVENT",
32+
"DELETE_ROWS_EVENT",
33+
"INCIDENT_EVENT",
34+
"HEARTBEAT_LOG_EVENT"
35+
};
36+
637
int rs_read_binlog(rs_reqdump_data_t *rd)
738
{
839
int r;
@@ -22,6 +53,9 @@ int rs_read_binlog(rs_reqdump_data_t *rd)
2253
goto free;
2354
}
2455

56+
rs_log_debug(0, "\n========== %s ==============",
57+
rs_binlog_event_name[idx]);
58+
2559
/* event handler */
2660
if((r = rs_binlog_funcs[idx](rd)) != RS_OK) {
2761
goto free;

src/master/rs_read_binlog.h

+2
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ struct rs_binlog_info_s {
9999

100100
#define RS_BINLOG_MAGIC_NUM_LEN 4
101101

102+
extern char *rs_binlog_event_name[];
103+
102104
#define RS_BINLOG_EVENT_NUM 27
103105

104106
/* binlog event type */

0 commit comments

Comments
 (0)