consists of 3 nodes whereas funnel and rhombus
patterns consist of 4 nodes. This results in
approximately the same size (in Mb) of index for all
of 3 measured databases and patterns.
5 CONCLUSIONS
In the paper a new method for indexing graph
patterns was analyzed, designed and implemented
for Neo4j GDBMS in order to speed up the process
of matching graph patterns. The method enables to
create, use and update multiple indexes, each created
for a different graph pattern. Index data are
organized in a tree structure and they are stored
within the same database as the base data. This
solution provides really fast approach from the index
structure to data. On the other hand, it mixes index
data and base data together in one common storage.
It may negatively affect the evaluation of queries
that do not use index patterns. We plan to address
this issue in following research. It is the part of a
more general topic how to store metadata and
separate them from base data in GDBMS.
It is proved that using indexes which are created
by the method introduced in this paper is beneficial
for the process of matching graph patterns. In some
cases queries using such indexes are extremely faster
than simple Cypher queries. The paper aims to
introduce the topic of indexing graph patterns and
provides one of possible ways how to speed up the
process of matching graph patterns within a GDB.
ACKNOWLEDGEMENTS
This work was supported by the Charles University
project Q48.
REFERENCES
Aggarwal, C. C., Wang, H., 2010. Managing and Mining
Graph Data. Springer.
Goldenberg, A., Zheng, A.X., and Fienberg, S.E., Airoldi,
E.M., 2009. A Survey of Statistical Network Models.
Foundations and Trends in Machine Learning 2(2),
129-233.
Mpinda, S.A.T., Ferreira, L.C., Ribeiro, M.X., and Santos,
M.T.P. 2015. Evaluation of Graph Databases
Performance through Indexing Techniques.
International Journal of Artificial Intelligence &
Applications (IJAIA) 6(5) 87-98.
O'Neil, P.E., 1992. The SB-tree: An Index-Sequential
Structure for High-Performance Sequential Access.
Informatica 29, 241-265.
Pokorný, J., 2015. Graph Databases: Their Power and
Limitations. In CISIM 2015, Proc. of 14th Int. Conf.
on Computer Information Systems and Industrial
Management Applications, K. Saeed and W. Homenda
(Eds.), LNCS 9339, p. 58-69. Springer.
Pokorny, J., Snášel, V., 2016. Big Graph Storage,
Processing and Visualization. Chapter 12 in: Graph-
Based Social Media Analysis. Chapman and
Hall/CRC, I. Pitas (Ed.), 391 – 416.
Ramba, J., 2015. Indexing graph structures in graph
database machine Neo4j II. Master’s thesis, Czech
Technical University in Prague, Faculty of
Information technology, (in Czech).
Robinson, I., Webber, J., and Eifrém, E., 2013. Graph
Databases. O’Reilly Media.
Sakr, Sh., Al-Naymat, G., 2010. Graph indexing and
querying: A review. International Journal of Web
Information Systems 6(2):101-120.
Srinivasa, S., 2012. Data, Storage and Index Models for
Graph Databases. Chapter in: Graph Data
Management: Techniques and Applications, ed. Sherif
Sakr and Eric Pardede, 47-70.
Tivari, S., 2015. Professional NoSQL. Wiley/Wrox.
Troup, M.: Indexing of patterns in graph DB engine Neo4j
I. Master’s thesis, Czech Technical University in
Prague, Faculty of Information technology. Available
at:https://dspace.cvut.cz/bitstream/handle/10467/6506
1/F8-DP-2015-Troup-Martin-
thesis.pdf?sequence=1&isAllowed=y
Ullmann, J.R., 1976. An algorithm for subgraph
isomorphism. J. ACM, 23(1), 31-42.
Yan, X., Yu, P.S., and Han, J. 2004. Graph Indexing: A
Frequent Structure-based Approach. In SIGMOD
Conference, ACM, pages 335-346.
Yan, X., Han, J., 2010. Graph Indexing. Chapter 5 in
Managing and Mining Graph Data, Advances in
Database Systems 40, C.C. Aggarwal and H. Wang
(eds.), Springer.
Yuan, D., Mitra, P. 2013. Lindex: a lattice-based index for
graph databases. The VLDB Journal, 22, 229–252.
Zhao, P., Han, J. 2010. On graph query optimization in
large networks. VLDB Endowment, 3(1-2), 340–351.
Zhu, L., Ng, W.K., Cheng, J., 2011. Structure and attribute
index for approximate graph matching in large graphs.
Inf. Syst. 36(6), 958-972.
Indexing Patterns in Graph Databases
321