Version Release History

5.3.8 Release Notes

Release date: 2024-12-30


Enhancements and Improvements

  1. Storage Engine
    • Added RangeFile verification logic for ColumnStore (#IB7V4S)
  2. MatrixShift
    • When there are duplicate tables or parent tables and some child tables appear in table-list in the scope paragraph of the configuration file, the ability to automatically remove duplicate tables and report warnings (#72ffcea)
    • A stricter check was introduced for the configuration file, and the wrong configuration item will be reported and prompted when mxshift is started. For example, disable-connector=true should be written in the [scope] paragraph. If it is written incorrectly in other paragraphs, an error will be reported (#IB5002)
  3. MatrixGate
    • Data transfer between mxgate and segment nodes does not enable compression by default to save more memory resources. The original default value is Enable compression (#IBD0PW)
    • In transfer mode, allow the mirror node to move data when it is in Down state (#IBCQPB)
  4. MatrixUI
    • When installing or expanding a new machine, check whether there are AllowUsers/AllowGroups/DenyUsers/DenyGroups and other configuration items in /etc/ssh/sshd_config that may cause the ssh mutual trust operation of the host in the cluster to fail during the installation process, and give specific error information and modification prompts (#IB80HF)
  5. mxbox
    • When using mxrecover to perform a rebalance operation on the cluster, the database downtime caused by this operation is shortened by adding CHECKPOINT. At the same time, the --skip-checkpoint parameter is added to skip this behavior (#IBCVOL)
    • Improved output of this command in console when using mxrecover to perform rebalance operations on the cluster (#IBCVOS)
    • mxrecover added --prepare-timeout parameter. When mxrecover starts, the timeout for the cluster status information can be collected through etcd, default is 1 minute (#IBCVOS)
    • The default timeout of mxstart is increased from 1 minute to 5 minutes, and it still supports users to customize the timeout with the -t parameter (#9ab2957c)
    • Support user-defined environment variables when the postmaster process starts (#39575ad3)
    • When a double failure appears in the cluster, it allows the nearest primary node (#IBCF5U) ​​to be started by restarting the database (#IBCF5U)
  6. High availability
    • The newly deployed cluster, its supervisor starts etcd parameter removes the --enable-pprof option, which can improve the stability of multi-node large-scale clusters (#44edf1e)
    • When the localhost entry is deliberately deleted from the user's /etc/hosts file, the supervisor can also start normally after YMatrix is ​​installed (#10435b7)
    • When the host restarts or runs YMatrix for the first time, it can automatically create the relevant paths that the resource group cgroup depends on (#IB5G9O)
    • Improved the number of max open files for supervisor service and etcd process, solving the problem of frequent too many open files errors in super-large clusters (#6ca5293dcd0)

Bug Fix

  1. Storage Engine
    • Fixed an issue where CV handles one time filter (#IBDPTO)
    • Fixed the calculation problem of pg_index_size in mars3 (#IB2XK1)
    • Fixed an issue where relcache failed by mars3 VACUUM execution (#IBBBQX)
    • Fixed the logic of mars3 empty table calculation relfrozenxid (#IBCD7Q)
    • Fixed snapshot issue with mars3 index
    • Fixed the issue with datalength=0 in ObjectStore (#IBBW8O)
    • Fixed a crash issue with mars3 rows and columns reading data (#IB9X9X)
    • Fixed the issue where mars3 btree compares uid in unique mode
    • Fixed an issue with inconsistent data of ObjectStore crash recovery (#IB7V4S)
  2. MatrixShift
    • Fixed an issue that caused mxshift connector to fail to start when the /tmp directory of the original database is not open to read and write permissions, and multiple primary nodes exist on the host and connector-port parameter is specified (#05c7e4a)
    • Fixed the issue where the manual cancel process does not end during mxshift synchronization data (#IB7S5D)
    • Fixed an issue with ALTER MATERIALIZED VIEW syntax errors when migrating DDL and supported MATERIALIZED VIEW syntax migration for GP6 (#3ba9664)
  3. MatrixGate
    • Fixed an issue where mxgate could not continue to consume data from kafka after YMatrix cluster restart in individual environments (#IB6HEL)
  4. MatrixUI
    • Fixed an issue where the mxui page does not display network I/O metric data starting with en (#IB8ZR1)
  5. mxbox
    • Fixed the issue where there is a small probability that it may time out when using mxrecover -r to restore master and data shard at the same time (#IBD71J)
    • Fixed an issue where there is a chance of reporting NotFound error when the replication service stops the postgres instance (#IBD8H7)
    • Fixed an error in which the postmaster crashed unexpectedly when the replication service probed the postmaster, and there was a chance that the replication service hang would live (#ab77de4e)
    • Fixed the issue where the monitoring function of mxmgr is enabled in the system, and the monitoring-related service process was not deleted when mxdeletessystem (#IBB9SM)
    • Fixed an issue where some services (shard and cluster) remained on mxdeletes (#63c34070) if there is no segment on some hosts in the physical machine cluster (#63c34070)
  6. High availability
    • Fixed an issue where dtx recovery takes 15 minutes to complete dtx recovery when the master and primary nodes crash at the same time. Now the dtx recovery on standby is expected to be completed in 1 minute. (#73785ab4f2c)

5.3.7 Release Notes

Release date: 2024-11-27


Enhancements and Improvements

  1. Storage Engine
    • Fixed an issue where mars3 freeze failed to handle index transactions correctly (#IB51MP)
    • Fixed the issue where mars3 freeze cannot freeze too large RUN
    • Fixed the issue of mars3 run recycle disorder (#IB5CR4)
    • Fixed an issue where AlteredTableInfo cannot be deserialized correctly (#IB6980)
    • When adding GUC mars3_orderkey_contain_partkey, allow partition keys under unique mode to be used without being included in the sort key (#IALONR)
    • Fixed the issue where the not null attribute of the first sort key can be changed under unique mode (#IAMQGP)
    • Allows operations to add primary key on a single node (#IALONR)
  2. MatrixGate
    • mxgate optimization: Supports segments connection timeout as configurable GUC (#IB25VC)
  3. MatrixShift
    • mxshift optimization: /tmp use data dir when there is no permission (#IB0UY1)
    • mxshift optimization: migration from gp6 data can be skipped external table (#IB0IUE)
    • mxshift optimization: compresslevel is forced to 1 when compresstype is automatically mapped from zlib to zstd (#IB0GA9)
  4. mxbox
    • Fixed a bug where the cache caused the shard status to not be updated
    • Fixed processing when etcd compaction causes the current version of meta information to be eliminated
    • Fixed the bug where the primary node in an abnormal state was not stopped in time when the network partition was abnormally restored.
    • moveseg/initstandby tool detects whether the host added by the --add subcommand is already in the physical machine cluster and gives an error message
  5. MatrixUI
    • In the query load page, the calls_end value sum after 0 causes a query error (#IAMZI0)

5.3.6 Release Notes

Release date: 2024-11-01


Enhancements and Improvements

  1. Execution Engine

    • Optimize the run pick logic of TableCleanJob

Bug Fix

  1. Storage Engine

    • Fixed the issue where inaccurate index scan using mars3 btree will cause data not to be queried (#IAW0V6)
    • Fixed the issue where the database age cannot decline (#IAQVRL)
    • Fix query errors due to persistently clustered view scankey memory mismatch (#IAHXLG)
    • Fixed the issue where mars3 IndexScan pull data is not filled correctly, causing query errors (#IAJ2UV)
    • Fixed the parial-index error result issue in mars3 (#IAH8WB)
    • Fixed mars3 brin result errors during orderly scans (#IAPD1U)
    • Fix concurrency issues with mars3 compact and delete (#IAOOK6)
    • Fix rowstore recover crash issue (#IAVR6O)
    • Fixed the issue where objectstore does not support freeze (#IA4TN5)
    • Fixed the issue of reading crash after degrade
    • Fixed the data loss problem of mars3 btree in objectstore (#IAW0V6)
    • Fixed the issue where fullmatch returns multiple data when mars3 brin has null values
    • Fixed the issue where ordinary users of mars3 do not have permission to create cv
    • Fixed the issue where mars3 compactor performed invalid tasks
    • Fixed the issue where mars3 compactor generates empty run
    • Fixed the issue that mars3 scans are not released in time when performing nested loops (#IASJL5)
  2. Execution Engine

    • Fixed the problem that compact scheduler cannot be automatically pulled up (#IAY4NK, #IAY3AO, #IAY39L)
    • Fix execution error for VHashJoin + VWindowAgg type plan pattern (#IAP7Y6)
    • Fixed vnode cache error in vplan (#IAS6NZ)
    • Fixed the issue where the execution of vacuum full would crash (#IAY4NK)
    • Fixed the issue where vbitmapscan result is wrong when there is runtimkey (#IAHXLG)

5.3.5 Release Notes

Release date: 2024-09-05


Enhancements and Improvements

  1. Storage engine:
    • Fixed the problem of dead loop when rowstore insert in uniquemode (#IAFOX2)
    • Fixed the heap tuple layout issue in rowstore in uniquemode
    • Fixed old version compatibility issues for ColumnStore
    • Fixed the issue where mars3 worker does not exit when dropdb
    • Fixed the problem that mars3 btree results due to key truncate in uniquemode
    • mars3: Fix crash problem caused by fullmatch not taking into account qual
    • mars3: Added autoprobe mechanism to automatically compress historical level
    • mars3: Fixed the issue of compaction outputting empty run

5.3.4 Release Notes

Release date: 2024-07-19


Enhancements and Improvements

  1. Storage engine:
    • Fixed the issue with mars3 Rescan crash (#IA4SAA)
    • Fixed crash issue with mars3 VindexScan in conditional index case (#IA4YOQ)
    • Fixed crash issue with mars3 BitmapScan in case of BitmapAnd (#IA7A16)
  2. Execution Engine:
    • Fixed the fast distributor supports named cursors under extended mode (#7536)
    • Fixed the hnsw index error of the pgvector plugin, which caused it to be unusable (#7547)
    • Optimized conversion of row data to column data in mars3 storage engine (#7515)
    • Fixed memory leaks when vectorized aggregation operators dealing with partial types (#7503)
    • Fixed an issue where vectorized scan operators might crash when loading text columns on aocs (#IA5N8H)
    • Fixed processing of NULL values ​​in vectorized IS DISTINCT FROM expressions (#IA5APT)
    • Fixed projection processing on grouping keys in vectorized hash aggregation operator v1 version (#IA5OL6)
    • Fixed an issue where the alignment is used when the alter table is added to the column in the mars3 storage engine (#IA4RPX)
    • Fixed the issue of type use when deserializing the vectorized hash aggregation operator v2 version (#IAA9QI)
    • Supports scenarios where vectorized versions in filters are empty set sums (IA4R4Z)
    • Optimized process of vectorized seqscan path (IA4R4Z)
    • Enhanced vectorized motion check (#IA4RPK)
    • Fixed kv issue in mxkv2 deserialization expression (#IA95IP)
    • Fixed an issue when a row of inputs in mxkv2 has duplicate keys (#IA9OW3)
    • Fixed the issue where the Subquery node cannot be vectorized (IAAXTQ)
    • Fixed vectorized executor fallback expr evaluation issue (#IA9ZXC, IAAISQ)
    • Optimized vectorized executor check whether expressions are supported (#IAA5FL)
    • Fixed the hash condistion selection issue for vectorized executor hash aggregation (#IAA5FL)
    • Fixed the problem of unrecognized join type: 10 (#IA9Z4J)
    • Fixed the issue that partition table distinct agg may report an error variable not found in subplan target list (#IAAWE4)
    • Fixed the issue of Motion to the wrong node or triggering crash when the table update with segment_set is set (#IACDGV, IAD7W9)
    • Fixed CVE-2024-0985: PostgreSQL non-owner REFRESH MATERIALIZED VIEW CONCURRENTLY executes arbitrary SQL (#IA6KD7)
    • Fixed CVE-2023-39417: Extension script @substitutions@ within quoting allow SQL injection (#IA6KCP)
    • Fixed CVE-2023-5870: Role "pg_signal_backend" can signal certain superuser processes (#IA6KC9)
    • Fixed CVE-2023-5869: Buffer overrun from integer overflow in array modification (#IA6KBU)
    • Fixed CVE-2023-5868: Memory disclosure in aggregate function calls (#IA6KBE)
    • Fixed CVE-2023-2455: Row security policies disregard user ID changes after inlining (#IA6KA6)
    • Fixed CVE-2023-2454: CREATE SCHEMA ... schema_element defeats protected search_path changes (#IA6K9X)
    • Fixed CVE-2022-2625: Extension scripts replace objects not belonging to the extension (#IA6K8P)
    • Fixed CVE-2021-32029: Memory disclosure in partitioned-table UPDATE ... RETURNING (#IA6K7G)
    • Fixed CVE-2021-32028: Memory disclosure in INSERT ... ON CONFLICT ... DO UPDATE (#IA6K76)
    • Fixed CVE-2021-32027: Buffer overrun from integer overflow in array subscription calculations (#IA6K6K)
    • Fixed CVE-2021-23222: libpq processes unencrypted bytes from man-in-the-middle (#IA6K5Z)
    • Fixed CVE-2021-23214: Server processes unencrypted bytes from man-in-the-middle (#IA6K5D)
    • Fixed CVE-2021-3677: Memory disclosure in certain queries (#IA6K4Z)
    • Fixed CVE-2021-3393: Partition constraint violation errors leak values ​​of denied columns (#IA6JTZ)
    • Fixed CVE-2020-14350: Uncontrolled search path element in CREATE EXTENSION (#IA6JQD)
    • Fixed CVE-2020-14349: Uncontrolled search path element in logical replication (#IA6JPP)
    • Fixed CVE-2020-1720: ALTER ... DEPENDS ON EXTENSION is missing authorization checks (#IA6JOV)
  3. MatrixUI
    • Fixed the issue of incorrect cluster metric time display on Dashboard page (#IABL52)
    • Fixed the issue of failing to save data acquisition configuration on load analysis page in Ubuntu20 (#IAAFSS)
    • Fixed the problem of self-service inspection of some shell script reports in Ubuntu20 (#IA9SZW)
    • Fixed security vulnerability issue for UI runtime dependencies (#IAD077)
  4. MatrixGate
    • Fixed process memory leaks in versions after 5.2.2 (#IAD077)

5.3.3 Release Notes

Release date: 2024-06-14


Enhancements and Improvements

  1. Tools
    • In transfer mode, when mxgate connects to the source database, set idle_in_transaction_session_timeout = 0 to prevent the failure of the entire data transmission due to the idle connection timeout that has completed the data transmission in advance. (#7506)
    • Add automatic partitioning to insert catalog tables and insert error log tables for different data sources. (#7499)
  2. Storage engine
    • MARS3 adds a new insertion mode "single" to obtain lower insertion delay.
    • Optimize the creation of CVs with long-term blocking problems with Insert. (#7266)
    • Optimize the in-lock time of mutexes in ParallelScan in MARS3.
  3. Execution Engine
    • Enhanced vectorized window operator, adding support for most window functions and window characteristics. (#6751)
    • Optimized performance of vectorized window operator. (#6751)
    • Enhanced vectorized aggregation operator to support INTERNAL types. (#6881)
    • Enhanced support for runtime filter. (#7049)
    • Enhanced single node distribution table to support any primary or unique keys. (#7125)
    • Enhanced single node distribution table to support arbitrary triggers. (#7127)
    • Enhanced support for ON CONFLICT clauses by single-node distribution table. (#7168)
    • Enhanced fast distributor to support explicit transactions. (#7124)
    • Enhanced fast distributor to support UPDATE & INSERT & DELETE operations. (#7124)
    • Enhanced fast distributor to support processing multiple statements at once. (#7388)
    • Enhanced support for single-node distribution tables by fast distributors. (#7130)
    • Enhanced support for replication tables by fast distributors. (#7131)
    • Enhanced fast distributor to support auto-increment types. (#7202)
    • Optimized performance of truncate ON COMMIT DELETE ROWS temporary tables. (#7279)
    • Supports the update table_name set table_name.column_name syntax.
    • When creating tables in masteronly mode, there is no need to check the node's separate information. (#7519)
    • matrixmgr: Supports statistics query whether it is fastdd mode, and transactions are first-stage and second-stage transactions. (#7470)
    • Enhanced fast distributors support prepare statment and extended mode. (#7139)
    • Added yonyou extension: implementing implicit conversions of ROWNUM, to_char, text and other types (#7374 #7375 #7376)

Bug Fix

  1. Tools

    • Fixed the issue where the license file is not correctly recognized when mxgate is started.
    • Fixed performance issue where mxgate insert record delay (200ms) into insert catalog table causing mxgate data to slow down. (#7277)
  2. Storage engine

    • Fixed the error plan for InorderScan under timebucket in MARS3. (#7262)
    • Fixed AssertFail issue in IndexRollback for MARS3.
    • Fixed Crash when mars2-btree is ScanKey. (#7306)
    • Fixed visibility issues in MARS3 Vaggscan. (#7303)
    • Fixed the Collation issue with BrinIndexScan in MARS3. (#7252)
    • Fixed the issue of missing xlog in MARS3.
    • Fixed a data error in the planner that both motion and ParallelNode existed. (#7261)
    • Fixed the rollback issue of MARS3's truncate operation.
    • Fixed Drop Table deadlock issue in MARS3.
    • Fixed compatibility issues with StripeDesc for older versions of MARS3.
    • Fixed rollback issue with run successor in MARS3.
    • Fixed an issue where MARS3 inserts data under JDBC driver lost.
  3. Execution Engine

    • Fixed the issue where the vectorized aggregation operator did not correctly serialize the intermediate values ​​of first(), last() aggregation. (#7313)
    • Fixed an issue where vectorization executors might not have vectorized the subquery. (#6117)
    • Fixed an issue where the fast distributor might see the wrong version of catalog information. (#7218)
    • Fixed an issue where the fast distributor did not update statistics when performing operations such as INSERT. (#7405)
    • Fixed crash caused by persistent aggregation that could be mistakenly rewriting expressions. (#7223)
    • Fixed an issue where possible crash when serializing transaction snapshots. (#7140)
    • Fixed the issue of incorrectly generating split update and motion operators when a single node distribution table update operation. (#7151)
    • Fixed an issue where search_path was not maintained correctly in connection pool transaction mode. (#7132)
    • Fixed an issue where transaction timestamps were inconsistent on QD & QE. (#7362)
    • Fixed gcc-8 compilation issue. (#7424)
    • Fixed an issue where the MXKV2 type did not clean up the state correctly when the statement error occurred. (#7328)
    • Fixed an issue with release order internal to MXKV2 due to changes in the survival cycle internal to MARS3. (#7309).
    • Fixed OOM problem when processing row data storage when MXKV2 querying a large number of -> expressions and optimized performance. (#7387)
    • Fixed the issue of triggering Assert when multiple functions that require grouping information exist at the same time in vectorized window functions. (#7418)
    • Fixed an issue when vectorized ShareInputScan appends in-memory data to Spill files. (#7501)
    • Fixed the problem of not executed squelched plan node caused by vectorized Sequence. (#7485)
    • Fixed an issue where MXKV2 handled a data block ALLNULL in MARS3 unique mode. (#7487)
    • Fixed an issue related to creating masteronly tables in CTAS and materialized view. (#7514)
    • Fixed an issue where the optimizer would report an error by converting subquery to join operator execution. (#6524)
    • Fixed to avoid parallel scanning in fast distributor fast distributor mode. (#7382)
    • Fixed the issue where the RETURNING clause under extended mode did not return the result. (#7384)
    • Fixed the problem of not executed squelched plan node caused by HashJoin. (#7416)
    • Fixed the issue where the fast distributor was mistakenly treated by nextval() as a return value under extended mode. (#7397)
    • Fixed the issue of incorrect aggregation results when there is a parallel worker in a single node distribution table. (#7445)
    • Fixed an issue where the fast distributor was not using the correct client encoding. (#7448)
    • Fixed an issue where the fast distributor did not check forceDistRandom in extended mode. (#7453)
    • Fixed an issue where the extended mode statistics of the fast distributor were not updated. (#7464)
    • Fixed the problem that the writer hang lived in the ShareInputScan and VShareInputScan reader exit too early (#7471)
    • Fixed the issue of Assert when the single node table and masteronly table modify the primary key with comment. (#7504)
    • Enhanced Quick Distributor Support for displaying plan and specific execution information on QE. (#7522)
    • Fixed the fast distributor disable support for cursor. (#7381)
    • Enhanced Quick Distributor Support CTE. (#7389)
    • Fixed the mechanism for correctly eliminating PreparedStatement under extended mode of the fast distributor (#7512)
    • Fixed the issue of crashing when vectorized aggregation exists (#7541)
    • Fixed Assert issue when alter table (#7454)

5.3.2 Release Notes

Release date: 2024-04-19


Enhancements and Improvements1. Graphical interface (MatrixUI)

  • Added a MatrixGate process monitoring page. Provides intuitive graphical performance indicator display to simplify performance analysis.
  1. MatrixGate
    • mxgate_process_view Added the mxgate_config field. ([Document](/doc/5.3/tools/mxgate/feature#11%20mxgate%20 data write process information, insert system tables and error log tables))
    • The default value of the --metrics-sample-interval parameter under the [metrics] category has been adjusted from 3 seconds to 15 seconds. ([Document](/doc/5.3/tools/mxgate/parameter#1%20 configuration file parameters))
    • pause action If the timeout (50 seconds), the insertion operation corresponding to Slot is cancelled to ensure that the pause operation can complete normally. ([Document](/doc/5.3/tools/mxgate/feature#4%20 updates the table structure without shutting down))
    • Adjust pause and resume in the mxgate command help manual (mxgate --help) from arguments to commands.
    • A large number of the same run logs will be combined to display (printed once in 10 seconds).
  2. Vectorized execution engine
    • Upgraded vectorized query planner to v3. (#3427)
    • Upgraded vectorized aggregation (Agg) operator to v2. (#3328)
    • Optimized support for distinct operations by vectorized aggregation operator. (#3355,#3386,#3410)

Bug Fix

  1. Tools
    • Fixed an issue where mxshift could not migrate stand-alone clusters. (#7257)
    • Fixed the issue of mxshift inconsistent row count before and after data synchronization when data distribution is very sparse. (#7251)
  2. MatrixGate
    • Fixed the problem that when writing data through Kafka, the state recorded in kafka_catalog is incorrect when there is only one data in the microbatch. (#3002)
  3. Storage engine
    • Fixed an issue where Invalid attribute number error occurred when MARS3 executes a specific query after closing vectorization. (#7262)
    • Fixed an issue with mars3_btree index size. (#7319)
    • Fixed an issue where the mars3_brin index was incorrect in the specific case where IndexScan is enabled. (#7276)
    • Fixed the issue where there is a certain probability of crashing when executing a MARS3 row-stored SQL statement. (#7253)
    • Fixed an issue where MARS3 reported an error after executing ROLLBACK after executing DROP INDEX SQL statements. (#7232)
    • Fixed a low performance in creating specific MARS3 tables and mars3_brin indexes. (#7290)
    • Fixed an issue where the mars2_btree index crashed when multiple arraykeys on the same attno. (#7306)
    • Fixed the collation error issue when MARS2 pushes down the like operator's brinkey. (#7252)
    • Fixed correctness issue when MARS3 vaggscan has invisible data. (#7303)
  4. Execution Engine
    • Fixed the handling of Runtime Filter by vectorized query plan. (#3329, #3347)
    • Fixed an issue where illegal operators might appear in vectorized query plans. (#7186)
    • Fixed an issue where vectorized aggregation operator did not properly handle PLAIN aggregation. (#3332)
    • Fixed an issue where vectorized aggregation operator does not support the INTERMEDIATE sub-mode. (#7061)
    • Fixed support for filters by vectorized joint operators. (#3350)
  5. MXKV2
    • Fixed an issue where tables with MXKV2 columns were added with new columns through ALTER TABLE. (#7274)
    • Fixed an issue with release order internal to MXKV2 due to changes in the survival cycle internal to MARS3. (#7309)

5.3.1 Release Notes

Release date: 2024-03-29


Enhancements and Improvements

  1. Continuous Gathering (CV)
    • The default index of the underlying storage for continuous clustering is changed from mars3_brin (v5.2.0-v5.3.0) to mars3_btree (starting with v5.3.1).

Bug Fix

  1. RMGR
    • Fixed an issue with RMGR (Explorer) incompatibility in 5.3.0. (#3409)

5.3.0 Release Notes

Release date: 2024-03-22


Feature Release

  1. Graphical interface (MatrixUI)
    • Added a new homepage, providing resource indicator analysis and query statistical analysis functions.
    • Added an English version interface.
  2. Data node instance (Segment) migration tool mxmoveseg
    • Supports migration of standby master nodes (Standby). (Document)
  3. MatrixGate
    • Support querying mxgate data to write process information, insert system tables and error logs. ([Document](/doc/5.3/tools/mxgate/feature#11%20mxgate%20 data write process information, insert system tables and error log tables))
    • Fine the --log-dir parameter specifies the timing information in the mxgate log under the directory (usually /home/mxadmin/gpAdminLogs). Adjust the original 4 time periods to 5: t1: Slot insert The time when the connection was established; t2: Slot waits for scheduled t3: Segment Time to receive data from mxgate t4: Data redistribution between segments and dropping t5: insert transaction commit time.

Enhancements and Improvements

  1. Data node instance (Segment) migration tool mxmoveseg (Document)
    • When the source migration server is offline, the offline old server can also be restarted after the migration is completed, and the cluster exception will not be caused.
  2. High availability
    • Fixed a double failure issue in a cluster with Standby/Mirror configured (all data instances under a data shard (including a Primary and its corresponding Mirror) are offline).
  3. mxshift feature enhancement
    • Supports data migration and verification decoupling. ([Document](/doc/5.3/tools/mxshift#3.4.1%20 Old version of data verification and data migration decoupling))
    • Upgrade the data consistency verification algorithm before and after migration. In addition to verifying by configuring the --verify parameter under the [transfer] category, the [verify] category has been added, and the upgraded verification can be performed by configuring the parameters in it. The two verification methods are compatible with each other. ([Document](/doc/5.3/tools/mxshift#3.4.2%20v5.2.1%20 version data verification))
  4. Vectorized execution engine function enhancement
    • Implement vectorized shared scanning operator.
    • Implement vectorized deduplication operator.
    • Optimized stability of vectorized actuators when using ORCA optimizers.
    • Optimized performance of vectorized join operators when joining right.
  5. MARS3 storage engine functionality enhancement
    • Added support for btree index by MARS3 storage engine.
    • Optimized stability of MARS3 storage when combined with ORCA.
  6. MatrixGate feature enhancement
    • Supports termination of mxgate process listening to a specified port by sending a gRPC request. The corresponding command is: mxgate stop --grpc-port [port]. ([Document](/doc/5.3/tools/mxgate/parameter#2%20 command line parameters))

Bug Fix1. Tools

  • Fixed an issue where mxshift, when mode="output", would occasionally encounter a “view ... not exist” error when there was a batch of dependent views (one view's content was derived from SELECT another view) and the concurrency was high. (#6907)
  • Fixed an issue where mxshift would encounter a “no pg_hba.con entry for host 127.0.0.1” error when using a non-default superuser for migration with disable-connector=false.
  1. Execution Engine
    • Fixed an issue where the motion operator would crash under specific conditions. (#3281)
    • Fixed an issue where the vectorized join operator would crash under specific conditions. (#3263)
    • Fixed an issue where the vectorized execution engine would crash under specific conditions. (#3230)
    • Fixed an issue where the vectorized aggregate operator would crash under specific conditions. (#3223)
    • Fixed an issue where the vectorized execution engine failed to automatically query in certain situations. (#3280)
    • Fixed an issue where the vectorized index scan operator crashed in certain situations. (#3301, #3310)
    • Fixed an issue where the window operator might return incorrect results when sliding the window. (#3302)
    • Fixed an issue where vectorized scan-type operators might crash when encountering a one-time filter. (#3314)
  2. Data Types
    • Optimized memory usage for MXKV2. (#3204)
  3. Optimizer
    • Fixed an issue where ORCA couldn't generate a query plan in certain situations. (#3270)
  4. Query Engine
    • Fixed an issue where the first() and last() functions could produce incorrect results when the input contained null values. (#3292)
    • Fixed an issue where the sliding window varchar attribute returned unknown results. (#3229)
  5. MatrixGate
    • Fixed an issue where connecting to a Kafka cluster in consumer-group mode would time out. (#6848)
    • Fixed an issue where table metadata could not be updated after a job was paused. (#6966)
    • Fixed an issue where sending empty data could cause slot status inconsistencies in a job. (#7026)
    • Fixed an issue where converting input JSON data to CSV or TEXT types could result in incorrect default value retrieval. (#6550)
    • Fixed an issue where adjusting the stream-prepared count immediately after starting mxgate could cause inconsistent slot states. (#7113)
  6. Storage Engine
    • Fixed an issue where ActiveSnapshot was not properly popped in MARS3. (#3218)
    • Fixed an issue with MARS3 VACUUM freeze. (#3226)
    • Fixed an issue where MARS3 could not select the correct run in specific scenarios. (#3224)
    • Fixed an issue where btree indexes in MARS2 would crash when processing specific array search expressions. (#3246)
    • Fixed an issue with lock concurrency control in compact jobs in specific scenarios in MARS3. (#3234)
    • Fixed an issue where BRIN indexes in MARS3 produced incorrect snapshots during parallel scans. (#3253)
    • Fixed an issue where B-tree indexes in MARS2 produced incorrect results in specific scenarios. (#3297)
    • Fixed an issue where QE connections were not properly cleaned up when direct dispatch crashed in specific scenarios.

5.2.2 Release Notes

Release Date: 2024-01-16


Bug Fixes

  1. MatrixGate
    • Fixed an issue where data migration would fail and terminate when the number of data channel connections exceeded the number of segments in the source cluster during migration mode. (#6800)
    • Fixed an issue where MatrixGate (mxgate) failed to respond to Data Definition Language (DDL) changes and automatically refresh tasks after the master node (Master) failed and automatically switched to the standby node (Standby) during a failover. (#6850)
    • Fixed an issue where the mxgate service configured via the Kafka data stream feature in MatrixUI would be repeatedly restarted by the supervisor process when the target table did not exist. (#6928-1)
  • Fixed an issue where the mxgate port started in the background might conflict when creating Kafka data streams simultaneously across multiple browser windows. (#6928-2)
  1. Tools
    • Fixed an issue where mxshift might fail to start when the source and target databases were heterogeneous (different numbers of hosts or nodes), resulting in an error message: “/tmp/mxshift/mxshift_worker.xxxx does not exist.” This issue only exists in version 5.2.1; earlier versions are unaffected. Users who have already upgraded to version 5.2.1 can directly copy the mxshift from version 5.2.2 for use. (#6909)
  2. Cylinder
    • Fixed an issue where cylinder could not correctly collect data table statistics when the .psqlrc file contained a \timing setting. This issue only exists in version 5.2.1; earlier versions are not affected. (#6860)

5.2.1 Release Notes

Release Date: 2024-01-02


Enhancements and Improvements

  1. MXKV2
    • Optimized MXKV2 memory usage (#3178).
    • Optimized MXKV2 compression performance (#3180).
    • Optimized MXKV2 data import performance (#3162).
  2. Vectorized Execution Engine
    • Optimized memory usage of vectorized motion operators in multi-column queries (#3175).
    • Optimized performance of external hash algorithms for vectorized hash aggregates (#3213).
    • Optimized the efficiency of sequential comparisons for text types (#3163).

Bug fixes

  1. MatrixGate
    • Fixed an issue where MatrixGate might fail to continue extracting data from the consumer-group after a database restart/crash when using the consumer-group mode with the Kafka data source (#6848).
  2. Graphical Interface
    • Fixed an issue where the load analysis page displayed errors and abnormalities when the mxstat_statements.harvest_interval configuration was set to a non-default value (#6768).
  3. Continuous Aggregation
    • Fixed an issue where Continuous View (CV) failed to create when the groupagg operator was disabled (#6823).
    • Fixed an issue where CV would abnormally exit due to incorrect memory release order (#6766).
  4. Storage Engine
    • Fixed a deadlock issue between the foreground and background processes in MARS3 (#6816).
    • Fixed an issue where MARS2 caused an Option null pointer exception due to column additions or deletions.
  5. Resource Groups
    • Fixed an issue where the bgworker in resource group mode preloading would crash during startup (#3169).
    • Fixed an issue with resource group handling of cgroup paths (#3169).
    • Fixed an issue where resource groups might provide incorrect status statistics (#3198).
  6. Execution Engine
    • Fixed an issue where the AssertOp operator might crash during initialization (#3183).
    • Fixed an issue where the AOCO table might crash during vectorized scanning (#3158).
    • Fixed an issue where the minmax agg operator optimization in subplans might cause crashes (#3190).
    • Fixed an issue where MARS2 vectorized scanning might crash under specific conditions (#3151).
    • Fixed a crash issue in vectorized shared scans under specific conditions (#3082).
    • Fixed an issue where vectorized operators might see inconsistent switches between the Query Dispatcher (QD) process and the Query Executor (QE) process (#3109).
    • Fixed an issue where some vectorized operators could only use a limited amount of memory (#6626).
  7. Data Types
    • Fixed an issue where MXKV2 columns might not be configured correctly (#3172).
    • Fixed an issue with NULL value handling in MXKV2 under specific conditions (#3176).
    • Fixed an issue where MXKV2 incorrectly pushed down expressions under specific conditions (#3131).
    • Fixed an issue with MXKV2 data visibility (#3149).
    • Fixed an issue where MXKV2 types generated unnecessary indexes in certain scenarios (#3149).

5.2.0 Release Notes

Release Date: 2023-12-08


Feature Release

  1. Graphical interface
    • Supports graphical installation and deployment of YMatrix on Tongxin UOS20, Dragon Lizard 8.X, Kirin Xinan 3.X, and Zhongbiao Kirin 7.X operating systems.
    • Added SQL executor function.
    • Added load analysis function (document).
  2. Vectorization execution engine (document)
    • Support docking ORCA optimizer. HEAP, AO storage engine supports direct docking, while MARS2/3 does not support docking. In particular, AOCO can connect to vectorized execution engines and ORCAs at the same time.
  3. Added a downgrading storage function, supporting automatic separation of hot and cold data, and downgrading cold data to more economical object storage (Document).
  4. Added the data type MXKV2, which simplified the use steps and improved compression performance based on MXKV (document).
  5. Added the pgvector plug-in tool to support vector scenarios (document).

Enhancements and Improvements

  1. Continuous aggregation parameter populate default value is changed to false ([Document](/doc/5.2/datamodel/cv#2.5%20 query Continuous aggregation view)).
  2. If the original two RPMs are combined into one, the volume may become larger. However, users do not need to install the DebugInfo package, which is more beneficial for debugging and analysis of the business environment.
  3. MatrixGate
    • Supports the ability to enable or turn off the automatic adjustment of slot number for specified tasks, and supports querying the adjustment status of all tasks or specified tasks ([Document](/doc/5.2/tools/mxgate/feature#9%20mxgate%20automatic adjustment of %20slot%20number)).
    • Introduce the --abort-by-pause-timeout parameter under the [writer.stream] category. Supports the data accumulated in memory when the Job enters the pause state according to the timeout specified by this parameter (Document).
    • Supports batch writing of JSON type data over HTTP (document).
  4. Graphical interface
    • Optimized interaction of etcd storage path configuration steps in multi-node deployment function ([document](/doc/5.2/install/mx5_cluster/mx5_cluster_centos7#4%20 database deployment)).
    • Optimized steps and interactions of Kafka data stream writing function ([Document](/doc/5.2/datainput/kafka#2%20 Create %20Kafka%20 data stream)).
  5. Data migration tool mxshift
    • DDL (Data Definition Language) migration process allows the execution to be continued by ignoring the specified error. The type of error that is ignored can be configured with the --ignore-error parameter ([document](/doc/5.2/tools/mxshift# configuration file)).
    • Simplifies permissions for the migration process, and only configures the source cluster access to the Master node of the target cluster. To turn off this feature, configure --disable-connector=true ([Document](/doc/5.2/maintain/migrate/best_practice_gp6_to_ymatrix5#1.10%20 to add a whitelist to the %20Master%20 of the source cluster)).
    • Support log separation, the format difference between the logs output by the terminal and the logs saved by the file are optimized, and the user experience is optimized.
    • Supports the migration table meta information is written to the specified file by configuring the --write-table-meta-file parameter, and the information in the file is read directly through the --read-table-meta-file parameter during the subsequent migration process to shorten the business downtime caused by migration ([Document](/doc/5.2/tools/mxshift#3.1%20 import/export table meta information)).
    • Added the --small-table-mb parameter, and configuring this parameter reasonably can optimize the transmission speed of small tables ([document](/doc/5.2/tools/mxshift# configuration file)).
    • Support dynamic adjustment of concurrency count ([Document](/doc/5.2/tools/mxshift#3.3%20 dynamic adjustment of concurrency count)).

Bug Fix

  1. Optimizer
    • Fixed an issue where ORCA query plans could not be generated on partitioned tables (#6104).
  2. Execution Engine
    • Fixed an issue where the vectorized executor would crash when EXPLAIN ANALYZE information was empty (#6634).
  3. MatrixGate
    • Improved JSON mapping semantics: inputting { “key”: null } now maps the key to NULL in the database (Issue #6536).
    • Fixed an issue where pausing a task using the mxgate pause command (without the -X parameter) prevented mxgate from being stopped via mxgate stop or Ctrl+C (Issue #6519).
    • Fixed an issue where conflicts occurred between the behavior of the task (Job) when it was paused, modifications to the data table DDL, or attempts by the automatic slot adjustment feature to change the task's state (#6436).
    • When mapping data rows to JSON, if no corresponding key is found for each column that needs to be mapped in the current data row, the row is reported as invalid, and an empty row is not inserted into the database (#6488).
  • Improved the performance and memory usage of the mxgate logging component (#6242).
  • Fixed an issue where starting mxgate automatically failed to create the matrixts extension when the database's default search path was not set to “public” (#6430).
  • Fixed an issue where metric reports in mxgate watch were confused when multiple mxgate processes were used on the same database (#5848).
  • Optimized the timing of memory pool release in the plain transform component, reducing memory usage by the mxgated process (#6071).
  1. Storage Engine
    • Fixed an issue where MARS3 calculated the uidoverlap scope incorrectly in uniquemode mode (#6551).
    • Fixed an issue where reader gang reuse caused syscache inconsistency (#6419).
    • Fixed an issue with state maintenance for compact workers in the workerpool (#6374).
    • Fixed an issue where the Squelch state was reset when HashJoin and NestLoop coexisted (#6598).
    • Fixed an issue where metadata corruption occurred when BaseStore.extend was used with multiple file units (#6587).
    • Fixed an issue where dsm share snapshot crashed when the writer queue exited (#6514).
    • Fixed an issue where the MemoryContext lifecycle did not match for seqscan in MARS3 (#6296).
    • Fixed an issue where MARS3 did not support copy-to (#6440).
    • Fixed an issue where MARS3 reported an error when executing ALTER TABLE (#6419).
    • Fixed an issue where the compact scheduler did not start after expansion (#6419).
    • Fixed an issue where sortkeyhint format was incorrect when there was null data (#6395).
    • Fixed an issue where join_concat crashed when processing non-scalar JSON (#6350).
    • Fixed an issue where mars2_btree failed to process index columns with expressions across multiple columns (#6296).
    • Fixed an issue where run incorrectly set the maximum number of rows to select during merging (#6226).
    • Fixed an issue where creating an index on an unlogged table caused a crash (#6300).
    • Fixed an issue where run caused an overflow during merging due to data addition (#6297).
    • Fixed an issue where run caused calculation errors during merging when reading data for alignment calculations (#6226).
    • Fixed an issue where uniqemode mode could not be disabled (#6439).
    • Fixed an issue where filter conditions were incorrectly pushed down during parallel scans (#6553).
    • Fixed an issue where BRIN indexes on partitioned tables could not be deleted (#6589).
    • Fixed an issue where creating an index was canceled, and then creating it again resulted in an error (#6545).
    • Fixed an issue where the run that had been read was not released early during a query (#6394).
    • Fixed an issue where the columns processed during automatic ANALYZE were incorrect (#6447).
    • Fixed an issue where parallelism was not promptly discarded when adding an execution path (#6447).
    • Fixed an issue where seqscan read data too slowly (#6607).
    • Fixed a minor memory leak in CacheMemoryContext (#6307).
    • Fixed a crash issue with MARS3 Alter Type (#6496).
    • Fixed a permission issue when creating a regular user in MARS3 (#6295).
    • Fixed an issue with the MARS3 hint-only feature (#6530).
    • Fixed an issue where files failed to open in MARS3 (#6459).
  2. Data Types
    • Fixed a crash issue in MXKV2 under specific conditions (#6466, #6409, #6568, #6544).
    • Fixed an issue where MXKV2 might leave residual child tables after deleting the main table (#6408).

5.1.3 Release Notes

Release Date: 2023-09-25


Bug Fixes

  1. MatrixGate
    • Optimized the memory release cycle for zstd compression handles to reduce memory usage by the mxgated process (#6299)
    • Fixed an issue where database sessions established by MatrixGate could not be refreshed periodically when the cluster had Standby nodes (#6308)

5.1.2 Release Notes

Release Date: 2023-09-11


Bug Fixes

  1. Storage Engine
    • Fixed an issue where queries failed due to abnormal concurrent writes to the L0 cache layer in MARS3 tables (#6155)
  2. MatrixGate
    • Fixed an issue where MatrixGate failed to resume tasks due to internal timeouts during automatic partitioning of data tables, preventing further data ingestion (#6165)

5.1.1 Release Notes

Release Date: 2023-08-25


Bug Fixes

  1. Storage Engine
    • Fixed an issue with the redo log in MARS3 storage engine uniquemode mode.

5.1.0 Release Notes

Release Date: 2023-08-22


Feature Releases

  1. Added the MARS3 storage engine (Documentation), which, compared to MARS2,
    • Implements row-column co-storage, writing data rows to disk, significantly improving write performance
    • Enables table creation without the need to create additional indexes
    • Supports data updates and deletions, column additions and removals, and the MVCC mechanism
    • Not only does it inherit the performance advantages of MARS2 in time series scenarios, but it also adds support for AP and TP scenarios.
  2. New mirror instance migration tool mxmoveseg (Documentation)
    • Supports migration of any database instance that is currently a mirror to other servers.
    • Does not support migration of standbys.
  3. Enhanced functionality of the data migration tool mxshift (Documentation)
    • Supports incremental migration: migrates the data definition language (DDL) and data of selected tables from a Greenplum 4.3.33/5/6 or YMatrix cluster to a target database in a new YMatrix cluster in parallel
    • Supports specifying the IP address corresponding to the hostname via parameters under the [database.source.hostname-to-ip] category to ensure routing accuracy
    • Added the install-dir parameter to replace the gphome parameter
  4. MatrixGate feature enhancements
    • Supports executing DDL modification commands immediately during the write process (Documentation)
    • Supports automatically adjusting the number of connections based on the load of different write tasks (Documentation)
    • Supports quantifying the write load of source-end data as a percentage value (Documentation)
    • Supports limiting the size of batch data loading (Documentation)
  5. Enhanced encoding chain compression algorithm functionality (Documentation: [/doc/5.1/reference/storage/compression])
    • Added Gorilla2 and fds algorithms
  6. Graphical interface upgrade (Documentation: /doc/5.1/maintain/self_service_inspection)
    • Added self-service inspection page, supporting the creation of inspection plans by selecting inspection options and generating detailed inspection reports
  7. Support for domestic platforms OpenEuler 20.03-22.03, Fusion 22-23, Kylin Security V3.3-3.5, Anolis OS 8, and Tongxin V20 (1060a/1060e) support (Enterprise Edition features) (Documentation: /doc/5.1/install/mx5_cluster/mx5_cluster)

错误修复1. Storage Engine

  • Fixed a crash caused by the AOCS storage engine during index scan
  • Fixed a crash caused by MARS2 storage engine defining more than 32 minmax indexes
  1. MatrixGate
    • Fixed memory overuse issues caused by MatrixGate when starting compression
    • Fixed the issue of MatrixGate's internal logic errors caused by connection timeout
  2. MatrixManager
    • Fixed memory overuse problem of MatrixMgr due to long-term failure to release connections
  3. Execution Engine
    • Fixed a crash caused by mxvector due to no alignment when processing NULL values
    • Fixed the crash problem caused by handling InitPlan in parallel mode
    • Fixed the problem of calculating statistics in the partition table
  4. Tools
    • Fixed the data verification error caused by the mxaddmirrors command when handling checksum on AO storage
    • Fixed an error when executing DDL operations in mxshift

5.0.1 Release Notes

Release date: 2023-06-06


Bug Fix

  1. Execution Engine
    • Fixed crash caused by vectorized window function expression calculation
    • Fixed crash caused by sliding window function handling grouping logic
  2. MatrixGate
    • Fixed the issue where MatrixGate blocked the incoming number of other tables when locking a table
  3. High availability
    • Improved survival detection method of Segment nodes and improved stability under high I/O loads

5.0.0 Release Notes

Release date: 2023-03-31


Feature Release

  1. A brand new database architecture

    • Based on the Raft algorithm, realize automatic fault transfer between the cluster master node (Master) and the master node standby node (Standby) (Document)
    • Introducing a service-oriented architecture to make the deployment, operation and maintenance of clusters simpler and more convenient (document)
    • Added cluster management tools: mxaddmirrors(document), mxdeletes(document), mxstop(document), mxrecover(document), mxstart(document), mxstate(document), mxstop(document))
    • Support for deployment of monitoring for etcd clusters (document)
  2. Added a vectorized execution engine (document)

    • Support batch processing: using batch processing can effectively reduce the execution overhead of function calls and other
    • Make full use of hardware and compiler capabilities: Use CPU cache friendly algorithms to make full use of hardware and compiler optimization capabilities, such as generating SIMD (Single Instruction, Multiple Data) instructions
    • Supports multiple operators: Scan, Sort, Aggregate, Join, Window Function, Sub Query, Limit, Motion and other operators are implemented. There are also different algorithm implementations for the same operator, effectively covering most query scenarios and improving query performance

    Based on the above three core principles, vectorized execution engines can achieve performance improvements of 1 to 2 orders of magnitude compared to traditional execution engines oriented towards row processing.

  3. Added Runtime Filter query performance optimization technology (Document)

    • RuntimeFilter is one of the key technologies to improve the performance of YMatrix execution engine. It refers to a filter (Filter) that is dynamically built when valuating in the execution engine after the optimizer generates a physical execution plan, which is different from filters pre-planned by the optimizer.
  4. The performance of MARS2 storage engine is greatly optimized (document)

    • Optimize compression strategies to reduce memory usage
    • Optimize partition table writing and reduce memory usage
    • Optimize query filtering effect to reduce unnecessary I/O consumption
    • Optimize data volume estimation and make more accurate selection of execution plans
    • Enhanced aggregation capability, support uniquemode and IN expressions
  5. Added a new coded chain compression algorithm (document)

    • Supports multiple encoding and compression algorithms: supports lz4, zstd, simple8b, doubledelta, gorilla, deltazigzag, floatint and other encoding and compression algorithms. The above algorithms can be flexibly combined to fully improve the compression rate
    • Supports column-level or table-level custom compression algorithms
    • Support adaptive encoding
    • Used with vectorized execution engine to improve data compression/decompression speed: In SSB scenarios, the decompression speed is 3 times that of LZ4

    The coding chain compression scheme can greatly reduce space usage and reduce costs. In the new energy vehicle scenario, the compression rate is 3.9 times that of LZ4 compression algorithm scheme, and 2.7 times that of LZ4 in the TSBS (Time Series Benchmark Suite) scenario.

  6. Storage diagnostic tool Datainspect upgrade (document)

    • Added a new function desc_compress, which can compare and select the best two specified compression algorithms
  7. MatrixGate feature enhancement

    • Automatically switch the service to the corresponding healthy backup node when the automatic failure transfer mechanism is started (document)
    • Add detailed monitoring when writing data, which is convenient for debugging when problems are found. You can enable the -I startup parameter (Document)
    • A series of optimizations were made for the stdin loading scenario, and the data loading performance was twice as high as 4.8.0
  8. Added smooth capacity expansion function (document)

    • Supports expansion tasks without shutting down
    • Support custom data node sets (Segment Set) to realize redistribution of partial tables (Document)
    • Supports parallel execution of table data redistribution
    • Supports connection of unredistributed tables and redistributed tables
    • Supports one-click smooth expansion of graphical interface (Document)
  9. Data migration tool mxshift feature enhancement (document)

    • Migrate data table DDL in database units, and you can choose whether to migrate only DDL
  10. Graphical interface upgrade

    • Add query monitoring pages, support slow query information displayed on custom management pages, and can terminate slow query with one click (Document)
    • Add write test function to experience YMatrix's powerful data writing performance (document)
    • Add query testing function, support custom query testing schemes according to business scenarios, and experience strong query performance of YMatrix in high concurrency scenarios with one click (Document)
    • The deployment page is completely upgraded, and the steps are simpler (Document)
    • The expansion page has been completely upgraded, with smooth expansion function added, and the steps are more lightweight (Document)
    • Added high availability status detection function (document)
  11. Add new policy to automatic partition management auto_partitioning_ex (document)

    • Support batch creation of partitions
    • Support forcing the retention of specific historical partitions
    • Support custom automatic partition operation period