Towards Scalable Loading Into Graph Database Systems

Total Page:16

File Type:pdf, Size:1020Kb

Towards Scalable Loading Into Graph Database Systems Piecing together large puzzles, efficiently: Towards scalable loading into graph database systems Work in progress paper Gabriel Campero Durand Jingy Ma Marcus Pinnecke University of Magdeburg University of Magdeburg University of Magdeburg [email protected] [email protected] [email protected] Gunter Saake University of Magdeburg [email protected] Transaction checks ABSTRACT Id assignation 5 Many applications rely on network analysis to extract busi- Physical storage ness intelligence from large datasets, requiring specialized graph tools such as processing frameworks (e.g. Apache Gi- 4 Process organization raph, Gradoop), database systems (e.g. Neo4j, JanusGraph) Batching or applications/libraries (e.g. NetworkX, nvGraph). A recent Partitioning survey reports scalability, particularly for loading, as the fo- Pre-processing 3 remost practical challenge faced by users. In this paper we consider the design space of tools for efficient and scalable 1 Parsing for different input characteristics File Interpretation 2 graph bulk loading. For this we implement a prototypical CSV, JSON, Adjacency lists, Implicit graphs... loader for a property graph DBMS, using a distributed mes- sage bus. With our implementation we evaluate the impact Figure 1: Bulk Loading into a Graph Storage and limits of basic optimizations. Our results confirm the expectation that bulk loading can be best supported as a server-side process. We also find, for our specific case, gains 1. INTRODUCTION from batching writes (up to 64x speedups in our evaluati- Network analysis is one of many methods used by scien- on), uniform behavior across partitioning strategies, and the tists to study large data collections. For this, data has to be need for careful tuning to find the optimal configuration of represented with models based on graph theory. Namely, as batching and partitioning. In future work we aim to study a graph structure composed of nodes/vertexes and relation- loading into alternative physical storages with GeckoDB, an ships/edges. Additional details of properties, labels, seman- HTAP database system developed in our group. tics or the direction of edges, allow to define more specific models such as RDF, hypergraphs or property graphs. Categories and Subject Descriptors Building on such models network analysis is commonly assisted by three kinds of tools specialized for graph mana- H.2.m [Information Systems]: Miscellaneous|Graph-based gement: database models; H.2.m [Information Systems]: Miscella- neous|Extraction, transformation and loading • Standalone applications, toolkits and libraries, such as Gephi, NetworkX and nvGraph, provide cost-effective General Terms processing for small to medium networks in a single user environment. Accordingly they target single ma- Measurement chine shared memory configurations. Standalone app- lications like Pajek and Gephi, also offer visualization. Keywords Graph database systems, Bulk loading, Streaming graph • Graph database systems emphasize persistent storage partitioning and transactional guarantees in the presence of upda- tes from a multi-user environment. Physical/logical da- ta independence is accomplished through the adoption of high-level graph models (e.g., the property graph model), backed by different physical storage and in- dexing alternatives. According to their storage graph databases can be distinguished as native (i.e., with graph-specific storage) or non-native (i.e., with storage developed for other models, like documents). Example 30th GI-Workshop on Foundations of Databases (Grundlagen von Daten- banken), 22.05.2018 - 25.05.2018, Wuppertal, Germany. systems include Neo4j, OrientDB, ArangoDB, Gaffer, Copyright is held by the author/owner(s). SAP Hana Graph, and JanusGraph. • Large scale graph processing frameworks are charac- Regarding constraints, to store an edge the existence of terized by their goal of supporting scale-out analytical the connected vertexes needs to be checked. For storing both workloads over large graphs, with failure-tolerance pro- vertexes and edges, integrity constraints specific to the data perties. As a result they adopt parallel and distributed model might also require validation. When sources present strategies for batch or stream processing. Distributed duplicate entities, each write request might entail determi- job scheduling for skew handling and communication ning first if the entity needs to be created or not. For large avoidance, next to I/O reduction are some of the key graphs both checks for constraints and for duplicate entities design characteristics of these tools. Apache Giraph, might impact the loading time. Pregel, Flink's Gelly and Gradoop are some represen- In terms of distributing the process, this can take place tatives of such frameworks. either by distributing the data sources (e.g., chunking and sharding files) or the interpreted data. A recent survey among researchers and practitioners em- Perhaps the most pressing aspects that need to be consi- ploying these specialized graph tools reveals several charac- dered by tools for the general graph data loading process we teristics of their usage [8]. The first finding is what authors describe are efficiency, which for the purposes of our discus- identify as the ubiquity of large graphs: about a third of the sion encompasses scalability, and usability, which refers to surveyed users report having graphs with more than 100 fulfilling requirements from diverse input characteristics. In million edges, and more specifically, graphs on the range of what follows we briefly present these aspects before advan- billions of edges are not exclusive to large organizations but cing to the specific contributions of our study. actually are used in organizations of all sizes. Second, the survey reports that graph database systems currently occu- 2.1 Performance-impacting factors py a prominent place within the community, consitituting One of the main factors determining how the loading will the most popular category of tools in use. Third, the sur- take place, its efficiency and the possible optimizations, is vey finds that scalability (i.e., the need for processing effi- the physical storage model. Paradies and Voigt [7] survey ciently larger graphs), followed by visualization and require- some of the more prevalent alternatives for this. Authors ments for expressive query languages, are the most pressing distinguish between choices for storing only the topology challenges faced by users of these tools. Moreover, regarding and choices for storing richer logical graph models, inclu- scalability, users report that the precise challenges are inef- ding labels and properties associated with nodes and edges. ficiencies in loading, updating and performing computations Among the first group they count adjacency matrixes, ad- over large graphs. In this paper we share early considerati- jacency lists and compressed sparse rows (consisting of an ons about a specific challenge of this list: bulk loading large ordering of edges stored in a sequential immutable array networks into a specialized graph tool. This is a process that with an index of offsets to improve the access). Among the can become a bottleneck, and delay the time for analyis. In second choice they list triple tables (storing in a single ta- this sense, optimizing such process can be specially impact- ble with dictionary compression the subject-object-predicate ful, enabling analysis on data with more currency. data that conform RDF triples), universal tables (wherein a We organize our study as follows: single table is asssigned to edges and another to vertexes), • We introduce the bulk loading process into graph tools, emerging schemas (for which tables are still employed but outlining performance-impacting aspects and usability with schemas tuned to the data), schema hashing (where requirements gathered by surveying the SNAP reposi- item ids and properties are used as hashes to store the cor- tory for network datasets (Sec. 2). responding values in separate tables) and separate property • We develop an early prototype for bulk loading into storage (a strategy that simply separates the storage of pro- a graph database, evaluating client vs. server-side loa- perties from that of the topology). Specialized compressed ding, request batching and different partitioning stra- structures, adaptive strategies and structural storage are al- tegies (Sec. 3, 4). so discussed by authors as alternative storage approaches. • We summarize related work providing context for our Finally, graph summaries like sparsifiers and spanners could research (Sec. 5). be considered storage alternatives too, though specifically • We conclude by suggesting takeways from our study attuned for expected uses. and future work (Sec. 6). Adding to the specific storage model selected, which should reasonably determine the operations involved in bulk loa- 2. THE GRAPH BULK LOADING PROCESS ding, we consider that other performance-impacting aspects Bulk loading is a process common to most graph tools pertaining to the design of an efficient bulk loading tool are: (Fig. 1). We propose that the general process consists of: input file parsing, memory allocation, access patterns, I/O 1. Reading input data sources, often in tabular formats. paths for persistent storage, write batching, the amount of 2. Interpreting data as nodes and edges according to ru- paralellism employed and load balance, concurrency control, les. Intermediate data structures can be utilized. consensus for distributed writes, transactional management, 3. Cleaning, deduplication
Recommended publications
  • An Evaluation of the Design Space for Scalable Data Loading Into Graph Databases
    Otto-von-Guericke-Universit¨at Magdeburg Faculty of Computer Science Databases D B and Software S E Engineering Master's Thesis An Evaluation of the Design Space for Scalable Data Loading into Graph Databases Author: Jingyi Ma February 23, 2018 Advisors: M.Sc. Gabriel Campero Durand Data and Knowledge Engineering Group Prof. Dr. rer. nat. habil. Gunter Saake Data and Knowledge Engineering Group Ma, Jingyi: An Evaluation of the Design Space for Scalable Data Loading into Graph Databases Master's Thesis, Otto-von-Guericke-Universit¨at Magdeburg, 2018. Abstract In recent years, computational network science has become an active area. It offers a wealth of tools to help us gain insight into the interconnected systems around us. Graph databases are non-relational database systems which have been developed to support such network-oriented workloads. Graph databases build a data model based on graph abstractions (i.e. nodes/vertexes and edges) and can use different optimizations to speed up the basic graph processing tasks, such as traversals. In spite of such benefits, some tasks remain challenging in graph databases, such as the task of loading the complete dataset. The loading process has been considered to be a performance bottleneck, specifically a scalability bottleneck, and application developers need to conduct performance tuning to improve it. In this study, we study some optimization alternatives that developers have for load data into a graph databases. With this goal, we propose simple microbenchmarks of application-level load optimizations and evaluate these optimizations experimentally for loading real world graph datasets. We run our tests using JanusGraphLab, a JanusGraph prototype.
    [Show full text]
  • Data-Centric Graphical User Interface of the ATLAS Event Index Service
    EPJ Web of Conferences 245, 04036 (2020) https://doi.org/10.1051/epjconf/202024504036 CHEP 2019 Data-centric Graphical User Interface of the ATLAS Event Index Service Julius Hrivnᡠcˇ1,∗, Evgeny Alexandrov2, Igor Alexandrov2, Zbigniew Baranowski3, Dario Barberis4, Gancho Dimitrov3, Alvaro Fernandez Casani5, Elizabeth Gallas6, Carlos Gar- cía Montoro5, Santiago Gonzalez de la Hoz5, Andrei Kazymov2, Mikhail Mineev2, Fedor Prokoshin2, Grigori Rybkin1, Javier Sanchez5, Jose Salt5, Miguel Villaplana Perez7 1Université Paris-Saclay, CNRS/IN2P3, IJCLab, 91405 Orsay, France 2Joint Institute for Nuclear Research, 6 Joliot-Curie St., Dubna, Moscow Region, 141980, Russia 3CERN, 1211 Geneva 23, Switzerland 4Physics Department of the University of Genoa and INFN Sezione di Genova, Via Dodecaneso 33, I-16146 Genova, Italy 5Instituto de Fisica Corpuscular (IFIC), Centro Mixto Universidad de Valencia - CSIC, Valencia, Spain 6Department of Physics, Oxford University, Oxford, United Kingdom 7Department of Physics, University of Alberta, Edmonton AB, Canada Abstract. The Event Index service of the ATLAS experiment at the LHC keeps references to all real and simulated events. Hadoop Map files and HBase tables are used to store the Event Index data, a subset of data is also stored in the Oracle database. Several user interfaces are currently used to access and search the data, from a simple command line interface, through a programmable API, to sophisticated graphical web services. It provides a dynamic graph-like overview of all available data (and data collections). Data are shown together with their relations, like paternity or overlaps. Each data entity then gives users a set of actions available for the referenced data. Some actions are provided directly by the Event Index system, others are just interfaces to different ATLAS services.
    [Show full text]
  • Release Notes Date Published: 2021-03-25 Date Modified
    Cloudera Runtime 7.2.8 Release Notes Date published: 2021-03-25 Date modified: https://docs.cloudera.com/ Legal Notice © Cloudera Inc. 2021. All rights reserved. The documentation is and contains Cloudera proprietary information protected by copyright and other intellectual property rights. No license under copyright or any other intellectual property right is granted herein. Copyright information for Cloudera software may be found within the documentation accompanying each component in a particular release. Cloudera software includes software from various open source or other third party projects, and may be released under the Apache Software License 2.0 (“ASLv2”), the Affero General Public License version 3 (AGPLv3), or other license terms. Other software included may be released under the terms of alternative open source licenses. Please review the license and notice files accompanying the software for additional licensing information. Please visit the Cloudera software product page for more information on Cloudera software. For more information on Cloudera support services, please visit either the Support or Sales page. Feel free to contact us directly to discuss your specific needs. Cloudera reserves the right to change any products at any time, and without notice. Cloudera assumes no responsibility nor liability arising from the use of products, except as expressly agreed to in writing by Cloudera. Cloudera, Cloudera Altus, HUE, Impala, Cloudera Impala, and other Cloudera marks are registered or unregistered trademarks in the United States and other countries. All other trademarks are the property of their respective owners. Disclaimer: EXCEPT AS EXPRESSLY PROVIDED IN A WRITTEN AGREEMENT WITH CLOUDERA, CLOUDERA DOES NOT MAKE NOR GIVE ANY REPRESENTATION, WARRANTY, NOR COVENANT OF ANY KIND, WHETHER EXPRESS OR IMPLIED, IN CONNECTION WITH CLOUDERA TECHNOLOGY OR RELATED SUPPORT PROVIDED IN CONNECTION THEREWITH.
    [Show full text]
  • The Ubiquity of Large Graphs and Surprising Challenges of Graph Processing: Extended Survey
    The VLDB Journal https://doi.org/10.1007/s00778-019-00548-x SPECIAL ISSUE PAPER The ubiquity of large graphs and surprising challenges of graph processing: extended survey Siddhartha Sahu1 · Amine Mhedhbi1 · Semih Salihoglu1 · Jimmy Lin1 · M. Tamer Özsu1 Received: 21 January 2019 / Revised: 9 May 2019 / Accepted: 13 June 2019 © Springer-Verlag GmbH Germany, part of Springer Nature 2019 Abstract Graph processing is becoming increasingly prevalent across many application domains. In spite of this prevalence, there is little research about how graphs are actually used in practice. We performed an extensive study that consisted of an online survey of 89 users, a review of the mailing lists, source repositories, and white papers of a large suite of graph software products, and in-person interviews with 6 users and 2 developers of these products. Our online survey aimed at understanding: (i) the types of graphs users have; (ii) the graph computations users run; (iii) the types of graph software users use; and (iv) the major challenges users face when processing their graphs. We describe the participants’ responses to our questions highlighting common patterns and challenges. Based on our interviews and survey of the rest of our sources, we were able to answer some new questions that were raised by participants’ responses to our online survey and understand the specific applications that use graph data and software. Our study revealed surprising facts about graph processing in practice. In particular, real-world graphs represent a very diverse range of entities and are often very large, scalability and visualization are undeniably the most pressing challenges faced by participants, and data integration, recommendations, and fraud detection are very popular applications supported by existing graph software.
    [Show full text]
  • Using Graph Databases, We Are Moving Essential Structure from Code to Data, Together with a Migration from an Imperative to a Declarative Coding Semantics
    Using Graph Databases Julius Hrivnᡠcˇ1,∗ on behalf of the ATLAS Computing Group 1Université Paris-Saclay, CNRS/IN2P3, IJCLab, 91405 Orsay, France Abstract. Data in High Energy Physics (HEP) are usually stored in tuples (ta- bles), trees, nested tuples (trees of tuples) or relational (SQL-like) databases, with or without defined schema. But many of our data are graph-like and schema-less. They consist of entities with relations, some of which are known in advance, but many are created ad-hoc, later. Such structures are not well covered by relational (SQL) databases. We don’t only need the possibility of adding new data with the existing defined relations, we also need to add new relations. Graph Databases have existed for a long time, but have only matured recently thanks to Big Data and AI (adaptive NN). There are now very good implemen- tations and de-facto standards available. The difference between SQL and Graph Database is similar to the difference between Fortran and C++. On one side, a rigid system, which can be very opti- mized. On the other side, a flexible dynamical system, which allows expression of complex structures. GraphDB is a synthesis of OODB and SQLDB. They al- low expression of a web of objects without fragility of OO world. They capture only essential relations, without keeping a complete object dump. Migrating to Graph Database means moving structure from code to data, together with migration from imperative to declarative semantics (things don’t happen, but exist). The paper describes basic principles of the Graph Database together with an overview of existing standards and implementations.
    [Show full text]
  • Suitability of Graph Database Technology for the Analysis of Spatio-Temporal Data
    future internet Article Suitability of Graph Database Technology for the Analysis of Spatio-Temporal Data Sedick Baker Effendi 1,* , Brink van der Merwe 1 and Wolf-Tilo Balke 2 1 Department of Computer Science, Stellenbosch University, Stellenbosch 7600, South Africa; [email protected] 2 Institute for Information Systems, TU Braunschweig, D-38106 Braunschweig, Germany; balke@ifis.cs.tu-bs.de * Correspondence: [email protected]; Tel.: +27-834-324-666 Received: 30 March 2020; Accepted: 23 April 2020; Published: 26 April 2020 Abstract: Every day large quantities of spatio-temporal data are captured, whether by Web-based companies for social data mining or by other industries for a variety of applications ranging from disaster relief to marine data analysis. Making sense of all this data dramatically increases the need for intelligent backend systems to provide realtime query response times while scaling well (in terms of storage and performance) with increasing quantities of structured or semi-structured, multi-dimensional data. Currently, relational database solutions with spatial extensions such as PostGIS, seem to come to their limits. However, the use of graph database technology has been rising in popularity and has been found to handle graph-like spatio-temporal data much more effectively. Motivated by the need to effectively store multi-dimensional, interconnected data, this paper investigates whether or not graph database technology is better suited when compared to the extended relational approach. Three database technologies will be investigated using real world datasets namely: PostgreSQL, JanusGraph, and TigerGraph. The datasets used are the Yelp challenge dataset and an ambulance response simulation dataset, thus combining real world spatial data with realistic simulations offering more control over the dataset.
    [Show full text]
  • System G Distributed Graph Database
    System G Distributed Graph Database Gabriel Tanase Toyotaro Suzumura Jinho Lee IBM T.J. Watson Research IBM T.J. Watson Research IBM T.J. Watson Research Center Center Center 1101 Kitchawan Rd 1101 Kitchawan Rd 11501 Burnet Rd Yorktown Heights, NY 10598 Yorktown Heights, NY 10598 Austin, TX 78759 [email protected] [email protected] [email protected] Chun­Fu (Richard) Chen Jason Crawford Hiroki Kanezashi IBM T.J. Watson Research IBM T.J. Watson Research IBM T.J. Watson Research Center Center Center 1101 Kitchawan Rd 1101 Kitchawan Rd 1101 Kitchawan Rd Yorktown Heights, NY 10598 Yorktown Heights, NY 10598 Yorktown Heights, NY 10598 [email protected] [email protected] [email protected] ABSTRACT lems that need to be addressed when working with big data Motivated by the need to extract knowledge and value from is how to efficiently store and query them. In this paper we interconnected data, graph analytics on big data is a very focus on these challenges in the context of large connected active area of research in both industry and academia. To data sets that are modeled as graphs. Graphs are often used support graph analytics efficiently a large number of in mem- to represent linked concepts like communities of people and ory graph libraries, graph processing systems and graph things they like, bank accounts and transactions, or cities databases have emerged. Projects in each of these cate- and connecting roads. For all these examples vertices are gories focus on particular aspects such as static versus dy- in order of hundred of millions and edges or relations are in namic graphs, off line versus on line processing, small versus the order of tens of billions.
    [Show full text]
  • Demystifying Graph Databases: Analysis and Taxonomy of Data Organization, System Designs, and Graph Queries
    1 Demystifying Graph Databases: Analysis and Taxonomy of Data Organization, System Designs, and Graph Queries MACIEJ BESTA, Department of Computer Science, ETH Zurich ROBERT GERSTENBERGER, Department of Computer Science, ETH Zurich EMANUEL PETER, Department of Computer Science, ETH Zurich MARC FISCHER, PRODYNA (Schweiz) AG MICHAŁ PODSTAWSKI, Future Processing CLAUDE BARTHELS, Department of Computer Science, ETH Zurich GUSTAVO ALONSO, Department of Computer Science, ETH Zurich TORSTEN HOEFLER, Department of Computer Science, ETH Zurich Graph processing has become an important part of multiple areas of computer science, such as machine learning, computational sciences, medical applications, social network analysis, and many others. Numerous graphs such as web or social networks may contain up to trillions of edges. Often, these graphs are also dynamic (their structure changes over time) and have domain-specific rich data associated with vertices and edges. Graph database systems such as Neo4j enable storing, processing, and analyzing such large, evolving, and rich datasets. Due to the sheer size of such datasets, combined with the irregular nature of graph processing, these systems face unique design challenges. To facilitate the understanding of this emerging domain, we present the first survey and taxonomy of graph database systems. We focus on identifying and analyzing fundamental categories of these systems (e.g., triple stores, tuple stores, native graph database systems, or object-oriented systems), the associated graph models (e.g., RDF or Labeled Property Graph), data organization techniques (e.g., storing graph data in indexing structures or dividing data into records), and different aspects of data distribution and query execution (e.g., support for sharding and ACID).
    [Show full text]
  • Query Analysis on a Distributed Graph Database Student: Bc
    ASSIGNMENT OF MASTER’S THESIS Title: Query Analysis on a Distributed Graph Database Student: Bc. Lucie Svitáková Supervisor: Ing. Michal Valenta, Ph.D. Study Programme: Informatics Study Branch: Web and Software Engineering Department: Department of Software Engineering Validity: Until the end of summer semester 2019/20 Instructions 1. Research current practicies of data storage in distributed graph databases. 2. Choose an existing database system for your implementation. 3. Analyse how to extract necessary information for further query analysis and implement that extraction. 4. Create a suitable method to store the data extracted in step 3. 5. Propose a method for a more efficient redistribution of the data. References Will be provided by the supervisor. Ing. Michal Valenta, Ph.D. doc. RNDr. Ing. Marcel Jiřina, Ph.D. Head of Department Dean Prague October 5, 2018 Master’s thesis Query Analysis on a Distributed Graph Database Bc. et Bc. Lucie Svit´akov´a Department of Software Engineering Supervisor: Ing. Michal Valenta, Ph.D. January 8, 2019 Acknowledgements I would like to thank my supervisor Michal Valenta for his valuable suggestions and observations, my sister S´arkaSvit´akov´aforˇ spelling corrections, my friends Martin Horejˇsand Tom´aˇsNov´aˇcekfor their valuable comments and my family for their continual motivation and support. Declaration I hereby declare that the presented thesis is my own work and that I have cited all sources of information in accordance with the Guideline for adhering to ethical principles when elaborating an academic final thesis. I acknowledge that my thesis is subject to the rights and obligations stip- ulated by the Act No.
    [Show full text]
  • Graph Computing with Janusgraph Jason Plurad Open Source Developer & Advocate
    Graph Computing with JanusGraph Jason Plurad Open Source Developer & Advocate LDBC 11th Technical User Community (TUC) Meeting / University of Texas at Austin / June 8, 2018 / © 2018 IBM Corporation JanusGraph • Established in January 2017 • Scalable graph database distributed on multi-machine clusters with pluggable storage and indexing • Vendor-neutral, open community with open governance JanusGraph™ • Founders: Expero, Google, Grakn, Maintainer The Linux Hortonworks, IBM Foundation License Apache Releases 0.3.0 planned 2Q 2018 https://janusgraph.org LDBC 11th Technical User Community (TUC) Meeting / University of Texas at Austin / June 8, 2018 / © 2018 IBM Corporation 2 JanusGraph Community • Contributors • Member companies • 49 total • Amazon • Huawei • Committers • Linkurious • 14 initial, 6 added • Netflix • Newforma • Technical Steering Committee • Orchestral Developments • 6 initial, 2 added • Uber • Issues • In production • 287 open, 352 closed • Celum • Finc • Open source projects • G-Data • Apache Atlas • IBM Cloud • Open Network Automation Platform (ONAP) • Times Internet LDBC 11th Technical User Community (TUC) Meeting / University of Texas at Austin / June 8, 2018 / © 2018 IBM Corporation 3 Apache TinkerPop • Established in 2009 • Apache incubator in 2015 • Top-level project in 2016 • Open source, vendor-agnostic, graph computing framework • Gremlin graph traversal language Apache TinkerPop™ Maintainer The Apache Software Foundation License Apache Releases 3.3.3 May 2018 https://tinkerpop.apache.org LDBC 11th Technical User
    [Show full text]
  • Practicalgremlin.Pdf
    PRACTICAL GREMLIN An Apache TinkerPop Tutorial Kelvin R. Lawrence Version 283-preview, August 2nd 2021 Table of Contents 1. INTRODUCTION . 1 1.1. How this book came to be. 1 1.2. Providing feedback. 2 1.3. Some words of thanks . 2 1.4. What is this book about?. 2 1.5. Introducing the book sources, sample programs and data . 4 1.6. A word about TinkerPop 3.4 . 5 1.7. Introducing TinkerPop 3.5 . 6 1.8. So what is a graph database and why should I care? . 6 1.9. A word about terminology . 8 2. GETTING STARTED . 10 2.1. What is Apache TinkerPop? . 10 2.2. The Gremlin console . 11 2.2.1. Downloading, installing and launching the console . 11 2.2.2. Saving output from the console to a file . 15 2.3. Introducing TinkerGraph . 16 2.4. Introducing the air-routes graph . 18 2.4.1. Updated versions of the air-route data . 22 2.5. TinkerPop 3 migration notes . 22 2.5.1. Creating a TinkerGraph TP2 vs TP3 . 22 2.5.2. Loading a graphML file TP2 vs TP3 . 22 2.5.3. A word about the TinkerPop.sugar plugin . 23 2.6. Loading the air-routes graph using the Gremlin console . 24 2.7. Turning off some of the Gremlin console’s output. 25 2.8. A word about indexes and schemas. 25 3. WRITING GREMLIN QUERIES . 27 3.1. Introducing Gremlin . 27 3.1.1. A quick look at Gremlin and SQL . 27 3.2. Some fairly basic Gremlin queries .
    [Show full text]
  • Demystifying Graph Databases: Analysis and Taxonomyof Data Organization, System Designs, and Graph Queries
    1 Demystifying Graph Databases: Analysis and Taxonomy of Data Organization, System Designs, and Graph Queries Towards Understanding Modern Graph Processing, Storage, and Analytics MACIEJ BESTA, EMANUEL PETER, Department of Computer Science, ETH Zurich ROBERT GERSTENBERGER, Department of Computer Science, ETH Zurich MARC FISCHER, PRODYNA (Schweiz) AG MICHAŁ PODSTAWSKI, Future Processing CLAUDE BARTHELS, GUSTAVO ALONSO, Department of Computer Science, ETH Zurich TORSTEN HOEFLER, Department of Computer Science, ETH Zurich Graph processing has become an important part of multiple areas of computer science, such as machine learning, computational sciences, medical applications, social network analysis, and many others. Numerous graphs such as web or social networks may contain up to trillions of edges. Often, these graphs are also dynamic (their structure changes over time) and have domain-specific rich data associated with vertices and edges. Graph database systems such as Neo4j enable storing, processing, and analyzing such large, evolving, and rich datasets. Due to the sheer size of such datasets, combined with the irregular nature of graph processing, these systems face unique design challenges. To facilitate the understanding of this emerging domain, we present the first survey and taxonomy of graph database systems. We focus on identifying and analyzing fundamental categories of these systems (e.g., triple stores, tuple stores, native graph database systems, or object-oriented systems), the associated graph models (e.g., RDF or Labeled Property Graph), data organization techniques (e.g., storing graph data in indexing structures or dividing data into records), and different aspects of data distribution and query execution (e.g., support for sharding and ACID). 45 graph database systems are presented and compared, including Neo4j, OrientDB, or Virtuoso.
    [Show full text]