Draft:AgensGraph
{{AFC submission|d|nn|u=Umarkayani|ns=118|decliner=Randompersonediting|declinets=20250323091747|ts=20250317054027}}
{{Short description|PostgreSQL based Graph database}}
{{Draft topics|computing}}
{{AfC topic|stem}}
{{Paid contributions|date=March 2025}}
{{Draft article}}
{{Infobox software
| name = AgensGraph
| caption = AgensGraph Logo, updated February 2025
| logo=Logo agensgraph 300.png
| logo caption=Powerful Multi-Model Graph Database
| developer = Bitnine Global Inc.
| released = {{Start date and age|2017|01|16|br=yes|df=yes}}
| latest release version = 2.14.1
| repo = {{URL|https://github.com/bitnine-oss/agensgraph}}
| programming language = C
| operating system = Cross-platform
| genre = Graph database
| license = Apache License 2.0
| website = {{URL|https://bitnine.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 {{cite web |url= https://www.postgresql.org/download/products/8/ | title= Software Catalogue - PostgreSQL-derived servers |date= 2025-02-18 | access-date=2025-02-18}} {{cite web |url= https://wiki.postgresql.org/wiki/AgensGraph | title= AgensGraph - PostgreSQL wiki |date= 2025-02-18 | access-date=2025-02-18}} 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.
From 2017 onwards, AgensGraph community has consistently released new versions with enhancements. 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
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.
- ACID transactions guarantee data reliability.
Storage and Data Structure
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.{{cite journal |last1=Bimonte |first1=Sandro |last2=Gallinucci |first2=Enrico |last3=Marcel |first3=Patrick |last4=Rizzi |first4=Stefano |title=Logical design of multi-model data warehouses |journal=Knowledge and Information Systems |date=1 March 2023 |volume=65 |issue=3 |pages=1067–1103 |doi=10.1007/s10115-022-01788-0}} 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.{{cite journal |last1=Angles |first1=Renzo |last2=Bonifati |first2=Angela |last3=Dumbrava |first3=Stefania |last4=Fletcher |first4=George |last5=Green |first5=Alastair |last6=Hidders |first6=Jan |last7=Li |first7=Bei |last8=Libkin |first8=Leonid |last9=Marsault |first9=Victor |last10=Martens |first10=Wim |last11=Murlak |first11=Filip |last12=Plantikow |first12=Stefan |last13=Savkovic |first13=Ognjen |last14=Schmidt |first14=Michael |last15=Sequeda |first15=Juan |last16=Staworko |first16=Slawek |last17=Tomaszuk |first17=Dominik |last18=Voigt |first18=Hannes |last19=Vrgoc |first19=Domagoj |last20=Wu |first20=Mingxi |last21=Zivkovic |first21=Dusan |title=PG-Schema: Schemas for Property Graphs |journal=Proc. ACM Manag. Data |date=20 June 2023 |volume=1 |issue=2 |pages=198:1–198:25 |doi=10.1145/3589778}}
Query Syntax
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.
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. 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{{cite web |title=ISO/IEC 39075:2024 |url=https://www.iso.org/standard/76120.html |website=ISO |access-date=17 March 2025 |language=en}} and SQL/PGQ {{cite web |title=ISO/IEC 9075-16:2023 |url=https://www.iso.org/standard/79473.html |website=ISO |access-date=17 March 2025 |language=en}} (Published in 2023 and 2024 respectively) support hybrid query syntax which combines graph and relational model.
Performance
In term of transaction processing, complex aggregate queries and data import, AgensGraph is 3x to 25x faster than ArangoDB and OrientDB.{{cite journal |last1=Zhang |first1=Chao |last2=Lu |first2=Jiaheng |title=Holistic evaluation in multi-model databases benchmarking |journal=Distributed and Parallel Databases |date=1 March 2021 |volume=39 |issue=1 |pages=1–33 |doi=10.1007/s10619-019-07279-6 |url=https://link.springer.com/article/10.1007/s10619-019-07279-6 |access-date=7 March 2025 |language=en |issn=1573-7578}}
Because AgensGraph is derived from PostgreSQL, its performance can be improved with PostgreSQL performance recommendation {{cite web |title=Chapter 14. Performance Tips |url=https://www.postgresql.org/docs/current/performance-tips.html |website=PostgreSQL Documentation |access-date=7 March 2025 |language=en |date=20 February 2025}} and using Graph Property Index.
Release history
class="wikitable mw-collapsible" |
+ Release history |
scope="col" | Release
! scope="col" | Latest minor version ! scope="col" | Latest release ! scope="col" | End of |
---|
scope="row" | 1.0
| style=white-space:nowrap | 2017-01-16 | {{Version |o |1.0.0 |style=text-align:center; white-space:nowrap}} | {{NA}} | 2020-01-16 |
scope="row" | 1.1
| style=white-space:nowrap | 2017-03-16 | {{Version |o |1.1.0 |style=text-align:center; white-space:nowrap}} | {{NA}} | 2021-11-11 |
scope="row" | 1.2
| style=white-space:nowrap | 2017-08-22 | {{Version |o |1.2.1 |style=text-align:center; white-space:nowrap}} | 2018-08-21 | 2021-11-11 |
scope="row" | 1.3
| style=white-space:nowrap | 2017-12-14 | {{Version |o |1.3.2 |style=text-align:center; white-space:nowrap}} | 2018-09-06 | 2022-11-10 |
scope="row" | 2.0
| style=white-space:nowrap | 2018-09-18 | {{Version |o |2.0.0 |style=text-align:center; white-space:nowrap}} | {{NA}} | 2022-11-10 |
scope="row" | 2.1
| style=white-space:nowrap | 2019-01-17 | {{Version |o |2.1.3 |style=text-align:center; white-space:nowrap}} | 2020-01-14 | 2022-11-10 |
scope="row" | 2.5
| style=white-space:nowrap | 2021-10-06 | {{Version |o |2.5.0 |style=text-align:center; white-space:nowrap}} | {{NA}} | 2023-11-09 |
scope="row" | 2.12
| style=white-space:nowrap | 2022-01-08 | {{Version |o |2.12.1 |style=text-align:center; white-space:nowrap}} | 2023-01-11 | 2024-11-21 |
scope="row" | 2.13
| style=white-space:nowrap | 2022-11-10 | {{Version |co |2.13.1 |style=text-align:center; white-space:nowrap}} | 2023-01-11 | 2025-11-13 |
scope="row" | 2.14
| style=white-space:nowrap | 2025-01-16 | {{Version |co |2.14.1 |style=text-align:center; white-space:nowrap}} | {{NA}} | 2026-11-12 |
scope="row" | 2.15
| style=white-space:nowrap | 2025-04-04 | {{Version |c |2.15.0 |style=text-align:center; white-space:nowrap}} | {{NA}} | 2027-11-11 |
{{Version |l |show=111111}}
Related project
Because of Graph database popularity, An AgensGraph extension was proposed to The Apache Software Foundation.{{cite web |url= https://cwiki.apache.org/confluence/display/INCUBATOR/AGEProposal | title= AGEProposal - INCUBATOR - Apache Software Foundation | access-date=2025-02-18 | website=apache.org}} Proposal was accepted and moved to incubation in April 2020.
After two more years of development in June 2022 Apache® announced Apache AGE {{TM}} as Top Level Project as graph extension for PostgreSQL database.{{cite web |url= https://news.apache.org/foundation/entry/the-apache-software-foundation-announces83 | title= The Apache Software Foundation Announces Apache® AGE™ as a Top-Level Project | date= 8 June 2022 | access-date=2025-02-18}}{{cite web |url= https://age.apache.org/ | title= Apache AGE Graph Database - Apache AGE | access-date=2025-02-18| website=apache.org}}
See also
{{Portal|Free and open-source software|Computer programming}}
- Graph Query Language (GQL)
- Cypher (query language)
References
External links
- {{Official website|https://bitnine.net/}}
- {{GitHub|bitnine-oss/agensgraph}}
{{Draft categories|
:Category:Free database management systems
:Category:Free software programmed in C
}}
{{Drafts moved from mainspace|date=March 2025}}