3.00.2
Version: 3.00.2 Compatibility Level 2 with 3.00.1 & 2.00.13
For details, see Compatibility Changes.
Release Date: 2024-10-20
Available Downloads:
New Features
-
Added configuration parameters enableRawScriptLog,rawScriptLogRetentionTime,maxRawScriptLogSize to control raw script logging and set log retention and size limits. Added function
getRawScriptLogto query raw script logs. (3.00.2.6) -
Added function
gmd5androwGmd5to generate MD5 hashes. (3.00.2.4) -
Added parameter mergeLastWindow for function
createDailyTimeSeriesEngineto handle irregular session periods. (3.00.2.4) -
Added configuration parameter maxJoinTaskRetry to specify the maximum retry attempts for a single SQL JOIN task under memory pressure. (3.00.2.4)
-
Added functions
attributeNamesandattributeValuesto retrieve all attribute names and values for class instances. (3.00.2.2) -
Added function
createCryptoOrderBookEnginefor creating crypto order book streaming engines.Added support for the deployment of license servers on the public network. (3.00.2.1) -
Added support for storage-compute separation by configuring compute groups.
-
Added TextDB, a text retrieval database system built on the PKEY storage engine.
-
Added iotDB Engine for management of device nodes.
-
Added support for multi-cluster management, enabling the management of multiple clusters through MoM (Master of Master).
-
Added support for the deployment of license servers on the public network.
-
Added function
oauthLoginand 11 related configuration parameters to support OAuth Single Sign-On (SSO). -
Replaced the memory manager from tcmalloc_minimal with tcmalloc and added functions
startHeapSample,dumpHeapSample, andstopHeapSamplefor heap sampling. -
Added function
differentialEvolutionto calculate the global minimum of a multivariate function using the Differential Evolution algorithm. -
Added function
irsto calculate the value of an interest rate swap for the party paying the floating rate. -
Added function
vanillaOptionto price vanilla options. -
Added function
varmato analyze multivariate time series using a Vector Autoregressive Moving-Average (VARMA) model. -
Added function
garchto model the conditional volatility of univariate time series using the generalized autoregressive conditional heteroskedasticity (GARCH) model. -
Added function
bondCashflowto calculate the cash flow for a bond with a face value of 100. -
Added function
maxDrawdown(alias:mdd) to calculate the maximum drawdown or the maximum drawdown rate of the input vector. -
Added function
bondYieldto calculate the bond yield of a bond based on its price. -
Added function
cdsto price the Credit Default Swap (CDS). -
Added function
histogram2dto calculate the two-dimensional histograms for two datasets. -
Added function
kroghInterpolateFitto perform polynomial interpolation for a given set of points. -
Added function
linearInterpolateFitto perform linear interpolation for a given set of points, which supports both interpolation and extrapolation. -
Added function
getRulesto get the rules of the specified rule engine. -
Added the following functions for stream tables:
-
enableTableShareAndCachePurge: Shares a stream table and enables cache purge without persisting the table to disk. -
enableTableCachePurge: Enables cache purge for a stream table without persisting the table to disk. -
getStreamTableCacheOffset: Gets the number of records that have been purged from cache.
-
-
Added function
createSnapshotJoinEngineto create a snapshot join engine for streaming data, which performs joins triggered by the latest data from the left and right tables and calculates metrics. -
Added function
createTimeBucketEngineto create a time-series engine with one or more custom-length windows. -
Added function
latestKeyedStreamTableto create a keyed stream table with a time column, which determines whether to insert records. -
Added function
getStreamEngineListto get information about all streaming engines on the current node. -
Added configuration parameter TSDBVectorIndexCacheSize to set the cache size of the vector indexes in the TSDB engine.
-
Added support for logging into an agent node in non-HA clusters.
-
Added function
jsonExtractto extract and parse JSON elements into the specified data type. -
The return of function
getCurrentSessionAndUsenow includes the remote IP address and remote port number of the current session. -
Added function
getLoadedPluginsto get a list of the loaded plugins on the current node. -
Added function
cummddto calculate the cumulative maximum drawdown or maximum drawdown rate. It can be used as the state function for the reactive state engine. -
Added PKEY engine maintenance functions:
-
getPKEYMetaDatato retrieve metadata for all PKEY engine chunks; -
getPKEYCompactionTaskStatusto report status of pending and completed PKEY level file compaction tasks.
-
-
Added function
constantDescto provide a description of an object. -
Added function
memberModify!to modify the member(s) of a tuple or ANY dictionary. -
Added configuration parameter slaveReplicationDBScope to specify which databases to replicate from the master cluster in asynchronous replication.
Improvements
-
The value of configuration parameter subThrottle is now automatically adjusted to 1 if a value smaller than 1 is set. (3.00.2.6)
-
Improved the error message thrown when an alias is used for a GROUP BY field in the SELECT clause. (3.00.2.6)
-
The
licensefunction supports retrieving the module name Beluga. (3.00.2.6) -
Improved error handling in distributed queries when comparing CHAR constants with STRING partitioning columns in the WHERE clause. The system now raises an error message. (3.00.2.5)
-
Added support for partition pruning when modifying data in partitioned DFS tables with the UPDATE/DELETE statement. (3.00.2.5)
-
Optimized the handling logic for restoring from the backed up with SQL statements: when the partitioning schemes of the backup table and the target database are identical, the required partitions are now automatically added before restoration. (3.00.2.5)
-
Added parameter mergeSessionfor function
createDailyTimeSeriesEngine. (3.00.2.5) -
Enhanced storage-compute separation features: (3.00.2.5)
-
Supported specifying multiple cache directories for a compute node.
-
The maximum memory cache size on compute nodes is now specified in GB instead of MB.
-
Supported automatic flushing of memory cache to disk after graceful shutdown.
-
Added function
getComputeNodeCacheDetailsto obtain detailed cache information on the current node. -
Added new parameters database and table for function
clearComputeNodeCacheto clear the memory and disk cache of specified database/table. -
Enabled compression of disk cache compute nodes.
-
-
Enhanced the
DELETEstatement performance. (3.00.2.5) -
Added supported specifying both window=0:0 and maxDelayedTime simultaneously in
createWindowJoinEngine. (3.00.2.5) -
Added support for declaring array vector member variables in class definitions. (3.00.2.5)
-
Added support for backup and restore of empty tables in an IOTDB database. (3.00.2.5)
-
Added support for hyphens in usernames. (3.00.2.5)
-
Enhanced the functionality of the
bondCashflowfunction, and standardized its interface definition. (3.00.2.5) -
Enhanced the performance of queries containing the
TOPkeyword. (3.00.2.4) -
Enhanced the system security. (3.00.2.4)
-
Enhanced the stability of batch job execution under high-load and high-concurrency scenarios. (3.00.2.4)
-
Added the recording of operations on the persisted MVCC table to the log. (3.00.2.4)
-
Added the “updateTime” field to the backup log file. (3.00.2.4)
-
Optimized the query performance for VALUE-partitioned TSDB databases when filtering on partitioning columns. (3.00.2.4)
-
Improved memory efficiency when processing speed is slow. (3.00.2.2)
-
The PKEY engine's bloomfilter index now supports the following types: TEMPORAL, BINARY, and COMPLEX. (3.00.2.2)
-
Optimized the performance of IOTDB engine when performing aggregate calculations in distributed queries. (3.00.2.2)
-
Added new parameter updatedContextGroupsOnly to the
createCrossSectionalEnginefunction for calculating the groups with updates since the last output. (3.00.2.2) -
Optimized the time series engine: (3.00.2.2):
-
When useSystemTime=false, acceptedDelay can now exceed windowSize.
-
Optimized memory usage when the following conditions are met:
-
windowSize is set as a scalar.
-
windowSize and step have the same value.
-
acceptedDelay > 0.
-
useSystemTime = false.
-
keyColumn is not empty.
-
-
-
Improved memory efficiency when processing speed is slow. (3.00.2.2)
-
Updated the trading calendar. (3.00.2.2)
-
Optimized performance and stability for IOTDB storage engine. (3.00.2.1)
-
Enhanced stability for storage-compute architecture. (3.00.2.1)
-
The following configuration parameters are enabled by default: enableDFSQueryLog, enableAuditLog, and datanodeRestartInterval.
-
Enhancements to curve fitting functions
nss,ns, andpiecewiseLinFit:-
Split the original
nssfunction:nssnow uses the NSS model and newnsfunction implements the NS model. Their maturtity parameter can be set as 0. -
Expanded algorithm options for the method parameter, including 'nm', 'bfgs', 'lbfgs', 'slsqp' or 'de'.
-
Introduced additional parameters for optimal fit, such as maxIter, initialGuess, bounds, seed.
-
Optimized the performance of
piecewiseLinFit.
-
-
Enhanced the
createDailyTimeSeriesEnginefunction:-
It can now include the last window of a session in its output, even if this window contains fewer data records than the specified window size.
-
Added parameter keyPurgeDaily to determine if existing data groups are automatically removed when newer data from a subsequent calendar day is ingested.
-
The calculation of daily time series engine now can be triggered by each incoming record with updateTime = 0.
-
-
When using the
movinghigher-order function in a reactive state engine, its func parameter now supports functions returning tuples. -
The cross sectional engine can now accept array vector inputs.
-
The filter parameter of the
subscribeTablefunction now supports user-defined functions or expressions. -
Added parameter validation for the
unsubscribeTablefunction. -
Optimized the performance of the
getStreamEngineStatfunction. -
Added parameter eventTimeField for the
createCEPEnginefunction, allowing the function to handle events (appended byappendEvent) based on event time when useSystem = false. -
New constraint in
enableTablePersistenceandenableTableShareAndPersistence: cacheRetentionTime must be less than cachePurgeInterval. -
The PKEY engine now supports vector indexing.
-
Improved query efficiency for the PKEY engine by enhancing its deduplication process.
-
Functions
sqlColandsqlColAliasnow support using column alias containing characters other than underscore, letters and digits. -
The catalog parameter of the
setDefaultCatalogfunction now can be set as an empty string ““, indicating that no default catalog is used. -
Added a log when users are reset to guest status after session disconnection.
-
The prevailing parameter of the
twindowfunction now accepts 0, 1, or 2. When range's left boundary is 0, window starts at current row, excluding prior duplicates, and vise versa. -
The partitionPaths parameter of the
dropPartitionfunction can no longer be set as empty strings, preventing the deletion of the entire table. -
The model parameter of the
predictfunction now accepts strings. -
The
poly1dfunction has been renamed topolyPredict, withpoly1dnow serving as an alias. -
Added the mode parameter for the
polyFitfunction to specify whether the output should be a vector or a dictionary. -
The X parameter of the
kroghInterpolatefunction has been renamed to newX. -
Refactored functions
clipandclip!as scalar functions. -
The
rename!function now supports indexed matrices and series. -
Enhanced the efficiency of accessing member variable in object-oriented programming.
-
Implemented parallel processing for queries on single or joined in-memory tables when specified SELECT column conditions are met.
-
Implemented parallel processing for GROUP BY operations on in-memory tables with: a. over 10 million rows; b. use of specific aggregate functions.
-
LEFT, FULL, and EQUI JOINs now utilize parallel processing and hash join algorithms.
-
PIVOT BY queries now support the
rowWsumfunction. -
The aggs parameter of
window joinnow supports expressions. -
Removed print length restriction for
getJobMessage. It now returns complete output without truncation. -
Enhanced the error message for error code S06005 with overwritten function name included.
-
Loading DFS tables is no longer permitted on controllers.
-
The default value of maxConnectionPerSite has increased from 2 to 64 to reduce deadlock risk from insufficient number of available workers.
-
Added parameter useAbsFit for the
createGPLearnEnginefunction to specify whether to allow absolute value in fitness calculation for 'pearson', 'spearmanr', orcorrfitness functions (fitnessFunc). -
Optimized the performance for data queries within the TSDB cache engine.
-
Optimized the performance for queries involving where conditions with IN clauses on STRING type columns.
-
The shutdown process has been optimized as follows:
-
The
stopDataNodefunction is now implemented asynchronously. -
The disableCoreDumpOnShutdown configuration parameter now defaults to true.
-
-
Added validation for metadata recovery on controller.
-
Added validation when adding nodes with
addNode. -
The
triggerNodeReportfunction now is supported in standalone mode. -
JIT backtesting engine has been updated to display class attributes and their corresponding values when printing class instances in callback function.
-
JIT now supports temporal types, including SECOND, MINUTE, DATE, MONTH, DATETIME, DATEHOUR, TIMESTAMP, NANOTIME, NANOTIMESTAMP.
-
JIT now supports the
nextfunction.
Issues Fixed
-
Fixed an issue where closing an abnormal subscription connection on the publisher side left a lock unreleased when other active subscriptions existed, blocking new subscriptions. (3.00.2.6)
-
Fixed server crashes caused by dropping a local table (using
drop table) that shares the same name with a variable shared from another session. (3.00.2.6) -
Fixed server crashes caused by the concurrent execution of
shareandexistsStreamTableon the same stream table. (3.00.2.6) -
Fixed an issue where the connection to the publishing node in cross-node subscription scenarios did not use the user information from XDB for login. (3.00.2.6)
-
Fixed server crashes caused by revoking table-related permissions with objs specified as a database object. (3.00.2.6)
-
Fixed an issue where queries using user-defined aggregation functions combined with
intervalgrouping returned empty results. (3.00.2.6) -
Fixed an issue where null values in the results returned by
eig().valuescould not be properly filled. (3.00.2.6) -
Fixed an issue where the
vectorARfunction failed on certain valid inputs. The behavior is now aligned with the Python implementation. (3.00.2.6) -
Fixed a node hang issue caused by stream table persistence blocking all worker threads. (3.00.2.6)
-
Fixed a missing reconnect issue caused by stale subscription state. (3.00.2.6)
-
Fixed an issue where concurrent subscribe and unsubscribe operations on the same topic caused inconsistent subscription state. (3.00.2.6)
-
In the time-series engine, the
nunique,ifirstNot, andilastNotfunctions specificed in the metrics argument now support expressions and nested functions as arguments. (3.00.2.5) -
Fixed an error for queries on tables in TSDB databases when a sort column was specified as a GROUP BY column and the
nuniquefunction was specified in the SELECT statement with parameters of type STRING or SYMBOL. (3.00.2.5) -
Fixed server crashes caused by using UPDATE/DELETE with WHERE EXISTS. Now it raises an error instead. (3.00.2.5)
-
Fixed incorrect prompt message shown after password expiration when
enhancedSecurityVerificationis enabled. (3.00.2.5) -
Fixed server crashes caused by using UPDATE/DELETE with WHERE EXISTS. Now it raises an error instead. (3.00.2.5)
-
Fixed server crashes caused by cache allocation failure in the OLAP proxy storage engine of the storage-compute separation architecture. (3.00.2.5)
-
Fixed server crashes caused by invalid parameters passed to
sqlColAlias. (3.00.2.5) -
Fixed an issue where using the ols function with PIVOT BY on in-memory tables involving multiple groups could cause the error: “The number of observations must be more than the number of factors.” (3.00.2.5)
-
Fixed an error that occurred when inserting array vectors into the cross-sectional engine if the triggeringPattern was set to "perRow". (3.00.2.5)
-
Fixed server crashes when the dummyTable specified in
createRuleEnginecontained a SYMBOL column. (3.00.2.5) -
Fixed incorrect JSON serialization of DECIMAL32 values in the
toStdJsonfunction. (3.00.2.5) -
Fixed occasional hangs on the web client when executing code if the response data size is between 4050 and 4060 bytes. (3.00.2.5)
-
Fixed the issue where the server entered an infinite loop when executing
decimalFormat(0, '0.00E0'). (3.00.2.5) -
Fixed an error where SQL queries failed if they contained both a user-defined aggregate function returning multiple values and a GROUP BY clause with
interval. (3.00.2.5) -
Fixed the issue where the “lastUpdated” field in the controller metadata could be null after restoring from a backup that was created immediately after a restart without any data updates. (3.00.2.5)
-
Fixed occasional server crashes when executing SQL queries containing the DISTINCT statement. (3.00.2.5)
-
Fixed an issue where accelerated replay within a specified time range failed to run at the configured speed when replaying heterogeneous stream tables. (3.00.2.5)
-
Fixed memory leaks caused by transactions with excessively large transaction IDs (greater than 2³¹ – 1) that could not be properly reclaimed. (3.00.2.5)
-
Fixed incorrect results when performing GROUP BY with
intervalon large datasets. (3.00.2.5) -
Fixed an issue where
fromStdJsonfailed to parse JSON strings containing empty objects with closing braces on a new line. (3.00.2.5) -
Fixed the precision errors of DECIMALs when OLAPCacheEngineSize=0 was configured. (3.00.2.4)
-
Fixed server crashes caused by the excessively large result generated by a cross join. (3.00.2.4)
-
Fixed server crashes when appending an empty table to a keyed stream table. (3.00.2.4)
-
Fixed the errors that occurred when the
GROUP BYclause contained theintervalfunction and theSELECTclause contained aggregate functions returning multiple values. (3.00.2.4) -
Fixed server crashes that occurred when queries with
lead/laganalytic functions were executed in MySQL syntax mode. (3.00.2.4) -
Fixed occasional incorrect results returned by the
maxfunction when the SQL statement contained agroup byclause and themaxfunction was applied to STRING columns. (3.00.2.4) -
Fixed the issue causing incorrect results in a function view after server restarts when the view included CROSS JOIN (ANSI SQL compliant) combined with other types of table joins. (3.00.2.4)
-
Fixed a memory leak when calling a user-defined recursive function. (3.00.2.4)
-
Fixed a "unrecognized column name" error that occurred when executing a multi-table JOIN query, if some partitions were offline due to node failures in the cluster. (3.00.2.4)
-
Fixed a "unrecognized column name" error that occurred when executing a multi-table JOIN query, if some partitions were offline due to node failures in the cluster. (3.00.2.4)
-
Fixed an issue in heterogeneous replay where data sources (generated by
replayDSwith timeRepartitionSchema specified) were replayed in a disordered manner. (3.00.2.4) -
Fixed occasional server crashes when the X and Y of the
corrfunction were tables with different numbers of columns. (3.00.2.4) -
Fixed misleading error messages returned when table joins encountered more than 2,097,152 unique values in a SYMBOL column. (3.00.2.4)
-
Fixed server crashes caused by concurrent writes to an in-memory keyed table. (3.00.2.4)
-
Fixed server crashes caused by concurrent disk reads in the TSDB engine due to missing filter conditions in
pivot byafter partition pruning. (3.00.2.4) -
Fixed server crashes caused by appending a partitioned DFS table to another. The system now reports an error for such case. (3.00.2.4)
-
Fixed an error when deleting column(s) from a keyed table if any column name contains uppercase letters. (3.00.2.4)
-
Fixed an issue where column names could not be specified as uppercase when creating an IMOLTP table. (3.00.2.4)
-
Fixed an issue in high-availability clusters where an existing table handle could not access data from newly added partitions without obtaining a new handle (reloading table via
loadTable). (3.00.2.4) -
Fixed server crashes when querying a keyed or indexed table with multiple primary key columns, where the filter condition contained an empty SYMBOL vector. (3.00.2.4)
-
Fixed an error that occurred during log replay of cluster restart when the scale of DECIMAL data written to a TSDB database exceeded the scale set in schema. (3.00.2.2)
-
Fixed server crashes caused by inserting data with incompatible key column types into a keyed table. This issue was introduced in versions 2.00.11.1/1.30.23.1. (3.00.2.2)
-
Fixed the following issues with the
createCrossSectionalEngine(3.00.2.2):-
The number of aliases specified in metrics was less than the number of returned columns, causing the server to crash.
-
When both contextByColumn and keyFilter were specified, the function specified in keyFilter was called twice.
-
-
Fixed an error in the asof join engine where the timeColumn was a vector specifying for both the left and right tables, but only the right table's time column was included in the metrics. (3.00.2.2)
-
Fixed occasional crashes due to concurrent writes to a shared table when when its alias was specified as the output table of a streaming engine.(3.00.2.2)
-
Fixed server crashes caused by concurrent writes to stream tables containing array vectors. (3.00.2.2)
-
Fixed errors when accessing array vectors returned by functions through index in distributed queries. This issue was introduced in versions 3.00.2. (3.00.2.2)
-
Fixed occasional errors of missing column references during table joins caused by system modifications to variable names in subqueries. (3.00.2.2)
-
Fixed an error caused by referencing local variables in table joiner functions (e.g.,
lj). This issue was introduced in versions 3.00.2. (3.00.2.2) -
Fixed an error that occurred when the last column specified in PIVOT BY was a partitioning column and the queried data volume was excessively large. (3.00.2.2)
-
Fixed a deserialization error during network transmission if a string was truncated using
\0. -
Fixed a memory overflow issue during symbol base initialization due to an excessive number of partitions.
-
Fixed login failure on a compute node which was added to a cluster offline.
-
Fixed occasional issues where a transaction might be prematurely logged as complete before it actually finished under memory overflow conditions in standalone mode.
-
Fixed connectivity issues during asynchronous replication where the slave cluster failed to connect to the master cluster after a leader switch.
-
Fixed an issue where asynchronous replication threads did not terminate when a node was shut down.
-
Fixed a startup failure caused by corrupted data of persisted stream tables.
-
Fixed a server crash caused by encapsulating classes into function views.
-
Fixed an abnormal display of dictionaries containing class instances as values.
-
Fixed server crashes during login when the workerNum configuration parameter is left empty. The system now logs and reports the error.
-
Fixed a condition evaluation error where
definedis used in theifcondition and its argument was defined in theelseblock. -
Fixed an issue in keyed tables where identical key values were mistakenly identified as different values if the inserted data type of the key column(s)did not match the table schema.
-
Fixed server crashes caused by self-referencing dictionaries.
-
Fixed an issue with nested dictionaries where adding a new key-value pair to an inner dictionary also added the same key-value pair to the outer dictionary.
-
Fixed a server crash caused by out-of-bounds indices in the
atoperator. -
Fixed an issue where the
pnodeRunfunction did not include the node name in its return value when invoking a function that returned a vector. -
Fixed a server crash caused by multiple executions of
pnodeRun(setTraceMode{true}). -
Fixed a server crash caused by the
peachfunction using stack variables. -
Fixed incorrect parsing results of
toStdJsonwhen converting dictionaries containing values indicating data types (e.g., DATE). -
Fixed inconsistent calculation logic and return types for
percentChange(x,1)andpercentChange(x)when x is a floating-point number. -
Fixed data duplication issues when calculating metrics with subWindowspecified in (daily) time-series engines.
-
Corrected input arguments for functions
cancelRebalanceTaskandcancelRecoveryTask. -
Fixed an issue where the
cumstdfunction returned 0 when calculating values smaller than 1e-10. -
Fixed an issue where subscriptions created via the Python client could not be canceled with
unsubscribeTable. This issue was introduced in version 3.00.1. -
Fixed an issue where the
std,stdp,var, andvarpfunctions did not check for very small numbers, leading to incorrect calculation results. This issue was introduced in version 3.00.0. -
Fixed an occasional issue where the
kamafunction produced inconsistent results compared to Python's TA-Lib. -
Fixed automatic interpolation in (daily) time-series engines when the value of acceptedDelay is the same as windowSize.
-
Fixed an issue where daily time-series engines filled time column with "invalid date" after receiving cross-date data in different groups.
-
Fixed potential data loss in the daily time-series engine after receiving data that spans multiple days.
-
Fixed slow publishing of streaming data after filter was applied.
-
Fixed precision loss of DECIMALs when a SQL query filtered on sort columns of a TSDB database.
-
Fixed an error when calling a member method which contained a WHERE clause with IN conditions after instantiating the class.
-
Fixed case sensitivity of CONTEXT BY columns in distributed queries.
-
Fixed an issue where the UPDATE statement failed to swap the values of two columns in an in-memory table.
-
Fixed an issue where scalars could not be used for matrix assignments in JIT version.
-
Fixed occasional freezing issues in the Windows JIT version.
-
Fixed an error when passing a vector to the groupCol parameter of
createGPLearnEngine.
Deprecated Features
-
Deprecated LAN license server. Functions
getLicenseServerResourceInfoandgetRegisteredNodeInfo, and configurations licenseServerSite and bindCores are removed in this release. Please use WAN license server instead.
