From 7b8579163a8d0838c83586bb7286805e309aff5b Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 3 Feb 2015 11:26:53 +0200 Subject: [PATCH] Added dbshard technical documentation. --- Documentation/dbshard/DBShard-technical.md | 23 ++++++++++++++++++++ Documentation/{ => dbshard}/DBShard.md | 4 ++++ Documentation/dbshard/dbshard-lifecycle.png | Bin 0 -> 65409 bytes server/modules/include/dbshard.h | 19 ---------------- 4 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 Documentation/dbshard/DBShard-technical.md rename Documentation/{ => dbshard}/DBShard.md (95%) create mode 100644 Documentation/dbshard/dbshard-lifecycle.png diff --git a/Documentation/dbshard/DBShard-technical.md b/Documentation/dbshard/DBShard-technical.md new file mode 100644 index 000000000..1c4e7c42f --- /dev/null +++ b/Documentation/dbshard/DBShard-technical.md @@ -0,0 +1,23 @@ +#DBShard Router - Technical Overview + +This document is designed with a developer's point-of-view in mind. It explains the lifecycle of the module and details about its internal workings. It refers to the source code which can be found at [GitHub](https://github.com/mariadb-corporation/MaxScale). + +## Source Files and Data Structures + +The dbshard router consists of the dbshard.h header file located in the `server/modules/include/` directory and the dbshard.c file located in the `server/modules/routing/dbshard` directory. This router implements the router interface defined in the router.h file. The entry points and structures this router uses can be found in the header file. The two main structures in use are the router instace and router session structures. The router instance structure is defined in `struct router_instance` and the router session structure in `struct router_client_session`. + +The definitions of the external functions and all the internal functions of the router can be found in the dbshard.c file. + +## Router Lifecycle + +When MaxScale first starts, it creates all services and thus creates the router instances of all the routers. The functions involved in this stage are ModuleInit, which is called only once when MaxScale first starts, and createInstance, called for each individual instace of this router in all the configured services. These functions read configuraion values and initialize internal data. + +When a user connects to MaxScale, a new session is created and the newSession function is called. At this point the client session connects to all the backend servers and initializes the list of databases. + +After the session is created queries are routed to the router's routeQuery function. This is where most of the work regarding the resolution of query destinations is done. The main internal functions involved in routing the query are get_shard_route_target (detects if a query needs to be sent to all the servers or to a specific one), get_shard_target_name (parses the query and finds the name of the right server) and route_session_write (handles sending and and storing session commands). After this point the client's query has been sent to the backend server and the router waits for either an response or an error signaling that the backend server is not responding. + +If a response is received the clientReply function is called and response is simply sent to the client and the router is then ready for more queries. If there is no response from the server and the connection to it is lost the handleError function is called. This function tries to find replacement servers for the failed ones and regenerates the list of databases. This also triggeres the sending of an error packet to the client that notifies that the server is not responding. + +After the session ends the closeSession is called where the session is set to a closed state after which the freeSession is called where the final freeing of memory is done. After this point the router's session has gone through all the stages of its lifecycle. + +![DBShard Router Lifecycle](dbshard-lifecycle.png) diff --git a/Documentation/DBShard.md b/Documentation/dbshard/DBShard.md similarity index 95% rename from Documentation/DBShard.md rename to Documentation/dbshard/DBShard.md index 74ac3607d..38f7d73a6 100644 --- a/Documentation/DBShard.md +++ b/Documentation/dbshard/DBShard.md @@ -26,3 +26,7 @@ SELECT queries that modify session variables are not currently supported because ## Examples To be implemeted. + +## Technical Documentation + +[Technical Overview and Lifecycle Walkthrough](DBShard-technical.md) diff --git a/Documentation/dbshard/dbshard-lifecycle.png b/Documentation/dbshard/dbshard-lifecycle.png new file mode 100644 index 0000000000000000000000000000000000000000..61bcf699e6418265d527304e85ed967913dc9017 GIT binary patch literal 65409 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%0AyHdTvOLG^m_z?V8TqZE+vdx~N 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 literal 0 HcmV?d00001 diff --git a/server/modules/include/dbshard.h b/server/modules/include/dbshard.h index ddfdf218b..2f6816187 100644 --- a/server/modules/include/dbshard.h +++ b/server/modules/include/dbshard.h @@ -224,25 +224,6 @@ typedef struct dbshard_config_st { } rwsplit_config_t; -#if defined(PREP_STMT_CACHING) - -typedef struct prep_stmt_st { -#if defined(SS_DEBUG) - skygw_chk_t pstmt_chk_top; -#endif - union id { - int seq; - char* name; - } pstmt_id; - prep_stmt_state_t pstmt_state; - prep_stmt_type_t pstmt_type; -#if defined(SS_DEBUG) - skygw_chk_t pstmt_chk_tail; -#endif -} prep_stmt_t; - -#endif /*< PREP_STMT_CACHING */ - /** * The client session structure used within this router. */