Releases: ArcadeData/arcadedb
26.2.1
@ -0,0 +1,189 @@
ArcadeDB 26.2.1 Release Notes
We're excited to announce ArcadeDB 26.2.1, a massive release that brings 484 commits and 200+ closed issues with significant advancements across the platform. This release focuses on hardening the native OpenCypher engine with official TCK compliance, introducing the Bolt protocol for Neo4j driver compatibility, a new plugin architecture, a powerful backup scheduler, a new SQL parser (ANTLR) and major performance optimizations.
🎯 Major New Features
Bolt Protocol (Neo4j Driver Compatibility)
ArcadeDB now supports the Neo4j Bolt wire protocol (#3250), allowing applications to connect using standard Neo4j drivers. This opens ArcadeDB to the vast ecosystem of Neo4j-compatible tools and libraries:
- First version of the Bolt wire protocol implementation
- Compatible with the official Neo4j Java driver
- Correct protocol version encoding and handshake negotiation (#3413)
- Proper field name preservation for single-element Cypher RETURN over Bolt (#3286)
Cypher LOAD CSV
Implemented the OpenCypher LOAD CSV clause (#3450), enabling bulk data import from CSV files directly in Cypher queries, including context functions file() and linenumber().
New SQL Parser (ANTLR4)
Replaced the legacy JavaCC-based SQL parser with a modern ANTLR4 implementation (#3195), providing:
- More robust and maintainable parsing infrastructure
- Better error messages and diagnostics
- Foundation for future SQL language extensions
Plugin Architecture with Isolated Class Loaders
Introduced a new modular plugin architecture (#3260) that supports isolated class loaders, enabling clean separation of plugin code from the core engine, dynamic loading/unloading at runtime, and reduced risk of dependency conflicts.
Backup Scheduler Plugin
A new backup scheduler plugin (#3263) allows automated, scheduled database backups with security validation — a highly requested feature for production deployments.
SQL Triggers
Added support for SQL triggers (#3222) that can execute SQL, JavaScript, and Java code, enabling powerful event-driven automation within the database.
HTTP Session Management
Introduced HTTP session support with token-based authentication, including configurable session expiration, new /login and /logout APIs, and a list of active connections in Studio.
Database Transient Variables via Redis
Added support for transient database global variables accessible through the Redis wire protocol (#3248), and Redis can now be used as a query language.
🔐 OpenCypher Engine Hardening
This release brings massive improvements to the native OpenCypher engine, achieving the compliance with the OpenCypher TCK (Technology Compatibility Kit)**:
TCK Compliance
- Integrated the official OpenCypher TCK test suite (#3358)
- Multiple rounds of TCK-driven fixes (#3362, #3363, #3366, #3367, #3368)
- Completed 100% temporal OpenCypher TCK compliance (#3369)
New Cypher Functions
- Added many new Cypher functions (#3275)
- Math functions:
cosh(),sinh(),tanh(),cot(),coth(),pi(),e() - Utility functions:
isempty(),isnan(),randomuuid(),allReduce(),collflatten() - Spatial functions:
distance(point1, point2)anddistance(point1, point2, unit) - User-defined functions in Cypher language with cross-language invocation
- Mega refactor consolidating all functions under
com.arcadedb.functionwith merged SQL/Cypher function framework
Cypher Bug Fixes
- MERGE: Label-only patterns now correctly find existing nodes instead of always creating new ones (#3255)
- Relationship direction: Relations created with MERGE and CREATE now respect arrow direction (#3353)
- Label filtering: Fixed label filtering in MATCH relationship patterns (#3252)
- RETURN clause: Single element results are now correctly unwrapped (#3268)
- head(collect()): Fixed returning null in WITH clauses (#3309, #3310)
- Backtick handling: Fixed backtick stripping in map literal keys (#3322)
- PROFILE/EXPLAIN: Fixed corrupting returned values (#3406)
- CREATE path variables: Fixed
CreateStep.createPath()not buildingTraversalPathobjects for path variables - Serialization: Fixed result field mapping for non-Studio serializers (#3392)
- Fixed arithmetic operations, polymorphism handling, multiple parenthesized expressions, FOREACH, UNWIND with nested lists, list comprehension, pattern comprehension, zero-length paths, shortestPath, subquery, OPTIONAL MATCH with pattern predicates, and sort with null values
- Function fixes:
trim(),length(null),avg(),round()precision,stdev()/stdevp(),toBoolean()from integer,timestamp(),collect()on Studio
⚡ Performance Optimizations
Significant performance work across the OpenCypher engine and core:
- Batch CREATE: Implemented batch create in OpenCypher with configurable batch size (default 20K entries per transaction)
- Chunked streaming: Implemented chunked streaming with limit usage in ORDER BY
- Edge traversal: Skipped loading of edges when not necessary, loading connected vertices directly; inverted traversal optimization
- Aggregation: Optimized aggregation and GROUP BY when there is a LIMIT; optimized count of edges
- Count optimization: Improved performance for
count()in OpenCypher - Function caching: Cached function calls in OpenCypher for repeated invocations
- Graph algorithms: Dijkstra and A* now return list of RIDs instead of whole vertex objects; avoided unnecessary overhead
- Spatial: Optimized point insertion with a lightweight version; removed dynamic dependency with spatial4j for improved performance
- Index selection: Improved index selection; distinct is used to normalize avoiding cartesian product when possible
- Memory: Reduced allocation on common paths; using optimized
SingletonMapwhen possible; replacednew Random()withThreadLocalRandom.current() - Unsafe removal: Replaced usage of
sun.misc.UnsafewithVarHandlefor modern Java compatibility
🚀 Vector Index Enhancements
- Diagnostics logging: Added vector graph build diagnostics for better observability (#3305)
- Preload vectors API: New API to preload vectors for faster search
- OpenCypher integration: Fixed vector functions accessibility from OpenCypher queries
- Upgraded to jvector 4.0.0-rc.7
🔧 Improvements & Bug Fixes
Core Engine
- Concurrent multi-page record reads: Added automatic retry mechanism during concurrent modifications (#3396)
- CREATE INDEX: Now waits for any running async tasks before proceeding (#3408)
- Index edge removal: Fixed index remove edge for non-unique indexes
- SQL CREATE EDGE: Fixed argument expression resolution (#3323)
- SQL concatenation: Fixed second concatenation operator failing without parenthesis
- Full-text index improvements (#3221)
- Memory leak fix: Removed strong reference of
ThreadinDatabaseContext.CONTEXTS - Page isolation: Fixed page isolation bug with concurrent access
- Index rebuild: Fixed async rebuild while another rebuild is in progress
- Schema concurrency: Fixed concurrency issue with schema
- Export: Fixed database export
- Shapes support: Added support for shapes in SQL
- Truncate bucket: Implemented
TRUNCATE BUCKETcommand - JSON array in UPDATE: Supported JSON array in SQL UPDATE
- SQL buckets/page size: SQL now supports setting buckets and page size at type creation
- NULL index strategy: Return NULL when index null strategy is set to skip
- lookupByRID: Ensured it always returns a record or exception, never null
PostgreSQL Wire Protocol
- Fixed DATETIME serialization to use ISO 8601 format (#3245)
- Fixed PostgreSQL protocol issues with Node.js driver
gRPC
26.1.1
ArcadeDB 26.1.1 Release Notes
We're excited to announce ArcadeDB 26.1.1, a significant release that brings 92 closed issues and introduces major new capabilities to the platform. This release marks a milestone with the introduction of a native OpenCypher query engine and substantial improvements to our Vector indexing capabilities.
🎯 Major New Features
Native OpenCypher Query Engine
The highlight of this release is the complete native Cypher query engine implementation (#3123), delivering the most important features of the OpenCypher graph query language. This native implementation provides:
- Full Cypher query support directly in ArcadeDB
- Optimized execution without external dependencies
- Seamless integration with existing multi-model capabilities
- Enhanced graph traversal and pattern matching capabilities
Modular Distribution Builder
Introduced a new modular distribution builder (#3194) that allows users to create custom ArcadeDB distributions with only the modules they need, reducing deployment size and complexity.
🚀 LSM Vector Index Enhancements
This release brings significant improvements to our vector indexing capabilities:
- Hierarchy Flag Support: Added configurable hierarchy flag to LSM vector index configuration (#3130) for optimized index structures
- Eager Vector Graph Rebuild API: New API for eager vector graph rebuilding (#3146), providing better control over index maintenance
- Product Quantization (PQ) Improvements:
- Fixed PQ file path canonicalization (#3159)
- Automatic migration of legacy PQ files
- Enhanced file handling and reliability
- storeVectorsInGraph Consistency: Honor the
storeVectorsInGraphflag when writing vecgraph (#3145) - Improved Progress Logging: Enhanced graph build progress logging with fallback mechanisms and 2-second throttle (#3165) for better monitoring
- Chunk-size Warning Improvements: Ensure warnings display original values and maintain WAL settings (#3134)
🔧 Improvements & Bug Fixes
PostgreSQL Wire Protocol
- Fixed PostgreSQL type mapping (#3119) for improved compatibility
Studio Enhancements
- Upgraded to jQuery 4.0.0 (#3166) for modern browser support and security improvements
- Improved chart rendering tests and response handling (#3164)
- Fixed TypeError when importing JSON graph without settings property (#3100)
- Multiple UI library updates (ApexCharts, CodeMirror, pdfmake)
Core Engine
- Removed deprecated HNSW vector index support (#3095), consolidating on LSM-based implementation
- Updated Maven wrapper to version 3.9.12 (#3098)
Tools, Infrastructure & Build
- Fixed many issues on database importer (CSV, JSON and XML)
- Enhanced distribution builder with modular architecture
- Improved test coverage and reliability
- Code quality improvements and refactoring
📝 Full Changelog
Full Changelog: 25.12.1...26.1.1
Closed Issues: 92 issues resolved - see milestone 26.1.1 for details
25.12.1
ArcadeDB 25.12.1 Release Notes
We're excited to announce the release of ArcadeDB v25.12.1! This release includes significant bug fixes, new features, performance improvements, and dependency updates.
Highlights
Vector Search Enhancements
- Fixed critical vector quantization bug (#3052, #3053) - INT8 and BINARY vector quantization now works correctly across all dimensions
- New filtered vector search (#3071, #3072) - LSMVectorIndex now supports filtered searches for more precise queries
- Better vector type support (#3090) - Added support for
List<Float>in vector indexes - Improved compression (#2911) - Enhanced compression for LSM vector indexes
- Fixed HNSW graph persistence (#2916) - Ensures JVector HNSW graph file is properly closed and flushed to disk
SQL and Query Improvements
- Fixed IF statement execution (#2775) - SQL scripts with IF statements now execute correctly from console
- Fixed index creation with IF NOT EXISTS (#1819) - Console no longer errors when creating existing indexes with IF NOT EXISTS clause
- Custom function parameter binding (#3046, #3049) - Fixed parameter binding for SQL and JavaScript custom functions
- SQL method consistency (#2964, #2967) -
values()method now behaves consistently withkeys()method - CONTAINSANY index fix (#3051) - Fixed index usage for lists of embedded documents with CONTAINSANY
Transaction Management
- Revised transaction logic (#3074) - Improved transaction handling and consistency
- Fixed edge index invalidation (#3091) - Edge indexes now remain valid in edge-case scenarios
New Features
- Database size API (#3045) - Added new
database.getSize()API method - Version display enhancement (#2905) - Server log version number now displayed consistently
What's Changed
Bug Fixes
- Fix INT8 and BINARY vector quantization offset bug in LSMVectorIndex page loading by @Copilot in #3053
- fix: revert SQL grammar changes and disable deep level JSON insert tests by @robfrank in #2961
- #2915 fix: ensure Jvector HNSW graph file is closed and flushed to disk on database close by @robfrank in #2916
- fix: make values method behave like keys method by @gramian in #2967
- Fix custom function parameter binding for SQL and JavaScript functions by @Copilot in #3049
- fix CONTAINSANY index use for lists of embedded documents by @gramian in #3051
- fix: support List in vector index by @szekelyszabi in #3090
Features
- Show version number same as in server log by @gramian in #2905
- feat: added new
database.getSize()api by @lvca in #3045 - Add filtered vector search support to LSMVectorIndex by @Copilot in #3072
- add stars chart by @robfrank in #3084
Performance Improvements
Core Improvements
- Revised Tx Logic by @robfrank in #3074
- chore: refactor vector index tests and improve naming conventions by @robfrank in #2906
- test: add comprehensive tests for SQLMethodValues including document … by @robfrank in #3047
Dependency Updates
Build Tools & Infrastructure
- chore(deps): bump com.github.eirslett:frontend-maven-plugin from 1.15.4 to 2.0.0 by @dependabot[bot] in #3067
- chore(deps): bump io.github.ascopes:protobuf-maven-plugin from 4.0.3 to 4.1.1 by @dependabot[bot] in #2938
- chore(deps): bump io.github.ascopes:protobuf-maven-plugin from 4.1.1 to 4.1.2 by @dependabot[bot] in #3088
- chore: bump pre-commit hooks versions by @robfrank in #3050
Core Dependencies
- chore(deps): bump io.netty:netty-transport from 4.2.7.Final to 4.2.8.Final by @dependabot[bot] in #2934
- chore(deps): bump io.netty:netty-all from 4.2.7.Final to 4.2.8.Final by @dependabot[bot] in #2940
- chore(deps): bump io.netty:netty-transport from 4.2.8.Final to 4.2.9.Final by @dependabot[bot] in #3068
- chore(deps): bump io.netty:netty-all from 4.2.8.Final to 4.2.9.Final by @dependabot[bot] in #3064
- chore(deps): bump ch.qos.logback:logback-classic from 1.5.21 to 1.5.22 by @dependabot[bot] in #2935
- chore(deps): bump ch.qos.logback:logback-classic from 1.5.22 to 1.5.23 by @dependabot[bot] in #3081
- chore(deps): bump at.yawk.lz4:lz4-java from 1.10.1 to 1.10.2 by @dependabot[bot] in #3065
- chore(deps): bump protobuf-java.version from 4.33.1 to 4.33.2 by @dependabot[bot] in #2895
- chore(deps): bump com.google.api.grpc:proto-google-common-protos from 2.63.1 to 2.63.2 by @dependabot[bot] in #2939
- chore(deps): bump grpc.version from 1.77.0 to 1.78.0 by @dependabot[bot] in #3079
Monitoring & Testing
- chore(deps): bump io.micrometer:micrometer-registry-prometheus from 1.16.0 to 1.16.1 by @dependabot[bot] in #2937
- chore(deps-dev): bump io.micrometer:micrometer-core from 1.16.0 to 1.16.1 by @dependabot[bot] in #2932
- chore(deps-dev): bump testcontainers from 11.9.0 to 11.10.0 in /e2e-studio by @dependabot[bot] in #2943
- chore(deps-dev): bump testcontainers from 11.9.0 to 11.10.0 in /e2e-js by @dependabot[bot] in #2942
- chore(deps): bump testcontainers.version from 2.0.2 to 2.0.3 by @dependabot[bot] in #3062
- chore(deps-dev): bump testcontainers from 11.10.0 to 11.11.0 in /e2e-studio by @dependabot[bot] in #3083
- chore(deps-dev): bump testcontainers from 11.10.0 to 11.11.0 in /e2e-js by @dependabot[bot] in #3082
- chore(deps-dev): bump org.mockito:mockito-core from 5.20.0 to 5.21.0 by @dependabot[bot] in #2929
- chore(deps-dev): bump org.apache.tomcat:tomcat-jdbc from 11.0.14 to 11.0.15 by @dependabot[bot] in #2941
- chore(deps-dev): bump io.swagger.parser.v3:swagger-parser from 2.1.36 to 2.1.37 by @dependabot[bot] in #3066
- chore(deps-dev): bump org.assertj:assertj-db from 3.0.0 to 3.0.1 by @dependabot[bot] in #3080
GitHub Actions
- chore(deps): bump actions/cache from 4.3.0 to 5.0.1 by @dependabot[bot] in #2933
- chore(deps): bump zgosalvez/github-actions-ensure-sha-pinned-actions from 4.0.0 to 4.0.1 by @dependabot[bot] in #2928
- chore(deps): bump actions/download-artifact from 6.0.0 to 7.0.0 by @dependabot[bot] in #2931
- chore(deps): bump actions/upload-artifact from 5.0.0 to 6.0.0 by @dependabot[bot] in #2930
- chore(deps): bump github/codeql-action from 4.31.7 to 4.31.8 by @dependabot[bot] in #2936
- chore(deps): bump github/codeql-action from 4.31.8 to 4.31.9 by @dependabot[bot] in #3063
- chore(deps): bump dorny/test-reporter from 2.3.0 to 2.5.0 by @dependabot[bot] in #3087
- chore(deps): bump docker/setup-buildx-action from 3.11.1 to 3.12.0 by @dependabot[bot] in #3061
Studio (Frontend) Dependencies
- chore(studio-deps)(deps): bump sweetalert2 from 11.26.4 to 11.26.10 in /studio in the security-critical group by @dependabot[bot] in #2919
- chore(studio-deps)(deps): bump sweetalert2 from 11.26.10 to 11.26.12 in /studio in the security-critical group by @dependabot[bot] in #3054
- chore(studio-deps)(deps): bump the security-critical group in /studio with 5 updates by @dependabot[bot] in #3076
- chore(studio-deps)(deps): bump swagger-ui-dist from 5.30.3 to 5.31.0 in /studio by @dependabot[bot] in #2923
- chore(studio-deps)(deps): bump pdfmake from 0.2.20 to 0.2.21 in /studio by @dependabot[bot] in #3078
- chore(studio-deps)(deps): bump xmldoc from 2.0.2 to 2.0.3 in /studio by @dependabot[bot] in #2926
- chore(studio-deps-dev)(deps-dev): bump terser-webpack-plugin from 5.3.15 to 5.3.16 in /studio in the build-tools group by @dependabot[bot] in #2920
- chore(studio-deps-dev)(dep...
25.11.1
ArcadeDB v25.11.1
This release introduces significant improvements to vector search capabilities, alongside critical fixes for SQL querying, indexing, and gRPC protocol handling.
🚀 Highlights
New JVector Integration
We have implemented a new LSMVector index using the JVector open-source engine. This provides a substantial performance boost and better state-of-the-art capabilities for vector search operations within ArcadeDB.
✨ New Features & Improvements
SQL & Indexing
- Embedded List Indexing: Added support for indexing properties contained in embedded documents (or maps) inside lists using the
BY ITEMsyntax. (#2802, #2803) - Enhanced Query Optimization: Improved index awareness for
CONTAINS,IN, andCONTAINSALLoperators. (#2786) - Delete Operations: Enhanced
DELETEfunctionality to better handle multipleORconditions. (#2760, #2695) - Progress Logging: Added progress logging to the
LSMTreeIndexbuild phase to improve visibility during large index operations. (#2772, #2763)
gRPC & API
- SQL Aliases: Fixed issue where SQL aliases were missing in gRPC
ResultSetserialization. (#2858, #2854, #2903) - Command Serialization: Improved reliability of gRPC command result serialization. (#2904)
- CLI Options: Updated and refined Command Line Interface options. (#2799)
Core & Internal
- Prometheus Plugin: Added shading to the Prometheus plugin to prevent classpath conflicts. (#2779, #2780)
- Test Refactoring: Major refactoring of test utilities and module dependencies for better maintainability. (#2885, #2881)
🐛 Bug Fixes
Query Engine
- Filtering Fix: Resolved a critical bug where filtering with
WHEREclauses returned wrong results in specific scenarios. (#2814, #2815) - Unwind/Merge: Hotfix for
UNWINDandMERGEoperations, including a fix for broken iterators. (#2856, #2861) - Binary Comparator: Fixed
ClassCastExceptioninBinaryComparatorforTYPE_BINARYcomparisons. (#2762, #1534) - Duplicate Documents: Fixed an issue where using the Greater Than (
>) operator with indexes returned duplicate documents. (#2328)
Indexing
- NOTUNIQUE Indexes: Fixed an issue where creating a
NOTUNIQUEstring index on a large dataset broke the=operator. (#2757, #2859) - LSMTree Compaction: Addressed an issue where compaction created duplicate timestamped indexes that were not cleaned up. (#2701)
- Console Creation: Fixed error when attempting to create an index that exists even when using the
IF NOT EXISTSclause. (#1819)
Studio & Tools
- Mongo Wrapper: Fixed failures when running Mongo queries inside Studio. (#2168)
- CSV Importer: Fixed the
createdDocumentscounter not incrementing during imports. (#2700) - REST API: Addressed idempotency issues where queries worked in Studio but failed via REST. (#1589)
🛠 Dependency Updates
Significant updates to core dependencies to ensure security and performance:
- Lucene: Bumped to version
10.3.2. - gRPC: Bumped to version
1.77.0. - LZ4-Java: Bumped to version
1.10.1. - Various updates to Spring, Micrometer, Testcontainers, and Studio UI dependencies.
❤️ New Contributors
- @mindreframer made their first contribution in PR #2815. Welcome to the project!
Full Changelog: 25.10.1...25.11.1
25.10.1
We're excited to announce the release of ArcadeDB 25.10.1!
This version introduces a major new feature: official Python Bindings for embedded use. It also delivers significant query and indexing enhancements, particularly for LIST data types, along with a solid round of bug fixes to improve stability, SQL/Cypher compatibility, and core performance.
🚀 New Features
- Official Python Bindings: You can now run ArcadeDB in an embedded mode directly within your Python applications! This opens up new possibilities for high-performance, in-process graph and document data management for Python developers. Thanks @tae898!
- LIST Indexing by ITEM: Implements indexing for
LISTdata types byITEM. This drastically improves query performance and capabilities when filtering or looking up records based on the contents of a list.
🐛 Bug Fixes
SQL, Cypher & Drivers
- SQL: Corrects the SQL parser to properly handle nested projections within array concatenation expressions.
- PostgreSQL Driver: Fixes an offset logic issue in Cypher parameters for the
psycopgdriver that could cause parameters to be incorrectly treated asnull.
Indexing
- Index Compaction: Resolves an "Invalid Position" error that could occur during the compaction of large, non-unique indexes.
- Edge Index: Fixes a bug where
IF NOT EXISTSwas not working correctly for edge indexes defined on[@out, @in]properties.
Server & Core
- Shell Script: Fixes an issue in the server bootup script (
server.sh) that caused Java parameters to be duplicated. - Backup/Restore: Corrects several logging entries during database restore operations for better clarity.
- gRPC: Adds a missing Maven variable to the gRPC
pom.xmlto resolve build issues. - MongoDB: Includes a temporary fix for MongoDB commands.
⚙️ Enhancements & Maintenance
- Testing: Improved E2E test stability by removing flaky checks and fixing failing integration tests. ([#2646](#2646), [#2651](#2651))
- Code Quality: Removed fully qualified names in the codebase to improve readability. ([#2624](#2624))
- CI/CD: Fixed the release workflow to correctly update the Studio
package.jsonversion. ([#2688](#2688)) - Build: Bumped the Maven wrapper to 3.3.4. ([#2689](#2689))
- Housekeeping: Added
.venvand.vscodeto.gitignore. ([#2660](#2660))
📦 Dependency Updates
This release includes numerous dependency updates to keep the platform secure and up-to-date.
- Core: Upgraded major components including GraalVM (25.0.1), Lucene (10.3.1), gRPC (1.76.0), Protobuf (4.33.0), Swagger (2.2.40), Jackson (2.20.1), and Netty (4.2.7.Final).
- Studio & E2E: Updated Playwright (1.56.1), TypeScript (5.9.3), Testcontainers (11.8.0), and many other Studio UI and E2E testing packages.
- Build: Upgraded several GitHub Actions, including
setup-java(5.0.0),setup-node(6.0.0),upload-artifact(5.0.0),download-artifact(6.0.0), andcodeql-action.
🎉 New Contributors
A warm welcome to our new contributor!
Full Changelog: 25.9.1...25.10.1
25.9.1
ArcadeDB Release v25.9.1
Release Date: October 9, 2025
We're excited to announce the release of ArcadeDB version 25.9.1! This is a significant update that introduces powerful new features for developers, including experimental gRPC protocol support and an OpenAPI specification endpoint for easier API integration. This release also delivers crucial fixes for data integrity, high availability, and overall stability, addressing long-standing issues with indexing and scripting.
🚀 Highlights
- gRPC Protocol Support: A new, high-performance gRPC protocol has been added as an alternative to the existing binary protocol, enabling modern, efficient communication with the database.
- OpenAPI (Swagger) Endpoint: The HTTP server now exposes an OpenAPI specification at
/api/v1/openapi.json, making it easier than ever to explore, test, and integrate with ArcadeDB's API. - Critical Data Integrity Fixes: Unique index constraints are now correctly enforced during
UPDATEoperations, and a key bug causing indexes to return incorrect results withORDER BYhas been resolved. - High Availability Improvement: A stability issue has been fixed where an empty replica would fail during a full resync, improving the robustness of HA clusters.
✨ New Features
- gRPC Protocol (#2499, #2462): Introduced the initial implementation of the gRPC protocol for server communication. Load testing infrastructure has also been updated to support gRPC.
- OpenAPI Specification Endpoint (#2583): Added a new handler to serve an OpenAPI 3.0 specification, improving API discoverability and client generation.
- Enhanced Login Process (#2543): The user login flow has been improved with more robust error handling and clearer user feedback.
🐛 Bug Fixes & Improvements
Querying & Indexing
- SQL Index with ORDER BY (#1760): Corrected a critical issue where an index could return too many entries when used with an
ORDER BYclause, ensuring query accuracy. - Unique Constraint on UPDATE (#2590, #2591): Fixed a major bug where unique constraints were not being checked during
UPDATEoperations. - Postgres (psycopg) Driver Compatibility (#2606, #2559): Addressed an issue with handling array parameters from psycopg drivers in Cypher queries.
Scripting (Javascript Functions)
- Logical AND Operator (#2161): Resolved an error that prevented the logical AND (
&&) operator from being used correctly in Javascript functions. - Object Serialization (#2165): Fixed an object serialization error that could occur in custom Javascript functions.
Core & Server
- HTTP API Consistency (#2523, #2398): Made HTTP API responses more consistent across different endpoints.
- JSON Serialization of Empty Arrays (#2550, #2497): Resolved a serialization issue where
INSERTstatements with empty arrays in the JSON content would fail. - Consistent Exception Propagation (#2562, #2560): Ensured consistent exception handling in ImmutableDocument during lazy loading operations.
- HTML Entity Decoding (#2542): Corrected an issue with HTML entity decoding in server responses.
High Availability (HA)
- Empty Replica Resync (#2595): Fixed a bug that caused an empty replica to break when requesting a full database resynchronization.
⚙️ CI, Internal & Dependency Updates
- CI Pipeline Speedup (#2604): The continuous integration pipeline has been refactored to significantly speed up the feedback loop for developers.
- Enhanced Test Coverage (#2605): CI has been strengthened by adding profiles for slow unit tests and generating code coverage reports.
- Standardized Logging (#2502): Replaced SLF4J with the standard LogManager for consistent logging and to eliminate startup warnings.
- Dependency Upgrades: This release includes numerous dependency updates to keep the platform secure and up-to-date, including Lucene 10.3.0 and JUnit Jupiter 6.0.0.
👋 New Contributors
A special thank you to our new contributors who made their first contribution in this release cycle:
Full Changelog: https://github.com/
25.8.1
ArcadeDB v25.8.1
We're excited to announce the release of ArcadeDB v25.8.1! This version introduces a powerful new schema feature, enhances Kubernetes support, and resolves several important bugs to improve stability and performance.
A big thank you to our community for your contributions and feedback! 🎉
🚀 New Features
-
Type Renaming and Aliases: You can now rename existing types using the
ALTER TYPE <old-name> NAME <new-name>command. This has been a long-requested feature that makes schema evolution much more flexible. For backward compatibility, the old type name could now be configured as an alias. (#2454) -
Dynamic Type Names in SQL Commands: It's now possible to use a parameter as a placeholder for a type name in your SQL queries. For example, you can execute INSERT INTO $type SET name = 'Mike' and provide the value for $type as a separate argument. This greatly improves the ability to write reusable and dynamic data manipulation logic. (#2230)
✨ Improvements
- Helm Chart Plugin Configuration: The official ArcadeDB Helm chart now supports custom plugin configurations, making it easier to extend your database functionality in Kubernetes environments. (#2436)
🐛 Bug Fixes
- SQL Engine:
- Vector Search:
- High Availability & Core Engine:
- JavaScript Functions: Server-side JavaScript functions have been refactored to seamlessly accept JSON objects as parameters, simplifying complex function calls. (#2165)
- Index Compaction: We've improved the stability and logic of the LSM-Tree index compactor for more reliable performance. (#2463, #2465)
🛡️ Security
- Addressed CVE-2025-48924 by explicitly managing the
commons-lang3dependency to mitigate potential vulnerabilities. (#2493)
🙌 New Contributors
A warm welcome to our new contributor! Thank you for helping make ArcadeDB better.
- @odysseaspenta made their first contribution in [#2433](#2433)
Full Changelog: You can view the complete list of changes on GitHub: 25.7.1...25.8.1
25.7.1
ArcadeDB v25.7.1 Release Highlights
We are excited to announce the general availability of ArcadeDB version 25.7.1!
This is a significant maintenance release that focuses on improving stability, enhancing SQL query functionality, and introducing powerful new capabilities for users running ArcadeDB on Kubernetes. Thank you to our dedicated community and contributors for making this release possible.
✨ What's New
Dynamic Kubernetes Storage with Helm: For our users leveraging Kubernetes, our Helm chart now supports the dynamic allocation of Persistent Volumes. This makes scaling your database with multiple replicas simpler and more automated, especially in cloud environments.
We temporary removed the recent "hidden properties" feature for a back compatibility issue with sql query using *, we're going to add it again in the future with better test coverage.
🐛 Key Bug Fixes & Improvements
This release addresses several bugs to improve the reliability and consistency of the database.
SQL Query Engine Fixes: A significant number of fixes have been applied to the SQL engine to improve consistency and correctness.
The behavior of graph traversal functions like
Data Integrity and Stability
Addressed a critical issue with unique indexes to ensure data integrity constraints are correctly enforced (#2345). Improved the reliability of creating and updating edges when using a remote database connection, ensuring smoother operations in distributed setups (#1578, #2351). Resolved NullPointerException errors that could occur when the database directory has incorrect file permissions, improving startup resilience (#2362).
Operational Improvements
Failed backup operations performed via HTTP will now correctly return an error status code for better automation and error handling (#2244). The official Docker image now includes curl to make diagnostics and scripting easier (#2373).
🛠️ Other Notable Changes
Improved Testing Framework: Our end-to-end (e2e) test suite has been migrated to use Testcontainers, leading to more robust and reliable automated testing. This internal improvement helps us ensure higher quality releases.
Dependency Updates: This release also includes numerous dependency updates to incorporate the latest security patches and improvements from upstream libraries.
Full Changelog: 25.6.1...25.7.1
25.6.1
ArcadeDB v25.6.1 Release Highlights
We're excited to announce ArcadeDB v25.6.1!
This release brings significant improvements in stability, performance, and developer experience.
We've focused on enhancing remote transaction handling, providing more robust server-side retry mechanisms, and updating our dependency management for a smoother development process.
For those leveraging ArcadeDB Studio, you'll find new end-to-end tests ensuring a more reliable experience.
We've also addressed several important bug fixes and made notable changes to the Docker image and Helm chart for easier deployment and management.
We highly recommend upgrading to take advantage of these enhancements!
✨ New Features
- Tx explicit lock (#2292)
- Migrate Docker image to Temurin-alpine (#2319, closes #2316)
- [Helm] Allow multiple replicas by addressing hardcoded
serverList(#2325, closes #2324) - Add extra environment variables to Helm chart (#2308, closes #2307)
- Improve Studio: add package manager and update third-party libraries (#2260, closes #2259)
- Remote property types enhancements (#2247)
- Add end-to-end tests for ArcadeDB Studio database creation and management (#2290)
- Add server-side retry configuration for remote database commands (#2255, closes #2236)
- Add performance testing for single server load in ArcadeDB (#2305, closes #2304)
- Enhance load testing with increased user and friendship counts (#2321)
🐛 Bug Fixes
- Support for remote transaction retry on the server side (#2254)
- Refactor notification system to use Notyf, fixing Studio notification display (#2327, closes #2323)
- Incorrect field type retrieved on RemoteDatabase with
get(<prop>)resolved (related to #2246) - Issue with
RemoteDatabase.reload()addressed (related to #2243) - Remote database no longer automatically converts Float to Double (related to #1700)
- Edge case of partial written record resolved (related to #2282)
- Concurrent modification on page issue fixed (related to #2187)
- Massive insertion (multiple threads/buckets + non-unique index) timeout/excessive retries addressed (related to #2258)
- Concurrent modification error on the same bucket (@v25.3.2) resolved (related to #2236)
- Error reported in the log during performance testing addressed (related to #2175)
🛠️ Other Notable Changes
- Update entity type references for consistency across importer formats (#2245)
- Security Fix: Upgraded the
commons-beanutilslibrary to version 1.11.0 to resolve a security vulnerability identified by a Meterian security scan (#2288) - Add Docker as dependency to developer guide (#2331)
- Refactor load test implementation to use
DatabaseWrapperand enhance parameters (#2329) - Dependency Updates: Numerous dependencies have been bumped to their latest versions, including
junit.jupiter.version,github/codeql-action,io.netty,org.postgresql,io.micrometer,jest,docker/setup-buildx-action,pg,de.bwaldvogel:mongo-java-server,lucene.version,testcontainers.version,org.sonatype.central:central-publishing-maven-plugin, andorg.apache.tomcat:tomcat-jdbc.
Full Changelog: 25.5.1...25.6.1
25.5.1
ArcadeDB v25.5.1 Release Highlights
This release of ArcadeDB brings exciting new features, important bug fixes, and several under-the-hood improvements to enhance performance and developer experience.
✨ New Features
- Encrypted Backup and Restore: Secure your data with the new encrypted backup and restore functionality ( #2222).
- SQL ifempty Function: A new SQL function ifempty has been introduced for more flexible data handling ( #2185).
- Iterable Graph Java API: Vertex and Edge types now return a new Iterable Graph Java API, offering more convenient ways to work with graph data ( #2228).
- Improved SQL Backup: The BACKUP DATABASE SQL command has been enhanced for better functionality and logging ( #2198, #2200).
🐛 Bug Fixes
- Cypher Parametric Queries over JDBC: Refactored Cypher to properly support parametric queries when using JDBC ( #2169).
- Postgres Driver CPU Usage: Fixed an issue causing the Postgres driver to consume 100% CPU on idle connections ( #2229).
🛠️ Other Notable Changes
- Adopted more Java 21 idiomatic code for modernization ( #2143).
- Improved SQL function implementations and added more tests ( #2186).
- The nightly builds link in the README has been updated ( #2220).
- Test workflow speed has been improved ( #2201).
- Deployment of Maven artifacts has been migrated to the Central portal ( #2197, #2218).
- Numerous dependencies have been updated to their latest versions, enhancing security and stability.
Full Changelog: 25.4.1...25.5.1