2.00.7
Available Downloads
Version: 2.00.7 Compatibility Level 1 with 2.00.6
Release Date: 2022-07-14
New Features
-
Added new configuration parameters memLimitOfQueryResult and memLimitOfTaskGroupResult to restrict the memory usage of the intermediate and final results of queries; new function
getQueryStatusto monitor the memory usage and execution status of the query. -
Added new function
getTSDBCompactionTaskStatusto check the status of level file compaction tasks in the TSDB engine. -
Added new functions
isPeakandisValleyto determine if the current element is the peak/valley of the neighboring elements. -
Added new function
rowAt(X, Y). Return the element in each row of X based on the index specified by the corresponding element of Y. -
Added new functions
rowIminandrowImaxto get the index of the extreme value in each row. -
Added new machine learning function
gmmto support Gaussian mixture model (GMM) clustering algorithms. -
Added new function
valueChangedto detect the change between elements by comparing the current element with adjacent elements. -
Added new functions
msum2andtmsum2to calculate the sum of squares in a sliding window. -
Added new functions
prevStateandnextStateto find the element with a different state before/after the current element. (Consecutive elements with the same value are considered to be of the same state.) -
Added new function
getSupportBundle. Return a file of support bundle containing system configuration and database information. -
Added new functions
topRangeandlowRange. For each element in X, return the maximum length of a window to the left of X where it is the max/min. The functions are also supported in the reactive state engine (createReactiveStateEngine). -
Added interpolation functions
spline,neville,dividedDifference, andloess. -
Added new parameter
cumPositiveStreakfor the reactive state engine (createReactiveStateEngine). -
Added new streaming engine dual ownership reactive state engine (
createDualOwnershipReactiveStateEngine) with support for parallel computing of data with 2 grouping methods and different metrics. -
Introduced new table object "IPCInMemoryTable", interprocess in-memory table. Added related functions
createIPCInMemoryTable,loadIPCInMemoryTable,dropIPCInMemoryTableandreadIPCInMemoryTable. Interprocess in-memory table can be used in streaming scenarios to enable efficient data transfer between the DolphinDB server and client on the same machine. -
Added new function
stretchto stretch a vector evenly to the specified length. -
Added new function
getTransactionStatusto get the status of transactions. Added new commandimtForceGCRedologto skip the garbage collection of a transaction with the specified ID. -
Added new module "ops" for database operations. This module contains some commonly-used scripts for operations such as cancelling unfinished jobs in the cluster, viewing disk usage of a DFS table, deleting recovering partitions, closing inactive sessions, etc.
-
Added new function
setLogLevelto dynamically adjust the log level on the current node.
Improvements
-
getClusterPerf(true)returns the information on all controllers in a high-availability cluster. This function also adds a return value isLeader to indicate whether the controller is the leader of the raft group. -
Now when connecting to a controller of a high-availability cluster on the web-based cluster manager, you will be redirected to the leader where information on all nodes are displayed.
-
When using function
restore,loadBackup, orgetBackupMetato access the backup partitions in a database whose chunk granularity is at TABLE level, the physical index is no longer required when specifying the parameter partition. -
Function
getRecoveryTaskStatusadds a new return value FailureReason to display the reason for the recovery task failure. -
Optimized the compression algorithm for
backup. -
If a jobId does not exist when using
cancelJob, the system no longer throws an exception. Instead, it outputs the error message with the jobId to the log. -
Now can specify the configuration parameter persistenWorkerNum for a high-availability stream table.
-
Added new parameter forceTriggerTime to
createSessionWindowEngineto trigger the calculation in the last window if useSystemTime=false. -
When processing standard stream tables with
streamFilter, you can now specify metacode of Boolean expressions for the filter condition. -
You can include the time column and/or join column from the left or right table as the output column(s) in the the parameter metrics of functions
createEqualJoinEngine,createAsofJoinEngineandcreateLookupJoinEngine. -
replaysupports heterogeneous stream tables with columns of array vectors. -
The parameter keyPurgeFilter of
createReactiveStateEnginemust be metacode of Boolean expressions, otherwise an error will be raised. -
The parameter metrics of
createLookupJoinEnginecan be a tuple. -
Optimized the performance of
select count(*)when the time granularity of agroup byclause is more coarse-grained than that of a partition. -
Optimized the performance of querying the latest n records sorted in descending order with the
toporlimitclause. -
Optimized the performance of the following functions when calling function
rolling:cumsum,cummax,cummin,cumprod, andmcount. -
tar.gz file for offline server installation.
-
Renamed the following configuration parameters and functions for the OLAP storage engine and the original names are used as aliases: chunkCacheEngineMemSize to OLAPCacheEngineSize,
purgeCacheEnginetoflushOLAPCache,setCacheEngineMemSizetosetOLAPCacheEngineSize, andgetCacheEngineMemSizetogetOLAPCacheEngineSize. -
Optimized the query performance by 2 times when the
context byclause specifies a partitioning column. -
Added configuration parameter enableDropPartitionSchema to delete the corresponding partitionSchema returned by function
schemaafter callingdropPartition. -
A subscription starts from the latest incoming data if the persisted offset cannot be found.
-
You can specify 00:00:00 for the parameter sessionEnd of function
createDailyTimeSeriesEngineto indicate the end time is 00:00:00 of the next day (i.e., 24:00:00 of the day). -
Function
trueRangecan be used as state function in the reactive state engine. -
The number of rows in the result set of
fjis limited to a maximum of 2 billion rows.
Issues Fixed
-
Garbage collection of redo log got stuck when data was continuously written to an OLAP database.
-
A node was wrongly considered alive by the controller after graceful shutdown.
-
Partition locks were prematurely released due to timeout before a transaction was resolved, which led to write failure.
-
Query conditions were wrongly processed when backing up data by specifying the conditions.
-
Server crashed when the machine load was excessively high.
-
When a cluster was restarted after a DFS table was updated, the original physical directories may not be recycled.
-
Serialization failure of symbol base caused read errors.
-
Streaming subscription failed to obtain data that was in memory but had been deleted from disk.
-
Server crashed when the number of columns inserted by
appendForJoindid not match the table schema of the left or right table of a join engine. -
When the parameter updateTime of function
createSessionWindowEnginewas specified and the output table was not a keyed table, the calculation could not be triggered after 2 * updateTime when a record arrived. -
Server crashed when data was continuously ingested to a daily time series engine after the session end.
-
Failed to create a lookup join engine when the right table was specified as a shared keyed table.
-
If a node was restarted when a stream table was persisted to disk, data loss and decompression failure may occur.
-
Server crashed when specifying a time column (of a big array form) for dateColumn and timeColumn of
replayand setting absoluteRate=false. -
No error was reported when specifying a user-defined function with a constant return value for the metrics of a reactive state engine.
-
Server crashed when specifying temporary variables for metrics of
createAnomalyDetectionEngine. -
Error "The select clause of the query doesn't refer any column." was reported when performing
context byoperations on a DFS table using metaprogramming. -
When using SQL
updatewithcontext by, if the first column was set to integral type and the subsequent columns were set to floating-point types, values in the floating-point columns were rounded. -
Concurrent
pivot byqueries may get stuck with few number of worker threads. -
Server crashed when using
HINT_EXPLAINto query data from a three-level partitioned table. -
Incorrect results when using function
binsrchon a subarray of STRING type. -
Function
castreturned empty when converting a vector of STRING type to a tuple. -
When aggregating multiple INT128 columns of an in-memory table, an error "The function min for reductive operations does not support data type INT128" occurred.
-
getFunctionViewdid not return some function view bodies. -
Incorrect result of applying function
removeHead!to array vectors. -
Server crashed when an empty tuple was appended to itself and then loaded.
-
Server crashed when using
intervalinterpolation in a SQL query, if the granularity of the data type specified for the time range in the where clause is greater than the time granularity specified by the duration parameter ofinterval. -
Server crashed when using the function
twindowin a SQL query. -
updateon a DFS table failed when the set column names did not match the original column names (including case sensitive inconsistencies). -
When the function
iteratewas included in the metrics of a reactive state engine and the data cleaning mechanism was enabled, if data was inserted while the historical data was being cleaned, an error "vector::_M_default_append" was reported. -
When calling
matrix([[datehour(0)],[datehour(0)]])to create a matrix, an error "The data object for matrix function can't be string or any type" was reported. -
When specifying
countNanInffor the parameter aggs of functionwj, an error "An window join function must be an aggregate function" was reported. -
If no group was specified for
createDailyTimeSeriesEngine, any uncalculated data from the previous day would be merged into the first window of the following day. -
The first window's calculation result across days in a daily time series engine was incorrect. Additionally, when the function
fillwas used to fill in NULL values, data outside the session was output. -
Tasks in In-Progress state could not be recovered during online recovery.
-
Server crashed when specifying useSystemTime=true and
modefor metrics ofcreateTimeSeriesEngine. -
When specifying the
tmoveormovefunction for the metrics ofcreateReactiveStateEngine, the server would crash if X was of the STRING or SYMBOL type. -
Incorrect results of function
wjwhen specifyingatImaxoratIminfor aggs. -
Failed to insert data with
tableInsertwhen splitting and assigning a stream table withstreamFilter. -
The insert failure of
streamFiltermay cause session disconnection due to excessively long error messages. -
When specifying function
firstNotorlastNotfor the metrics ofcreateTimeSeriesEngineorcreateReactiveStateEngineand setting fill=`ffill, the output did not match expectations. -
Server crashed when specifying function
mfirstormlastfor the metrics ofcreateReactiveStateEngine, and X was of FLOAT, SHORT, CHAR, BOOL, INT128, STRING, or SYMBOL type. -
Executing function
tableInsertchanged the atomic level of a database from 'CHUNK' to 'TRANS'. -
When specifying tm-functions for the metrics of
createReactiveStateEngineand the window parameter of the function is set to y, M or B, the calculation result was incorrect. -
File descriptor leaked when using the TSDB engine of version 2.00.6 on Windows.
-
Inconsistent STRING columns between replicas after online recovery.
-
When passing TIME type data to index of
resampleand setting origin="end" and rule="D", an error "Invalid value for HourOfDay (valid values 0 - 23): 39" was reported. -
An error was reported when administrators (except the super admin) granted/denied/revoked permissions to themselves.
-
Redo log recycling exception when OOM occurred in TSDB engine.
-
Calculating
iminorimaxwithbyRowon a matrix with an empty row returned incorrect results. -
Function
getControllerPefreturned incorrect agent site when a controller crashed. -
Server crashed when calling
intervalin a SQL query and aggregating the data with a user-defined function. -
When dataSync was not configured, an error occurred when dynamically calling the
addNodefunction to add a node.
