Go to the documentation of this file.
16 #ifndef GRAPHSCOPE_DATABASE_UPDATE_TRANSACTION_H_
17 #define GRAPHSCOPE_DATABASE_UPDATE_TRANSACTION_H_
22 #include "flat_hash_map/flat_hash_map.hpp"
30 #include "grape/serialization/in_archive.h"
34 class MutablePropertyFragment;
41 const std::string& work_dir,
WalWriter& logger,
86 std::shared_ptr<CsrConstEdgeIterBase> init_iter,
143 const std::string& work_dir, uint32_t
timestamp,
144 char* data,
size_t length,
Allocator& alloc);
189 std::vector<ska::flat_hash_map<vid_t, std::vector<vid_t>>>
added_edges_;
190 std::vector<ska::flat_hash_map<
191 vid_t, ska::flat_hash_map<vid_t, std::pair<Any, size_t>>>>
199 #endif // GRAPHSCOPE_DATABASE_UPDATE_TRANSACTION_H_
bool AddVertex(label_t label, const Any &oid, const std::vector< Any > &props)
Definition: update_transaction.cc:117
UpdateTransaction * txn_
Definition: update_transaction.h:79
UpdateTransaction * txn_
Definition: update_transaction.h:119
std::vector< ska::flat_hash_map< vid_t, std::vector< vid_t > > > added_edges_
Definition: update_transaction.h:189
Definition: update_transaction.h:57
uint32_t timestamp_t
Definition: types.h:30
label_t GetEdgeLabel() const
Definition: update_transaction.cc:365
bool IsValid() const
Definition: update_transaction.cc:322
std::vector< Table > extra_vertex_properties_
Definition: update_transaction.h:187
std::vector< vid_t > vertex_nums_
Definition: update_transaction.h:185
Allocator & alloc_
Definition: update_transaction.h:172
vid_t v_
Definition: update_transaction.h:110
uint32_t vid_t
Definition: types.h:31
vid_t & num_
Definition: update_transaction.h:78
timestamp_t timestamp_
Definition: update_transaction.h:175
std::shared_ptr< CsrConstEdgeIterBase > init_iter_
Definition: update_transaction.h:118
size_t edge_label_num_
Definition: update_transaction.h:181
std::vector< ska::flat_hash_map< vid_t, vid_t > > vertex_offsets_
Definition: update_transaction.h:186
std::vector< std::shared_ptr< IdIndexerBase< vid_t > > > added_vertices_
Definition: update_transaction.h:183
std::vector< std::string > sv_vec_
Definition: update_transaction.h:194
Any GetVertexField(label_t label, vid_t lid, int col_id) const
Definition: update_transaction.cc:416
size_t vertex_label_num_
Definition: update_transaction.h:180
Definition: adj_list.h:23
VersionManager & vm_
Definition: update_transaction.h:174
label_t neighbor_label_
Definition: update_transaction.h:112
std::vector< vid_t > added_vertices_base_
Definition: update_transaction.h:184
Any GetField(int col_id) const
Definition: update_transaction.cc:265
void release()
Definition: update_transaction.cc:701
MutablePropertyFragment & graph_
Definition: update_transaction.h:171
void batch_commit(UpdateBatch &batch)
Definition: update_transaction.cc:718
timestamp_t timestamp() const
Definition: update_transaction.cc:93
vertex_iterator GetVertexIterator(label_t label)
Definition: update_transaction.cc:369
label_t edge_label_
Definition: update_transaction.h:113
void Next()
Definition: update_transaction.cc:326
Definition: allocators.h:29
UpdateTransaction(MutablePropertyFragment &graph, Allocator &alloc, const std::string &work_dir, WalWriter &logger, VersionManager &vm, timestamp_t timestamp)
Definition: update_transaction.cc:27
Definition: mutable_property_fragment.h:37
void Forward(size_t offset)
Definition: update_transaction.cc:340
const vid_t * added_edges_end_
Definition: update_transaction.h:116
bool oid_to_lid(label_t label, const Any &oid, vid_t &lid) const
Definition: update_transaction.cc:677
size_t get_out_csr_index(label_t src_label, label_t dst_label, label_t edge_label) const
Definition: update_transaction.cc:669
bool SetField(int col_id, const Any &value)
Definition: update_transaction.cc:269
bool SetVertexField(label_t label, vid_t lid, int col_id, const Any &value)
Definition: update_transaction.cc:428
~UpdateTransaction()
Definition: update_transaction.cc:91
Any lid_to_oid(label_t label, vid_t lid) const
Definition: update_transaction.cc:690
void applyEdgesUpdates()
Definition: update_transaction.cc:798
bool IsValid() const
Definition: update_transaction.cc:253
Definition: graph_db_session.h:36
void set_edge_data_with_offset(bool dir, label_t label, vid_t v, label_t neighbor_label, vid_t nbr, label_t edge_label, const Any &value, size_t offset)
Definition: update_transaction.cc:483
void Goto(vid_t target)
Definition: update_transaction.cc:255
Definition: version_manager.h:34
void Next()
Definition: update_transaction.cc:254
grape::InArchive arc_
Definition: update_transaction.h:177
bool AddEdge(label_t src_label, const Any &src, label_t dst_label, const Any &dst, label_t edge_label, const Any &value)
Definition: update_transaction.cc:170
WalWriter & logger_
Definition: update_transaction.h:173
size_t offset_
Definition: update_transaction.h:120
int op_num_
Definition: update_transaction.h:178
void applyVerticesUpdates()
Definition: update_transaction.cc:757
edge_iterator(bool dir, label_t label, vid_t v, label_t neighbor_label, label_t edge_label, const vid_t *aeb, const vid_t *aee, std::shared_ptr< CsrConstEdgeIterBase > init_iter, UpdateTransaction *txn)
Definition: update_transaction.cc:274
std::vector< ska::flat_hash_map< vid_t, ska::flat_hash_map< vid_t, std::pair< Any, size_t > > > > updated_edge_data_
Definition: update_transaction.h:192
label_t label_
Definition: update_transaction.h:109
label_t GetNeighborLabel() const
Definition: update_transaction.cc:361
edge_iterator GetInEdgeIterator(label_t label, vid_t u, label_t neighbor_label, label_t edge_label)
Definition: update_transaction.cc:395
vertex_iterator(label_t label, vid_t cur, vid_t &num, UpdateTransaction *txn)
Definition: update_transaction.cc:248
size_t get_in_csr_index(label_t src_label, label_t dst_label, label_t edge_label) const
Definition: update_transaction.cc:663
const vid_t * added_edges_cur_
Definition: update_transaction.h:115
void SetEdgeData(bool dir, label_t label, vid_t v, label_t neighbor_label, vid_t nbr, label_t edge_label, const Any &value)
Definition: update_transaction.cc:472
bool dir_
Definition: update_transaction.h:107
static void IngestWal(MutablePropertyFragment &graph, const std::string &work_dir, uint32_t timestamp, char *data, size_t length, Allocator &alloc)
Definition: update_transaction.cc:529
vid_t cur_
Definition: update_transaction.h:76
Definition: update_transaction.h:38
Any GetId() const
Definition: update_transaction.cc:259
void Abort()
Definition: update_transaction.cc:115
bool GetUpdatedEdgeData(bool dir, label_t label, vid_t v, label_t neighbor_label, vid_t nbr, label_t edge_label, Any &ret) const
Definition: update_transaction.cc:509
edge_iterator GetOutEdgeIterator(label_t label, vid_t u, label_t neighbor_label, label_t edge_label)
Definition: update_transaction.cc:374
void SetData(const Any &value)
Definition: update_transaction.cc:309
uint8_t label_t
Definition: types.h:32
label_t label_
Definition: update_transaction.h:75
vid_t GetIndex() const
Definition: update_transaction.cc:263
void Commit()
Definition: update_transaction.cc:95
vid_t GetNeighbor() const
Definition: update_transaction.cc:353
Any GetData() const
Definition: update_transaction.cc:290
Definition: update_transaction.h:82
Definition: transaction_utils.h:113