Bug #70924 Server object does not have a clean design to represent scaling out servers
Submitted: 15 Nov 2013 17:31 Modified: 19 Dec 2013 11:30
Reporter: Alfranio Junior Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Fabric Severity:S3 (Non-critical)
Version:1.4.0 OS:Any
Assigned to: Alfranio Junior CPU Architecture:Any
Tags: database structure, fabric

[15 Nov 2013 17:31] Alfranio Junior
Description:
There is no information in the server that specifies its willingness/likelihood to accept read-only transactions. This along with the fact that the field that stores whether a server accepts read-only or read-write operations is also used to store information on the server's availability make it difficult to define
scale-out servers in Fabric.

How to repeat:
Check the code lib/mysql/fabric/server.py:class Server:status.

Suggested fix:
Clean up the implementation.

Use server's status to identify only its availability and create two additional fields. The first field, named mode, would be used to identify the type of transaction, read-only or read-write, a server could accept and the second, named weight, would denote its likelihood of getting a request.

This design will make things clear and clean.