-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: multi-tenant, should add a concept "tenant" above "keyspace" #16
Comments
Actually, there is one implict keyspace for each backend wesql-server database.
Based on the fact above, 'tenant' is not a replacement of 'keyspace', it's more like a collection of 'keyspace'. |
I see, yeah, then we will have a higher concept above the keyspace. |
As a prerequisite for multi-tenancy, we need to refactor our current routing module, which includes route.go, routing.go, resolver.go and modify some metadata structures. This is important for implementing multi-tenancy. The current routing module was customized for sharding and contains a lot of unnecessary code for our use case. |
A thought:
|
What should be the granularity for allowing freedom to migrate in mysqld? |
Do we want to perform computational tasks, such as joining, in the proxy? One approach is to specify a concept, such as a table group, where all tables within the group must be placed in the same MySQL server. The proxy pushes all computations to MySQL. However, if tables from different groups need to perform a join, it will not be supported. The other approach is to implement a more complete planner and executor within the proxy, allowing joins to be performed within the proxy. |
Is your improvement request related to a problem? Please describe.
in original vitess topology, keyspace means logic database, and each keyspace contains multiple shards. each tablet manages no more than one keyspace. vitess addresses tablets with keyspace.
while in wesql-scale, we allows a tablet manages multiple databases, and there is only one global implict keyspace for one backend wesql-server cluster. so the concept "keyspace" is of little use now.
In the future, wesql-scale may supports multi-tenants, that is, a single wesql-cluster may serve multiple wesql-server clusters. In this scenario, we should introduce a concept named "tenant", each tenant means a standalone wesql-server cluster, which contains multiple databases.
The similiarity of "keyspace" and "tenant" is that, vitess will distinguish, organize and lookup tablet using this concept.
So my suggestion is, we can use "tenant" to replace "keyspace", and before we supports multi-tenant, there is only one tenant for each vitess cluster.
The text was updated successfully, but these errors were encountered: