Release Notes for MariaDB Xpand 23.09.1
This page is part of MariaDB's Documentation.
The parent of this page is: Release Notes for MariaDB Xpand 23.09
Topics on this page:
Overview
MariaDB Xpand is a distributed SQL database. This is the first General Availability (GA) release in the MariaDB Xpand 23.09 series.
MariaDB Xpand 23.09.1 was released on 2023-09-21.
The changes listed here are relative to MariaDB Xpand 6.1.1.
Multi-region HA Clusters
Multi-region clusters provide full, zero RPO high availability in the face of a regional failure.
A single Xpand cluster can be deployed across multiple regions.
In the event of a complete region failure, the database remains completely available and able to serve traffic immediately.
No manual intervention is required to restore from backup since the fault tolerance and resilience is built into the cluster.
Within each region, multiple zones can also be configured. In the event of a single zone failure within a region, the other zones within the same region will provide HA.
For more information, see Configure Multi-Region HA Cluster with MariaDB Xpand.
LDAP Integration
Xpand supports native authentication and authorization support through the Lightweight Directory Access Protocol (LDAP), including the ability to map LDAP groups to User Roles in the database. (XPAND-34710)
LDAP integration provides a convenient option for system administrators to define a centralized access control of users and group permissions, without having to duplicate the setup for each distinct Xpand cluster or any other service capable of utilizing LDAP.
After configuration, each Xpand node in the cluster can directly process login requests for LDAP users by making connections with one or multiple LDAP servers using the
ldap://
orldaps://
protocols.MaxScale 23.08.1 or higher is required for LDAP integration.
For more information see, see Native LDAP Support for MariaDB Xpand and the list of added system variables.
XFS Support
The XFS file system is now supported by Xpand. (XPAND-34067, XPAND-36615)
For more about the XFS file system, see The XFS File System at redhat.com.
Rocky 9 and RHEL 9 Support
MariaDB Xpand 23.09 supports Rocky Linux 9 and RHEL 9 operating systems, as well as CentOS 7 and RHEL 7 operating systems.
CentOS 7 and RHEL 7 support will be removed in a future MariaDB Xpand release series.
Fast Parallel Import (xpand_import
)
xpand_import
is a new parallel import tool that provides fast parallel import of CSV and dump files. (XPAND-37135, XPAND-36559, XPAND-36852)
xpand_import
is bundled with new installations of Xpand 23.09 by default.xpand_import
replacesclustrix_import
andclx_import
which are now deprecated.xpand_import
supports--ssl-ca
and--ssl-verify-server-cert
options. (XPAND-36852)
For more information see, see xpand_import
for MariaDB Xpand
Notable Changes
General Enhancements
If Zones are configured, they can now include a name (and not just a numbering). (XPAND-34524)
When dropping a node, the hostname can be used as an argument. (XPAND-20434)
Dropping nodes by
nid
(nodeid
) is deprecated, and will be removed in a future release.
AWS S3 Backup and Restore can use IAM permissions. (XPAND-36793)
The default value for
multi_alloc
is automatically set as a percentage of available memory. (XPAND-37154)The histograms in the
internode_latency_histograms
table have been modified to account for larger values. (XPAND-37160)The total number of open file handles is added to the
system.stats
table. (XPAND-36787)SHUTDOWN
requests are logged to thequery.log
file. (XPAND-36241)When
binlog reprotect
is complete, a message is added to the log. (XPAND-35999)The dependency on virtual relations that read from
/proc
has been reduced. (XPAND-36340)Setting
proc_vrels_disable = true
(default:false
) will turn specific vrels into no-op, including relevant monitoring bystatd
. This affects the following objects in theSYSTEM
database:PROC_INTERRUPTS
,PROC_SOFTIRQS
,PROC_DISKSTATS
,PROC_CPU
,PROC_NET_DEV
,PROC_NETSTAT
A new
inaccessible_slices
system table has been added that contains a list of slices for which there is no available replica. (XPAND-33936)
Compatibility
Support added for the
NATIONAL VARCHAR
data type. (XPAND-36445)Support added for the
LONG VARBINARY
data type.LONG VARBINARY
is aliased toMEDIUMBLOB
. (XPAND-36666)The
default_storage_engine
system variable has been added.For compatibility purposes, the default engine type is listed as InnoDB but the Clustrix engine type is applied. (XPAND-35519)
proxy_protocol_networks
can be configured with a comma separated list. (XPAND-36564)The
SHOW PLUGINS
statement is supported.SHOW PLUGINS
will always return0
rows. (XPAND-36450)The C API has been updated to return the correct values for the
MYSQL_TIME
structure. (XPAND-36599)Roles can be specified as the
DEFINER
of a procedure, function, or trigger. (XPAND-36519)SET NAMES DEFAULT
is supported by aliasing it toSET NAMES utf8
. (XPAND-32572)
Installation and Upgrade
The SSH socket connect timeout for
clx
is increased. (XPAND-37244)For Rocky Linux 9 and RHEL 9 installs,
systemd
is used instead ofsudo
to run thenanny
process as non-root
(XPAND-35981)A
sysctl.d
configuration file is used instead of modifyingsysctl.conf
(XPAND-35998)
Optimizer/Probability Distribution (PD) Enhancements
The way memory limits are applied to the query optimizer has been simplified, and clearer error messages are displayed when memory limits are exceeded. (XPAND-29196)
The cardinality estimate has been redesigned to improve the accuracy of the estimates and create more optimal query plans. (XPAND-36374)
The upper limit of the
max_sierra_opt_mem_MiB
global variable has been increased. (XPAND-37008)The number of scans performed with columns is limited by the number of processors. (XPAND-36989)
Index matching on the data type mismatch in-list predicate is prohibited to avoid incorrect results. (XPAND-36907)
The query optimizer generates more optimal plans. (XPAND-36994)
Parent FK tables are excluded from joins if no columns are required. (XPAND-36382)
The probability distributions are flushed to disk during
SHUTDOWN
. (XPAND-36292)The probability distributions are synchronized as part of the
ALTER
statement. (XPAND-24031)Fetching the initial probability distributions starts only with a subset. (XPAND-36811)
The accuracy of the probability distribution for freshly loaded data has been improved. (XPAND-36515)
The PD size has been added to the
system.device_containers
table. (XPAND-36794)
Performance
The performance of
statd
has been improved. (XPAND-37224)The internal program cache has been modified to make it more scalable. (XPAND-37193)
The performance of queries to the
system.nodeinfo
table has been improved. (XPAND-37221)The performance of queries to the
system.activity
table has been improved. (XPAND-37109)
Tools and Utilities
All scripts have been converted to Python 3, including:
clustrix_clone_users
(XPAND-36726)binlog-trim
(XPAND-36727)clxperf
(XPAND-36858)alerter.py
(XPAND-36580)
The XpandGUI is no longer supported, and is no longer bundled with installations and upgrades. (XPAND-36925)
Issues Fixed
Can result in data loss
Group changes with ongoing writes to columnar indexes can cause the columnar indexes to become corrupted. (XPAND-36922)
Scaling out using more nodes than currently in quorum overwrites the system catalog. (XPAND-37129)
Can result in a hang or crash
Cluster restart results in a memory leak. (XPAND-36552)
Setting
internode_timeout_ms
to a too-low value (for example100ms
) can prevent a cluster from forming. (XPAND-37241)Rarely, when executing a soft group change the group management protocol encounters a race condition and causes a hard group change. (XPAND-37087)
When doing bulk writes with a columnar index, a crash can occur. (XPAND-35422)
Probability distribution (PD) causes an out of memory (OOM) condition. (XPAND-36662)
The lack of statistics (PDs) would misinform the predictive governor, which would allow queries to execute, even when they exceed sierra_
predictive_ governor_ threshold (which could lead to a crash). (XPAND-36336) Using
ANALYZE
can cause a crash. (XPAND-36839)In rare cases, the global transaction manager causes a crash. (XPAND-36510)
Out of memory (OOM) condition occurs when there are a large number of slices. (XPAND-36733)
Setting the
SPLIT_THRESHOLD_KB
system variable too low can result in a crash. (XPAND-26826)When a binlog transaction size exceeds 31KB, the system can crash. (XPAND-36203)
Using a large number of values in
COALESCE()
can result in a crash. (XPAND-37068)When a query compilation triggers a recompile, and the query optimizer finds an empty expression, it can result in a crash. (XPAND-36785)
Generating a debug dump can cause a crash. (XPAND-36701)
Can result in unexpected behavior
Flushing the Query Plan Cache (QPC) can be over-aggressive leading to more query re-compilation and resulting in slightly decreased performance. (XPAND-37036)
URIs can be incorrectly encoded when using backup/restore from S3. (XPAND-37091)
Wrong results could be generated when
OR/IN
are used withDATETIME
inWHERE
predicate when compared withINT
(XPAND-35039)The history of slice splits shows an incorrect split size. (XPAND-36956)
The Rebalancer excessively swaps slices. (XPAND-36618)
Rebalancer incorrectly computes if a swap should occur. (XPAND-36681)
SELECT CURRENT_ROLE()
retrieves stale roles. (XPAND-36525)GRANT <role> TO <user>
is not honored when a stored procedure is invoked with a setDEFINER
. (XPAND-37171)The binlog reprotect process occupies all available task space on all nodes preventing other Rebalancer tasks from being performed. (XPAND-37246)
Starting with this release, the binlog reprotect process will limit itself to using a subset of nodes.
The Host Anomaly Detector incorrectly generates error messages if non-default log locations are configured. (XPAND-36760)
Backups omit empty slices. (XPAND-36163)
Interface Changes
ALTER CLUSTER CHANGE REGION SQL statement added
ALTER CLUSTER CREATE OBSERVER REGION SQL statement added
ALTER CLUSTER CREATE PRIMARY REGION SQL statement added
ALTER CLUSTER CREATE SECONDARY REGION SQL statement added
ALTER CLUSTER CREATE ZONE SQL statement added
ALTER CLUSTER DROP REGION SQL statement added
ALTER CLUSTER DROP ZONE SQL statement added
ALTER CLUSTER RENAME REGION SQL statement added
ALTER CLUSTER RENAME ZONE SQL statement added
cluster_status
system table addedcolumn_
table_ system variable removeddef_ card for MariaDB Xpand columnar_
frame_ system variable removedsize for MariaDB Xpand Com_show_cluster_status
status variable addedCom_show_plugins
status variable added (XPAND-36450)default_
storage_ system variable added (XPAND-35519)engine for MariaDB Xpand inaccessible_slices
system table added (XPAND-33936)join_
swap_ system variable removedthreshold for MariaDB Xpand LONG VARBINARY data type added (XPAND-36666)
NATIONAL VARCHAR data type added (XPAND-36445)
PLUGINS
information schema table added (XPAND-36450)regions
system table addedSHOW CLUSTER STATUS SQL statement added
SHOW PLUGINS SQL statement added (XPAND-36450)
sierra_
use_ system variable removeddef_ systab_ card for MariaDB Xpand storage_
engine for MariaDB Xpand system variable addedstraight_
join_ system variable removedthreshold for MariaDB Xpand task_
rebalancer_ system variable addedrebalance_ regions_ interval_ ms for MariaDB Xpand zones
system table added
LDAP Support
activate_
all_ system variable added (XPAND-34710)roles_ on_ login for MariaDB Xpand ldap_
cache_ system variable added (XPAND-34710)enabled for MariaDB Xpand ldap_
cache_ system variable added (XPAND-34710)entry_ lifetime_ s for MariaDB Xpand ldap_
cache_ system variable added (XPAND-34710)max_ bytes for MariaDB Xpand ldap_
enabled for MariaDB Xpand system variable added (XPAND-34710)ldap_
group_ system variable added (XPAND-34710)query for MariaDB Xpand ldap_
group_ system variable added (XPAND-34710)to_ xpand_ role for MariaDB Xpand ldap_
network_ system variable added (XPAND-34710)timeout_ s for MariaDB Xpand ldap_
query_ system variable added (XPAND-34710)password for MariaDB Xpand ldap_
query_ system variable added (XPAND-34710)user for MariaDB Xpand ldap_
servers for MariaDB Xpand system variable added (XPAND-34710)ldap_
tls_ system variable added (XPAND-34710)cacert for MariaDB Xpand ldap_
user_ system variable added (XPAND-34710)lookup for MariaDB Xpand ldap_
user_ system variable added (XPAND-34710)lookup_ query for MariaDB Xpand ldap_
user_ system variable added (XPAND-34710)lookup_ substitution for MariaDB Xpand
Changes to Default Values for Global Variables
The following global variables have new default values. If you are upgrading from a previous release, we recommend reviewing the new default values, and consider applying them to your system. If you would like further assistance or guidance, please contact MariaDB support.
cost_read_column
default changed from0.9
to0.3
Adjusts costs to achieve more optimal plans.
internode_timeout_ms
default changed from100
to1000
A higher setting results in lower CPU utilization.
layer_max_top_layer_size_bytes
default changed from16777216
to67108864
(XPAND-36889)Performance testing has shown that a higher value is more optimal.
max_sierra_tot_mem_MiB
default changed from160
to512
This option may affect planning/compilation time, but also results in much faster runtimes. The new value is relative to
max_sierra_opt_mem_MiB
and is set higher to achieve better plans.
rebalancer_rebalance_mode
default changed fromnoswap
tonormal
reoptimize_group_after_merge
default changed fromfalse
totrue
sierra_allow_mtable_cross_join
default changed fromfalse
totrue
This rule was previously disabled to reduce query plan execution time. The query optimizer is now more sophisticated and can take advantage of this rule in a more reasonable time.
sierra_extract_max_recursion_depth
default changed from10000
to2000
sierra_table_def_card
default changed from10000
to1
This value changes the default cardinality used for tables where probability statistic information is not available.
XpandGUI
The XpandGUI is no longer supported, and is no longer bundled with installations and upgrades. (XPAND-36925)