Skip to content

Commit 2a15210

Browse files
lgqssliguoqiang
andauthored
修复like前缀匹配路由问题,修复pb解析大数据包问题 (#79)
* sst backup interface * fix type infer * fix like router; fix bigdata Co-authored-by: liguoqiang <[email protected]>
1 parent 9c32aee commit 2a15210

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/common/fetcher_store.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,8 +224,14 @@ ErrorType FetcherStore::send_request(
224224
butil::endpoint2str(cntl.remote_side()).c_str());
225225
}
226226
if (cntl.Failed()) {
227-
DB_WARNING("call failed region_id: %ld, error:%s, log_id:%lu",
228-
region_id, cntl.ErrorText().c_str(), log_id);
227+
DB_WARNING("call failed region_id: %ld, errcode:%d, error:%s, log_id:%lu",
228+
region_id, cntl.ErrorCode(), cntl.ErrorText().c_str(), log_id);
229+
// 只有网络相关错误码才重试
230+
if (cntl.ErrorCode() != ETIMEDOUT &&
231+
cntl.ErrorCode() != ECONNREFUSED &&
232+
cntl.ErrorCode() != EHOSTDOWN) {
233+
return E_FATAL;
234+
}
229235
other_peer_to_leader_func(info);
230236
//schema_factory->update_leader(info);
231237
bthread_usleep(retry_times * FLAGS_retry_interval_us);

src/common/schema_factory.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1391,6 +1391,7 @@ int SchemaFactory::get_region_by_key(int64_t main_table_id,
13911391
auto record_template = TableRecord::new_record(main_table_id);
13921392
int range_size = primary->ranges_size();
13931393
for (const auto& range : primary->ranges()) {
1394+
bool like_prefix = range.like_prefix();
13941395
SmartRecord left;
13951396
SmartRecord right;
13961397
if (range.left_pb_record() != "") {
@@ -1406,7 +1407,7 @@ int SchemaFactory::get_region_by_key(int64_t main_table_id,
14061407
MutTableKey _start;
14071408
MutTableKey _end;
14081409
if (left != nullptr) {
1409-
if (0 != _start.append_index(index, left.get(), range.left_field_cnt(), false)) {
1410+
if (0 != left->encode_key(index, _start, range.left_field_cnt(), false, like_prefix)) {
14101411
DB_FATAL("Fail to encode_key, table:%ld", index.id);
14111412
return -1;
14121413
}
@@ -1415,7 +1416,7 @@ int SchemaFactory::get_region_by_key(int64_t main_table_id,
14151416
}
14161417

14171418
if (right != nullptr) {
1418-
if (0 != _end.append_index(index, right.get(), range.right_field_cnt(), false)) {
1419+
if (0 != right->encode_key(index, _end, range.right_field_cnt(), false, like_prefix)) {
14191420
DB_FATAL("Fail to encode_key, table:%ld", index.id);
14201421
return -1;
14211422
}

0 commit comments

Comments
 (0)