3.00.4

Version: 3.00.4   Compatibility Level 2 with 3.00.3

For details, see Compatibility Changes.

Release Date: 2025-09-05

Available Downloads:

New Features

  • Added new function bondInstrumentCalculator to perform mutual conversion among a bond's yield to maturity, clean price, and dirty price. (3.00.4.1)
  • Added support for the HTTP protocol in Single Sign-On (SSO). (3.00.4.1)
  • Added new configuration parameter maxRecursiveDepth to set maximum recursive depth. (3.00.4.1)
  • Added function histogram for computing the histogram of a dataset. (3.00.4.1)
  • Added FICC-related functions to retrieve the corresponding member values ​​of instruments. (3.00.4.1)
  • Added support for instruments of UserDefined productType. (3.00.4.1)
  • Added function bondYieldCurveBuilder for building bond yield curves (bootstrapping spot rates from yields to maturity).
  • Added function irSingleCurrencyCurveBuilderfor building a single-currency interest rate swap yield curve.
  • Added function irCrossCurrencyCurveBuilder for building cross-currency interest rate swap (implied foreign currency) yield curves.
  • Added function fxVolatilitySurfaceBuilder for building FX option volatility surfaces.
  • Added function bondPricer for pricing an individual bond.
  • Added function bondFuturesPricer for pricing bond futures contracts.
  • Added function irDepositPricer for pricing deposits.
  • Added function irFixedFloatingSwapPricer for pricing plain-vanilla interest rate swaps.
  • Added function fxForwardPricer for pricing FX forward contracts.
  • Added function fxSwapPricer for pricing FX swaps.
  • Added function fxEuropeanOptionPricer for pricing FX European options.
  • Added function instrumentPricer for batch pricing of financial contracts.
  • Added function portfolioPricer for portfolio pricing of financial contracts.
  • Added function parseInstrument for serializing financial contracts into INSTRUMENT objects.
  • Added function parseMktData for serializing market data into MKTDATA objects.
  • Added function extractInstrument for deserializing INSTRUMENT objects.
  • Added function extractMktData for deserializing MKTDATA objects.
  • Added function curvePredict for predicting values at specified times on a given curve.
  • Added function optionVolPredict for predicting volatilities at specified times and strikes on a given volatility surface.
  • Added functions StreamGraph::updateRule and StreamGraph::deleteRule for persistent rule updates in the Orca rule engine.
  • Added function DStream::udfEngine for creating UDF engines with side-effect and state persistence support.
  • Added function getUdfEngineVariable to query external variable values defined in DStream::udfEngine.
  • Added function getOrcaDataLineage for querying data lineage of stream graph tables and Orca time-triggered job information.
  • Added functions createNearestJoinEngine and DStream::nearestJoinEngine for creating nearest-neighbor join engines in stream computing.
  • Added function StreamGraph::dropGraph for dropping stream graphs.
  • Added functions startStreamGraph and stopStreamGraph for controlling stream graph execution.
  • Added functions createOrcaStreamTable, createOrcaKeyedStreamTable, createOrcaLatestKeyedStreamTable, createOrcaHaStreamTable, and createOrcaHaKeyedStreamTable for creating Orca stream tables without stream graphs.
  • Added function dropOrcaStreamTable for dropping Orca stream tables.
  • Added streaming SQL for continuous querying and real-time updates.
  • Added function roll for defining custom sliding windows.
  • Added functions addMCPTool, updateMCPTool, dropMCPTool, callMCPTool, listMCPTools, publishMCPTools, and withdrawMCPTools for MCP tool development and management.
  • Added functions addMCPPrompt, updateMCPPrompt, dropMCPPrompt, listMCPPrompts, getMCPPrompt, publishMCPPrompts, and withdrawMCPPrompts for MCP prompt template management.
  • Added new permissions: MCP_MANAGE, MCP_DEVELOP, and MCP_EXEC.
  • Added function getClusterVolumeUsage for checking disk usage across cluster nodes.
  • Added functions getIPConnectionLimit and setIPConnectionLimit for managing external connections by IP.
  • Added functions getExecDir and getWorkDir for retrieving the dolphindb executable directory and working directory.
  • Added function getRawScriptLog for querying raw script logs.
  • Added configuration parameters enableRawScriptLog, rawScriptLogRetentionTime, maxRawScriptLogSize for logging raw scripts and execution details.
  • Added configuration parameter enableSharedVarCreationControl for controlling whether users can create shared variables.
  • Added configuration parameter processVectorFunctionOverTupleByRow for controlling how vector functions are applied to tuples/dictionaries.
  • Added configuration parametersstreamingRaftLearners and crossClusterRaftWorkerNum for configuring Raft learner nodes.
  • Added configuration parameter streamingRaftGroupAliases for assigning aliases to Raft groups.
  • Added snapshot mechanism support with parameters snapshotDir and snapshotIntervalInMsgCount in createTimeBucketEngine, createNarrowReactiveStateEngine, createCryptoOrderBookEngine, createOrderBookSnapshotEngine, createRuleEngine, and createReactiveStatelessEngine.
  • Added function dropDataViewEngine for removing specific data view engines in CEP.
  • Added function matchFuzzy for fuzzy matching queries.
  • Added support for text vectorization .
  • Added function createExternalTable for creating external tables.
  • Added support for table joins in MoM cluster.
  • Added function semiannualBegin and semiannualEnd for retrieving the first and last day of the semiannual period.
  • Added function recursiveSplitText for recursive text splitting by delimiters.
  • Added function renameCatalogName for renaming the name part of fully qualified names.

Improvements

  • createCrossSectionalEngine supports processing columnar tuples. (3.00.4.1)
  • Enhanced the startup process of the licenseServer client to support authentication and startup via the standby server when the primary server is unavailable. (3.00.4.1)
  • Improved error messages in stream graphs when output data has inconsistent schemas.
  • Extended getStreamGraphInfo to include engine metric information.
  • Extended StreamGraph::haSource, StreamGraph::haKeyedSource, DStream::haBuffer, DStream::haKeyedBuffer, DStream::haSink, and DStream::haKeyedSink: parameter raftGroup now supports Raft group IDs.
  • Extended subscribeTable to support cross-cluster subscription of Orca stream tables.
  • Added support for managing permissions on Orca stream tables.
  • Added parameter includeTables to dropStreamGraph to control whether Orca stream tables inside the graph are also dropped.
  • Added parameter dimReduceCol to createGPLearnEngine to enable downsampling factor mining.
  • Shark Graph now supports the operators rowAvg, rowSkew, rowVar, rowVarp, rowStd, and rowStdp.
  • Optimize disk management mechanism.
  • Improved performance of min/max queries on partition columns of TIMESTAMP type when partitioned by day with VALUE partitioning.
  • Optimized partition pruning to improve performance of queries such as select * from t where id in ids when ids is a TABLE.
  • Improved query performance on VALUE partitioned tables with < or <= filters on partition columns.
  • Improved system performance under high concurrency.
  • Optimized script engine for better expression execution performance.
  • Added support for NANOTIMESTAMP type in the eventTime column of dummyTable for createCryptoOrderBookEngine.
  • Enhanced license function to return additional module and product names: Beluga, Backtest, MatchingEngineSimulator, ORCA, DOLPHINX.
  • Added parameter stat to function getStreamingStat for specifying which status table to return.
  • Added parameter preserveOrder to sliceByKey to control whether results follow the order of rowKeys.
  • Added parameter scoreColName for retrieving text match scores.
  • Added parameter Y to log to specify the logarithm base.
  • Extended at to support integer vectors as parameter X.
  • The outputTables parameter of the replay function now supports stream tables with a timestamp column specified by setStreamTableTimestamp.
  • The handler parameter of the addEventListener function now supports invoking functions outside the monitor class.
  • Extended reverse to support in-memory tables and ordered dictionaries.
  • Binary operations are supported for types of dictionary and tuple.
  • Extended createTimeSeriesEngine and createDailyTimeSeriesEngine to support scalar or vector constants for the metrics parameter.
  • Extended rank and enlist to support dictionaries.
  • Improved dropStreamEngine to forcibly terminate background threads when releasing stream distribution engines.
  • Optimized getConsoleJobs to provide clearer jobType and desc information.
  • Extended parseJsonTable to support parsing arrays in JSON.
  • Added parameter validation to create table.
  • Extended loadText toparse
    • TIME/SECOND/NANOTIME types into TIME/NANOTIME types.
    • DATETIME/TIMESTAMP types into NANOTIMESTAMP type.

Issues Fixed

  • Fixed an issue where the integral function failed when the integration bounds were set to NULL in double integral calculations. (3.00.4.1)
  • Fixed server crashes that could occur when an empty data source was passed to the mr function due to missing input type validation. (3.00.4.1)
  • Fixed server crashes that could occur when a user-defined class method was misused in the metrics of createReactiveStateEngine. (3.00.4.1)
  • Fixed an issue in high-availability cluster where followers failed to shut down properly when the controllers was configured with lanCluster=0. (3.00.4.1)
  • Fixed an issue where submitting multiple tasks concurrently could occasionally trigger a scheduling anomaly, causing the system to become unresponsive. (3.00.4.1)
  • Fixed an issue in high-availability cluster where concurrent getClusterPerf executions from multiple controllers exceeding the number of available worker threads could cause the system to become unresponsive. (3.00.4.1)
  • Fixed occasional errors when the stream subscription contains data of type ANY. (3.00.4.1)
  • Fixed an issue where cached data was not properly cleared when a subscription was terminated by disconnection instead of using unsubscribe, causing the number of rows in tables managed by enableTableShareAndCachePurge to exceed the configured cacheSize limit. (3.00.4.1)
  • Fixed an issue where SQL aggregation operations could occasionally cause the server to crash. (3.00.4.1)
  • Fixed an issue where memory usage returned by getUserHardwareUsage could be incorrect (negative) due to erroneous automatic type conversion. This issue was introduced in version 2.00.15. (3.00.4.1)
  • Fixed an error when a line break was followed by an operator at the beginning of the line in a SQL statement. (3.00.4.1)
  • Fixed an issue where excessive logging after partition updates in the TSDB engine could cause log files to grow rapidly and fill up disk space. This issue was introduced in version 2.00.15. (3.00.4.1)
  • Fixed server crashes where inserting an empty vector into a stream table with a timestamp column set by setStreamTableTimestamp. (3.00.4.1)
  • Fixed memory leaks caused by querying tables if a GROUP BY column in an aggregate computation was of BLOB type. This issue was introduced in version 2.00.11. (3.00.4.1)
  • Fixed an issue when subscribing to a stream table with subscribeTable, if the function specified in the filter parameter produced an output schema inconsistent with the input stream table, the system neither outputs data nor reports an error. (3.00.4.1)
  • Fixed an issue where the system could hang when writing to TSDB Database if the number of symbols exceeded the limit. (3.00.4.1)
  • Enhanced Configuration Access Security: (3.00.4.1)
    • Added configuration parameter enableConfigAccessControl to control whether permission checks are applied when accessing configuration parameters.
    • Added function getOauthClientSecret to allow administrator users to securely retrieve the value of the sensitive configuration oauthClientSecret.
    • Updated function getConfig/getConfigure to filter returned results based on the security level of each configuration item and the current user’s permissions when enableConfigAccessControl=true.
  • Fixed incorrect results when the left table in a streaming SQL left join was updated before the right table. (3.00.4.1)
  • Fixed an error that occurred when a streaming SQL keyed table received a single-row insertion containing a columnar tuple. (3.00.4.1)
  • Fixed an issue where bfill produced incorrect results when processing certain special characters.
  • Fixed an issue where temporary files were not reclaimed immediately after an unexpected transaction termination and restart.
  • Fixed a memory leak in the controller when client high availability was enabled.
  • Fixed an issue where scheduled jobs occasionally failed to execute and subscriptions stalled under high system load.
  • Fixed an issue where unexpected interruptions during tiered storage data migration could leave residual files.
  • Fixed a query failure issue when the SYMBOL column contained values ending with \r.
  • Fixed a memory leak in IoT engine under special circumstances.
  • Fixed a resource leak caused by incomplete cleanup when threads exited.
  • Fixed an issue where recovery of controller metadata from data nodes failed when the number of partitions exceeded 10 million.
  • Fixed an issue where the CEP engine did not support functions such as isVoid.
  • Fixed an error when assigning aliases to GROUP BY fields in the SELECT clause.
  • Fixed incorrect query results when using interval.
  • Fixed occasional hangs during concurrent access to stream tables.
  • Fixed an issue in the IMOLTP engine where deleting data did not release memory.
  • Fixed an issue where functions mstd, mstdp, mvar, and mvarp incorrectly returned 0 when X could not fill the window.
  • Fixed an issue where mstdp and mvarp returned incorrect results when the first element of X was NULL.
  • Fixed an issue where dropping a catalog using dropCatalog did not delete its Orca stream graphs.