Skip to content
logo
Percona XtraDB Cluster
Percona XtraDB Cluster limitations
Initializing search
    percona/pxc-docs
    percona/pxc-docs
    • Home
      • About Percona XtraDB Cluster
      • Percona XtraDB Cluster limitations
      • Understand version numbers
      • Quick start guide for Percona XtraDB Cluster
      • Install Percona XtraDB Cluster
      • Configure nodes for write-set replication
      • Bootstrap the first node
      • Add nodes to cluster
      • Verify replication
      • High availability
      • PXC strict mode
      • Online schema upgrade
      • Non-Blocking Operations (NBO) method for Online Scheme Upgrades (OSU)
      • Security basics
      • Secure the network
      • Encrypt PXC traffic
      • Enable AppArmor
      • Enable SELinux
      • State snapshot transfer
      • Percona XtraBackup SST configuration
      • Restart the cluster nodes
      • Cluster failover
      • Monitor the cluster
      • Certification in Percona XtraDB Cluster
      • Percona XtraDB Cluster threading model
      • Understand GCache and Record-Set cache
      • GCache encryption and Write-Set cache encryption
      • Perfomance Schema instrumentation
      • Data at Rest Encryption
      • Upgrade Percona XtraDB Cluster
      • Crash recovery
      • Configure Percona XtraDB Cluster on CentOS
      • Configure Percona XtraDB Cluster on Ubuntu
      • Set up Galera arbitrator
      • How to set up a three-node cluster on a single box
      • How to set up a three-node cluster in EC2 environment
      • Load balancing with HAProxy
      • Load balancing with ProxySQL
      • ProxySQL admin utilities
      • Setting up a testing environment with ProxySQL
      • Release notes index
      • Percona XtraDB Cluster 8.0.31-23 (2023-03-14)
      • Percona XtraDB Cluster 8.0.30-22.md (2022-12-28)
      • Percona XtraDB Cluster 8.0.29-21 (2022-09-12)
      • Percona XtraDB Cluster 8.0.28-19.1 (2022-07-19)
      • Percona XtraDB Cluster 8.0.27-18.1
      • Percona XtraDB Cluster 8.0.26-16.1
      • Percona XtraDB Cluster 8.0.25-15.1
      • Percona XtraDB Cluster 8.0.23-14.1
      • Percona XtraDB Cluster 8.0.22-13.1
      • Percona XtraDB Cluster 8.0.21-12.1
      • Percona XtraDB Cluster 8.0.20-11
      • Percona XtraDB Cluster 8.0.20-11.3
      • Percona XtraDB Cluster 8.0.20-11.2
      • Percona XtraDB Cluster 8.0.19-10
      • Percona XtraDB Cluster 8.0.18-9.3
      • Index of wsrep status variables
      • Index of wsrep system variables
      • Index of wsrep_provider options
      • Index of files created by PXC
      • Frequently asked questions
      • Glossary
      • Copyright and licensing information
      • Trademark policy

    Percona XtraDB Cluster limitations¶

    The following limitations apply to Percona XtraDB Cluster:

    • Replication works only with InnoDB storage engine.

      Any writes to tables of other types are not replicated.

    • Unsupported queries:

      LOCK TABLES and UNLOCK TABLES is not supported in multi-source setups

      Lock functions, such as GET_LOCK(), RELEASE_LOCK(), and so on

    • Query log cannot be directed to table.

      If you enable query logging, you must forward the log to a file:

      log_output = FILE
      

      Use general_log and general_log_file to choose query logging and the log file name.

    • Maximum allowed transaction size is defined by the wsrep_max_ws_rows and wsrep_max_ws_size variables.

      LOAD DATA INFILE processing will commit every 10 000 rows. So large transactions due to LOAD DATA will be split to series of small transactions.

    • Transaction issuing COMMIT may still be aborted at that stage.

      Due to cluster-level optimistic concurrency control, there can be two transactions writing to the same rows and committing in separate Percona XtraDB Cluster nodes, and only one of the them can successfully commit. The failing one will be aborted. For cluster-level aborts, Percona XtraDB Cluster gives back deadlock error code:

      Error message
      (Error: 1213 SQLSTATE: 40001  (ER_LOCK_DEADLOCK)).
      
    • XA transactions are not supported

      Due to possible rollback on commit.

    • Write throughput of the whole cluster is limited by the weakest node.

      If one node becomes slow, the whole cluster slows down. If you have requirements for stable high performance, then it should be supported by corresponding hardware.

    • Minimal recommended size of cluster is 3 nodes.

      The 3rd node can be an arbitrator.

    • enforce_storage_engine=InnoDB is not compatible with wsrep_replicate_myisam=OFF

      wsrep_replicate_myisam is set to OFF by default.

    • Avoid ALTER TABLE ... IMPORT/EXPORT workloads when running Percona XtraDB Cluster in cluster mode.

      It can lead to node inconsistency if not executed in sync on all nodes.

    • All tables must have a primary key.

      This ensures that the same rows appear in the same order on different nodes. The DELETE statement is not supported on tables without a primary key.

      See also

      Galera Documentation: Tables without Primary Keys

    • Avoid reusing the names of persistent tables for temporary tables

      Although MySQL does allow having temporary tables named the same as persistent tables, this approach is not recommended.

      Galera Cluster blocks the replication of those persistent tables the names of which match the names of temporary tables.

      With wsrep_debug set to 1, the error log may contain the following message:

      Error message
      ... [Note] WSREP: TO BEGIN: -1, 0 : create table t (i int) engine=innodb
      ... [Note] WSREP: TO isolation skipped for: 1, sql: create table t (i int) engine=innodb.Only temporary tables affected.
      

      See also

      MySQL Documentation: Problems with temporary tables

    As of version 8.0.21, an INPLACE ALTER TABLE query takes an internal shared lock on the table during the execution of the query. The LOCK=NONE clause is no longer allowed for all of the INPLACE ALTER TABLE queries due to this change.

    This change addresses a deadlock, which could cause a cluster node to hang in the following scenario:

    • An INPLACE ALTER TABLE query in one session or being applied as Total Order Isolation (TOI)

    • A DML on the same table from another session

    Do not use one or more dot characters (.) when defining the values for the following variables:

    • log_bin

    • log_bin_index

    MySQL and XtraBackup handles the value in different ways and this difference causes unpredictable behavior.

    Contact us

    For free technical help, visit the Percona Community Forum.

    To report bugs or submit feature requests, open a JIRA ticket.

    For paid support and managed or consulting services , contact Percona Sales.


    Last update: 2023-01-20
    Percona LLC and/or its affiliates, © 2023
    Made with Material for MkDocs

    Cookie consent

    We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better.