PBXT System Variables

MariaDB until 5.3

PBXT is no longer maintained, and is not part of MariaDB 5.5 or later.

This page documents system variables related to the PrimeBase XT storage engine (PBXT). PBXT is no longer maintained, and is not part of MariaDB 5.5 or later.

See Server System Variables for a complete list of system variables and instructions on setting them.

See also the Full list of MariaDB options, system and status variables.

Variables that specify a number of bytes may include a unit indication after the value. For example: 100KB, 64MB, etc. There should be no space between the number and the unit. Units are case insensitive (KB = Kb = kb). If no unit is specified then bytes is assumed. The recognized units are:

  • KB (or K) - Kilobyte, 1024 bytes
  • MB (or M) - Megabyte, 1024 KB
  • GB (or G) - Gigabyte, 1024 MB
  • TB (or T) - Terabyte, 1024 GB
  • PB (or P) - Petabyte, 1024 TB

Variables which use this type of value are: pbxt_index_cache_size, pbxt_record_cache_size, pbxt_log_cache_size, pbxt_log_file_threshold, pbxt_checkpoint_frequency, pbxt_data_log_threshold, pbxt_log_buffer_size, pbxt_data_file_grow_size, and pbxt_row_file_grow_size.

PBXT Data Log Variables

PBXT stores part of the database in the data logs. This is mostly data from rows containing long VARCHAR fields or BLOB data. The data logs are managed by the "compactor" thread. When a record is deleted from a data log, the data is marked as garbage. When the total garbage in a data log reaches a certain threshold, the compactor thread compacts the data log by copying the valid data to a new data log, and deleting the old data log.

Options for PBXT

Option Default Value
--pbxt ON
--pbxt-max-threads 0
--pbxt-statistics ON

pbxt_auto_increment_mode

  • Description: The parameter determines how PBXT manages auto-increment values. Possible values are '0' (MySQL standard) or '1' (Previous IDs are never re-used).

    In the standard 'MySQL' mode it is possible that an auto-increment value is re-issued. This occurs when the maximum auto-increment value is deleted, and then MariaDB is restarted. This occurs because the next auto-increment value to be issued is determined at startup by retrieving the current maximum auto-increment value from the table.

    In mode 1, auto-increment values are never re-issued because PBXT automatically incrementing the table level AUTO_INCREMENT table option. The AUTO_INCREMENT table is incremented in steps of 100. Since this requires the table file to be flushed to disk, this can influence performance.
  • Commandline: --pbxt-auto-increment-mode=#
  • Default Value: 0
  • Removed: MariaDB 5.5

pbxt_checkpoint_frequency

  • Description: The amount of data written to the transaction log before a checkpoint is performed.
  • Commandline: --pbxt-checkpoint-frequency=#
  • Default Value: 24MB
  • Removed: MariaDB 5.5

pbxt_data_file_grow_size

  • Description: The grow size of the handle data (.xtd) files.
  • Commandline: --pbxt-data-file-grow-size=#
  • Default Value: 2MB
  • Removed: MariaDB 5.5

pbxt_data_log_threshold

  • Description: The maximum size of a data log file. PBXT can create a maximum of 32000 data logs, which are used by all tables. So the value of this variable can be increased to increase the total amount of data that can be stored in the database.
  • Commandline: --pbxt-data-log-threshold=#
  • Default Value: 64MB
  • Removed: MariaDB 5.5

pbxt_flush_log_at_trx_commit

  • Description: This variable specifies the durability of recently committed transactions. By reducing the durability, the speed of write operations can be increased.

    '0' - Lowest durability, the transaction log is not written or flushed on transaction commit. In this case it is possible to loose transactions if the server executable crashes.
    '1' - Full-durability, the transaction log is written and flushed on every transaction commit.
    '2' - Medium durabilty, the transaction log is written, but not flushed on transaction commit. In this case it is possible to loose transactions of the server machine crashes (for example, a power failer).

    In all cases, the transaction log is flushed at least once every second. This means that it is only every possible to loose database changes that occurred within the last second.
  • Commandline: --pbxt-flush-log-at-trx-commit=#
  • Default Value: 1
  • Removed: MariaDB 5.5

pbxt_garbage_threshold

  • Description: The percentage of garbage in a data log file before it is compacted. This is a value between 1 and 99.
  • Commandline: --pbxt-garbage-threshold=#
  • Default Value: 50
  • Removed: MariaDB 5.5

pbxt_index_cache_size

  • Description: The amount of memory allocated to the index cache. The memory allocated here is used only for caching index pages (.xti files).
  • Commandline: --pbxt-index-cache-size=#
  • Default Value: 32MB
  • Removed: MariaDB 5.5

pbxt_log_buffer_size

  • Description: This is the size of the buffer used when writing a data log. The engine allocates one buffer per thread, but only if the thread is required to write a data log.
  • Commandline: --pbxt-log-buffer-size=#
  • Default Value: 256MB
  • Removed: MariaDB 5.5

pbxt_log_cache_size

  • Description: The size of a transaction log file (xlog-*.xt files) before "rollover", and a new log file is created.
  • Commandline: --pbxt-log-cache-size=#
  • Default Value: 32MB
  • Removed: MariaDB 5.5

pbxt_log_file_count

  • Description: The number of transaction log files on disk before logs that are no longer required are deleted, default value is 3. The number of transaction logs on disk may exceed this number if the logs are still being read.

    If a transaction log has been read (i.e. the log is offline), it will be recycled for writing again, unless it must be deleted because the number of logs on disk exceeds this threshold. Recycling logs is an optimization because the writing a pre-allocated file is faster then writing to the end of a file.

    Note: an exception to this rule is Mac OS X. On Mac OS X old log files are not recycled because writing pre-allocated file is slower than writing to the end of file.
  • Commandline: --pbxt-log-file-count=#
  • Default Value: 3
  • Removed: MariaDB 5.5

pbxt_log_file_threshold

  • Description: The size of a transaction log file (xlog-*.xt files) before "rollover", and a new log file is created.
  • Commandline: --pbxt-log-file-threshold=#
  • Default Value: 32MB
  • Removed: MariaDB 5.5

pbxt_offline_log_function

  • Description: This variable determines what happens to a transaction log when it is offline. A log is offline if PBXT is no longer reading or writing to the log. There are 3 possibilities:

    '0' - Recycle log (default). This means the log is renamed and written again.
    '1' - Delete log (default on Mac OS X).
    '2' - Keep log. The logs can be used to repeat all operations that were applied to the database.
  • Commandline: --pbxt-offline-log-function=#
  • Default Value: 0
  • Removed: MariaDB 5.5

pbxt_record_cache_size

  • Description: This is the amount of memory allocated to the record cache used to cache table data. This memory is used to cache changes to the handle data (.xtd) and row index (.xtr) files.
  • Commandline: --pbxt-record-cache-size=#
  • Default Value: 32MB
  • Removed: MariaDB 5.5

pbxt_row_file_grow_size

  • Description: The grow size of the row index (.xtr) files.
  • Commandline: --pbxt-row-file-grow-size=#
  • Default Value: 256KB
  • Removed: MariaDB 5.5

pbxt_sweeper_priority

  • Description: Determines the priority of the background Sweeper thread. Possible values are '0' (Low), '1' (Normal), or '2' (High). The Sweeper is responsible for removing deleted records and index entries (deleted records also result from UPDATE statements). If many old deleted records accumulate search operations become slower. Therefore it may improve performance to increase the priority of the Sweeper on a machine with 4 or more cores.
  • Commandline: --pbxt-sweeper-priority=#
  • Default Value: 0
  • Removed: MariaDB 5.5

pbxt_support_xa

  • Description: This variable determines if XA (2-phase commit) support is enabled.
  • Commandline: --pbxt-support-xa=#
  • Default Value: TRUE
  • Removed: MariaDB 5.5

pbxt_transaction_buffer_size

  • Description: The size of the global transaction log buffer (the engine allocates 2 buffers of this size). Data to be written to a transaction log file is first written to the transaction log buffer. Since the buffer is flushed on transaction commit, it only makes sense to use a large transaction log buffer if you have longer running transactions, or many transaction running in parallel.
  • Commandline: --pbxt-transaction-buffer-size=#
  • Default Value: 1MB
  • Removed: MariaDB 5.5

Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.

© 2021 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/pbxt-system-variables/