Version 3.1.0¶
Released on 2018/08/28.
Note
If you are upgrading a cluster, you must be running CrateDB 2.0.4 or higher before you upgrade to 3.1.0.
We recommend that you upgrade to the latest 3.0 release before moving to 3.1.0.
You cannot perform a rolling upgrade to this version. Any upgrade to this version will require a full restart upgrade.
When restarting, CrateDB will migrate indexes to a newer format. Depending on the amount of data, this may delay node start-up time.
Warning
Tables that were created prior to upgrading to CrateDB 2.x will not function with 3.1 and must be recreated before moving to 3.1.x.
You can recreate tables using COPY TO and COPY FROM while running a
2.x release into a new table, or by inserting the data into a new table.
Before upgrading, you should back up your data.
Table of contents
Changelog¶
Breaking Changes¶
Crash is no longer bundled with the
CrateDBtarball distribution.
Changes¶
Improved performance and memory utilisation for queries against the
systables.Improved performance and memory utilisation for unsorted distributed
GROUP BYand aggregations statements by executing the reduce operation in an incremental way.Improved performance and memory utilisation of
GROUP BYstatements when the key column is a singlestring,byte,short,intorlong.Added a new
CircuitBreakersMXBean for JMX which exposes statistics of all available circuit breakers.Exposed the cluster state version in the
sys.nodestable under thecluster_state_versioncolumn and under theNodeInfoMXBean in JMX.Added a new
ThreadPoolsMXBean for JMX which exposes statistics of all used thread pools.Changed the PostgreSQL wire protocol binary encoding format for
timestampcolumns to use the newerint64format. This will enable compatibility with clients likepgx.Added support for multi line SQL comments, e.g.
/* multi line */.Improved performance of queries using an array access inside the
WHEREclause. E.g.:SELECT * FROM t WHERE int_array_col[1] = 123
Added the full PostgreSQL syntax of the
BEGINstatement and theCOMMITstatement. This improves the support for clients that are based on the PostgreSQL wire protocol, such as the Golanglib/pgandpgxclients. TheBEGINandCOMMITstatements and any of their parameters are simply ignored.Added a new scalar function
ignore3vlwhich eliminates the 3-valued logic of null handling for every logical expression beneath it. If 3-valued logic is not required, the use of this function in theWHEREclause beneath aNOToperator can boost the query performance significantly. E.g.:SELECT * FROM t WHERE NOT IGNORE3VL(5 = ANY(t.int_array_col))
Added a new
ConnectionsMBean for JMX which exposes the number of open connections per protocol.Added a new
connectionscolumn to thesys.nodestable which contains the number of currently open connections per protocol and the total number of connections per protocol opened over the life-time of a node.Added support for
COPY FROM ... RETURN SUMMARYwhich will return a result set with detailed error reporting of imported rows.Added a new
stats.jobs_log_filtersetting which can be used to control what kind of entries are recorded into thesys.jobs_logtable. In addition there is a newstats.jobs_log_persistent_filtersetting which can be used to record entries also in the regular CrateDB log file.Exposed statement classification in
sys.jobs_logtable.Added a
sys.jobs_metricstable which contains query latency information.The setting
es.api.enabledhas been marked as deprecated and will be removed in a future version. Once removed it will no longer be possible to use the Elasticsearch API. Please create a feature request if you’re using the ES API and cannot use the SQL interface as substitute.Introduced the
EXPLAIN ANALYZEstatement for query profiling.Added
typbasetypecolumn to thepg_catalog.pg_typetable.Added support for the
SHOW TRANSACTION_ISOLATIONstatement.Added
TimeZoneparameter response to PostgreSQL Wire Protocol.Extended syntax support for certain
ALTER BLOB TABLE RENAME,REROUTEandOPEN/CLOSEqueries.