Skip to content

OrientDB 3.2 Release Notes

tglman edited this page Oct 29, 2024 · 42 revisions

Table of Contents

  • 3.2.35 - 29 October 2024
  • 3.2.34 - 1 October 2024
  • 3.2.33 - 29 August 2024
  • 3.2.32 - 18 July 2024
  • 3.2.31 - 19 June 2024
  • 3.2.30 - 24 May 2024
  • 3.2.29 - 5 March 2024
  • 3.2.28 - 21 February 2024
  • 3.2.27 - 26 January 2024
  • 3.2.26 - 9 January 2024
  • 3.2.25 - 30 November 2023
  • 3.2.24 - 26 October 2023
  • 3.2.23 - 21 September 2023
  • 3.2.22 - 17 August 2023
  • 3.2.21 - 25 July 2023
  • 3.2.20 - 15 June 2023
  • 3.2.19 - 11 May 2023
  • 3.2.18 - 13 April 2023
  • 3.2.17 - 9 March 2023
  • 3.2.16 - 8 February 2023
  • 3.2.15 - 17 January 2023
  • 3.2.14 - 23 December 2022
  • 3.2.13 - 1 December 2022
  • 3.2.12 - 10 November 2022
  • 3.2.11 - 19 October 2022
  • 3.2.10 - 15 September 2022
  • 3.2.9 - 11 August 2022
  • 3.2.8 - 26 June 2022
  • 3.2.7 - 8 June 2022
  • 3.2.6 - 28 April 2022
  • 3.2.5 - 14 February 2022
  • 3.2.4 - 28 December 2021
  • 3.2.3 - 16 November 2021
  • 3.2.2 - 21 September 2021
  • 3.2.1 - 8 September 2021
  • 3.2.0 - 29 April 2021

3.2.35 - 29 October 2024

Changes

Core

  • Corrected regression of support of fetch plans in the function toJson in query engine
  • Make sure to allow dot notation and square brackets for aggregation functions in query engine
  • Minor fix on index creation query to allow not case sensitive collate names
  • Avoid to use index with partial range for indexes not supporting null values
  • Add support of comparison operators other than equal in chained indexes
  • Block insert of edges with insert operations
  • Auto convert properties with map value to documents when specified in the schema
  • Corrected create link statement to support link to class

3.2.34 - 01 October 2024

Changes

Core

  • Minor correction on value conversion for comparison in queries
  • Corrected implementation of tracing executor to trace source properly
  • Minor fix on storage open failure
  • Correct set of target class when query target a cluster

Client

  • Minor fix on retrying next host from client

Distributed

  • make sure to ignore empty response from distributed requests
  • Refactor distributed configuration management to be handled by distributed context

Server

  • Minor fix on wait for shutdown

3.2.33 - 29 August 2024

Changes

Core

  • Marked methods deprecated for removal in the next major
  • Make sure to handle record with missing id (lightweight edges) in delete query, issue #10239
  • Re-add support of indexes for between queries in new query engine
  • Return every time the correct document instance in APis and queries, issue #10280
  • Re-add fetch from variable for traverse in the new query engine implementation, issue #10281
  • Avoid to use index when the condition is empty list
  • Make sure to respect sorting on IN conditions with indexed fields
  • Handle correctly lightweight edges in save
  • Support of indexes in 'is null' operator
  • Corrected ORestricted case for count operations in new query engine

Graph

  • Make sure to bind g variable for groovy-gremlin scripts

Server

  • Update the root password if env variable is set, issue #10273

3.2.32 - 18 July 2024

Changes

Core

  • Fix bug in SQL engine variable name resolution
  • Keep order for asSet() function
  • Minor optimization in query engine class/cluster filtering
  • Make sure to load record from database all the times by query engine
  • Make sure that toJson of list of ids get expanded, issue #10264

Lucene

  • Fix IndexReader ref leak when Lucene index modified and read in transaction

Security Module

  • Removed copied code in favor of dependency

3.2.31 - 19 June 2024

Changes

Core

  • Reduced logging for block size detecting
  • Add support of empty array as from target of query
  • Make sure to run let query every record when there is a context variable
  • Make sure to be able to start and load databases on startup also when not run in distributed mode

Tools

  • Add skipping of failed record on import, improved import logging add content of failed record
  • Corrected parsing of rid to allow white space around it in import
  • Corrected imported to avoid to terminate in case of failure to read a record

Distributed

  • Make sure to retry to install the database later if it fail to install the first time

3.2.30 - 24 May 2024

Changes

Core

  • Fix disk compatibility on some specific CPU architectures

Tool

  • Add Support of preserving record ids on database import

3.2.29 - 6 March 2024

Changes

Core

  • Fix issue on delegated records on raw access, issue #10171
  • Minor fix in transaction not document record handling
  • Make sure to check the security policy record exists before creating instance

Distributed

  • Correct id swap revert in distributed transaction during retry
  • Make sure to execute full sync in case of delta sync failure

3.2.28 - 21 February 2024

Changes

Core

  • Check if the index exists before checking it's properties
  • Make sure to initialize maps on update of value in query engine
  • Add name to the OrientDB internal timer
  • Removed optimization in query engine that cause failing to update linked records, issue #10077
  • Corrected query with content of nested JSON documents to use embedded class
  • Add count on the create link result set
  • Make sure to call on drop on database drop
  • Double Write Log is fsynced on writes. Looks like usage of SYNC flag is not enough
  • Double Write Log is not truncated on file flush but only if it reaches file limit
  • Double Write Log is truncated every time there are tail segments in queue
  • We do not need to make fsync during Write Ahead Log truncation it will be forced by Double Write Log itself
  • sync flag is removed for Double Write Log channel because we perform sync on data write
  • Dirty counter is updated on write sync

Distributed

  • Fixed database sync with enterprise agent

Etl

  • Fix concurrent issues in not x86 architectures

Client

  • removed duplicate cancel from client code

3.2.27 - 26 January 2024

Changes

Core

  • Minor correction on value conversion for comparison in queries
  • Corrected implementation of tracing executor to trace source properly
  • Minor fix on storage open failure
  • Correct set of target class when query target a cluster

Client

  • Minor fix on retrying next host from client

Distributed

  • make sure to ignore empty response from distributed requests
  • Refactor distributed configuration management to be handled by distributed context

Server

  • Minor fix on wait for shutdown

3.2.26 - 9 January 2024

Changes

Core

  • Corrected order by with database locale
  • Used the correct property name in alter property statement propagation
  • Make sure that old query engine use public schema API for create property
  • Re-enabled tests for bonsai tree with fixes
  • Simplification of index implementation in storage and lucene
  • Introduced executor for tracking submitter in case of exception
  • Simplification and optimization in query engine results
  • Corrected insert content query to respect default values

Distributed

  • Report DDL query errors in distributed correctly
  • Make sure the distributed index drop works in the same way of embedded
  • Minor change in configuration reading on context initialization

3.2.25 - 30 November 2023

Changes

Core

  • Add support of @fieldTypes in the json from new query engine
  • Add support for multiple json or parameter in insert content in the query engine

Lucene

  • Correct lucene search on class function
  • Fix query engine integration with geospatial lucene

3.2.24 - 26 October 2023

Changes

Core

  • Optimized OResult to load records lazily
  • Optimized OResult to avoid early load of link in properties
  • Minor optimizations in the query engine runtime
  • Fix insert into index step to use the right value
  • Minor dependencies updates
  • Fix regression in rid comparison in case of embedded query
  • Fix regression in direct insert into index query
  • Fix regression in update index step
  • Avoid storage to go in read only mode if index key type validation fails

3.2.23 - 21 September 2023

Changes

Core

  • Optimization to avoid load record from indexes that do not match the target class
  • Correct delete query in new query engine to consider also binary record
  • Avoid to create temporary records in query engine equal operator
  • Correct the delete edge with single from or to
  • Correct optimization of count queries, issue #10021
  • Moved logic for truncate cluster to the database layer
  • Avoid to scan all the database files for identify a database, issue #10024
  • Add check to avoid to try lock not existing ridbags

Remote

  • Avoid to cast to the underlying specific type while reading a ridbag from the network, issue #9499
  • Minor fix for lookup of remote session from thread local

Lucene

  • Make sure that lucene functions do no fail when no class is defined

Distributed

  • Correct distributed metadata query

3.2.22 - 17 August 2023

Changes

Core

  • Optimizations of escaping in serialization of json strings
  • Avoid to store in result metadata not network serializable values, issue #10004
  • Re-enable transaction methods in scripts issue #9690
  • Optimization index rebuild with transactions
  • Minor optimization in free space map logic
  • Fix space reuse, only use spaces in pages that have enough of it, issue #10005

3.2.21 - 25 July 2023

Changes

Core

  • Make sure to reload correctly view index informations on context restart
  • Changed logic for tracking the cluster and index views in the queries
  • Optimized view refresh using batch transactions
  • use everytime the most specific index when multiple are found
  • Update build dependencies to most recente versions

3.2.20 - 15 June 2023

Changes

Core

  • Refactor in query engines for execution simplification
  • Corrected failure to wait for migration when storage is reused, issue #9974
  • Made last refresh time of views persistent
  • Minor fix in views to skip refresh of deleted views

Distributed

  • Reduced logging logic that is not used anymore
  • Inverted order of finish check for chunks to avoid leaving data in the buffer, issue #9985

Client

  • Make sure that client executor pool size never have size 0

3.2.19 - 11 May 2023

Changes

Core

  • Correct the class for scanning vertex on graph repair, issue #9970
  • Reduced some dependencies from external libraries
  • Removed not needed implementations in native logic
  • Removed the need to load a native library to check some system settings
  • Moved sources in main modules to avoid split packages, issue #8001
  • Minor fix for new internal experimental configuration store
  • Revert upgrade of minor dependency that cause issues on older OS
  • Minor fixes from static analysis
  • Make sure to unblock other storage open operations only when migration is complete, issue #9974

Distributed

  • Deduplication and simplification of distributed logic
  • Removed operation waiting flow not needed any more
  • Avoid startup failure in case of rebalancing failure
  • Avoid that failure on load of database block the server starting
  • Add command to fetch distributed configuration from SQL

3.2.18 - 13 April 2023

Changes

Core

  • Add a specific executor, for all the io operations
  • Make sure to use the context executor for all background ops
  • Fix automatically remove null links on write of embedded ridbags, issue #9767
  • Make sure to use the plugin class loader to load the plugin class
  • Avoid repeated distributed database shutdowns
  • Fix race in registering installing database to guard against concurrent installs
  • Upgraded dependencies
  • Minor fix on embedded storage reload
  • Increased separation of schema logic for remote and embedded cases

Remote

  • Corrected edge iteration in remote after commit, with relative test case issue #9805

Gremlin

  • Upgraded to the last release of gremlin libraries

Agent

  • Removed not needed dependencies, to reduce the agent bundle size

3.2.17 - 9 March 2023

Changes

Core

  • update dependencies
  • make sure to make view query wait for drop and create operations
  • changed security checks for the import logic to avoid spurious failures
  • optimizations in disk cache implementation
  • pre-check cluster existence to avoid storage to go in read only mode in case of duplicate cluster
  • add check to avoid failure when engines are unloaded, issue #9629
  • removed not used configurations
  • moved clean-up of old structures out of the view refresh window
  • replaced global executor with context executor
  • use correct index in immutable view metadata
  • add configuration for define the max number of threads for the context executor

Server

  • make sure to print the right protocol for studio address when ssl is enabled

Client

  • minor fix on view metadata serialization and demineralization over network

Distributed

  • Removed not used single cluster management in distributed sync

Spatial

  • Fix spacial function filtering when used trough the new query engine

3.2.16 - 8 February 2023

Core

  • removed the need to buffer changes before adding the to the tx
  • make sure to stop scheduling of view refresh before closing the OrientDB instance
  • improved refreshing and cleaning of views
  • minor fix to handle misstyped records in delta serialization
  • minor correction on metadata snapshot logic on release of index manager lock
  • make sure to use transaction aware stream also with legacy index implementations, issue #9914
  • reduced the number of times the storage goes in read only mode, and allow to delete not empty datastructures
  • make sure that on index load the schema snapshot are available, issue #9915
  • changes in index manager and view implementation to avoid cross locking during updates
  • avoid to re-index new cluster when swapping the cluster in views.
  • make sure to initialize the timeout checker before the system db

Remote

  • made remote index changes go through the transaction instead of the query

Distributed

  • make sure to have the correct transaction in the context for distributed phases execution
  • managed correctly the check of all value of a unique index during first phase checks

3.2.15 - 17 January 2023

Core

  • give more clear error when view metadata are not correct on view creation
  • improved validation of embedded types to avoid use of vertices and edges in embedded
  • handle additional case for shape type conversion in query engine
  • removed not needed synchronization in views structures
  • reduced logging of the security module
  • minor fix for no-tx changes on lucene indexes
  • removed duplicate logic in index implementation
  • reduced the thread local lookups and database isClosed checks
  • removed some locale translate done only on specific use cases
  • avoid to update the index manager when there are no changes
  • replaced storage error state lock with atomic reference
  • removed server and client dependency from lucene module

Distributed

  • minor fix on view creation and refresh in case of distributed environment

3.2.14 - 23 December 2022

Core

  • Optimization on graph delete operations (issue #9821)
  • Fix on remote deserialization of specific exception
  • Fix on index logic for multi-page split
  • Fix limit of index key size, now it fail with a user message when the key is over the maximum size (10Kb)
  • Optimization in index write
  • Optimization of security checks in writes
  • Fix wrongly oversize WAL records
  • Fix views locking logic to update the view atomically
  • Fix failing schedule of view if previous view fail to refresh
  • Add support of indexing of embedded types in views
  • Fixed script poll release issue

3.2.13 - 1 December 2022

Core

  • Make sure to use high level transactions in all index change cases
  • Made index rebuild batch changes in transaction
  • Fix view unlocking in case of refresh error
  • Optimized update of vertices that use ridbag trees
  • Fix regression on OResult hash code, issue #9900
  • Ignore index corrupted errors on drop
  • Batched view refreshing in transaction
  • Optimized of usage of read/write lock in storage
  • Fix check of index type also on chained indexes
  • Reduced usage of modifiable schema to reduce contention on read/write lock
  • Fix waiting for last task in ViewManager close
  • Fix running of ddl while incremental backup is running do not block anymore other write operations.
  • Fix invalid cluster id do not make storage readonly

Distributed

  • Fix in handling of node missing on refresh

3.2.12 - 10 November 2022

Changes

Core

  • Add timeout check in next query page fetching
  • Updated dependencies
  • Optimized Security Policies checks
  • Optimized query engine property fetching and filtering
  • Removed not used anymore dependencies
  • Fix in truncate clusters logic
  • Improved string caching logic
  • Made the direct memory pointer soft reference to retain it and reduce the allocation overhead
  • Add a correct error message when opening a not existing database in a in memory context
  • Fix regression in sql function execution after refactor, issue #9888
  • Optimization in storage record reading
  • Fix OClass.setCustom() in ditributed setup

Console

  • Fix regression database creation, issue #9889

Enterprise

  • Limited the maximum number of metrics kept in memory
  • Made query statements metrics ognostic of values

3.2.11 - 19 October 2022

Changes

Core

  • Use correct configuration to run javascript functions on truffle script engine of graal
  • Minimize duplicate logic in index searching for query engine
  • Add caching of graal Context with relative database functions
  • Reduced allocations in query engine
  • Add possibility to unload cached information for specific script executor
  • Optimized the cluster computation in query engine
  • Disabled the sharding check logic for distributed
  • Removed dependencies not used anymore
  • Correct query interrupt based on command timeout configuration
  • Minor updates of dependencies

3.2.10 - 15 September 2022

Changes

Core

  • Make put of index everytime transactional
  • Converted all left put operations to use transaction directly
  • Fix logging of log messages with exceptions
  • Refactor for simplify index creation logic
  • Optimization in index write logic
  • Optimization in ridbag write logic
  • Optimization in page write logic
  • Optimization in script pool
  • Disabled write operations without atomic operation
  • Fixes in Json parsing
  • Re-enabled computation of record sizes for cluster issue #9870
  • Replaced custom lock implementation with jdk implementation
  • Avoid to read null values from json for ridbags

Client

  • Automatically start a transaction in the client side if a script started it server side

Lucene

  • Correct lucene remove after transactional index operations refactor
  • Make sure rebuild of lucene works after refactor

Distributed

  • Fix copyStream to not terminate on 0 byte read
  • Mark HA STATUS idempotent so it can be used from SQL API.
  • Include individual DB status across cluster in HA STATUS result
  • Add exception details to some logging that lost stack traces.

3.2.9 - 11 August 2022

Changes

Core

  • Make sure to drop the database also when drop listeners fail
  • Improve thread pool executors to scale up and down properly
  • Make sure to release lock on close of failed storage
  • Removed background thread to mark storage broken not needed anymore
  • Add missing file extension from list of database files extensions to allow proper cleanup on delete
  • Remove no needed refresh of immutable metadata during index metadata load
  • Avoid that wrong validation value make a database read only
  • Corrected regression on btree v3 value replace
  • Refactor to simplify index v3 logic
  • Prevent Live Query thread hot looping on idle queue.

Distributed

  • Improved distributed hosts change notification after client optimization

Remote

  • Release session lock in any case of error

ETL

  • Make sure to close context on process shutdown

3.2.8 - 26 June 2022

Changes

Core

  • avoid to make the storage read only in case of error in record serialization
  • correct iterable value set during update operations issue #9781
  • avoid to put storage in read only in case of errors during read operations
  • fixed multivalue composite index queries to not return duplicates
  • correct indexes rebalancing causing error on delete operations

Console

  • local creation of a database in plocal with console old command will create a admin user

Distributed

  • unblock distributed request handling in case of install error, issue #9815
  • Cap string length in binary channels

Lucene

  • Support parameterised metadata in Lucene queries
  • make sure that lucene parsing exception do not set the storage in read only mode, issue #9498
  • Fix the locking in the Lucene indexer

3.2.7 - 8 June 2022

Changes

Core

  • fixed delete of lucene indexes
  • make sure to do a clean metadata re-init after incremental backup database restore
  • handle thread interruption while data read and write with correct exception
  • Speed up of record updates.
  • remove edges with in or out null during bonsai repair,issue #9806
  • minor correction in composite index creation query

Distributed

  • cloned distributed lock keys that may contain a record id for avoid mutation
  • properly handle database instance used by lucene indexes while distributed sync
  • Install ShutdownLogManager in distributed mode

3.2.6 - 28 April 2022

Changes

Core

  • LSN of latest applied record returned during restore
  • Binary compatibility issue was fixed
  • Update jackson dependency to the latest release
  • Disabled memory pre-allocation by default
  • Ported fix for shortest path, issue #9774
  • Minor update of dependency version
  • Storage state lock was replaced by standard JDK lock

Distributed

  • Minor fix for distributed on deploy database backup in case of source folder and dest folder in different volumes
  • Fixes on network layer between nodes

3.2.5 - 14 February 2022

Changes

Core

  • Restore flag is triggered once physical restore is started.
  • Tracking of consistency of atomic operation on restore was added.
  • If Unsafe is present it is used for memory allocation/de-allocation.
  • Fix toJson() with spaces in map key names.
  • Prevention of recursive flow of exception is case of internal error.
  • DWL files do not trigger errors during the database backup.
  • Fix ORDER BY with LET

Distributed

  • Minor fix in distributed stat collecting logic
  • Check to avoid distributed backup path to be in the same location of databases
  • Minor refactor to avoid to do version promises for not changed records

3.2.4 - 28 December 2021

Changes

Core

  • Fix of bug when removal of entry from the BTree causing damage of the tree structure.
  • add some methods in internal database API for avoid to use storage interface
  • reduce use of direct storage API where is not needed
  • Remove Log4J testing dependencies
  • Fix npe on traversal of graph

Client

  • refactor: remove of last few usages of storage for client use cases
  • separated the logic for remote ridbag management from the embeded one
  • cleanup of not needed methods in remote index manager
  • completely split the index remote and embedded logic
  • minor refactor in remote storage to remove dependency to core components

Distributed

  • removed additional code in distributed module not used anymore
  • add reset of previous sync backup on ddl execution
  • minor fix ddls
  • enabled two phase ddl with retry
  • add tests for new ddl messages serialization and execution
  • first definition of coordination of ddls
  • first definition of new ddl messages for distributed ddls
  • made distributed unit tests more reliable
  • re-enabled distributed in github actions
  • add method for only log distributed sequential
  • removed old delta sync implementation not used anymore
  • minor fix in distributed transaction data test
  • minor fix in transaction data test
  • minor fix in the distributed sequence manager
  • Fix NPE on network reconnect

3.2.3 - 16 November 2021

Changes

Core

  • start implementing support for Java 17
  • made sure that the client network deserializer is used in most of the places
  • merged Basic Transaction interface in Transation interface
  • minor refactor to remove all storage usages from abstract database
  • Fix of IT tests, to make them work under Java 17
  • Import - Fix RID conversion in list of embedded objects
  • Fix illegal memory access in Unsafe byte array comparator
  • All threads given a name and default exception handler
  • add method in local cache to clear referred record instances
  • add property for generate and hold database instance id
  • Fix DB backup UUID checks
  • removed redundant cache clear from rollback operations
  • minor refactor to avoid cache clear on rollback
  • Reduce log level on JSON serializer
  • updated icu dependency to keep only one dependency jar in the final package
  • removed cleanup of locks on shutdown from HZ lock manager, try finally should already cover all cases
  • minor fix to avoid a storage to go to read only if the backup fail
  • update fix to avoid deadlock, to avoid the start to block
  • minor fix in the loop resolution of temporary ids
  • minor fix in storage validation logic
  • minor fix on server startup logic

SQL

  • Fix corner cases of LET expression evaluation with $current
  • Add new interfacte for live query batch. Optimise live query execution in remote (Send results in batches)

Distributed

  • refactor of distributed drop to move distributed drop logic outside the listener and in the distributed context
  • fix drop in case of distriubed environment with distributed disabled
  • fixed reconnect of distributed to reduce session and delay on error
  • add quorum in error message for not enough nodes online
  • removed quorum all for index changes
  • additional cleanups in case of full sync failure
  • refactor distributed startup to avoid to deadlock on remote databases install
  • minor fix on record id reset in case of distributed concurrent creation
  • minor fix on sync backup reset

ETL

  • Fix ETL execution with LINK transformers

3.2.2 - 21 September 2021

Changes

Core

  • Fix management of predicate security on DELETE
  • Minor performance fix in listing on databases during subscribe on push notifications
  • Minor fix in server users password reading
  • Automatic renew token in distributed channel when close to expire
  • Import: removed unused v3 approach and started using parser for brokenrids
  • Fix Studio login

Distributed

  • Removed distributed logging not needed anymore

3.2.1 - 8 September 2021

Changes

Core

  • Fix Nashorn js execution
  • Force Nashorn usage when GraalVM is disabled by config
  • Many fixes to database import/export
  • Refactor transaction index changes
  • Reload schema after incremental restore
  • Optimise predicate security checks on property validation
  • Allow concurrent access to active queries stats
  • Optimise OTxIndexChangesList and enable it for index tx management
  • Allow binary connections without session token (disabled by default)
  • Add security check on cached sequences
  • Optimise record save
  • Replaced micro tx with transaction in embedded noTx operations
  • Removed micro transaction implementation not needed anymore
  • Optimise views management
  • Fix index space consumption
  • Fix security checks on Class in remote
  • Check that prevents restore of database in another version after crash was introduced
  • Allow choice of storage cluster version via global config
  • Fix StackOverflow error when adding the owner document to OTracked
  • Fix OClassRemote.hashCode()
  • Maximum allowed size of WAL segment has been increased.
  • Fix issues #9658 #9562

SQL

  • Fix ORDER BY with big LIMIT
  • Implement DROP CLASS with parameter
  • Enhance live queries to allow projections
  • Implement exclude projections in SELECT
  • Fix management of embedded objects on Live Query DELETE
  • Fix UPDATE UPSERT with cluster as target
  • Implement support for index chains in SQL with CONTAINSANY

HTTP

  • Add Secure header to session cookie

3.2.0 - 29 April 2021

Changes

See What's New

Clone this wiki locally