This topic describes the engine release notes for AnalyticDB for PostgreSQL in elastic storage mode in 2021 and provides links to the relevant references.

You can update your instances to the latest minor engine version in the AnalyticDB for PostgreSQL console. For more information about how to update the minor engine version, see Update the minor engine version.

December 6, 2021 (V6.3.6.1)

CategoryFeatureDescriptionReferences
New featureMaterialized viewThe query rewrite feature is supported for materialized views to improve performance for JOIN operations, aggregate functions, subqueries, common table expressions (CTEs), and high-concurrency SQL statements.
Real-time materialized views are supported for partitioned tables. Real-time materialized views
Partitioned tableThe INSERT ON CONFLICT statement is supported for partitioned tables. Use INSERT ON CONFLICT to overwrite data
The COPY ON CONFLICT statement is supported for partitioned tables. Use COPY ON CONFLICT to overwrite data
Scheduled taskThe following features are provided for scheduled tasks after the pg_cron plug-in is updated to V1.4:
  • Scheduled tasks can be executed across databases.
  • Existing scheduled tasks can be modified.
  • The names of scheduled tasks can be specified.
  • The cron.job_run_details table is added to record the execution information of scheduled tasks.
Use the pg_cron plug-in to configure scheduled tasks
Data readable during compute node specification changesIn versions earlier than V6.3.6.1, the data of each table is redistributed when the compute node specifications are being changed, and tables are not readable or writable. In V6.3.6.1 and later, all tables are readable and only the tables that incur data redistribution are not writable during this process. This improvement reduces the impact of compute node specification changes on your business. None
Fixed issueThe issue that may cause Unexpected gang size error errors in specific scenarios is fixed.
The issue that may cause frequent FATAL: reader could not find writer proc entry errors in specific scenarios is fixed.
The issue that may cause the Laser engine to incur left join errors in specific scenarios is fixed.
The issue that may cause data restoration failures for Basic Edition instances due to an invalid synchronous_standby_names parameter is fixed.

October 13, 2021 (V6.3.5.2)

CategoryFeatureDescriptionReferences
New featureAuto-mergeAuto-merge is a process that runs in the backend of AnalyticDB for PostgreSQL to automatically sort data. This feature checks the status of data in a table on a regular basis. It sorts new unordered data and merges the data with the existing ordered data.

Auto-merge supports only append-optimized (AO) tables that are configured with sort keys.

Auto-merge
Automatic closing of idle connectionsConnections can be closed 6 hours after they become idle.
Note
None
Optimized featureSorting accelerationThe sorting acceleration feature is supported when data is updated. Configure sorting acceleration
Laser engine
  • The performance of the Laser engine in scenarios where ORDER BY clauses are executed on a large amount of data is improved.
  • The performance of the Laser engine in scenarios where the COUNT DISTINCT operator is used is improved.
  • The issue that may trigger pointer exceptions in specific hash join scenarios is fixed.
  • The issue that may cause errors in specific hash left join, hash right join, or hash full join scenarios is fixed.
  • The issue that bitmap index scans for an append-optimized column-oriented table take a long period of time is fixed.
  • The issue that may cause executions to fail when a large number of partitioned tables are involved is fixed.
Use the Laser computing engine
Maximum number of user connectionsThe maximum number of user connections is increased based on instance specifications of AnalyticDB for PostgreSQL.
  • 2 cores, 16 GB: from 300 to 550.
  • 4 cores, 32 GB: from 300 to 750.
  • 8 cores, 64 GB: from 400 to 950.
Limits
Real-time materialized view
  • Real-time materialized views are supported for INSERT ON CONFLICT DO UPDATE and COPY ON CONFLICT DO UPDATE statements.
  • The issue that real-time materialized views cannot support replicated tables is fixed.
  • The issue that real-time materialized views cannot support UPSERT clauses is fixed.
Real-time materialized views
PL/JavaBy default, the PL/Java feature is disabled. Create and use PL/Java UDFs
Fixed issueThe issue that the column name cannot contain totalrows or totaldeadrows is fixed.
The issue that the data type cannot be converted from INT96 to TIMESTAMP in Parquet-formatted Object Storage Service (OSS) foreign tables is fixed.
The issue that may cause archiving exceptions is fixed. Archiving exceptions may occur because archiving programs are missing or Python modules fail to be imported after a primary/secondary switchover.
The issue that may cause memory leaks if data is accessed or a source file is changed while OSS foreign tables are being scanned is fixed.

July 13, 2021 (V6.3.4.0)

CategoryFeatureDescriptionReferences
New featureLaser engineBy default, the Laser engine is enabled in AnalyticDB for PostgreSQL. Use the Laser computing engine
Parallel queryBy default, parallel query is enabled for individual tables in AnalyticDB for PostgreSQL. Configure parallel query
Sorting accelerationThe sorting acceleration feature is supported. After you execute a SORT <tablename> statement, the system sorts the data of the specified table. Then, AnalyticDB for PostgreSQL pushes operators such as SORT down to the storage layer so that queries are accelerated based on the physical order of data.

This feature can accelerate queries that contain SORT, AGG, and JOIN operators based on sort keys.

Configure sorting acceleration
Minor version queryGlobal User Configuration (GUC) parameters are supported to query the minor version of AnalyticDB for PostgreSQL. The following statement is used:
show adbpg_version;
View the minor engine version
Optimized featureReal-time materialized viewPerformance is enhanced for real-time materialized views. The aggregate functions MAX and MIN can be used in DELETE and UPDATE statements. CTEs can be used in change statements executed on base tables. Real-time materialized views
Fixed issueIn previous versions, Panic errors may occur in the checkpoint process on the secondary server after you truncate an AO table multiple times in a transaction and then abort the transaction. This issue is fixed.

May 28, 2021

CategoryFeatureDescriptionReferences
New featureAUTO VACUUMThe auto-vacuum feature is supported to automatically execute VACUUM statements. Auto-vacuum checks for tables that have a large number of INSERT, UPDATE, or DELETE operations. When necessary, auto-vacuum executes a VACUUM statement on the tables to vacuum junk data to accelerate queries. By default, when more than half of the rows of a table are deleted, auto-vacuum executes a VACUUM statement on the table to vacuum junk data. Configure scheduled maintenance tasks to clear junk data
AUTO ANALYZEThe auto-analyze feature is supported to automatically execute ANALYZE statements. Auto-analyze checks for tables that have a large number of INSERT, UPDATE, or DELETE operations. When necessary, auto-analyze executes an ANALYZE statement on the tables to collect their statistics after the operations. By default, when these operations are performed on more than 10% of the rows in a table, auto-analyze executes an ANALYZE statement on the table. Use the ANALYZE statement to collect statistics on AnalyticDB for PostgreSQL
BRIN indexBRIN stands for Block Range Index and is supported for compressed AO tables. For example, BRIN indexes can be used to query large-range data from an ordered table or filter out data blocks that are not needed to reduce I/O. When large datasets are involved, BRIN indexes can provide similar or superior performance but require less physical storage and generation costs compared with other indexes such as B-tree indexes. Manage indexes
Parallel query (beta)The rds_segment_expansion_coeff parameter is supported for session-level queries. The parameter value is of the INTEGER type, and the default value is 1.

This parameter specifies a multiple of cores for a single query to implement parallel query and uses a query optimizer to further optimize the query. In scenarios with low queries per second (QPS), this parameter can linearly improve the performance of compute-intensive queries executed for longer than 3 seconds. Typical scenarios include aggregate queries for individual tables (TPC-H Q1 or TPC-H Q6) and join operations between large and small tables.

However, this parameter provides only marginal improvements for I/O-intensive queries and high disk usage scenarios, and may reduce the performance for network-intensive queries.

None
Real-time materialized view (beta)Real-time materialized views are supported for AnalyticDB for PostgreSQL. Real-time materialized views provide features similar to those of materialized views, but do not require you to manually execute REFRESH statements when data changes. Real-time materialized views
Optimized featureInstance endpoints can be used to perform DDL operations between the BEGIN transaction block and the ROLLBACK or COMMIT transaction block.
Instance endpoints can be used to perform TEMP TABLE and TEMP VIEW operations for session-level queries.