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 functions attributeNames and attributeValues to retrieve all attribute names and values for class instances. (3.00.2.2)

  • Added function createCryptoOrderBookEngine for 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 oauthLogin and 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, and stopHeapSample for heap sampling.

  • Added function differentialEvolution to calculate the global minimum of a multivariate function using the Differential Evolution algorithm.

  • Added function irs to calculate the value of an interest rate swap for the party paying the floating rate.

  • Added function vanillaOption to price vanilla options.

  • Added function varma to analyze multivariate time series using a Vector Autoregressive Moving-Average (VARMA) model.

  • Added function garch to model the conditional volatility of univariate time series using the generalized autoregressive conditional heteroskedasticity (GARCH) model.

  • Added function bondCashflow to 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 bondYield to calculate the bond yield of a bond based on its price.

  • Added function createPricingEngine, a financial tool that integrates various valuation and pricing functions, catering to diverse business scenarios, trading varieties, and data frequencies.

  • Added function cds to price the Credit Default Swap (CDS).

  • Added function histogram2d to calculate the two-dimensional histograms for two datasets.

  • Added function kroghInterpolateFit to perform polynomial interpolation for a given set of points.

  • Added function linearInterpolateFit to perform linear interpolation for a given set of points, which supports both interpolation and extrapolation.

  • Added function getRules to 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 createSnapshotJoinEngine to 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 createTimeBucketEngine to 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 getStreamEngineList to 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 jsonExtract to extract and parse JSON elements into the specified data type.

  • The return of function getCurrentSessionAndUse now includes the remote IP address and remote port number of the current session.

  • Added function getLoadedPlugins to get a list of the loaded plugins on the current node.

  • Added function cummdd to 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:

    • getPKEYMetaData to retrieve metadata for all PKEY engine chunks;

    • getPKEYCompactionTaskStatus to report status of pending and completed PKEY level file compaction tasks.

  • Added function constantDesc to 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 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 createCrossSectionalEngine function 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, and piecewiseLinFit:

    • Split the original nss function: nss now uses the NSS model and new ns function 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 createDailyTimeSeriesEngine function:

    • 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 moving higher-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 subscribeTable function now supports user-defined functions or expressions.

  • Added parameter validation for the unsubscribeTable function.

  • Optimized the performance of the getStreamEngineStat function.

  • Added parameter eventTimeField for the createCEPEngine function, allowing the function to handle events (appended by appendEvent) based on event time when useSystem = false.

  • New constraint in enableTablePersistence and enableTableShareAndPersistence: 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 sqlCol and sqlColAlias now support using column alias containing characters other than underscore, letters and digits.

  • The catalog parameter of the setDefaultCatalog function 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 twindow function 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 dropPartition function can no longer be set as empty strings, preventing the deletion of the entire table.

  • The model parameter of the predict function now accepts strings.

  • The poly1d function has been renamed to polyPredict, with poly1d now serving as an alias.

  • Added the mode parameter for the polyFit function to specify whether the output should be a vector or a dictionary.

  • The X parameter of the kroghInterpolate function has been renamed to newX.

  • Refactored functions clip and clip!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 rowWsum function.

  • The aggs parameter of window join now 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 createGPLearnEngine function to specify whether to allow absolute value in fitness calculation for 'pearson', 'spearmanr', or corr fitness 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 stopDataNode function 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 triggerNodeReport function 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 next function.

Issues Fixed

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

  • [D20-2183] Fixed a deserialization error during network transmission if a string was truncated using \0.

  • [D20-7033] Fixed a memory overflow issue during symbol base initialization due to an excessive number of partitions.

  • [D20-7586] Fixed login failure on a compute node which was added to a cluster offline.

  • [D20-17313] Fixed occasional issues where a transaction might be prematurely logged as complete before it actually finished under memory overflow conditions in standalone mode.

  • [D20-18944] Fixed connectivity issues during asynchronous replication where the slave cluster failed to connect to the master cluster after a leader switch.

  • [D20-18974] Fixed an issue where asynchronous replication threads did not terminate when a node was shut down.

  • [D20-17464] Fixed a startup failure caused by corrupted data of persisted stream tables.

  • [D20-18377] Fixed a server crash caused by encapsulating classes into function views.

  • [D20-19180] Fixed an abnormal display of dictionaries containing class instances as values.

  • [D20-18443] Fixed server crashes during login when the workerNum configuration parameter is left empty. The system now logs and reports the error.

  • [D20-18282] Fixed a condition evaluation error where defined is used in the if condition and its argument was defined in the elseblock.

  • [D20-18405] 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.

  • [D20-18503] Fixed server crashes caused by self-referencing dictionaries.

  • [D20-18964] 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.

  • [D20-18495] Fixed a server crash caused by out-of-bounds indices in the at operator.

  • [D20-19016] Fixed an issue where the pnodeRun function did not include the node name in its return value when invoking a function that returned a vector.

  • [D20-18922] Fixed a server crash caused by multiple executions of pnodeRun(setTraceMode{true}).

  • [D20-18979] Fixed a server crash caused by the peach function using stack variables.

  • [D20-18965] Fixed incorrect parsing results of toStdJsonwhen converting dictionaries containing values indicating data types (e.g., DATE).

  • [D20-19012] Fixed inconsistent calculation logic and return types for percentChange(x,1) and percentChange(x) when x is a floating-point number.

  • [D20-18897] Fixed data duplication issues when calculating metrics with subWindowspecified in (daily) time-series engines.

  • [D20-18856] Corrected input arguments for functions cancelRebalanceTask and cancelRecoveryTask.

  • [D20-18786] Fixed an issue where the cumstd function returned 0 when calculating values smaller than 1e-10.

  • [D20-18773] 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.

  • [D20-18735] Fixed an issue where the std, stdp, var, and varp functions did not check for very small numbers, leading to incorrect calculation results. This issue was introduced in version 3.00.0.

  • [D20-18595] Fixed an occasional issue where the kama function produced inconsistent results compared to Python's TA-Lib.

  • [D20-19285] Fixed automatic interpolation in (daily) time-series engines when the value of acceptedDelay is the same as windowSize.

  • [D20-19486] Fixed an issue where daily time-series engines filled time column with "invalid date" after receiving cross-date data in different groups.

  • [D20-16734] Fixed potential data loss in the daily time-series engine after receiving data that spans multiple days.

  • [D20-18977] Fixed slow publishing of streaming data after filter was applied.

  • [D20-19230] Fixed precision loss of DECIMALs when a SQL query filtered on sort columns of a TSDB database.

  • [D20-19153] Fixed an error when calling a member method which contained a WHERE clause with IN conditions after instantiating the class.

  • [D20-18719] Fixed case sensitivity of CONTEXT BY columns in distributed queries.

  • [D20-18549] Fixed an issue where the UPDATE statement failed to swap the values of two columns in an in-memory table.

  • [D20-18479] Fixed an issue where scalars could not be used for matrix assignments in JIT version.

  • [D20-19238] Fixed occasional freezing issues in the Windows JIT version.

  • [D20-19129] Fixed an error when passing a vector to the groupCol parameter of createGPLearnEngine.

Deprecated Features

  • Deprecated LAN license server. Functions getLicenseServerResourceInfo and getRegisteredNodeInfo, and configurations licenseServerSite and bindCores are removed in this release. Please use WAN license server instead.