MXS-3892: Delay routing instead of canceling it

Putting the sessions that aren't doing the update on hold makes the new
mechanism work the same way the old one did with the exception that it
won't put any extra work on the database itself.
This commit is contained in:
Markus Mäkelä
2021-12-24 07:13:08 +02:00
parent 41c2a6ee8e
commit 56ea0db3e6
2 changed files with 50 additions and 4 deletions

View File

@ -148,6 +148,7 @@ private:
int inspect_mapping_states(SSRBackend& bref, GWBUF** wbuf);
enum showdb_response parse_mapping_response(SSRBackend& bref, GWBUF** buffer);
void route_queued_query();
bool delay_routing(mxb::Worker::Call::action_t action);
void synchronize_shards();
void handle_mapping_reply(SSRBackend& bref, GWBUF** pPacket);
bool handle_statement(GWBUF* querybuf, SSRBackend& bref, uint8_t command, uint32_t type);
@ -170,5 +171,6 @@ private:
uint64_t m_sent_sescmd; /**< The latest session command being executed */
uint64_t m_replied_sescmd;/**< The last session command reply that was sent to the client */
SERVER* m_load_target; /**< Target for LOAD DATA LOCAL INFILE */
uint32_t m_dcid {0};
};
}