Skip to content

OrientDB 3.0 Release Notes

Luigi Dell'Aquila edited this page Feb 7, 2020 · 92 revisions

Table of Contents

  • 3.0.28 - 5 February 2020
  • 3.0.27 - 7 January 2020
  • 3.0.26 - 2 December 2019
  • 3.0.25 - 11 November 2019
  • 3.0.24 - 8 October 2019
  • 3.0.23 - 21 August 2019
  • 3.0.22 - 16 July 2019
  • 3.0.21 - 18 June 2019
  • 3.0.20 - 4 June 2019
  • 3.0.19 - 15 May 2019
  • 3.0.18 - 21 March 2019
  • 3.0.17 - 7 March 2019
  • 3.0.16 - 27 February 2019
  • 3.0.15 - 12 February 2019
  • 3.0.14 - 24 January 2019
  • 3.0.13 - 2 January 2019
  • 3.0.12 - 10 December 2018
  • 3.0.11 - 21 November 2018
  • 3.0.10 - 25 October 2018
  • 3.0.9 - 15 October 2018
  • 3.0.8 - 27 September 2018
  • 3.0.7 - 6 September 2018
  • 3.0.6 - 14 August 2018
  • 3.0.5 - 2 August 2018
  • 3.0.4 - 12 July 2018
  • 3.0.3 - 2 July 2018
  • 3.0.2 - 5 June 2018
  • 3.0.1 - 18 May 2018
  • 3.0.0 - 9 April 2018
  • 3.0.0-RC1 - 18 December 2017
  • 3.0.0-M2
  • 3.0.0-M1

3.0.28 - 5 February 2020

IMPORTANT: In this release, for security reasons, remote scripting was disabled by default (apart from SQL, that is still enabled by default of course). This impacts execution like following

db.execute("gremlin", "<some random script here>");

To re-enable remote scripting, you have to edit your orientdb-server-config.xml, adding the scripting languages you need to OServerSideScriptInterpreter:

        <handler class="com.orientechnologies.orient.server.handler.OServerSideScriptInterpreter">
            <parameters>
                <parameter value="true" name="enabled"/>
                <parameter value="SQL,GREMLIN" name="allowedLanguages"/>
            </parameters>
        </handler>

Changes

Core

  • Optimize import of ridbags (import database)
  • Fix import database with no manual indexes defined
  • Fix NPE in geospatial query with subquery Issue #9105
  • Add option for disable support for custom types, disabled custom types by default
  • Fix for hazelcast event handling implementation to not block on distributed lock management
  • Fix error with spacial functions in projection Issue #8788
  • Made sure that private configurations settings are not accessible from settings fetching API
  • Fix Fulltext Index with Lucene: boost option does not work Issue #9118
  • Disable remote scripting by default (see above)

SQL

  • Fix COUNT with ORDER BY when results are empty

Distributed

  • Fixed issue with lucene index drop in distributed environment
  • Add handling of bail out of execution of a request, terminating multi-queue executiong
  • Fix potential crash that caused install executions to block

3.0.27 - 7 January 2020

Changes

Core

  • Statistics of execution of transaction was added.
  • Fix remote index creation with special characters for properties
  • Fix DROP CLASS with special characters
  • Optimize database export using streams

SQL

  • Fixed MATCH execution planning with RID
  • Fixed complex optional patterns in MATCH statement
  • Fix RETURN of multipe result sets as a collection
  • Fix TRAVERSE in batch, with newly created vertices and edges (in tx) Issue #9096
  • Added traversal through map elements see Issue #9099

Distributed

  • add timed notification for still running transaction from executer to the coordinator for extend waiting timeout
  • made sure to run truncate operations all from the storage to avoid quorum 1 issues. Issue #9073
  • fixed scheduling of task in case of re-enqueue of request
  • Fix timer task cancellation
  • Added keys in ha status -locks

3.0.26 - 2 December 2019

Changes

Core

  • Added storage profiler
  • Speed up of index page split operation (fixes reliability of distributed operations)
  • Fixed issue with delete vertex/edge using the identity

Console

  • Enable usage of 'width' setting with all the console commands

3.0.25 - 11 November 2019

Changes

Core

  • Fix delete of LUCENE indexes directory (port from 2.2.x)
  • Deadlock during deletion of tree rid bag was fixed
  • Fix of page allocation after crash in index
  • Deadlock during deletion of out of dated ridbag was fixed
  • Files are fsynced before close
  • Storage IDs are made persistent
  • Storage IDs are tracked by OrientDB
  • Storage IDs are made unique across OrientDB instances

SQL

  • Fix edge creation in batch script with properties coming from previous statements
  • Fix CONTAINSANY for subqueries Issue #9048
  • Fix CONTAINSALL to work with subqueries Issue #8961

Distributed

  • Improvement of distributed locks for keys
  • Added callbacks for monitoring
  • Added logs for mvcc and index check
  • Fixed NPE on distributed coordination
  • Added playload notification for commit
  • Changed quorum calc by counting only masters
  • Added fix for SplitBrainIT

3.0.24 - 8 October 2019

Changes

Core

  • Added listener unsubscribe on socket close exception
  • Fixed issue with params document and dirty manager
  • Avoided to lazy load record when running a toString of ridbag or linkset
  • Removed no need call in lock for remote rollback
  • Moved query parameters failable logic from network context to failable pre-network context
  • fixed vertex and edge copy() to return the right instance for graph document types
  • Fix CREATE EDGE from graph editor Issue #9008
  • made sure to not load the record from the disc in case of merge of collections
  • removed custom deletes from edge creation that was used to handle noTx errors, that is not needed anymore because we run everytime in tx
  • Add validation of OFunction names
  • Fix database import with record properties containing dots
  • Server side rollback now do rollback only if there is a operation active, otherwise does nothing
  • Added callback for before/after locks
  • Fix creation of sequences in tx
  • Fix usage of large fields (> 32k) as Lucene index keys Issue #9020
  • Fixed issue on configuration with pool and storage remote creation

SQL

  • Reduce synchronization contention when SQL statement and execution plan caches are disabled
  • Add experimental support for field traversal in MATCH statement
  • Fix NullPointerException on edge creation with null vertices
  • Fixed string format type in distributed exceptions
  • Fix LIKE operator with '%' pattern Fix update of newly created document using variables in a SQL batch script Issue #9000

Distributed

  • Minor improvement on the distributed excpetions messages
  • Add custom serialization for distributed network, that validate links
  • Fixed typo + name of the response node
  • Fixed quorum '0' not reached
  • Added listeners for tracing distributed requests

3.0.23 - 21 August 2019

Changes

Core

  • Improve memory management in case of query abort for exceeded limit of records in ORDER BY
  • Check and set record serializer before save (avoids problems saving records created before the DB was open)
  • Add validation for property value types on OResult
  • Add null check on edge traversal
  • Removed ridbag thread local management, used session instead
  • Add delayed ridbag delete for avoid concurrency issue on read
  • Refactor for use methods that do not use the cache for load the tree on delete
  • Add mark of ridbags to delete to make sure to no leak data on the disk
  • Moved the ridbag delete in the same lock of the ridbag cache

SQL

  • Log query when CREATE EDGE fails
  • Add automatic TX in SQL when deleting vertices
  • Fix CONTAINSANY with subqueries and edge traversal
  • Fix usage of unionAll() as a plain condition in LET blocks Issue #8955

Distributed

  • Add distributed lock unlock in case of crash of distributed operation
  • Re-enabled unlock on timeout for long pending transaction
  • simplified the logic for wait for all partitions before execute a distributed operation
  • Added support for -locks option for distributed lock (HA STATUS)

ETL

  • Add option to ETL command transformer to return input instead of command result (returnInput=true)
  • Fix ETL loader to handle situations where actual data loading is made through SQL
  • Fix ETL Link transformer to let it save the record (fixes cases where you have SQL transformers after LINK transformers)
  • Support new SQL executor in ETL command transformer (with a flag, newSqlExecutor=true, set to false by default for backward compatibility)

3.0.22 - 16 July 2019

Changes

IMPORTANT: This release introduces a new configuration parameter to limit the number of heap objects used for sql ORDER BY operations (ie. ORDER BY that are performed without using an index). The limit is set to 500.000 by default, but it can be changed setting 'query.maxHeapElementsAllowedPerOp' global configuration property (-1 means infinite). If the limit is exceeded, the query is aborted. It is intended as a safeguard against OutOfMemory in case of heavy queries.

Core

SQL

  • Fix reverse traversal of bothE and bothV in MATCH execution Issue #8915
  • Fix usage of fulltext hash indexes in new SQL executor Issue #8693
  • Fix usage of @Class in SQL projections for embedded documents
  • Fix depth-frist TRAVERSE with multiple entry points
  • Fix fetch from RIDs in SQL to properly set $current value
  • Fix temporary ID in CREATE VERTEX query with tx Issue #8949
  • Fix automatic conversion of ridbags and removal from ridbags from SQL
  • Fix PROFILE queries
  • Add global configuration 'query.maxHeapElementsAllowedPerOp' to limit the number of elements allowed for ORDER BY in heap. The default value is set to 500.000, when this limit is reached the query fails.

Distributed

  • add checks to avoid to use distributed instances when the server is running in standalone
  • fixed distributed locking issue in case of exception while transaction processing

3.0.21 - 18 June 2019

Changes

Core

  • Add error log in case of exception during serialization on the network
  • Fixed issue with token renewal
  • Fixed minor push notification issue in case of distributed node disconnection
  • Fix wrong logging on class creation with wrong superclass
  • Minor fix in field raw search encoding

SQL

  • Fix --fix-links on repair database Issue #8897
  • Allow execution of plain SQL functions and expressions as statements in SQL scripts
  • Fix FIND REFERENCES from subquery

Distributed

  • Updated to the last hazelcast hotfix
  • Fixed NPE with Round Robin connection strategy

3.0.20 - 4 June 2019

Changes

Core

  • Fix closing of remote TX when no operations are performed
  • Fefactor of url parsing, removed old push logic not used anymore
  • Fixed issue with autotx in case of lightweight edges
  • Moved the logic of sending push messages on the network outside the push manager lock
  • Disk cache pages are preloaded to provide efficient NUMA distribution

SQL

  • Fix serialization of iterators in result sets (IMPORTANT: Iterator is no longer returned as an OResult property, it is converted to a list instead)

Distributed

  • re-enabled hosts avaibility update on push request also when fetch hosts is off

3.0.19 - 15 May 2019

Changes

Core

  • Fixed edge delete with link instead of linkbag
  • Added ability to exclude clusters and indexes from database comparision
  • Fixed usage of the console in background
  • Added javax.activation dependency for v 11 (and following) compatibility
  • Fixed usage of lightweight edges settings with strict schema for regular edges
  • Do not allow special characters in storage name
  • Fixed STTY in console
  • Fixed client side only index update Issue #8861
  • Fixed fall-back to FileChannel for WAL when native IO is not available

SQL

  • Implemented COMMIT RETRY ELSE {script} AND CONTINUE/FAIL in batch scripts
  • Made SQL script execution consistent with named and positional params
  • Fixed index usage with SELECT * plus other expressions
  • Fix array selection in MATCH statements Issue #8833
  • Fixed invalid close of Lucene indexes Issue #8829 Issue #8832
  • Fixed usage of indexes with CONTAINSTEXT in SQL Issue #8683
  • Allow usage of LET variables as target in SQL queries in batch scripts

Distributed

  • Enhance quorum failure logging (distributed)
  • fixes for concurrent operations from multiple nodes in distributed
  • make sure to retry the right number of times in all the cases, fixed timeout messages
  • allocation of rid now pre allocate some rids on need and reused them because rid allocation is protected by locks
  • fixed wrong retry of the second phase when was applied correctly

JDBC

  • Fixed JDBC connection with OrientDataSource(orientDB, dbName) Issue #8831

Graph (legacy, TinkerPop 2.6)

  • Added new graph factory on TinkerPop 2.6 to use new OrientDB v 3.0 instantiation and pooling capabilities

3.0.18 - 21 March 2019

Changes

Core

  • Forced reload of sequences and functions on remote metadata reload
  • Add internal API to choose cached/not cached execution planning for SQL statements
  • Fix CheckIndexTool with indexes on collections
  • Add test cases for live queries on graph
  • Base implementation for autoclosing storages on timeout
  • Deprecated some not used anymore delete methods
  • Prefetch linked edges and vertices in case of remote delete (performance)
  • DocumentWrapper made serializable back again.

SQL

  • Fix index creation on complex field names Issue #8761
  • Fix array selection on edge traversals in SQL from REST Issue #8778
  • Fix usage of positional parameters in subqueries (aggressive cache) Issue #8809
  • Enable caching of DELETE VERTEX execution plan
  • Fix nested MATCH path evaluations with WHERE conditions
  • Enhance caching of SQL execution plans for scripts and subqueries

Server

  • Fix "missing session and token" after a period of time without interacting with OrientDB issue #8772

Distributed

  • Fix concurrent creation on the same cluster in distributed environment
  • Centralize the management of all set online statements to avoid wrongly blocked requests
  • Removed debug logging from distributed channels
  • Implementation of streamed full incremental backup and made sure that delta sync use the streaming correctly
  • interrupt the sync from the receiver thread in case of connection issues
  • trigger reinstall in case of of network failure on synching a database
  • fixed minor issue in distributed sync logic
  • made sure that the database install works even in case of distributed unlock failure
  • deleted the storage in case of failure of incremental sync

JDBC

  • Add constructor to JDBC OrientDataSource to use OrientDB instance and DB name

General

  • review dependency tree (removed findbugs, javamail, beanshell)

3.0.17 - 7 March 2019

Changes

Core

  • Speedup and fix of new CellBTree indexes

SQL

  • Fix management of invalid RIDs (too high cluster ID) in SQL
  • Fix DELETE EDGE with remote transaction
  • Fix indexed queries with NULL parameters

Distributed

  • Made sure that for locking index keys in distributed we make a copy of them to avoid mutation

3.0.16 - 27 February 2019

Changes

Core

  • Optimize disk cache (increased read buffer size, change of management of dirty entries)
  • Fix index iterator (regression in v 3.0.14-15)
  • Optimize metadata update in remote
  • Fix ClassCastException on hash index

SQL

  • Fix usage of indexes in SQL SELECT when value is a RID Issue #8765
  • Fix NullPointerException on SQL ALTER PROPERTY Issue #8763
  • Fix query execution planning with batch variables and multiple indexes (index union)
  • Fix execution of scripts in distributed environment

Distributed

  • Refactor to make sure to allocate record ids inside lock for guarantee order
  • Make sure that in case of sync request timeout the database stay offline
  • Fixed issue in delta sync with record version management

3.0.15 - 12 February 2019

Changes

Core

  • fixed issue with pool high concurrency when pool run out of resources
  • Implementation of cluster based storage configuration.
  • fixed locking issues on concurrent modification exception when a single node is running in quorum 1
  • CHM based async. cache and WTinyLFU policy are introduced.
  • fixed locking issue on high concurrent transactions on the same records
  • Speed up of allocation of new cache pages

SQL

  • Fix result set serialisation (null OType)
  • Fix order of execution of LET statements in SQL
  • Fix SELECT FROM INDEX from a subquery Issue #8745

REST

  • Add option to disable return of execution plan from REST/JSON Issue #8743

TinkerPop2.x

  • Fix moveToClass() in legacy TinkerPop2 API

3.0.14 - 24 January 2019

Bugs Fixed

SQL

  • Fix nested projections to support *:{*} Issue #8724
  • Fix map() function to be recognised as an aggregate function from new SQL executor Issue #8714
  • Fix equality of DECIMAL values in SQL (scale) Issue #8706

Enhancements

Core

  • Enhanced tree index performance

3.0.13 - 2 January 2019

Bugs Fixed

Studio

SQL

  • Fix keys()/values() methods Issue #8705
  • Fix return of multiple results in batch queries
  • Fix CREATE EDGE to avoid to throw exceptions when vertices do not exist (it was like that already for TO vertices, making the behaviour consistent)

Enhancements

SQL

  • Automatic initialisation of embedded collections on SQL UPDATE Issue #8701
  • Add lazy traversal on MATCH execution Issue #

3.0.12 - 10 December 2018

Bugs Fixed

Core

Console

  • Add checks to avoid wrong db drop from console Issue #8690

SQL

  • Fix decoding of special characters (eg. \n \t ) in SQL strings inside JSON Issue #8681
  • Fix calculation of SQL function parameters, also including context and metadata values (eg. LET values) Issue #8671
  • Fix SQL CONTAINS with lists of lists Issue #8653
  • Fix nested projections on INSERT RETURN statement Issue #8543

JDBC Driver

  • Fix NullPointerException on JDBC getByte() and getBoolean() Issue #8677
  • Fix JDBC ResultSet.wasNull() Issue #8674

Enhancements

Console

  • Add --disable-history to OrientDB console Issue #7890

3.0.11 - 21 November 2018

Bugs Fixed

SQL

  • Fix management of "parent" property names in SQL Issue #8669
  • Support parameters for INSERT with CONTENT Issue #8666
  • Fix NPE on index chain calculation (query execution planning) Issue #8665
  • Fix nested projections with nested star Issue #8662
  • Fix CONTAINS operator on list of maps Issue #8654
  • Fix UPDATE REMOVE with LINKSET and subqueries Issue #8647
  • Fix insert on LINKMAP with subqueries Issue #8646
  • Fix SQL GROUP BY with multiple columns that do not appear in the projections Issue #8625
  • Fix general count() with no matching records in SQL Issue #8621

Console

  • Fix execution of batch scripts in console with "load script" Issue #8627

3.0.10 - 25 October 2018

Bugs Fixed

Core

  • Fix potential non-completed atomic operatios

SQL

  • Fix IndexOutOfBounds on traversedElement() function Issue #8624
  • Enhance MATCHES condition to allow any expression on the right Issue #8612
  • Fix CONTAINS operator on lists of maps Issue #8604
  • Fix .append() method to correctly manage quoted strings Issue #6250

3.0.9 - 15 October 2018

Bugs Fixed

Core

SQL

  • Fix comparison with subqueries Issue #8540
  • Fix usage of LET with indexes Issue #8572
  • Fix NullPointerException on SQL queries with orphaned links Issue #8574
  • Fix UPDATE SET on embedded maps with subqueries Issue #8583
  • Fix execution planning of inner TRAVERSE statements Issue #8592
  • Fix usage of "parent" as a projection name in SQL Issue #8565

Enhancements

HTTP

  • Add actual execution time to SQL query requests Issue #8579

3.0.8 - 27 September 2018

Bugs Fixed

Core

  • Fix JSON array serialization with NULL values Issue #8531

SQL

  • Fix multiple edge creation in BATCH scripts Issue #8444
  • Fix usage of LUCENE indexes with subqueries Issue #8521
  • Fix usage of indexes with subqueries Issue #8528
  • Fix ALTER PROPERTY with "name" to work also without quotes Issue #8541
  • Fix SQL aggregate projections together with back-tick quoted aliases Issue #8544
  • Fix nested SQL INSERT statements Issue #8555
  • Fix query caching problem with nested queries Issue #8563

3.0.7 - 6 September 2018

Bugs Fixed

SQL

3.0.6 - 14 August 2018

Bugs Fixed

Console

SQL

  • Fix usage of indexes on maps by key/value

3.0.5 - 2 August 2018

Bugs Fixed

Console

SQL

3.0.4 - 12 July 2018

Bugs Fixed

SQL

  • Fix usage of $parent and $current in new SQL executor Issue #8383
  • Fix case sensitive cluster names in queries

3.0.3 - 2 July 2018

Bugs Fixed

Core

SQL

  • Fix count() when no records match criteria Issue #8280
  • Fix lazy execution batch scripts in IF statements Issue #8305

Studio

OrientDB Gremlin

Enhancements

SQL

  • FOREACH block in SQL scripts (experimental) details here
  • WHILE block in SQL scripts (experimental) details here
  • negative (NOT) patterns in MATCH statements (experimental) details here

3.0.2 - 5 June 2018

Bugs Fixed

Core

Server

SQL

Object

3.0.1 - 18 May 2018

Enhancements

SQL

Bugs Fixed

Core

SQL

Object database

Distributed

3.0.0 - 9 April 2018

Bugs Fixed

See https://github.com/orientechnologies/orientdb/issues?q=is%3Aissue+milestone%3A3.0.0+is%3Aclosed

Enhancements

  • Lucene upgraded to v 7.3
  • Geospatial module merged to base Lucene module and with the main distribution. The license is now compatible with Apache 2.0

3.0.0-RC2 - 27 February 2018

Bugs Fixed

See https://github.com/orientechnologies/orientdb/issues?q=is%3Aissue+milestone%3A3.0.0-RC2+is%3Acloseda

Enhancements

SQL

  • execution plans are now cached for better performance

3.0.0-RC1 - 18 December 2017

Bugs Fixed

See https://github.com/orientechnologies/orientdb/issues?q=is%3Aissue+milestone%3A3.0.0-RC1+is%3Acloseda

3.0.0-M2

28 July 2017

Functionality Added or Changed

SQL

Lucene

  • New search functions with runtime configuration of query analyzer and query parser behaviour - Issue #7155

  • New More like this - Issue #7408

  • Text highlight with configurable tags - Issue #5191

  • Boost on mutlifield searches cofigurable - Issue #5191

  • Laziness of indexes: when idle the indexes are closed - Issue #7555

  • EE Cross class search function - Issue #5069

JDBC

  • Migrated to new 3.0 API, improvement in field mapping - Issue #7347

DISTRIBUTED

  • Distributed module is now enabled in v M2 (it was still disabled and under review in M1)

Bugs Fixed

3.0.0-M1

For information about what is new and what has changed in OrientDB Release 3.0-M1, please check the Release 3.0 page in the OrientDB documentation.

Clone this wiki locally