[MXS-3286] Smart Engine-aware routing in MaxScale (e.g. Xpand, Columnstore) Created: 2020-11-06  Updated: 2022-09-08  Resolved: 2022-09-08

Status: Closed
Project: MariaDB MaxScale
Component/s: N/A
Affects Version/s: None
Fix Version/s: N/A

Type: New Feature Priority: Minor
Reporter: Shane Johnson (Inactive) Assignee: Todd Stoffel (Inactive)
Resolution: Won't Do Votes: 0
Labels: None

Issue Links:
Blocks
is blocked by MXS-3289 Make the use of different/multiple st... Open

 Description   

If MaxScale is routing a write to an Xpand table (and only an Xpand table), there should be an options to bypass Server and write directly to the Xpand backend. This assumes there are server definitions for both MariaDB and backend Xpand instances.

Perhaps it can be thought of as a service comprised of two services. While the MariaDB service may use a read/write splitter to funnel writes to the primary, the Xpand service can load balance writes across all backend Xpand instances.

The top level services simply evaluates the query to determine whether or not it can route a write to the Xpand services. If not, it routes it to the MariaDB services.

This assumes MaxScale can get tables definitions and maintain metadata about the storage engine used by all tables.

The goal is to optimized write performance (throughput and latency) when writing data to Xpand tables (and only to Xpand tables).



 Comments   
Comment by Johan Wikman [ 2020-11-06 ]

This should be doable, but basically it could only be applied when transactions are not used.

If most transactions would be known to target only xpand tables, then an optimistic approach could be used. When a transaction is started, MaxScale would always start it on xpand. If the transaction stays xpand "pure", then all is fine. If it does not, then MaxScale would abort the transaction on xpand, replay it on Server and provided the result of the replayed statements would be identical, MaxScale would send the non-xpand pure statement to Server and thereafter continue using it. Basically https://mariadb.com/kb/en/mariadb-maxscale-23-readwritesplit/#optimistic_trx would be reused for this purpose.

Comment by Christine Lieu (Inactive) [ 2020-12-08 ]

maxmether can work with you on the requirements.

Comment by Gregory Dorman (Inactive) [ 2022-09-08 ]

There is no more Xpand plugin (was taken down officially). This is not moot and should be closed.

Generated at Thu Feb 08 04:20:19 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.