Flex  0.17.9
insert_transaction.h
Go to the documentation of this file.
1 
16 #ifndef GRAPHSCOPE_DATABASE_INSERT_TRANSACTION_H_
17 #define GRAPHSCOPE_DATABASE_INSERT_TRANSACTION_H_
18 
19 #include <limits>
20 
23 #include "flex/utils/allocators.h"
25 #include "grape/serialization/in_archive.h"
26 
27 namespace gs {
28 
29 class MutablePropertyFragment;
30 class IWalWriter;
31 class VersionManager;
32 class GraphDBSession;
33 
35  public:
36  std::string run(const std::string& cypher,
37  const std::map<std::string, std::string>& params);
38 
39  InsertTransaction(const GraphDBSession& session,
40  MutablePropertyFragment& graph, Allocator& alloc,
41  IWalWriter& logger, VersionManager& vm,
43 
45 
46  bool AddVertex(label_t label, const Any& id, const std::vector<Any>& props);
47 
48  bool AddEdge(label_t src_label, const Any& src, label_t dst_label,
49  const Any& dst, label_t edge_label, const Any& prop);
50 
51  bool Commit();
52 
53  void Abort();
54 
55  timestamp_t timestamp() const;
56 
57  static void IngestWal(MutablePropertyFragment& graph, uint32_t timestamp,
58  char* data, size_t length, Allocator& alloc);
59 
60  const Schema& schema() const;
61 
62  const GraphDBSession& GetSession() const;
63 
64  private:
65  void clear();
66 
68  label_t label, const Any& oid,
69  vid_t& lid);
71 
72  grape::InArchive arc_;
73 
74  std::set<std::pair<label_t, Any>> added_vertices_;
75 
77 
82 };
83 
84 } // namespace gs
85 
86 #endif // GRAPHSCOPE_DATABASE_INSERT_TRANSACTION_H_
gs::InsertTransaction::get_vertex_with_retries
static bool get_vertex_with_retries(MutablePropertyFragment &graph, label_t label, const Any &oid, vid_t &lid)
Definition: insert_transaction.cc:231
gs::InsertTransaction::schema
const Schema & schema() const
Definition: insert_transaction.cc:225
gs::InsertTransaction::AddEdge
bool AddEdge(label_t src_label, const Any &src, label_t dst_label, const Any &dst, label_t edge_label, const Any &prop)
Definition: insert_transaction.cc:84
gs::Any
Definition: types.h:399
gs::timestamp_t
uint32_t timestamp_t
Definition: types.h:30
types.h
schema.h
gs::InsertTransaction::clear
void clear()
Definition: insert_transaction.cc:217
gs::vid_t
uint32_t vid_t
Definition: types.h:31
gs::InsertTransaction
Definition: insert_transaction.h:34
gs::InsertTransaction::added_vertices_
std::set< std::pair< label_t, Any > > added_vertices_
Definition: insert_transaction.h:74
gs::InsertTransaction::timestamp_
timestamp_t timestamp_
Definition: insert_transaction.h:81
gs::InsertTransaction::arc_
grape::InArchive arc_
Definition: insert_transaction.h:72
gs
Definition: adj_list.h:23
gs::InsertTransaction::GetSession
const GraphDBSession & GetSession() const
Definition: insert_transaction.cc:227
gs::InsertTransaction::InsertTransaction
InsertTransaction(const GraphDBSession &session, MutablePropertyFragment &graph, Allocator &alloc, IWalWriter &logger, VersionManager &vm, timestamp_t timestamp)
Definition: insert_transaction.cc:26
gs::InsertTransaction::IngestWal
static void IngestWal(MutablePropertyFragment &graph, uint32_t timestamp, char *data, size_t length, Allocator &alloc)
Definition: insert_transaction.cc:184
gs::ArenaAllocator
Definition: allocators.h:29
gs::InsertTransaction::timestamp
timestamp_t timestamp() const
Definition: insert_transaction.cc:182
gs::MutablePropertyFragment
Definition: mutable_property_fragment.h:37
gs::InsertTransaction::AddVertex
bool AddVertex(label_t label, const Any &id, const std::vector< Any > &props)
Definition: insert_transaction.cc:48
gs::InsertTransaction::alloc_
Allocator & alloc_
Definition: insert_transaction.h:78
gs::Schema
Definition: schema.h:29
allocators.h
gs::GraphDBSession
Definition: graph_db_session.h:36
gs::InsertTransaction::Commit
bool Commit()
Definition: insert_transaction.cc:147
gs::VersionManager
Definition: version_manager.h:34
gs::InsertTransaction::graph_
MutablePropertyFragment & graph_
Definition: insert_transaction.h:76
types.h
gs::InsertTransaction::vm_
VersionManager & vm_
Definition: insert_transaction.h:80
gs::InsertTransaction::run
std::string run(const std::string &cypher, const std::map< std::string, std::string > &params)
Definition: insert_transaction.cc:42
gs::InsertTransaction::Abort
void Abort()
Definition: insert_transaction.cc:174
gs::InsertTransaction::logger_
IWalWriter & logger_
Definition: insert_transaction.h:79
gs::label_t
uint8_t label_t
Definition: types.h:32
gs::InsertTransaction::session_
const GraphDBSession & session_
Definition: insert_transaction.h:70
gs::IWalWriter
Definition: wal.h:57
gs::InsertTransaction::~InsertTransaction
~InsertTransaction()
Definition: insert_transaction.cc:40