Flex  0.17.9
read_transaction.h
Go to the documentation of this file.
1 
16 #ifndef GRAPHSCOPE_DATABASE_READ_TRANSACTION_H_
17 #define GRAPHSCOPE_DATABASE_READ_TRANSACTION_H_
18 
19 #include <limits>
20 #include <utility>
21 
25 
26 namespace gs {
27 
28 class MutablePropertyFragment;
29 class VersionManager;
30 template <typename EDATA_T>
31 class AdjListView {
32  class nbr_iterator {
35 
36  public:
38  timestamp_t timestamp)
39  : ptr_(ptr), end_(end), timestamp_(timestamp) {
40  while (ptr_ != end_ && ptr_->get_timestamp() > timestamp_) {
41  ++ptr_;
42  }
43  }
44 
45  const_nbr_t& operator*() const { return *ptr_; }
46 
47  const_nbr_ptr_t operator->() const { return ptr_; }
48 
50  ++ptr_;
51  while (ptr_ != end_ && ptr_->get_timestamp() > timestamp_) {
52  ++ptr_;
53  }
54  return *this;
55  }
56 
57  bool operator==(const nbr_iterator& rhs) const {
58  return (ptr_ == rhs.ptr_);
59  }
60 
61  bool operator!=(const nbr_iterator& rhs) const {
62  return (ptr_ != rhs.ptr_);
63  }
64 
65  private:
69  };
70 
71  public:
73 
74  AdjListView(const slice_t& slice, timestamp_t timestamp)
75  : edges_(slice), timestamp_(timestamp) {}
76 
77  nbr_iterator begin() const {
79  }
80  nbr_iterator end() const {
82  }
83 
84  int estimated_degree() const { return edges_.size(); }
85 
86  private:
89 };
90 
91 template <typename EDATA_T>
92 class GraphView {
93  public:
94  GraphView(const MutableCsr<EDATA_T>& csr, timestamp_t timestamp)
95  : csr_(csr),
96  timestamp_(timestamp),
97  unsorted_since_(csr.unsorted_since()) {}
98 
100  return AdjListView<EDATA_T>(csr_.get_edges(v), timestamp_);
101  }
102 
103  // iterate edges with data in [min_value, max_value)
104  template <typename FUNC_T>
105  void foreach_edges_between(vid_t v, EDATA_T& min_value, EDATA_T& max_value,
106  const FUNC_T& func) const {
107  const auto& edges = csr_.get_edges(v);
108  auto ptr = edges.end() - 1;
109  auto end = edges.begin() - 1;
110  while (ptr != end) {
111  if (ptr->timestamp > timestamp_) {
112  --ptr;
113  continue;
114  }
115  if (ptr->timestamp < unsorted_since_) {
116  break;
117  }
118  if (!(ptr->data < min_value) && (ptr->data < max_value)) {
119  func(*ptr, min_value, max_value);
120  }
121  --ptr;
122  }
123  if (ptr == end) {
124  return;
125  }
126  ptr = std::upper_bound(end + 1, ptr + 1, max_value,
127  [](const EDATA_T& a, const MutableNbr<EDATA_T>& b) {
128  return a < b.data;
129  }) -
130  1;
131  while (ptr != end) {
132  if (ptr->data < min_value) {
133  break;
134  }
135  func(*ptr, min_value, max_value);
136  --ptr;
137  }
138  }
139 
140  // iterate edges with data in (min_value, +inf)
141  template <typename FUNC_T>
142  void foreach_edges_gt(vid_t v, EDATA_T& min_value, const FUNC_T& func) const {
143  const auto& edges = csr_.get_edges(v);
144  auto ptr = edges.end() - 1;
145  auto end = edges.begin() - 1;
146  while (ptr != end) {
147  if (ptr->timestamp > timestamp_) {
148  --ptr;
149  continue;
150  }
151  if (ptr->timestamp < unsorted_since_) {
152  break;
153  }
154  if (min_value < ptr->data) {
155  func(*ptr, min_value);
156  }
157  --ptr;
158  }
159  while (ptr != end) {
160  if (!(min_value < ptr->data)) {
161  break;
162  }
163  func(*ptr, min_value);
164  --ptr;
165  }
166  }
167 
168  // iterate edges with data in [min_value, +inf)
169  template <typename FUNC_T>
170  void foreach_edges_ge(vid_t v, EDATA_T& min_value, const FUNC_T& func) const {
171  const auto& edges = csr_.get_edges(v);
172  auto ptr = edges.end() - 1;
173  auto end = edges.begin() - 1;
174  while (ptr != end) {
175  if (ptr->timestamp > timestamp_) {
176  --ptr;
177  continue;
178  }
179  if (ptr->timestamp < unsorted_since_) {
180  break;
181  }
182  if (!(ptr->data < min_value)) {
183  func(*ptr, min_value);
184  }
185  --ptr;
186  }
187  while (ptr != end) {
188  if (ptr->data < min_value) {
189  break;
190  }
191  func(*ptr, min_value);
192  --ptr;
193  }
194  }
195 
196  private:
200 };
201 
202 template <typename EDATA_T>
204  public:
206  : csr_(csr), timestamp_(timestamp) {}
207 
208  bool exist(vid_t v) const {
209  return (csr_.get_edge(v).timestamp.load() <= timestamp_);
210  }
211 
213  return csr_.get_edge(v);
214  }
215 
216  private:
219 };
220 
221 template <>
222 class SingleGraphView<std::string_view> {
223  public:
225  timestamp_t timestamp)
226  : csr_(csr), timestamp_(timestamp) {}
227 
228  bool exist(vid_t v) const {
229  return (csr_.get_edge(v).timestamp.load() <= timestamp_);
230  }
231 
233  return csr_.get_edge(v);
234  }
235 
236  private:
239 };
240 
241 template <typename EDATA_T>
243  public:
245  : csr_(csr) {}
246 
247  bool exist(vid_t v) const {
248  return (csr_.get_edge(v).neighbor != std::numeric_limits<vid_t>::max());
249  }
250 
252  return csr_.get_edge(v);
253  }
254 
255  private:
257 };
258 
259 template <>
260 class SingleImmutableGraphView<std::string_view> {
261  public:
263  : csr_(csr) {}
264 
265  bool exist(vid_t v) const {
266  return (csr_.get_edge(v).neighbor != std::numeric_limits<vid_t>::max());
267  }
268 
270  return csr_.get_edge(v);
271  }
272 
273  private:
275 };
276 
278  public:
282 
283  timestamp_t timestamp() const;
284 
285  void Commit();
286 
287  void Abort();
288 
289  const MutablePropertyFragment& graph() const;
290 
291  const std::shared_ptr<ColumnBase> get_vertex_property_column(
292  uint8_t label, const std::string& col_name) const {
293  return graph_.get_vertex_table(label).get_column(col_name);
294  }
295 
297  public:
298  vertex_iterator(label_t label, vid_t cur, vid_t num,
301 
302  bool IsValid() const;
303  void Next();
304  void Goto(vid_t target);
305 
306  Any GetId() const;
307  vid_t GetIndex() const;
308 
309  Any GetField(int col_id) const;
310  int FieldNum() const;
311 
312  private:
317  };
318 
320  public:
321  edge_iterator(label_t neighbor_label, label_t edge_label,
322  std::shared_ptr<CsrConstEdgeIterBase> iter);
323  ~edge_iterator();
324 
325  Any GetData() const;
326 
327  bool IsValid() const;
328 
329  void Next();
330 
331  vid_t GetNeighbor() const;
332 
333  label_t GetNeighborLabel() const;
334 
335  label_t GetEdgeLabel() const;
336 
337  private:
340 
341  std::shared_ptr<CsrConstEdgeIterBase> iter_;
342  };
343 
345 
346  vertex_iterator FindVertex(label_t label, const Any& id) const;
347 
348  bool GetVertexIndex(label_t label, const Any& id, vid_t& index) const;
349 
350  vid_t GetVertexNum(label_t label) const;
351 
352  Any GetVertexId(label_t label, vid_t index) const;
353 
355  label_t neighbor_label,
356  label_t edge_label) const;
357 
359  label_t neighbor_label,
360  label_t edge_label) const;
361 
362  template <typename EDATA_T>
364  label_t neighbor_label,
365  label_t edge_label) const {
366  auto csr = dynamic_cast<const TypedMutableCsrBase<EDATA_T>*>(
367  graph_.get_oe_csr(v_label, neighbor_label, edge_label));
368  return AdjListView<EDATA_T>(csr->get_edges(v), timestamp_);
369  }
370 
371  template <typename EDATA_T>
373  label_t neighbor_label,
374  label_t edge_label) const {
375  auto csr = dynamic_cast<const TypedMutableCsrBase<EDATA_T>*>(
376  graph_.get_ie_csr(v_label, neighbor_label, edge_label));
377  return AdjListView<EDATA_T>(csr->get_edges(v), timestamp_);
378  }
379 
380  const Schema& schema() const;
381 
382  template <typename EDATA_T>
384  label_t neighbor_label,
385  label_t edge_label) const {
386  auto csr = dynamic_cast<const MutableCsr<EDATA_T>*>(
387  graph_.get_oe_csr(v_label, neighbor_label, edge_label));
388  return GraphView<EDATA_T>(*csr, timestamp_);
389  }
390 
391  template <typename EDATA_T>
393  label_t neighbor_label,
394  label_t edge_label) const {
395  auto csr = dynamic_cast<const MutableCsr<EDATA_T>*>(
396  graph_.get_ie_csr(v_label, neighbor_label, edge_label));
397  return GraphView<EDATA_T>(*csr, timestamp_);
398  }
399 
400  template <typename EDATA_T>
402  label_t v_label, label_t neighbor_label, label_t edge_label) const {
403  auto csr = dynamic_cast<const SingleMutableCsr<EDATA_T>*>(
404  graph_.get_oe_csr(v_label, neighbor_label, edge_label));
405  return SingleGraphView<EDATA_T>(*csr, timestamp_);
406  }
407 
408  template <typename EDATA_T>
410  label_t v_label, label_t neighbor_label, label_t edge_label) const {
411  auto csr = dynamic_cast<const SingleMutableCsr<EDATA_T>*>(
412  graph_.get_ie_csr(v_label, neighbor_label, edge_label));
413  return SingleGraphView<EDATA_T>(*csr, timestamp_);
414  }
415 
416  template <typename EDATA_T>
418  label_t v_label, label_t neighbor_label, label_t edge_label) const {
419  auto csr = dynamic_cast<const SingleImmutableCsr<EDATA_T>*>(
420  graph_.get_oe_csr(v_label, neighbor_label, edge_label));
422  }
423 
424  template <typename EDATA_T>
426  label_t v_label, label_t neighbor_label, label_t edge_label) const {
427  auto csr = dynamic_cast<const SingleImmutableCsr<EDATA_T>*>(
428  graph_.get_ie_csr(v_label, neighbor_label, edge_label));
430  }
431 
432  private:
433  void release();
434 
438 };
439 
440 } // namespace gs
441 
442 #endif // GRAPHSCOPE_DATABASE_READ_TRANSACTION_H_
gs::ReadTransaction::FindVertex
vertex_iterator FindVertex(label_t label, const Any &id) const
Definition: read_transaction.cc:94
gs::ReadTransaction::vertex_iterator
Definition: read_transaction.h:296
gs::SingleGraphView< std::string_view >::SingleGraphView
SingleGraphView(const SingleMutableCsr< std::string_view > &csr, timestamp_t timestamp)
Definition: read_transaction.h:224
gs::AdjListView::edges_
slice_t edges_
Definition: read_transaction.h:87
gs::ReadTransaction::GetVertexIndex
bool GetVertexIndex(label_t label, const Any &id, vid_t &index) const
Definition: read_transaction.cc:104
gs::ReadTransaction::edge_iterator::GetNeighbor
vid_t GetNeighbor() const
Definition: read_transaction.cc:77
gs::AdjListView::nbr_iterator::ptr_
const_nbr_ptr_t ptr_
Definition: read_transaction.h:66
gs::Any
Definition: types.h:383
gs::AdjListView::end
nbr_iterator end() const
Definition: read_transaction.h:80
gs::SingleGraphView::exist
bool exist(vid_t v) const
Definition: read_transaction.h:208
gs::ReadTransaction::vm_
VersionManager & vm_
Definition: read_transaction.h:436
gs::ReadTransaction::GetVertexId
Any GetVertexId(label_t label, vid_t index) const
Definition: read_transaction.cc:113
gs::ReadTransaction::vertex_iterator::FieldNum
int FieldNum() const
Definition: read_transaction.cc:55
gs::timestamp_t
uint32_t timestamp_t
Definition: types.h:30
gs::ReadTransaction::ReadTransaction
ReadTransaction(const MutablePropertyFragment &graph, VersionManager &vm, timestamp_t timestamp)
Definition: read_transaction.cc:22
gs::SingleImmutableGraphView::SingleImmutableGraphView
SingleImmutableGraphView(const SingleImmutableCsr< EDATA_T > &csr)
Definition: read_transaction.h:244
gs::ReadTransaction::vertex_iterator::GetId
Any GetId() const
Definition: read_transaction.cc:46
gs::SingleGraphView
Definition: read_transaction.h:203
gs::ReadTransaction::vertex_iterator::GetIndex
vid_t GetIndex() const
Definition: read_transaction.cc:49
gs::ReadTransaction::GetIncomingEdges
AdjListView< EDATA_T > GetIncomingEdges(label_t v_label, vid_t v, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:372
gs::vid_t
uint32_t vid_t
Definition: types.h:31
gs::SingleImmutableGraphView< std::string_view >::csr_
const SingleImmutableCsr< std::string_view > & csr_
Definition: read_transaction.h:274
gs::SingleImmutableGraphView< std::string_view >::get_edge
ImmutableNbr< std::string_view > get_edge(vid_t v) const
Definition: read_transaction.h:269
gs::ReadTransaction::timestamp
timestamp_t timestamp() const
Definition: read_transaction.cc:27
gs::SingleGraphView::get_edge
const MutableNbr< EDATA_T > & get_edge(vid_t v) const
Definition: read_transaction.h:212
gs::SingleImmutableGraphView::get_edge
const ImmutableNbr< EDATA_T > & get_edge(vid_t v) const
Definition: read_transaction.h:251
gs::GraphView::foreach_edges_gt
void foreach_edges_gt(vid_t v, EDATA_T &min_value, const FUNC_T &func) const
Definition: read_transaction.h:142
gs::ReadTransaction::release
void release()
Definition: read_transaction.cc:131
gs::ReadTransaction::edge_iterator
Definition: read_transaction.h:319
gs
Definition: adj_list.h:23
gs::ReadTransaction::vertex_iterator::label_
label_t label_
Definition: read_transaction.h:313
gs::AdjListView::nbr_iterator::operator->
const_nbr_ptr_t operator->() const
Definition: read_transaction.h:47
gs::ReadTransaction::edge_iterator::iter_
std::shared_ptr< CsrConstEdgeIterBase > iter_
Definition: read_transaction.h:341
gs::MutableNbrSlice::begin
const_nbr_ptr_t begin() const
Definition: nbr.h:267
gs::GraphView::foreach_edges_between
void foreach_edges_between(vid_t v, EDATA_T &min_value, EDATA_T &max_value, const FUNC_T &func) const
Definition: read_transaction.h:105
gs::MutableNbr
Definition: nbr.h:193
gs::AdjListView::nbr_iterator::operator==
bool operator==(const nbr_iterator &rhs) const
Definition: read_transaction.h:57
gs::GraphView::unsorted_since_
timestamp_t unsorted_since_
Definition: read_transaction.h:199
gs::ReadTransaction::GetInEdgeIterator
edge_iterator GetInEdgeIterator(label_t label, vid_t u, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.cc:123
gs::ReadTransaction::vertex_iterator::GetField
Any GetField(int col_id) const
Definition: read_transaction.cc:51
gs::SingleImmutableGraphView< std::string_view >::exist
bool exist(vid_t v) const
Definition: read_transaction.h:265
mutable_property_fragment.h
gs::AdjListView::nbr_iterator
Definition: read_transaction.h:32
gs::AdjListView::begin
nbr_iterator begin() const
Definition: read_transaction.h:77
gs::ReadTransaction::vertex_iterator::~vertex_iterator
~vertex_iterator()
gs::MutablePropertyFragment
Definition: mutable_property_fragment.h:37
gs::ReadTransaction::timestamp_
timestamp_t timestamp_
Definition: read_transaction.h:437
gs::ReadTransaction::vertex_iterator::Goto
void Goto(vid_t target)
Definition: read_transaction.cc:42
gs::GraphView::csr_
const MutableCsr< EDATA_T > & csr_
Definition: read_transaction.h:197
gs::AdjListView
Definition: read_transaction.h:31
gs::AdjListView::nbr_iterator::timestamp_
timestamp_t timestamp_
Definition: read_transaction.h:68
gs::MutablePropertyFragment::get_ie_csr
CsrBase * get_ie_csr(label_t label, label_t neighbor_label, label_t edge_label)
Definition: mutable_property_fragment.cc:484
gs::AdjListView::nbr_iterator::end_
const_nbr_ptr_t end_
Definition: read_transaction.h:67
gs::MutableNbrSlice::end
const_nbr_ptr_t end() const
Definition: nbr.h:268
gs::MutableNbr::data
EDATA_T data
Definition: nbr.h:221
gs::ReadTransaction::vertex_iterator::vertex_iterator
vertex_iterator(label_t label, vid_t cur, vid_t num, const MutablePropertyFragment &graph)
Definition: read_transaction.cc:35
gs::SingleGraphView::csr_
const SingleMutableCsr< EDATA_T > & csr_
Definition: read_transaction.h:217
gs::GraphView::get_edges
AdjListView< EDATA_T > get_edges(vid_t v) const
Definition: read_transaction.h:99
gs::Schema
Definition: schema.h:29
gs::AdjListView::nbr_iterator::operator*
const_nbr_t & operator*() const
Definition: read_transaction.h:45
gs::GraphView::foreach_edges_ge
void foreach_edges_ge(vid_t v, EDATA_T &min_value, const FUNC_T &func) const
Definition: read_transaction.h:170
gs::GraphView::GraphView
GraphView(const MutableCsr< EDATA_T > &csr, timestamp_t timestamp)
Definition: read_transaction.h:94
gs::ReadTransaction::edge_iterator::Next
void Next()
Definition: read_transaction.cc:75
gs::SingleImmutableGraphView::exist
bool exist(vid_t v) const
Definition: read_transaction.h:247
gs::ReadTransaction::GetVertexIterator
vertex_iterator GetVertexIterator(label_t label) const
Definition: read_transaction.cc:89
gs::ReadTransaction::vertex_iterator::IsValid
bool IsValid() const
Definition: read_transaction.cc:40
gs::SingleImmutableCsr
Definition: immutable_csr.h:326
gs::ReadTransaction::GetIncomingGraphView
GraphView< EDATA_T > GetIncomingGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:392
gs::VersionManager
Definition: version_manager.h:34
gs::MutableCsr
Definition: mutable_csr.h:183
gs::AdjListView::nbr_iterator::const_nbr_ptr_t
typename MutableNbrSlice< EDATA_T >::const_nbr_ptr_t const_nbr_ptr_t
Definition: read_transaction.h:34
gs::SingleImmutableGraphView
Definition: read_transaction.h:242
gs::ReadTransaction::schema
const Schema & schema() const
Definition: read_transaction.cc:129
gs::ReadTransaction::GetOutgoingEdges
AdjListView< EDATA_T > GetOutgoingEdges(label_t v_label, vid_t v, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:363
gs::ReadTransaction::edge_iterator::edge_label_
label_t edge_label_
Definition: read_transaction.h:339
gs::ReadTransaction
Definition: read_transaction.h:277
gs::SingleImmutableCsr< std::string_view >
Definition: immutable_csr.h:512
gs::TypedMutableCsrBase
Definition: csr_base.h:135
gs::ReadTransaction::GetVertexNum
vid_t GetVertexNum(label_t label) const
Definition: read_transaction.cc:109
gs::ReadTransaction::GetIncomingSingleGraphView
SingleGraphView< EDATA_T > GetIncomingSingleGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:409
gs::AdjListView::AdjListView
AdjListView(const slice_t &slice, timestamp_t timestamp)
Definition: read_transaction.h:74
gs::ReadTransaction::vertex_iterator::Next
void Next()
Definition: read_transaction.cc:41
gs::ReadTransaction::vertex_iterator::graph_
const MutablePropertyFragment & graph_
Definition: read_transaction.h:316
gs::AdjListView::nbr_iterator::const_nbr_t
typename MutableNbrSlice< EDATA_T >::const_nbr_t const_nbr_t
Definition: read_transaction.h:33
types.h
gs::MutablePropertyFragment::get_oe_csr
CsrBase * get_oe_csr(label_t label, label_t neighbor_label, label_t edge_label)
Definition: mutable_property_fragment.cc:468
gs::SingleGraphView::SingleGraphView
SingleGraphView(const SingleMutableCsr< EDATA_T > &csr, timestamp_t timestamp)
Definition: read_transaction.h:205
gs::ReadTransaction::edge_iterator::GetEdgeLabel
label_t GetEdgeLabel() const
Definition: read_transaction.cc:85
gs::ReadTransaction::GetIncomingSingleImmutableGraphView
SingleImmutableGraphView< EDATA_T > GetIncomingSingleImmutableGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:425
gs::ReadTransaction::edge_iterator::neighbor_label_
label_t neighbor_label_
Definition: read_transaction.h:338
std
Definition: loading_config.h:232
gs::SingleMutableCsr
Definition: mutable_csr.h:745
gs::ReadTransaction::edge_iterator::edge_iterator
edge_iterator(label_t neighbor_label, label_t edge_label, std::shared_ptr< CsrConstEdgeIterBase > iter)
Definition: read_transaction.cc:59
gs::SingleImmutableGraphView< std::string_view >::SingleImmutableGraphView
SingleImmutableGraphView(const SingleImmutableCsr< std::string_view > &csr)
Definition: read_transaction.h:262
gs::ReadTransaction::GetOutgoingGraphView
GraphView< EDATA_T > GetOutgoingGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:383
gs::SingleGraphView< std::string_view >::csr_
const SingleMutableCsr< std::string_view > & csr_
Definition: read_transaction.h:237
gs::ReadTransaction::edge_iterator::IsValid
bool IsValid() const
Definition: read_transaction.cc:71
gs::AdjListView::nbr_iterator::nbr_iterator
nbr_iterator(const_nbr_ptr_t ptr, const_nbr_ptr_t end, timestamp_t timestamp)
Definition: read_transaction.h:37
gs::GraphView
Definition: read_transaction.h:92
gs::ReadTransaction::GetOutEdgeIterator
edge_iterator GetOutEdgeIterator(label_t label, vid_t u, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.cc:117
gs::GraphView::timestamp_
timestamp_t timestamp_
Definition: read_transaction.h:198
gs::SingleGraphView< std::string_view >::timestamp_
timestamp_t timestamp_
Definition: read_transaction.h:238
gs::ReadTransaction::~ReadTransaction
~ReadTransaction()
Definition: read_transaction.cc:25
gs::ReadTransaction::edge_iterator::GetData
Any GetData() const
Definition: read_transaction.cc:67
gs::ImmutableNbr
Definition: nbr.h:29
gs::ReadTransaction::edge_iterator::GetNeighborLabel
label_t GetNeighborLabel() const
Definition: read_transaction.cc:81
gs::ReadTransaction::graph
const MutablePropertyFragment & graph() const
Definition: read_transaction.cc:33
mutable_csr.h
gs::ReadTransaction::get_vertex_property_column
const std::shared_ptr< ColumnBase > get_vertex_property_column(uint8_t label, const std::string &col_name) const
Definition: read_transaction.h:291
gs::AdjListView::nbr_iterator::operator++
nbr_iterator & operator++()
Definition: read_transaction.h:49
gs::ReadTransaction::edge_iterator::~edge_iterator
~edge_iterator()
gs::ReadTransaction::vertex_iterator::num_
vid_t num_
Definition: read_transaction.h:315
gs::AdjListView::nbr_iterator::operator!=
bool operator!=(const nbr_iterator &rhs) const
Definition: read_transaction.h:61
gs::SingleGraphView< std::string_view >::get_edge
MutableNbr< std::string_view > get_edge(vid_t v) const
Definition: read_transaction.h:232
gs::ReadTransaction::vertex_iterator::cur_
vid_t cur_
Definition: read_transaction.h:314
gs::ReadTransaction::Abort
void Abort()
Definition: read_transaction.cc:31
gs::SingleMutableCsr< std::string_view >
Definition: mutable_csr.h:954
gs::MutableNbrSlice::size
int size() const
Definition: nbr.h:263
gs::SingleImmutableGraphView::csr_
const SingleImmutableCsr< EDATA_T > & csr_
Definition: read_transaction.h:256
gs::AdjListView::estimated_degree
int estimated_degree() const
Definition: read_transaction.h:84
gs::AdjListView::timestamp_
timestamp_t timestamp_
Definition: read_transaction.h:88
gs::SingleGraphView< std::string_view >::exist
bool exist(vid_t v) const
Definition: read_transaction.h:228
gs::SingleGraphView::timestamp_
timestamp_t timestamp_
Definition: read_transaction.h:218
gs::MutablePropertyFragment::get_vertex_table
Table & get_vertex_table(label_t vertex_label)
Definition: mutable_property_fragment.cc:393
gs::ReadTransaction::GetOutgoingSingleGraphView
SingleGraphView< EDATA_T > GetOutgoingSingleGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:401
gs::label_t
uint8_t label_t
Definition: types.h:32
gs::MutableNbrSlice
Definition: nbr.h:253
gs::Table::get_column
std::shared_ptr< ColumnBase > get_column(const std::string &name)
Definition: table.cc:171
gs::ReadTransaction::Commit
void Commit()
Definition: read_transaction.cc:29
gs::ReadTransaction::graph_
const MutablePropertyFragment & graph_
Definition: read_transaction.h:435
gs::ReadTransaction::GetOutgoingSingleImmutableGraphView
SingleImmutableGraphView< EDATA_T > GetOutgoingSingleImmutableGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:417