Skip to content

OrientDB 3.1 Release Notes

Luigi Dell'Aquila edited this page Sep 28, 2021 · 29 revisions

Table of Contents

  • 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.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