Skip to content

OrientDB 3.1 Release Notes

tglman edited this page Aug 30, 2022 · 29 revisions

Table of Contents

  • 3.1.20 - 1 September 2022
  • 3.1.19 - 18 July 2022
  • 3.1.18 - 25 May 2022
  • 3.1.17 - 25 April 2022
  • 3.1.16 - 22 February 2022
  • 3.1.15 - 10 November 2021
  • 3.1.14 - 25 October 2021
  • 3.1.13 - 28 September 2021
  • 3.1.12 - 26 May 2021
  • 3.1.11 - 20 April 2021
  • 3.1.10 - 16 March 2021
  • 3.1.9 - 24 February 2021
  • 3.1.8 - 9 February 2021
  • 3.1.7 - 12 January 2021
  • 3.1.6 - 15 December 2020
  • 3.1.5 - 23 November 2020
  • 3.1.4 - 21 October 2020
  • 3.1.3 - 30 September 2020
  • 3.1.2 - 20 August 2020
  • 3.1.1 - 8 July 2020
  • 3.1.0 - 1 June 2020
  • 3.1.0-beta1 - 25 october 2019

3.1.19 - September, 1 2022

Changes

Core

  • Fix release session lock in any case of error
  • Prevent Live Query thread hot looping on idle queue.
  • Fix regression on btree v3 value replace
  • Fix copy stream to not terminate on 0 byte read.
  • Reduce buffer duplicate calls for improve performances
  • Fixes in logging messages and exceptions

Distributed

  • Mark HA STATUS idempotent so it can be used from SQL API.
  • Include individual DB status across cluster in HA STATUS result

3.1.19 - 18 July 2022

Changes

Core

  • Changed update value of index entry to use the correct offset in all cases
  • Fixed multivalue composite index queries to not return duplicates
  • Fix thread pool executors to operate as intended.
  • Changed storage failed state management to avoid deadlock on fail
  • Disable pre-allocation of whole this cache on startup
  • Make sure to drop the database also when drop listeners fail
  • Make sure to release lock on close of failed storage
  • Avoid that wrong validation value stop opening a database

Distributed

  • Size check on string write in network protocol
  • Unblock distributed request handling in case of install error, issue #9815

Lucene

  • Support parameterised metadata in Lucene queries
  • Use correct search function in SEARCH_FIELDS test
  • Make sure that lucene parsing exception do not set the storage in read only mode, issue #9498

Client

  • Avoid NPE running LIST INDEXES on remote db

Tools

  • Remove edges with in or out null during bonsai repair, issue #9806

3.1.18 - 25 May 2022

Changes

Core

  • handle thread interruption while data read and write with correct exception
  • Lucene index fix on delete and rebuild.
  • Exceptions inside the reads do not put storage in read mode. Reads are interrupted by interruption of thread.
  • Support masking of Lucene query in log/exceptions

Distributed

  • Install ShutdownLogManager in distributed mode
  • Correct failure when distributed lock not obtained
  • Improvements in between node network to better handle keep alive retries and errors

3.1.17 - 25 April 2022

Changes

Core

  • Binary compatibility issue was fixed.
  • 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 issue #9770

3.1.16 - 22 February 2022

Changes

Core

  • Updated jnr-posix version for m1 support
  • Tracking of consistency of atomic operation on restore was added.
  • If Unsafe is present it is used for memory allocation/de-allocation.
  • Prevention of recursive flow of exception is case of internal error.
  • Bug during removal of items inside BTree is fixed.

Distributed

  • Add check to avoid distributed backup path to be in the same location of databases
  • Avoid to lock record with no content changes in distributed
  • Fix NPE on network reconnect
  • Add reset of previous sync backup on ddl execution
  • Add new two phase operations for DDL
  • Minor fix in the distributed sequence manager
  • Minor fix on sync backup reset

SQL

  • Fix ORDER BY with LET

3.1.15 - 10 November 2021

Changes

Core

  • BinaryBTree: unsigned byte array comparison is implemented inside the bucket
  • BinaryBTree : key prefix is stored inside of leaf pages
  • BinaryBTree : iteration over a tree was implemented
  • add removed of changed record from the cache in case of rollback of microtrasnsactions
  • minor fix to avoid a storage to go to read only if the backup fail
  • minor fix in the loop resolution of temporary ids
  • minor fix in storage validation logic

Distributed

  • removed cleanup of locks on shutdown from HZ lock manager, try finally should already cover all cases
  • 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

SQL

  • Add new interfacte for live query batch and optimise live query execution in remote (Send results in batches)

3.1.14 - 25 October 2021

Changes

Core

  • Improve logging
  • Import - Fix RID conversion in list of embedded objects
  • Making segments to have the same maximum size
  • Fix illegal memory access in Unsafe byte array comparator
  • Fix bug when second attempt to close disk cache causes cleanup of file registry
  • Add method in local cache to clear referred record instances
  • Add property for generate and hold database instance id (for incremental backup)
  • Fix DB backup UUID checks
  • Minor refactor to avoid cache clear on rollback

Distributed

  • Add quorum in error message for not enough nodes online

3.1.13 - 28 September 2021

Changes

Core

  • Add security check on cached sequences
  • Optimise security checks, record save, field conversion
  • Errors in space management of indexes were fixed.
  • Optimise views management
  • Optimization in internal hook for security operations
  • Fix security checks on Class in remote
  • Fix StackOverflow error when adding the owner document to OTracked
  • minor refactor to linearize document entry logic
  • add option for disable advanced security checks
  • Check that prevents restore of database in another version after crash was introduced
  • Exceptions inside the reads do not put storage in read mode. Reads are interrupted by interruption of thread.
  • Allow choice of storage cluster version via global config
  • removed not needed page change event tracking
  • delete all the PageOperations WAL entries
  • removed operation tracking atomic operation, and removed flag usage in relative tests
  • Read and write channels are separated.
  • Synchronize view updates
  • minor performance fix in listing on databases during subscribe on push notifications

SQL

  • Implement DROP CLASS with parameter
  • Fix UPDATE UPSERT with cluster as target
  • Enhance live queries to allow projections
  • Fix management of embedded objects on Live Query DELETE
  • Implement support for index chains in SQL with CONTAINSANY
  • better support tree ridbag in remote

Distributed

  • Optimise query execution planning in distributed
  • ported fix for avoid distributed cluster selection when disabled
  • minor fix in delta sync, for avoid triggering a full sync
  • automatic renew token in distributed channel when close to expire
  • removed specialization of token for the distributed case
  • fixed reconnect of distributed to reduce session and delay on error

3.1.12 - 26 May 2021

Changes

Core

  • Optimize addition of index entry in transaction
  • Reload all the shared context after db restore (fixes metadata inconsistency problem)
  • Optimise predicate security checks on property validation
  • Allow concurrent access to active queries stats
  • Allow binary connections without session token (backward compatibility with old drivers, disabled by default for security reasons, it can be enabled with global config network.binary.allowNoToken)

SQL

  • Fix class name escape in MATCH statements
  • Fix NPE in eval() function
  • Fix funciton parameters count validation
  • Fix management of dot notation for maps (collision with context variables)
  • Fix ORDER BY with big LIMIT

3.1.11 - 20 April 2021

Changes

Core

  • Fix command timeout from binary and from Studio
  • Add check for expired sessions in the client side
  • Fix import with links in embedded collections of maps
  • Fixed deadlock on orient shutdown

3.1.10 - 16 March 2021

Changes

Core

  • Fix assignment of cluster IDs in import from previous releases

SQL

  • Invalidate SQL statement cache when command timeout changes

Distributed

  • Fix lucene drop on full sync
  • Fix ClassCastException in Distributed

3.1.9 - 24 February 2021

Changes

Core

  • Update dependencies for reported vulnerabilities
  • Removed not needed lock for client side connection open
  • Fix NPE in exception management

Distributed

  • Improve management of client connections with nodes that are doing a db sync (fast redirect)

3.1.8 - 9 February 2021

Changes

Core

  • Bug fixes in database restore procedure
  • restoreFrom method was modified to support incremental backup
  • Profiling of direct memory allocations has been implemented
  • Fix creation of edges with special characters in class name
  • Add profiling info at database level

SQL

  • Enhance index stats with UNIQUE (query execution planning)

Distributed

  • Fix query timeout in distributed
  • Fix extranction of transactions from WAL (for delta sync)
  • Fix issue in delta sync implementation
  • Fixed current status loading from databsae, transaction order fetching, transaction reapply checks

3.1.7 - 12 January 2021

Changes

Core

  • Fix OCommandExecutorNotFoundException when executing a scheduled function
  • Fix Console optimize
  • Minor fix in storage error heandling when failing to open a database
  • Implementation of generation of operation id for all operations which update content of the pages
  • MT issue during calculation of operation id was fixed
  • Both operation id and LSN are tracked inside of the page
  • Fix firing of all OSchedule on server start
  • Check wether WAL contains enough information to restore broken database
  • Indication of progress of file scan was added

SQL

  • Fix TIMEOUT RETURN behaviour in SQL
  • Enhance aggregate queries with LIMIT

Distributed

  • Minor fix in hazelcast shutdown, Improved restart testing
  • Remove wrong response count increase on node disconnect, relie on timeout instead
  • Minor fix in distributed listener register

3.1.6 - 15 December 2020

Changes

Core

  • Space overhead during replacement of records was fixed
  • Handle correctly the remove of the storage from context in case of open failure
  • Add check for avoid the use of reserver characters in the database name
  • Storage is put in read-only mode in case of internal error
  • Mark dirty is called inside of all modification methods
  • Add check for missing session in remote next url selection
  • Fix warning log about memory limit
  • Reduced lock span on remote OrientDB context
  • Database tries to keep at most single WAL segment which is generated every 10 min

SQL

  • Add OGlobalConfiguration.QUERY_MAX_HEAP_ELEMENTS_ALLOWED_PER_OP checks to DISTINCT SQL execution
  • Fix command timeout
  • Enhance optimizations for count queries with a single indexed condition

Distributed

  • Make first round robin node select more reliable
  • Make sure to cleanup background threads after distributed sync
  • Improve handle of node selection per session
  • Review the startup wait logic for avoid clients to wait long for node getting online

3.1.5 - 23 November 2020

Changes

Core

  • Add check to protect of missing index during transaction commit
  • Change logic for deinit to be executed all the time and expect to self clean
  • NPE during check of ridbags was fixed
  • Add internal API to safely interrupt thread execution
  • Implementation of free space map for the V2 cluster
  • Bugs in FreeSpaceMap were fixed
  • FreeSpaceMap bug in cluster rename was fixed
  • Fix security checks for ROOT user (check ALL permission as a fallback)
  • Fix broken conversion within ORecordLazyList Issue #9421

SQL

  • Fix SQL any() and all() calculation
  • Add support for OGlobalConfiguration.COMMAND_TIMEOUT in new SQL executor and all scripts
  • Fix NPE on FOREACH statement with null iterator

Distributed

  • Make sure distributed install run only when there re no request running
  • Fixed parsing of multi-host urls
  • fixed to avoid to invalidate sessions on node offline when not needed
  • make sure to make remote round robin work even with only one session open close

3.1.4 - 21 October 2020

Changes

Core

  • DirectIO support was removed because of stability issues
  • Missed ridbag containers are created on storage open
  • Re-try in backup if atomic moves are not supported. Empty backup directory is created
  • Handled the case when the locale is not defined in the database
  • Fix index iterations in TX with both create and delete of the same element. Resolves Issue #9402
  • Disc deserialization do not mark dirty collections anymore
  • Errors during cluster truncation are not re-thrown
  • Server memory usage limit was removed
  • Startup metadata are moved without atomic move if such option is not supported
  • If Bonsai tree already deleted we do not try to delete it again

TinkerPop 2.6

  • Fix backward compatibility issue with custom TinkerPop predicates

3.1.3 - 30 September 2020

Changes

Core

  • Use SequenceOrderType.ORDER_POSITIVE as default for sequence order type
  • Events in WAL are fired only once
  • Fix NPE during acquiring of component lock
  • Stop accepting new requests if limit of memory consumption is reached Issue #9387
  • Prevention of deletion of WAL segment if data is not written in that segment yet
  • Fix security context creation to avoid race conditions (deadlock)
  • StorageStartupMetadata made durable. During backup of database in distributed storage all file operations are checked on success and DB move made atomic.

SQL

  • Fix usage of composite indexes with index chains
  • Fix usage of indexes with subqueries (colleciton results)
  • Fix NPE on count() on non existing class
  • Fix shortestPath() with multiple edge types Issue #9388

Distributed

  • make sure to return valid value on distributed status even if no value present
  • update to Hazelcast 3.12.8
  • avoided to run database sync from message executor
  • serialized rid allocation execution for distributed
  • reduced length of locking of whole cluster for insert to only messages executions
  • add check for ridbag missing in delta deserialization

3.1.2 - 20 August 2020

Changes

Core

  • moved storage replace in session on background to avoid deadlocks
  • Fixed NPE when trying to update a vertex that has an rid bag
  • Ensure that file writes are finished on close
  • Parameter to setup value of minimal compressed record size for WAL was introduced
  • Infinite loop in case of restore was fixed
  • Index check was removed from database check
  • fixed timer creation in remote context
  • managed correctly storage frozen status from transactions and sync
  • Incremental backup does not introduce GC overhead
  • Fix console output on CREATE INDEX
  • add validation for embedded collections when creating properties in the schema
  • Fix csv export (http) to also use schema to infer columns
  • Improve logging of errors related to exceeded packet size (remote binary)
  • Tracking of labels without vertex classes was disabled
  • re-introduced record not found instead illegal argument in case of cluster not there

SQL

  • Improve management of TIMEOUT in SQL for aggregations and ORDER BY
  • Fix regression on SQL range queries with indexes

Distributed

  • add reentrant logic to distributed lock hazelcast implementation
  • first definition of the new executor for distributed requests
  • passed list of rids from first phase to the second phase to make sure to follow the same locking logic
  • fixed distributed executor thread factory
  • handled the case of rejectd execution in distributed executor
  • changed the database drop to not wait for the distributed executor shutdown
  • add unique index keys to tx phase 1
  • add some buffering in the distributed executor queue
  • add tracking of transactions pending in the distributed executor queue
  • add unique keys for execution scheduling in distributed second phase
  • add transaction id partition as locking key for schedule operation sequential
  • add check for transaction already included in the database due to synch appening while the transaction is active
  • add check for avoid to apply second phases if the state already contains the transactions
  • changed first phase to return invalid sequential in case of already present transaction id
  • add coordinator scheduler locking for distributed tx
  • add reset to temporary id for created record in transaction, in case of retry for concurrent create
  • add context registration for already present transaction to avoid trigger sync
  • removed wait in execution of distributed tasks that was not needed and could cause deadlocks
  • fixed wrong cluster drop logic in distributed implementation

3.1.1 - 8 July 2020

Changes

Core

  • Fix concurrency issues with security cache
  • Fix IMPORT from 3.0.x to 3.1.x
  • Fix race usage of unique field in tx issue #9281
  • Fix import so that only records which exist in database before import are over written.
  • Broken files are detected in DWL during restore
  • Out of bounds error was fixed in DWL
  • Fix detection of memory cgroups
  • Performance statistic monitoring was removed because were not completed and out of date Issue #9169
  • Add implementation for automatic close for idle sockets
  • remove use of ODocumentSerializable from global properties
  • fixed wrong usage of mutable schema in place where immutable is available
  • Fix binary version of config properties
  • Fix StringIndexOutOfBoundsException
  • Fix data flush in background and system stuck
  • Fix usage of ZFS
  • In cache entries atomic fields replaced by atomic field updaters
  • fixed global config dump issue introduced in 3.1

SQL

  • Fix usage of $matched in MATCH statements
  • Fix count(*) with LIMIT
  • Added interval() function
  • Improve TIMEOUT on SELECT

Lucene

  • Fixed NPE when passing any "bad value" to spatial funcitons

Distributed

  • add configuration for disable automatic creation of cluster when new node joins

3.1.0 - 1 June 2020

Official 3.1 release, see What's New

3.1.0-beta1 - 25 october 2019

New features

Predicate Security

  • predicate-based record-level security
  • predicate-based property-level security

http://orientdb.com/docs/3.1.x/security/Database-Security.html#predicate-security

3.1.0-M3 - 2 July 2019

New features

Enhanced db encryption

3.1.0-M2 - 5 October 2018

New features

Materialized Views

Pessimistic Locking

Enhanced Sequences

Clone this wiki locally