Jump to content

Draft:AgensGraph

From Wikipedia, the free encyclopedia
AgensGraph
Developer(s)Bitnine Global Inc.
Initial release16 January 2017;
8 years ago
 (2017-01-16)[2]
Stable release
2.14.1
Repositorygithub.com/bitnine-oss/agensgraph
Written inC
Operating systemCross-platform
TypeGraph database
LicenseApache License 2.0
Websitebitnine.net

AgensGraph is an open-source graph database developed by Bitnine Global Inc., a South Korean company specializing in graph database solutions. AgensGraph is PostgreSQL-derived [3] [4] database. It combines RDB and GDB features and support all the extension which are supported by PostgreSQL.

Version 1.0.0 was released in January 2017.[2]

From 2017 onwards, AgensGraph community has consistently released new versions with enhancements.[5] These updates included performance improvements, new features (like query language extensions), and better integration with other tools.

Latest community version of AgensGraph is v2.14.1 which was released in January 2025.

AgensGraph Community Edition is released under the Apache 2 License. The Enterprise Edition requires a commercial license.

Features

[edit]

AgensGraph uniquely blends SQL and Cypher queries, enabling seamless interaction with both relational and graph data in a single query.

  • It supports a multi-model approach, handling property graphs, relational data, and JSON documents, simplifying diverse data management.
  • Hierarchical label organization via "Label Inheritance" structures large graph datasets efficiently.
  • Property indexing on vertices and edges ensures fast queries, while constraints maintain data integrity.
  • It supports relational[6] and graph data triggers.[7]
  • ACID transactions guarantee data reliability.
  • It support SQL syntax, Cypher syntax and also hybrid of both queries.[8]

Storage and Data Structure

[edit]

AgensGraph's fundamental graph components are nodes, edges that establish connections between nodes, and the properties that characterize each node and edge.

AgensGraph utilizes relational tables to persist graph data.[9] Each node and edge type is represented by a dedicated table. Dynamic node properties are handled through JSON object storage, and B-tree indexes are automatically generated to optimize query performance.[10]

Query Syntax

[edit]

AgensGraph boasts comprehensive support for two powerful query languages: SQL and Cypher. This dual-language capability allows users to leverage the strengths of both relational and graph database paradigms.

For relational data manipulation, AgensGraph adheres to standard SQL syntax, ensuring compatibility with existing applications and tools. When navigating complex relationships and patterns within graph data, users can seamlessly switch to Cypher, a declarative graph query language designed for intuitive and efficient traversal.

SELECT p.first_name, p.last_name, ct.name
FROM person p, city c
WHERE nationality(c.name) = 'EU'

AgensGraph's Cypher implementation aligns closely with the openCypher specification, facilitating interoperability and ease of use for developers familiar with other graph databases.[11]

MATCH (p:Person)-[:LIVES_IN]->(c:City), (p:Person)-[:NATIONAL_OF]->(EUCountry)
RETURN p.first_name, p.last_name, c.name, c.state

In AgensGraph you can also write hybrid queries to increase performance, better data integration.[8] There are two ways to write hybrid queries.

1. Cypher in SQL

SELECT p.first_name, p.last_name, ct.name
FROM city c,(MATCH (p:Person) RETURN p) as person, 
WHERE nationality(c.name) = 'EU'

2. SQL in Cypher

MATCH (p:Person)
WHERE p.city IN (SELECT city FROM countries WHERE nationality(city) = 'EU')
RETURN properties(p) AS p;

Both ISO standards GQL[12] and SQL/PGQ [13] (Published in 2023 and 2024 respectively) support hybrid query syntax which combines graph and relational model.[14]

Performance

[edit]

In term of transaction processing, complex aggregate queries and data import, AgensGraph is 3x to 25x faster than ArangoDB and OrientDB.[15]

Because AgensGraph is derived from PostgreSQL, its performance can be improved with PostgreSQL performance recommendation [16] and using Graph Property Index.

Release history

[edit]
Release history
Release First release[5] Latest minor version Latest release End of
Support Date
1.0 2017-01-16 Old version, not maintained: 1.0.0 2020-01-16
1.1 2017-03-16 Old version, not maintained: 1.1.0 2021-11-11
1.2 2017-08-22 Old version, not maintained: 1.2.1 2018-08-21 2021-11-11
1.3 2017-12-14 Old version, not maintained: 1.3.2 2018-09-06 2022-11-10
2.0 2018-09-18 Old version, not maintained: 2.0.0 2022-11-10
2.1 2019-01-17 Old version, not maintained: 2.1.3 2020-01-14 2022-11-10
2.5 2021-10-06 Old version, not maintained: 2.5.0 2023-11-09
2.12 2022-01-08 Old version, not maintained: 2.12.1 2023-01-11 2024-11-21
2.13 2022-11-10 Old version, still maintained: 2.13.1 2023-01-11 2025-11-13
2.14 2025-01-16 Latest version: 2.14.1 2026-11-12
Legend:
Old version, not maintained
Old version, still maintained
Latest version
Latest preview version
Future version
[edit]

Because of Graph database popularity, An AgensGraph extension was proposed to The Apache Software Foundation.[17] Proposal was accepted and moved to incubation in April 2020.

After two more years of development in June 2022 Apache® announced Apache AGE as Top Level Project as graph extension for PostgreSQL database.[18][19]

See also

[edit]

References

[edit]
  1. ^ "AgensGraph, a transactional graph database based on PostgreSQL". GitHub. Retrieved 2025-03-07.
  2. ^ a b "Release Announcement AgensGraph 1.0.0". January 16, 2017. Retrieved 2025-02-18.
  3. ^ "Software Catalogue - PostgreSQL-derived servers". 2025-02-18. Retrieved 2025-02-18.
  4. ^ "AgensGraph - PostgreSQL wiki". 2025-02-18. Retrieved 2025-02-18.
  5. ^ a b "Releases · bitnine-oss/agensgraph". github.com. January 26, 2022. Retrieved 2025-02-18.
  6. ^ Ceri, Stefano; Bernasconi, Anna; Gagliardi, Alessia; Martinenghi, Davide; Bellomarini, Luigi; Magnanimi, Davide (9 June 2024). "PG-Triggers: Triggers for Property Graphs". Companion of the 2024 International Conference on Management of Data. pp. 373–385. arXiv:2307.07354. doi:10.1145/3626246.3653386. ISBN 979-8-4007-0422-2.
  7. ^ "Release AgensGraph v2.12.1 · bitnine-oss/agensgraph". GitHub. Retrieved 10 March 2025.
  8. ^ a b Guo, Qingsong; Zhang, Chao; Zhang, Shuxun; Lu, Jiaheng (1 March 2024). "Multi-model query languages: taming the variety of big data". Distributed and Parallel Databases. 42 (1): 31–71. doi:10.1007/s10619-023-07433-1. ISSN 1573-7578. Retrieved 10 March 2025.
  9. ^ Bimonte, Sandro; Gallinucci, Enrico; Marcel, Patrick; Rizzi, Stefano (1 March 2023). "Logical design of multi-model data warehouses". Knowledge and Information Systems. 65 (3): 1067–1103. doi:10.1007/s10115-022-01788-0.
  10. ^ Angles, Renzo; Bonifati, Angela; Dumbrava, Stefania; Fletcher, George; Green, Alastair; Hidders, Jan; Li, Bei; Libkin, Leonid; Marsault, Victor; Martens, Wim; Murlak, Filip; Plantikow, Stefan; Savkovic, Ognjen; Schmidt, Michael; Sequeda, Juan; Staworko, Slawek; Tomaszuk, Dominik; Voigt, Hannes; Vrgoc, Domagoj; Wu, Mingxi; Zivkovic, Dusan (20 June 2023). "PG-Schema: Schemas for Property Graphs". Proc. ACM Manag. Data. 1 (2): 198:1–198:25. doi:10.1145/3589778.
  11. ^ "Current Projects · openCypher". opencypher.org. Retrieved 17 March 2025.
  12. ^ "ISO/IEC 39075:2024". ISO. Retrieved 17 March 2025.
  13. ^ "ISO/IEC 9075-16:2023". ISO. Retrieved 17 March 2025.
  14. ^ Deutsch, Alin; Francis, Nadime; Green, Alastair; Hare, Keith; Li, Bei; Libkin, Leonid; Lindaaker, Tobias; Marsault, Victor; Martens, Wim; Michels, Jan; Murlak, Filip; Plantikow, Stefan; Selmer, Petra; van Rest, Oskar; Voigt, Hannes; Vrgoč, Domagoj; Wu, Mingxi; Zemke, Fred (11 June 2022). "Graph Pattern Matching in GQL and SQL/PGQ". Proceedings of the 2022 International Conference on Management of Data (PDF). pp. 2246–2258. doi:10.1145/3514221.3526057. ISBN 978-1-4503-9249-5.
  15. ^ Zhang, Chao; Lu, Jiaheng (1 March 2021). "Holistic evaluation in multi-model databases benchmarking". Distributed and Parallel Databases. 39 (1): 1–33. doi:10.1007/s10619-019-07279-6. ISSN 1573-7578. Retrieved 7 March 2025.
  16. ^ "Chapter 14. Performance Tips". PostgreSQL Documentation. 20 February 2025. Retrieved 7 March 2025.
  17. ^ "AGEProposal - INCUBATOR - Apache Software Foundation". apache.org. Retrieved 2025-02-18.
  18. ^ "The Apache Software Foundation Announces Apache® AGE™ as a Top-Level Project". 8 June 2022. Retrieved 2025-02-18.
  19. ^ "Apache AGE Graph Database - Apache AGE". apache.org. Retrieved 2025-02-18.
[edit]