/Users/deen/code/yugabyte-db/src/yb/client/transaction_rpc.cc
Line | Count | Source |
1 | | // |
2 | | // Copyright (c) YugaByte, Inc. |
3 | | // |
4 | | // Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except |
5 | | // in compliance with the License. You may obtain a copy of the License at |
6 | | // |
7 | | // http://www.apache.org/licenses/LICENSE-2.0 |
8 | | // |
9 | | // Unless required by applicable law or agreed to in writing, software distributed under the License |
10 | | // is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express |
11 | | // or implied. See the License for the specific language governing permissions and limitations |
12 | | // under the License. |
13 | | // |
14 | | // |
15 | | |
16 | | #include "yb/client/transaction_rpc.h" |
17 | | |
18 | | #include <boost/preprocessor/cat.hpp> |
19 | | |
20 | | #include "yb/client/client.h" |
21 | | #include "yb/client/tablet_rpc.h" |
22 | | |
23 | | #include "yb/common/transaction.h" |
24 | | |
25 | | #include "yb/rpc/rpc.h" |
26 | | #include "yb/rpc/rpc_controller.h" |
27 | | |
28 | | #include "yb/tserver/tserver_service.pb.h" |
29 | | #include "yb/tserver/tserver_service.proxy.h" |
30 | | |
31 | | #include "yb/util/trace.h" |
32 | | |
33 | | using namespace std::literals; |
34 | | |
35 | | namespace yb { |
36 | | namespace client { |
37 | | |
38 | | namespace { |
39 | | |
40 | | class TransactionRpcBase : public rpc::Rpc, public internal::TabletRpc { |
41 | | public: |
42 | | TransactionRpcBase(CoarseTimePoint deadline, |
43 | | internal::RemoteTablet* tablet, |
44 | | YBClient* client) |
45 | | : rpc::Rpc(deadline, client->messenger(), &client->proxy_cache()), |
46 | | invoker_(false /* local_tserver_only */, |
47 | | false /* consistent_prefix */, |
48 | | client, |
49 | | this, |
50 | | this, |
51 | | tablet, |
52 | | /* table =*/ nullptr, |
53 | | mutable_retrier(), |
54 | 2.08M | trace_.get()) { |
55 | 2.08M | } |
56 | | |
57 | 2.08M | virtual ~TransactionRpcBase() {} |
58 | | |
59 | 2.09M | void SendRpc() override { |
60 | 2.09M | invoker_.Execute(tablet_id()); |
61 | 2.09M | } |
62 | | |
63 | 2.09M | void Finished(const Status& status) override { |
64 | 2.09M | Status new_status = status; |
65 | 2.09M | if (invoker_.Done(&new_status)) { |
66 | 2.07M | auto retain_self = shared_from_this(); |
67 | 2.07M | InvokeCallback(new_status); |
68 | 2.07M | } |
69 | 2.09M | } |
70 | | |
71 | | // TODO(dtxn) |
72 | 65.9k | void Failed(const Status& status) override {} |
73 | | |
74 | 3 | void Abort() override { |
75 | 3 | rpc::Rpc::Abort(); |
76 | 3 | } |
77 | | |
78 | | private: |
79 | 2.09M | void SendRpcToTserver(int attempt_num) override { |
80 | 2.09M | InvokeAsync(invoker_.proxy().get(), |
81 | 2.09M | PrepareController(), |
82 | 2.09M | std::bind(&TransactionRpcBase::Finished, this, Status::OK())); |
83 | 2.09M | } |
84 | | |
85 | | virtual void InvokeCallback(const Status& status) = 0; |
86 | | virtual const TabletId& tablet_id() const = 0; |
87 | | virtual void InvokeAsync(tserver::TabletServerServiceProxy* proxy, |
88 | | rpc::RpcController* controller, |
89 | | rpc::ResponseCallback callback) = 0; |
90 | | |
91 | | internal::TabletInvoker invoker_; |
92 | | }; |
93 | | |
94 | | // UpdateTransactionRpc is used to call UpdateTransaction remote method of appropriate tablet. |
95 | | template <class Traits> |
96 | | class TransactionRpc : public TransactionRpcBase { |
97 | | public: |
98 | | TransactionRpc(CoarseTimePoint deadline, |
99 | | internal::RemoteTablet* tablet, |
100 | | YBClient* client, |
101 | | typename Traits::Request* req, |
102 | | typename Traits::Callback callback) |
103 | | : TransactionRpcBase(deadline, tablet, client), |
104 | 2.08M | callback_(std::move(callback)) { |
105 | 2.08M | req_.Swap(req); |
106 | 2.08M | TRACE_TO(trace_, Traits::kName); |
107 | 2.08M | } transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::UpdateTransactionTraits>::TransactionRpc(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >, yb::client::internal::RemoteTablet*, yb::client::YBClient*, yb::tserver::UpdateTransactionRequestPB*, std::__1::function<void (yb::Status const&, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&)>) Line | Count | Source | 104 | 1.60M | callback_(std::move(callback)) { | 105 | 1.60M | req_.Swap(req); | 106 | 1.60M | TRACE_TO(trace_, Traits::kName); | 107 | 1.60M | } |
transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusTraits>::TransactionRpc(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >, yb::client::internal::RemoteTablet*, yb::client::YBClient*, yb::tserver::GetTransactionStatusRequestPB*, std::__1::function<void (yb::Status const&, yb::tserver::GetTransactionStatusResponsePB const&)>) Line | Count | Source | 104 | 296k | callback_(std::move(callback)) { | 105 | 296k | req_.Swap(req); | 106 | 296k | TRACE_TO(trace_, Traits::kName); | 107 | 296k | } |
Unexecuted instantiation: transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusAtParticipantTraits>::TransactionRpc(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >, yb::client::internal::RemoteTablet*, yb::client::YBClient*, yb::tserver::GetTransactionStatusAtParticipantRequestPB*, std::__1::function<void (yb::Status const&, yb::tserver::GetTransactionStatusAtParticipantResponsePB const&)>) transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::AbortTransactionTraits>::TransactionRpc(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >, yb::client::internal::RemoteTablet*, yb::client::YBClient*, yb::tserver::AbortTransactionRequestPB*, std::__1::function<void (yb::Status const&, yb::tserver::AbortTransactionResponsePB const&)>) Line | Count | Source | 104 | 186k | callback_(std::move(callback)) { | 105 | 186k | req_.Swap(req); | 106 | 186k | TRACE_TO(trace_, Traits::kName); | 107 | 186k | } |
|
108 | | |
109 | 2.08M | virtual ~TransactionRpc() {} transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::UpdateTransactionTraits>::~TransactionRpc() Line | Count | Source | 109 | 1.59M | virtual ~TransactionRpc() {} |
transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusTraits>::~TransactionRpc() Line | Count | Source | 109 | 296k | virtual ~TransactionRpc() {} |
Unexecuted instantiation: transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusAtParticipantTraits>::~TransactionRpc() transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::AbortTransactionTraits>::~TransactionRpc() Line | Count | Source | 109 | 184k | virtual ~TransactionRpc() {} |
|
110 | | |
111 | 2.09M | const tserver::TabletServerErrorPB* response_error() const override { |
112 | 2.09M | return resp_.has_error() ? &resp_.error()76.2k : nullptr2.01M ; |
113 | 2.09M | } transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::UpdateTransactionTraits>::response_error() const Line | Count | Source | 111 | 1.60M | const tserver::TabletServerErrorPB* response_error() const override { | 112 | 1.60M | return resp_.has_error() ? &resp_.error()69.3k : nullptr1.53M ; | 113 | 1.60M | } |
transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusTraits>::response_error() const Line | Count | Source | 111 | 296k | const tserver::TabletServerErrorPB* response_error() const override { | 112 | 296k | return resp_.has_error() ? &resp_.error()220 : nullptr296k ; | 113 | 296k | } |
Unexecuted instantiation: transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusAtParticipantTraits>::response_error() const transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::AbortTransactionTraits>::response_error() const Line | Count | Source | 111 | 191k | const tserver::TabletServerErrorPB* response_error() const override { | 112 | 191k | return resp_.has_error() ? &resp_.error()6.72k : nullptr184k ; | 113 | 191k | } |
|
114 | | |
115 | | private: |
116 | 2.10M | const std::string& tablet_id() const override { |
117 | 2.10M | return req_.tablet_id(); |
118 | 2.10M | } transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::UpdateTransactionTraits>::tablet_id() const Line | Count | Source | 116 | 1.60M | const std::string& tablet_id() const override { | 117 | 1.60M | return req_.tablet_id(); | 118 | 1.60M | } |
transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusTraits>::tablet_id() const Line | Count | Source | 116 | 296k | const std::string& tablet_id() const override { | 117 | 296k | return req_.tablet_id(); | 118 | 296k | } |
Unexecuted instantiation: transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusAtParticipantTraits>::tablet_id() const transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::AbortTransactionTraits>::tablet_id() const Line | Count | Source | 116 | 196k | const std::string& tablet_id() const override { | 117 | 196k | return req_.tablet_id(); | 118 | 196k | } |
|
119 | | |
120 | 66.0k | std::string ToString() const override { |
121 | 66.0k | return Format("$0: $1, retrier: $2", Traits::kName, req_, retrier()); |
122 | 66.0k | } transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::UpdateTransactionTraits>::ToString() const Line | Count | Source | 120 | 65.9k | std::string ToString() const override { | 121 | 65.9k | return Format("$0: $1, retrier: $2", Traits::kName, req_, retrier()); | 122 | 65.9k | } |
transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusTraits>::ToString() const Line | Count | Source | 120 | 14 | std::string ToString() const override { | 121 | 14 | return Format("$0: $1, retrier: $2", Traits::kName, req_, retrier()); | 122 | 14 | } |
Unexecuted instantiation: transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusAtParticipantTraits>::ToString() const transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::AbortTransactionTraits>::ToString() const Line | Count | Source | 120 | 7 | std::string ToString() const override { | 121 | 7 | return Format("$0: $1, retrier: $2", Traits::kName, req_, retrier()); | 122 | 7 | } |
|
123 | | |
124 | 2.08M | void InvokeCallback(const Status& status) override { |
125 | 2.08M | Traits::CallCallback(callback_, status, req_, resp_); |
126 | 2.08M | } transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::UpdateTransactionTraits>::InvokeCallback(yb::Status const&) Line | Count | Source | 124 | 1.59M | void InvokeCallback(const Status& status) override { | 125 | 1.59M | Traits::CallCallback(callback_, status, req_, resp_); | 126 | 1.59M | } |
transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusTraits>::InvokeCallback(yb::Status const&) Line | Count | Source | 124 | 296k | void InvokeCallback(const Status& status) override { | 125 | 296k | Traits::CallCallback(callback_, status, req_, resp_); | 126 | 296k | } |
Unexecuted instantiation: transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusAtParticipantTraits>::InvokeCallback(yb::Status const&) transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::AbortTransactionTraits>::InvokeCallback(yb::Status const&) Line | Count | Source | 124 | 184k | void InvokeCallback(const Status& status) override { | 125 | 184k | Traits::CallCallback(callback_, status, req_, resp_); | 126 | 184k | } |
|
127 | | |
128 | | void InvokeAsync(tserver::TabletServerServiceProxy* proxy, |
129 | | rpc::RpcController* controller, |
130 | 2.09M | rpc::ResponseCallback callback) override { |
131 | 2.09M | Traits::InvokeAsync(proxy, &req_, &resp_, controller, std::move(callback)); |
132 | 2.09M | } transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::UpdateTransactionTraits>::InvokeAsync(yb::tserver::TabletServerServiceProxy*, yb::rpc::RpcController*, std::__1::function<void ()>) Line | Count | Source | 130 | 1.60M | rpc::ResponseCallback callback) override { | 131 | 1.60M | Traits::InvokeAsync(proxy, &req_, &resp_, controller, std::move(callback)); | 132 | 1.60M | } |
transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusTraits>::InvokeAsync(yb::tserver::TabletServerServiceProxy*, yb::rpc::RpcController*, std::__1::function<void ()>) Line | Count | Source | 130 | 296k | rpc::ResponseCallback callback) override { | 131 | 296k | Traits::InvokeAsync(proxy, &req_, &resp_, controller, std::move(callback)); | 132 | 296k | } |
Unexecuted instantiation: transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::GetTransactionStatusAtParticipantTraits>::InvokeAsync(yb::tserver::TabletServerServiceProxy*, yb::rpc::RpcController*, std::__1::function<void ()>) transaction_rpc.cc:yb::client::(anonymous namespace)::TransactionRpc<yb::client::(anonymous namespace)::AbortTransactionTraits>::InvokeAsync(yb::tserver::TabletServerServiceProxy*, yb::rpc::RpcController*, std::__1::function<void ()>) Line | Count | Source | 130 | 193k | rpc::ResponseCallback callback) override { | 131 | 193k | Traits::InvokeAsync(proxy, &req_, &resp_, controller, std::move(callback)); | 132 | 193k | } |
|
133 | | |
134 | | typename Traits::Request req_; |
135 | | typename Traits::Response resp_; |
136 | | typename Traits::Callback callback_; |
137 | | }; |
138 | | |
139 | 489k | void PrepareRequest(...) {} |
140 | | |
141 | 1.60M | void PrepareRequest(tserver::UpdateTransactionRequestPB* req) { |
142 | 1.60M | if (req->state().status() == TransactionStatus::CREATED) { |
143 | 411k | auto id = TransactionId::GenerateRandom(); |
144 | 411k | req->mutable_state()->set_transaction_id(id.data(), id.size()); |
145 | 411k | } |
146 | 1.60M | } |
147 | | |
148 | | #define TRANSACTION_RPC_TRAITS_NAME(entry) BOOST_PP_CAT(TRANSACTION_RPC_NAME(entry), Traits) |
149 | | |
150 | | #define TRANSACTION_RPC_TRAITS_CALL_CALLBACK_HELPER_WITHOUT_REQUEST() \ |
151 | 480k | callback(status, response) |
152 | | #define TRANSACTION_RPC_TRAITS_CALL_CALLBACK_HELPER_WITH_REQUEST() \ |
153 | 1.59M | callback(status, request, response) |
154 | | |
155 | | #define TRANSACTION_RPC_TRAITS_CALL_CALLBACK(entry) \ |
156 | 2.08M | BOOST_PP_CAT(TRANSACTION_RPC_TRAITS_CALL_CALLBACK_HELPER_, BOOST_PP_TUPLE_ELEM(2, 1, entry))() |
157 | | |
158 | | #define TRANSACTION_RPC_TRAITS(i, data, entry) \ |
159 | | struct TRANSACTION_RPC_TRAITS_NAME(entry) { \ |
160 | | static constexpr const char* kName = BOOST_PP_STRINGIZE(TRANSACTION_RPC_NAME(entry)); \ |
161 | | typedef TRANSACTION_RPC_REQUEST_PB(entry) Request; \ |
162 | | typedef TRANSACTION_RPC_RESPONSE_PB(entry) Response; \ |
163 | | typedef TRANSACTION_RPC_CALLBACK(entry) Callback; \ |
164 | | \ |
165 | | static void CallCallback( \ |
166 | | const Callback& callback, const Status& status, const Request& request, \ |
167 | 2.08M | const Response& response) { \ |
168 | 2.08M | TRANSACTION_RPC_TRAITS_CALL_CALLBACK(entry); \ |
169 | 2.08M | } \ transaction_rpc.cc:yb::client::(anonymous namespace)::UpdateTransactionTraits::CallCallback(std::__1::function<void (yb::Status const&, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&)> const&, yb::Status const&, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&) Line | Count | Source | 167 | 1.59M | const Response& response) { \ | 168 | 1.59M | TRANSACTION_RPC_TRAITS_CALL_CALLBACK(entry); \ | 169 | 1.59M | } \ |
transaction_rpc.cc:yb::client::(anonymous namespace)::GetTransactionStatusTraits::CallCallback(std::__1::function<void (yb::Status const&, yb::tserver::GetTransactionStatusResponsePB const&)> const&, yb::Status const&, yb::tserver::GetTransactionStatusRequestPB const&, yb::tserver::GetTransactionStatusResponsePB const&) Line | Count | Source | 167 | 296k | const Response& response) { \ | 168 | 296k | TRANSACTION_RPC_TRAITS_CALL_CALLBACK(entry); \ | 169 | 296k | } \ |
Unexecuted instantiation: transaction_rpc.cc:yb::client::(anonymous namespace)::GetTransactionStatusAtParticipantTraits::CallCallback(std::__1::function<void (yb::Status const&, yb::tserver::GetTransactionStatusAtParticipantResponsePB const&)> const&, yb::Status const&, yb::tserver::GetTransactionStatusAtParticipantRequestPB const&, yb::tserver::GetTransactionStatusAtParticipantResponsePB const&) transaction_rpc.cc:yb::client::(anonymous namespace)::AbortTransactionTraits::CallCallback(std::__1::function<void (yb::Status const&, yb::tserver::AbortTransactionResponsePB const&)> const&, yb::Status const&, yb::tserver::AbortTransactionRequestPB const&, yb::tserver::AbortTransactionResponsePB const&) Line | Count | Source | 167 | 184k | const Response& response) { \ | 168 | 184k | TRANSACTION_RPC_TRAITS_CALL_CALLBACK(entry); \ | 169 | 184k | } \ |
|
170 | | \ |
171 | | static void InvokeAsync(tserver::TabletServerServiceProxy* proxy, \ |
172 | | Request* request, \ |
173 | | Response* response, \ |
174 | | rpc::RpcController* controller, \ |
175 | 2.09M | rpc::ResponseCallback callback) { \ |
176 | 2.09M | PrepareRequest(request); \ |
177 | 2.09M | proxy->BOOST_PP_CAT(TRANSACTION_RPC_NAME(entry), Async)( \ |
178 | 2.09M | *request, response, controller, std::move(callback)); \ |
179 | 2.09M | } \ transaction_rpc.cc:yb::client::(anonymous namespace)::UpdateTransactionTraits::InvokeAsync(yb::tserver::TabletServerServiceProxy*, yb::tserver::UpdateTransactionRequestPB*, yb::tserver::UpdateTransactionResponsePB*, yb::rpc::RpcController*, std::__1::function<void ()>) Line | Count | Source | 175 | 1.60M | rpc::ResponseCallback callback) { \ | 176 | 1.60M | PrepareRequest(request); \ | 177 | 1.60M | proxy->BOOST_PP_CAT(TRANSACTION_RPC_NAME(entry), Async)( \ | 178 | 1.60M | *request, response, controller, std::move(callback)); \ | 179 | 1.60M | } \ |
transaction_rpc.cc:yb::client::(anonymous namespace)::GetTransactionStatusTraits::InvokeAsync(yb::tserver::TabletServerServiceProxy*, yb::tserver::GetTransactionStatusRequestPB*, yb::tserver::GetTransactionStatusResponsePB*, yb::rpc::RpcController*, std::__1::function<void ()>) Line | Count | Source | 175 | 296k | rpc::ResponseCallback callback) { \ | 176 | 296k | PrepareRequest(request); \ | 177 | 296k | proxy->BOOST_PP_CAT(TRANSACTION_RPC_NAME(entry), Async)( \ | 178 | 296k | *request, response, controller, std::move(callback)); \ | 179 | 296k | } \ |
Unexecuted instantiation: transaction_rpc.cc:yb::client::(anonymous namespace)::GetTransactionStatusAtParticipantTraits::InvokeAsync(yb::tserver::TabletServerServiceProxy*, yb::tserver::GetTransactionStatusAtParticipantRequestPB*, yb::tserver::GetTransactionStatusAtParticipantResponsePB*, yb::rpc::RpcController*, std::__1::function<void ()>) transaction_rpc.cc:yb::client::(anonymous namespace)::AbortTransactionTraits::InvokeAsync(yb::tserver::TabletServerServiceProxy*, yb::tserver::AbortTransactionRequestPB*, yb::tserver::AbortTransactionResponsePB*, yb::rpc::RpcController*, std::__1::function<void ()>) Line | Count | Source | 175 | 193k | rpc::ResponseCallback callback) { \ | 176 | 193k | PrepareRequest(request); \ | 177 | 193k | proxy->BOOST_PP_CAT(TRANSACTION_RPC_NAME(entry), Async)( \ | 178 | 193k | *request, response, controller, std::move(callback)); \ | 179 | 193k | } \ |
|
180 | | }; \ |
181 | | \ |
182 | | constexpr const char* TRANSACTION_RPC_TRAITS_NAME(entry)::kName; |
183 | | |
184 | | BOOST_PP_SEQ_FOR_EACH(TRANSACTION_RPC_TRAITS, ~, TRANSACTION_RPCS) |
185 | | |
186 | | } // namespace |
187 | | |
188 | 2.08M | #define TRANSACTION_RPC_BODY(entry) { \ |
189 | 2.08M | return std::make_shared<TransactionRpc<TRANSACTION_RPC_TRAITS_NAME(entry)>>( \ |
190 | 2.08M | deadline, tablet, client, req, std::move(callback)); \ |
191 | 2.08M | } yb::client::UpdateTransaction(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >, yb::client::internal::RemoteTablet*, yb::client::YBClient*, yb::tserver::UpdateTransactionRequestPB*, std::__1::function<void (yb::Status const&, yb::tserver::UpdateTransactionRequestPB const&, yb::tserver::UpdateTransactionResponsePB const&)>) Line | Count | Source | 188 | 1.60M | #define TRANSACTION_RPC_BODY(entry) { \ | 189 | 1.60M | return std::make_shared<TransactionRpc<TRANSACTION_RPC_TRAITS_NAME(entry)>>( \ | 190 | 1.60M | deadline, tablet, client, req, std::move(callback)); \ | 191 | 1.60M | } |
yb::client::GetTransactionStatus(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >, yb::client::internal::RemoteTablet*, yb::client::YBClient*, yb::tserver::GetTransactionStatusRequestPB*, std::__1::function<void (yb::Status const&, yb::tserver::GetTransactionStatusResponsePB const&)>) Line | Count | Source | 188 | 296k | #define TRANSACTION_RPC_BODY(entry) { \ | 189 | 296k | return std::make_shared<TransactionRpc<TRANSACTION_RPC_TRAITS_NAME(entry)>>( \ | 190 | 296k | deadline, tablet, client, req, std::move(callback)); \ | 191 | 296k | } |
Unexecuted instantiation: yb::client::GetTransactionStatusAtParticipant(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >, yb::client::internal::RemoteTablet*, yb::client::YBClient*, yb::tserver::GetTransactionStatusAtParticipantRequestPB*, std::__1::function<void (yb::Status const&, yb::tserver::GetTransactionStatusAtParticipantResponsePB const&)>) yb::client::AbortTransaction(std::__1::chrono::time_point<yb::CoarseMonoClock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >, yb::client::internal::RemoteTablet*, yb::client::YBClient*, yb::tserver::AbortTransactionRequestPB*, std::__1::function<void (yb::Status const&, yb::tserver::AbortTransactionResponsePB const&)>) Line | Count | Source | 188 | 186k | #define TRANSACTION_RPC_BODY(entry) { \ | 189 | 186k | return std::make_shared<TransactionRpc<TRANSACTION_RPC_TRAITS_NAME(entry)>>( \ | 190 | 186k | deadline, tablet, client, req, std::move(callback)); \ | 191 | 186k | } |
|
192 | | |
193 | | BOOST_PP_SEQ_FOR_EACH(TRANSACTION_RPC_FUNCTION, TRANSACTION_RPC_BODY, TRANSACTION_RPCS) |
194 | | |
195 | | } // namespace client |
196 | | } // namespace yb |