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 std::string
run(
const std::string& cypher,
42 const std::map<std::string, std::string>& params);
46 const std::string& work_dir,
IWalWriter& logger,
93 std::shared_ptr<CsrConstEdgeIterBase> init_iter,
150 const std::string& work_dir, uint32_t
timestamp,
151 char* data,
size_t length,
Allocator& alloc);
201 std::vector<ska::flat_hash_map<vid_t, std::vector<vid_t>>>
added_edges_;
202 std::vector<ska::flat_hash_map<
203 vid_t, ska::flat_hash_map<vid_t, std::pair<Any, size_t>>>>
211 #endif // GRAPHSCOPE_DATABASE_UPDATE_TRANSACTION_H_
bool AddVertex(label_t label, const Any &oid, const std::vector< Any > &props)
Definition: update_transaction.cc:132
UpdateTransaction * txn_
Definition: update_transaction.h:86
std::string run(const std::string &cypher, const std::map< std::string, std::string > ¶ms)
Definition: update_transaction.cc:29
UpdateTransaction * txn_
Definition: update_transaction.h:126
std::vector< ska::flat_hash_map< vid_t, std::vector< vid_t > > > added_edges_
Definition: update_transaction.h:201
Definition: update_transaction.h:64
uint32_t timestamp_t
Definition: types.h:30
label_t GetEdgeLabel() const
Definition: update_transaction.cc:380
const Schema & schema() const
Definition: mutable_property_fragment.cc:391
bool IsValid() const
Definition: update_transaction.cc:337
std::vector< Table > extra_vertex_properties_
Definition: update_transaction.h:199
std::vector< vid_t > vertex_nums_
Definition: update_transaction.h:197
Allocator & alloc_
Definition: update_transaction.h:184
vid_t v_
Definition: update_transaction.h:117
uint32_t vid_t
Definition: types.h:31
vid_t & num_
Definition: update_transaction.h:85
timestamp_t timestamp_
Definition: update_transaction.h:187
std::shared_ptr< CsrConstEdgeIterBase > init_iter_
Definition: update_transaction.h:125
size_t edge_label_num_
Definition: update_transaction.h:193
std::vector< ska::flat_hash_map< vid_t, vid_t > > vertex_offsets_
Definition: update_transaction.h:198
std::vector< std::shared_ptr< IdIndexerBase< vid_t > > > added_vertices_
Definition: update_transaction.h:195
std::vector< std::string > sv_vec_
Definition: update_transaction.h:206
const GraphDBSession & GetSession() const
Definition: update_transaction.cc:915
Any GetVertexField(label_t label, vid_t lid, int col_id) const
Definition: update_transaction.cc:431
size_t vertex_label_num_
Definition: update_transaction.h:192
Definition: adj_list.h:23
VersionManager & vm_
Definition: update_transaction.h:186
label_t neighbor_label_
Definition: update_transaction.h:119
const GraphDBSession & session_
Definition: update_transaction.h:181
bool Commit()
Definition: update_transaction.cc:105
std::vector< vid_t > added_vertices_base_
Definition: update_transaction.h:196
Any GetField(int col_id) const
Definition: update_transaction.cc:280
void release()
Definition: update_transaction.cc:720
MutablePropertyFragment & graph_
Definition: update_transaction.h:183
timestamp_t timestamp() const
Definition: update_transaction.cc:103
vertex_iterator GetVertexIterator(label_t label)
Definition: update_transaction.cc:384
label_t edge_label_
Definition: update_transaction.h:120
void Next()
Definition: update_transaction.cc:341
const Schema & schema() const
Definition: update_transaction.h:53
Definition: allocators.h:29
Definition: mutable_property_fragment.h:37
void Forward(size_t offset)
Definition: update_transaction.cc:355
bool batch_commit(UpdateBatch &batch)
Definition: update_transaction.cc:737
const vid_t * added_edges_end_
Definition: update_transaction.h:123
bool oid_to_lid(label_t label, const Any &oid, vid_t &lid) const
Definition: update_transaction.cc:696
size_t get_out_csr_index(label_t src_label, label_t dst_label, label_t edge_label) const
Definition: update_transaction.cc:688
bool SetField(int col_id, const Any &value)
Definition: update_transaction.cc:284
bool SetVertexField(label_t label, vid_t lid, int col_id, const Any &value)
Definition: update_transaction.cc:447
~UpdateTransaction()
Definition: update_transaction.cc:101
Any lid_to_oid(label_t label, vid_t lid) const
Definition: update_transaction.cc:709
UpdateTransaction(const GraphDBSession &session, MutablePropertyFragment &graph, Allocator &alloc, const std::string &work_dir, IWalWriter &logger, VersionManager &vm, timestamp_t timestamp)
Definition: update_transaction.cc:35
void applyEdgesUpdates()
Definition: update_transaction.cc:822
bool IsValid() const
Definition: update_transaction.cc:268
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:502
void Goto(vid_t target)
Definition: update_transaction.cc:270
Definition: version_manager.h:34
void Next()
Definition: update_transaction.cc:269
grape::InArchive arc_
Definition: update_transaction.h:189
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:185
size_t offset_
Definition: update_transaction.h:127
int op_num_
Definition: update_transaction.h:190
void applyVerticesUpdates()
Definition: update_transaction.cc:781
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:289
Any GetVertexId(label_t label, vid_t lid) const
Definition: update_transaction.cc:443
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:204
label_t label_
Definition: update_transaction.h:116
label_t GetNeighborLabel() const
Definition: update_transaction.cc:376
edge_iterator GetInEdgeIterator(label_t label, vid_t u, label_t neighbor_label, label_t edge_label)
Definition: update_transaction.cc:410
vertex_iterator(label_t label, vid_t cur, vid_t &num, UpdateTransaction *txn)
Definition: update_transaction.cc:263
size_t get_in_csr_index(label_t src_label, label_t dst_label, label_t edge_label) const
Definition: update_transaction.cc:682
const vid_t * added_edges_cur_
Definition: update_transaction.h:122
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:491
bool dir_
Definition: update_transaction.h:114
IWalWriter & logger_
Definition: update_transaction.h:185
static void IngestWal(MutablePropertyFragment &graph, const std::string &work_dir, uint32_t timestamp, char *data, size_t length, Allocator &alloc)
Definition: update_transaction.cc:548
vid_t cur_
Definition: update_transaction.h:83
Definition: update_transaction.h:39
Any GetId() const
Definition: update_transaction.cc:274
void Abort()
Definition: update_transaction.cc:130
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:528
edge_iterator GetOutEdgeIterator(label_t label, vid_t u, label_t neighbor_label, label_t edge_label)
Definition: update_transaction.cc:389
void SetData(const Any &value)
Definition: update_transaction.cc:324
uint8_t label_t
Definition: types.h:32
label_t label_
Definition: update_transaction.h:82
vid_t GetIndex() const
Definition: update_transaction.cc:278
vid_t GetNeighbor() const
Definition: update_transaction.cc:368
Any GetData() const
Definition: update_transaction.cc:305
Definition: update_transaction.h:89
Definition: transaction_utils.h:113