<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Multi-Tenant on FromDual GmbH</title><link>https://www.fromdual.com/tags/multi-tenant/</link><description>Recent content in Multi-Tenant on FromDual GmbH</description><generator>Hugo</generator><language>en-GB</language><managingEditor>oli.sennhauser@fromdual.com (Oli Sennhauser)</managingEditor><webMaster>oli.sennhauser@fromdual.com (Oli Sennhauser)</webMaster><copyright>© FromDual GmbH</copyright><lastBuildDate>Mon, 14 Oct 2024 10:37:44 +0000</lastBuildDate><atom:link href="https://www.fromdual.com/tags/multi-tenant/index.xml" rel="self" type="application/rss+xml"/><item><title>Sharding with MariaDB MaxScale</title><link>https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/</link><pubDate>Tue, 19 Mar 2024 17:02:58 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/</guid><description>&lt;h2 id="table-of-contents"&gt;Table of contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#overview"&gt;Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#preparation"&gt;Preparation of the shards (MariaDB database instances)&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#creating-test-data"&gt;Create test data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#creating-roles-and-users"&gt;Creating roles and users&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#maxscale-monitor-user"&gt;MaxScale Monitor User&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#mascale-admin-user"&gt;MaxScale Admin User&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#create-application-role-and-accounts"&gt;Create application role and accounts&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#proxy-protocol"&gt;Proxy protocol&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#maxscale-schema-router-configuration"&gt;MaxScale SchemaRouter configuration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#starting-and-stopping-maxscale"&gt;Starting and stopping the MaxScale Load Balancer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#application-tests"&gt;Application tests&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#simple-applicationt-test"&gt;Simple application tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#new-command-show-shards"&gt;New command show shards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#general-tests"&gt;More general test&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#less-simple-tests"&gt;Less simple tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#more-complex-application-tests"&gt;More complex application tests&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#cross-shard-tests"&gt;Cross-shard tests&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#operation-of-a-sharding-system"&gt;Operation of a MaxScale sharding system&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#do-on-all-shards"&gt;Do-on-all-shards&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#invalidate-database-map-cache"&gt;Invalidating the database map cache&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#changing-schema-router-variables-dynamically"&gt;How to change SchemaRouter variables dynamically?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#adding-and-removing-a-tenant"&gt;Adding and removing a tenant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#moving-a-tenant"&gt;Moving a tenant&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#adding-or-removing-a-shard"&gt;Adding or removing a shard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#adapting-configuration-files"&gt;Customising the configuration files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#maintenance-work-on-a-shard"&gt;Maintenance work on the shard&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#observation-of-a-sharding-system"&gt;Observation / monitoring of a MariaDB MaxScale sharding system&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.fromdual.com/blog/sharding-with-mariadb-maxscale/#literature"&gt;Literature / Sources&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;This feature should more or less work with MariaDB MaxScale 6.x.y, 22.08.x, 23.02.x, 23.08.x and 24.02.x. We have tested it with the latest MaxScale version 23.08.05, as we encountered problems with an older version (&lt;a href="https://jira.mariadb.org/browse/MXS-5026" target="_blank"&gt;MXS-5026&lt;/a&gt;).&lt;/p&gt;</description></item><item><title>Sharding do-it-yourself</title><link>https://www.fromdual.com/blog/sharding-do-it-yourself/</link><pubDate>Tue, 15 Feb 2022 12:18:26 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/sharding-do-it-yourself/</guid><description>&lt;p&gt;As already mentioned earlier, we roughly have a hand full of customers which are playing with the though of sharding solutions. They typically have many different customers (clients, tenants) and the number of customers becomes so huge (thousands to millions) that one machine cannot cope with the load any more.&lt;/p&gt;</description></item><item><title>Sharding solutions</title><link>https://www.fromdual.com/blog/sharding-solutions/</link><pubDate>Mon, 24 Jan 2022 15:38:51 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/sharding-solutions/</guid><description>&lt;p&gt;Once in a year or so we get a request of a customer about MariaDB/MySQL sharding solutions. So here we have a list of sharding solutions we are currently aware of:&lt;/p&gt;</description></item><item><title>Table definition cache too small</title><link>https://www.fromdual.com/blog/table-definition-cache-too-small/</link><pubDate>Wed, 15 Jul 2015 06:08:36 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/table-definition-cache-too-small/</guid><description>&lt;p&gt;The number of table definitions (&lt;code&gt;SHOW CREATE TABLE&amp;lt;br&amp;gt;G&lt;/code&gt;) that can be stored in the table definition cache (&lt;code&gt;table_definition_cache&lt;/code&gt;). If you have a large number of tables (&lt;br&gt;&amp;gt; 400) in your database instance, you should consider a larger table definition cache to increase your database throughput and decrease your query latency.&lt;br&gt;
The command &lt;code&gt;SELECT COUNT(*) FROM information_schema.tables;&lt;/code&gt; shows you how many tables and thus table definitions you have. The global status &lt;code&gt;Open_table_definitions&lt;/code&gt; is the current amount of open table definitions.&lt;/p&gt;</description></item><item><title>Table open cache too small</title><link>https://www.fromdual.com/blog/table-open-cache-too-small/</link><pubDate>Wed, 15 Jul 2015 06:04:36 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/table-open-cache-too-small/</guid><description>&lt;p&gt;The Table Open Cache (&lt;code&gt;table_open_cache&lt;/code&gt; or old name &lt;code&gt;table_cache&lt;/code&gt;) is a cache to store file handles for all threads. The actual value of cache entries can be seen with the global status of open tables (&lt;code&gt;Open_tables&lt;/code&gt;).&lt;br&gt;
Increasing &lt;code&gt;table_open_cache&lt;/code&gt; increases the number of file descriptors (&lt;code&gt;open_files_limit&lt;/code&gt;) that MySQL requires.&lt;br&gt;
You can check whether you need to increase the Table Open Cache by checking &lt;code&gt;Open_tables&lt;/code&gt; and &lt;code&gt;Opened_tables&lt;/code&gt;. If the value of &lt;code&gt;Opened_tables&lt;/code&gt; is large and you do not use &lt;code&gt;FLUSH TABLES&lt;/code&gt; often (which just forces all tables to be closed and reopened), then you should increase the value of the &lt;code&gt;table_open_cache&lt;/code&gt; variable.&lt;/p&gt;</description></item><item><title>How MySQL behaves with many schemata, tables and partitions</title><link>https://www.fromdual.com/blog/how-mysql-behaves-with-many-schemata-tables-and-partitions/</link><pubDate>Wed, 30 Nov 2011 15:35:28 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/how-mysql-behaves-with-many-schemata-tables-and-partitions/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Recently a customer claimed that his queries were slow some times and sometimes they were fast.&lt;/p&gt;</description></item><item><title>Configuration of MySQL for Shared Hosting</title><link>https://www.fromdual.com/blog/mysql-shared-hosting-configuration/</link><pubDate>Fri, 22 Apr 2011 13:03:31 +0000</pubDate><author>oli.sennhauser@fromdual.com (Oli Sennhauser)</author><guid>https://www.fromdual.com/blog/mysql-shared-hosting-configuration/</guid><description>&lt;p&gt;If you ask around about shared hosting setups with MySQL everybody is frightened. In fact it looks like shared hosting is one of the most difficult setups you can get.&lt;/p&gt;</description></item></channel></rss>