https://gitcode.net/oceanbase/obproxy/-/commit/f302921b7db2e9ec6c6b15969f6b41413b460810Feature2021-10-22T10:38:48+08:00Wesley Wangwgs13579@gmail.com1. Optimize the use of epoll_wait, fully event-driven
2. New replication table supports evenly distributed routing
3. Support weak read requests sent to backup copies
4. Supports random selection of the partition route when the partition cannot be calculated
5. Supports routing that contains Chinese full-width punctuation(commas, brackets, spaces)
6. Support COM_CHANGE_USER command
Bugfix
1. Fix the problem of client connection failure when enable_proxy_scramble is configured as true
2. Fix that after starting through rslist, the server list is not
rebuilt after the server is offline, and the server still accesses the
offline server, which causes the access to continue to fail
3. Fix the problem that the 127.0.0.1 rslist cannot be matched with the
server in all_server and cannot be accessed at startup
4. Fix the problem that ODP cannot be accessed normally from the local
configuration file after OCP hangs
5. Fix the problem of ODP tenant name being injected
6. Fix the problem that thread variables cannot be synchronized when
switching sessions in ODP 3.x
7. Fix the problem that hint contains special symbols, which causes
insertion and parsing to fail
8. Fix the disconnection problem when the cursor does not exist
9. Fix the problem that the connection to the main library without
cluster id can be successfully executed after several queries and the link is broken
11.Fix the problem of continuous access failure if rslist is returned
to rslist after rslist is startedhttps://gitcode.net/oceanbase/obproxy/-/commit/54e7e450744e6fd919a013bf21cdb1fc1347f9c3BugFixs:2021-10-22T10:38:48+08:00Wesley Wangwgs13579@gmail.com1. Use the new prometheus package to fix the core problem
Other:
1. update version to 3.2.0
2. Open source opens the 2.0 protocol by defaulthttps://gitcode.net/oceanbase/obproxy/-/commit/b91a4006ba52e107d1a3edb03a50f3d14ef63cd8Modify the default value of skip_proxy_sys_private_check to true2021-10-27T16:03:49+08:00guangshu.wgsguangshu.wgs@antfin.comhttps://gitcode.net/oceanbase/obproxy/-/commit/ae1122bc41c5ae432e50e1ac86bfd20a604784a2Shorten the file name2021-12-16T21:50:37+08:00Wesley Wangwgs13579@gmail.comhttps://gitcode.net/oceanbase/obproxy/-/commit/2b275341013859224c319d86589994c75146508eModify the package name to obproxy-ce2021-12-16T21:50:54+08:00Wesley Wangwgs13579@gmail.comhttps://gitcode.net/oceanbase/obproxy/-/commit/178a779f11e38ad79e4d6435d7dee99cb80d5162* Shorten the file name2021-12-17T10:17:14+08:00Wesley Wangwgs13579@gmail.com* Modify the package name to obproxy-ce
DEF_TIME(net_config_poll_timeout,"1ms","[0,]","epoll_wait timeout for net events, [0, +∞], if set a value <= 0, proxy treat it as 0",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_TIME(net_config_poll_timeout,"1ms","[0,]","not used, just for compatible",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_CAP(sock_recv_buffer_size_out,"0","[0,8MB]","sock param, recv buffer size, [0, 8MB], if set a negative value, proxy treat it as 0",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_CAP(sock_send_buffer_size_out,"0","[0,8MB]","sock param, send buffer size, [0, 8MB], if set a negative value, proxy treat it as 0",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
...
...
@@ -283,7 +283,7 @@ public:
DEF_BOOL(enable_bad_route_reject,"false","if enabled, bad route request will be rejected, e.g. first statement of transaction opened by BEGIN(or START TRANSACTION) without table name",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_BOOL(enable_partition_table_route,"true","if enabled, partition table will be accurate routing",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_BOOL(enable_compression_protocol,"true","if enabled, proxy will use compression protocol with server",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_BOOL(enable_ob_protocol_v2,"false","if enabled, proxy will use oceanbase protocol 2.0 with server",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_BOOL(enable_ob_protocol_v2,"true","if enabled, proxy will use oceanbase protocol 2.0 with server",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_BOOL(enable_reroute,"false","if this and protocol_v2 enabled, proxy will reroute when routing error",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_BOOL(enable_pl_route,"true","if enabled, pl will be accurate routing",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
...
...
@@ -345,6 +345,7 @@ public:
// in public cloud, will assign a vip addr to proxy. qa_mode_mock_slb_vip is a vip addr for testing
DEF_STR(qa_mode_mock_public_cloud_slb_addr,"127.0.0.1:33045","mock public cloud slb addr",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_INT(qa_mode_mock_public_cloud_vid,"1","[1,102400]","mock public cloud vid",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER);
DEF_STR(mysql_version,"5.6.25","returned version for mysql mode, default value is 5.6.25. If set, proxy will send new version when user connect to proxy",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_USER)
// sql table cache
...
...
@@ -354,7 +355,7 @@ public:
DEF_BOOL(enable_cloud_full_username,"false","used for cloud user, if set false, treat all login user as username",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_SYS);
DEF_BOOL(skip_proxyro_check,"false","used for proxro@sys, if set false, access denied",CFG_NO_NEED_REBOOT,CFG_SECTION_OBPROXY,CFG_VISIBLE_LEVEL_SYS);
sed"/static int yy_top_state (yyscan_t yyscanner );/d"-i ob_expr_parser_lex.c
sed"/static int yy_top_state/,/\}/d"-i ob_expr_parser_lex.c
sed"/\*yy_cp = '\\\0';/d"-i ob_expr_parser_lex.c
sed"/Setup the input buffer state to scan the given bytes/,/}/{/int i/d}"-i ob_expr_parser_lex.c
sed"/Setup the input buffer state to scan the given bytes/,/}/{/for ( i = 0; i < _yybytes_len; ++i )/d}"-i ob_expr_parser_lex.c
sed"/Setup the input buffer state to scan the given bytes/,/}/{s/\tbuf\[i\] = yybytes\[i\]/memcpy(buf, yybytes, _yybytes_len)/g}"-i ob_expr_parser_lex.c
sed"/Setup the input buffer state to scan the given bytes/,/}/{/int i/d}"-i ob_expr_parser_utf8_lex.c
sed"/Setup the input buffer state to scan the given bytes/,/}/{/for ( i = 0; i < _yybytes_len; ++i )/d}"-i ob_expr_parser_utf8_lex.c
sed"/Setup the input buffer state to scan the given bytes/,/}/{s/\tbuf\[i\] = yybytes\[i\]/memcpy(buf, yybytes, _yybytes_len)/g}"-i ob_expr_parser_utf8_lex.c