A+ Indexes: Lightweight and Highly Flexible Adjacency Lists for Graph Database Management Systems

by   Amine Mhedhbi, et al.

Graph database management systems (GDBMSs) are highly optimized to perform very fast joins of vertices by indexing the neighbourhoods of vertices in adjacency list indexes. However, existing GDBMSs have system-specific and fixed adjacency list index structures, which makes each system highly efficient on only a fixed set of workloads. We describe a highly flexible and lightweight indexing sub-system for GDBMSs, that is coupled with materialized view capability, that we call A+ indexes. A+ indexes comprise of three components. Default A+ indexes provide flexibility to users to index neighbourhoods of vertices using arbitrary nested secondary partitioning and sorting criteria. This allows users to optimize a system for a variety of workloads with no or minimal memory overheads. Secondary vertex- and edge-bound A+ indexes, respectively are views over edges and 2-paths. Edge-bound indexes partition views over 2-paths by edge IDs and store the neighbourhoods of edges instead of vertices. Our secondary indexes are designed to have a very lightweight implementation based on a technique we call offset lists. A+ indexes allow a wider range of applications to benefit from GDBMSs' fast join capabilities. We demonstrate the flexibility, efficiency, and low memory overheads of A+ indexes through extensive experiments on a variety of applications.


page 1

page 2

page 3

page 4


Integrating Column-Oriented Storage and Query Processing Techniques Into Graph Database Management Systems

We revisit column-oriented storage and query processing techniques in th...

Quasi-polynomial Algorithms for List-coloring of Nearly Intersecting Hypergraphs

A hypergraph H on n vertices and m edges is said to be nearly-intersect...

Making RDBMSs Efficient on Graph Workloads Through Predefined Joins

Joins in native graph database management systems (GDBMSs) are predefine...

BOBA: A Parallel Lightweight Graph Reordering Algorithm with Heavyweight Implications

We describe a simple parallel-friendly lightweight graph reordering algo...

GraphTango: A Hybrid Representation Format for Efficient Streaming Graph Updates and Analysis

Streaming graph processing involves performing updates and analytics on ...

Chunked Lists versus Extensible Arrays for Text Inversion

In our 2017 work on in-memory list-based text inversion [Hawking and Bil...

Towards Adaptive Storage Views in Virtual Memory

Traditionally, DBMSs separate their storage layer from their indexing la...

Please sign up or login with your details

Forgot password? Click here to reset