MCPcopy Create free account
hub / github.com/baidu/tera / CommitReaders

Method CommitReaders

src/sdk/table_impl.cc:1123–1156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1121}
1122
1123void TableImpl::CommitReaders(const std::string& server_addr,
1124 std::vector<RowReaderImpl*>& reader_list) {
1125 std::vector<int64_t>* reader_id_list = new std::vector<int64_t>;
1126 tabletnode::TabletNodeClient tabletnode_client_async(thread_pool_, server_addr);
1127 ReadTabletRequest* request = new ReadTabletRequest;
1128 ReadTabletResponse* response = new ReadTabletResponse;
1129 request->set_sequence_id(last_sequence_id_++);
1130 request->set_tablet_name(name_);
1131
1132 access_builder_->BuildRequest(request);
1133
1134 for (uint32_t i = 0; i < reader_list.size(); ++i) {
1135 RowReaderImpl* row_reader = reader_list[i];
1136 RowReaderInfo* row_reader_info = request->add_row_info_list();
1137 if (!request->has_client_timeout_ms() ||
1138 (request->has_client_timeout_ms() &&
1139 request->client_timeout_ms() > row_reader->TimeOut())) {
1140 request->set_client_timeout_ms(row_reader->TimeOut());
1141 }
1142 request->set_snapshot_id(row_reader->GetSnapshot());
1143 row_reader->ToProtoBuf(row_reader_info);
1144 // row_reader_info->CopyFrom(row_reader->GetRowReaderInfo());
1145 reader_id_list->push_back(row_reader->GetId());
1146 row_reader->AddCommitTimes();
1147 row_reader->DecRef();
1148 }
1149 VLOG(20) << "commit " << reader_list.size() << " reads to " << server_addr
1150 << "timeout:" << request->client_timeout_ms();
1151 request->set_timestamp(get_micros());
1152 std::function<void(ReadTabletRequest*, ReadTabletResponse*, bool, int)> done =
1153 std::bind(&TableImpl::ReaderCallBackWrapper, std::weak_ptr<TableImpl>(shared_from_this()),
1154 reader_id_list, _1, _2, _3, _4);
1155 tabletnode_client_async.ReadTablet(request, response, done);
1156}
1157void TableImpl::ReaderCallBackWrapper(std::weak_ptr<TableImpl> weak_ptr_table,
1158 std::vector<int64_t>* reader_id_list,
1159 ReadTabletRequest* request, ReadTabletResponse* response,

Callers

nothing calls this directly

Calls 11

BuildRequestMethod · 0.80
ToProtoBufMethod · 0.80
push_backMethod · 0.80
get_microsFunction · 0.50
sizeMethod · 0.45
TimeOutMethod · 0.45
GetSnapshotMethod · 0.45
GetIdMethod · 0.45
AddCommitTimesMethod · 0.45
DecRefMethod · 0.45
ReadTabletMethod · 0.45

Tested by

no test coverage detected