/LiveGraph

LiveGraph: a transactional graph storage system with purely sequential adjacency list scans

Primary LanguageC++Apache License 2.0Apache-2.0

LiveGraph

Description

This is the open-source implementation for LiveGraph:

LiveGraph: a transactional graph storage system with purely sequential adjacency list scans.
Xiaowei Zhu, Guanyu Feng, Marco Serafini, Xiaosong Ma, Jiping Yu, Lei Xie, Ashraf Aboulnaga, and Wenguang Chen.
Proc. VLDB Endow. 13, 7 (March 2020), 1020–1034. DOI:https://doi.org/10.14778/3384345.3384351

Dependency

API

class livegraph::Graph

Members
public inline Graph(std::string block_path,std::string wal_path,size_t _max_block_size,vertex_t _max_vertex_id)
public inline vertex_t get_max_vertex_id() const
public timestamp_t compact(timestamp_t read_epoch_id)
public Transaction begin_transaction()
public Transaction begin_read_only_transaction()
public Transaction begin_batch_loader()

class livegraph::Transaction

Members
public inline timestamp_t get_read_epoch_id() const
public vertex_t new_vertex(bool use_recycled_vertex)
public void put_vertex(vertex_t vertex_id,std::string_view data)
public bool del_vertex(vertex_t vertex_id,bool recycle)
public void put_edge(vertex_t src,label_t label,vertex_t dst,std::string_view edge_data,bool force_insert)
public bool del_edge(vertex_t src,label_t label,vertex_t dst)
public std::string_view get_vertex(vertex_t vertex_id)
public std::string_view get_edge(vertex_t src,label_t label,vertex_t dst)
public EdgeIterator get_edges(vertex_t src,label_t label,bool reverse)
public timestamp_t commit(bool wait_visable)
public void abort()

class livegraph::EdgeIterator

Members
public inline bool valid() const
public inline void next()
public inline vertex_t dst_id() const
public inline std::string_view edge_data() const

class livegraph::Transaction::RollbackExcept

class livegraph::Transaction::RollbackExcept : public runtime_error
Members
public inline RollbackExcept(const std::string & what_arg)
public inline RollbackExcept(const char * what_arg)