YugabyteDB (2.13.1.0-b60, 21121d69985fbf76aa6958d8f04a9bfa936293b5)

Coverage Report

Created: 2022-03-22 16:43

/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