Details
-
Task
-
Status: Stalled (View Workflow)
-
Major
-
Resolution: Unresolved
-
None
Description
When using a proxy, such as MaxScale to do read/write split, It is not easy to keep session state consistent between different backends, especially for session user variables; When execute stored procedure, or do some select with user variable modification,It is hard for proxy to notice that a variable was changed, and get the lasted value;
For example,
select a, b from (select (@id:=@id+1) as id, a, b from t group by c order by d) tt where id < 10; |
select @a:=b, c from t |
...
|
Currently, Maxscale route these queries to every backends or route all to master, it is not efficient and sometimes not correct;
So we suggest that server provide a session user variables tracker to inform proxy the what variable changed, and the lasted value, then propagate the results to other backends.
Attachments
Issue Links
- blocks
-
MXS-1756 Keep session consistent via session variable tracker
- Closed
- causes
-
MDEV-22709 Assertion `store.length() <= (256L*256L*256L-1)' failed in net_send_ok
- Closed
- includes
-
CONC-477 Support all session tracking types
- Open
-
MDEV-22709 Assertion `store.length() <= (256L*256L*256L-1)' failed in net_send_ok
- Closed
- relates to
-
MDEV-22574 user variable tracking has no tests and C/C support
- Closed