  The specific characteristics of graph workloads make it hard to design a
one-size-fits-all graph storage system. Systems that support transactional
updates use data structures with poor data locality, which limits the
efficiency of analytical workloads or even simple edge scans. Other systems run
graph analytics workloads efficiently, but cannot properly support
transactions.
  This paper presents LiveGraph, a graph storage system that outperforms both
the best graph transactional systems and the best systems for real-time graph
analytics on fresh data. LiveGraph does that by ensuring that adjacency list
scans, a key operation in graph workloads, are purely sequential: they never
require random accesses even in presence of concurrent transactions. This is
achieved by combining a novel graph-aware data structure, the Transactional
Edge Log (TEL), together with a concurrency control mechanism that leverages
TEL's data layout. Our evaluation shows that LiveGraph significantly
outperforms state-of-the-art (graph) database solutions on both transactional
and real-time analytical workloads.
