61 lines
2.4 KiB
Plaintext
61 lines
2.4 KiB
Plaintext
/** \mainpage SkySQL Gateway
|
|
|
|
The SkySQL Gateway is an intelligent proxy that allows forwarding of
|
|
database statements to one or more database server user complex rules
|
|
and a semantic understanding of the database satements and the roles of
|
|
the various servers within the backend cluster of databases.
|
|
|
|
The Gateway is designed to provided load balancing and high avilability
|
|
functionality transparantly to the applications. In addition it provides
|
|
a highly scalable and flexibile architecture, with plugin components to
|
|
support differnt protocols and routing decissions.
|
|
|
|
The Gateway is implemented in C and makes entensive use of the
|
|
asynchronous I/O capabilities of the Linux operating system. The epoll
|
|
system is used to provide the event driven framework for the input and
|
|
output via sockets.
|
|
|
|
The protocols are implemented as external shared object modules which
|
|
can be loaded and runtime. These modules support a fixed interface,
|
|
communicating the entries points via a structure consisting of a set of
|
|
function pointers. This structured is called the "module object".
|
|
|
|
The code that routes the queries to the database servers is also loaed
|
|
as external shared objects and are referred to as routing modules.
|
|
|
|
\section Building Building the Gateway
|
|
|
|
The gateway is designed to be built using make. Simply run the make command
|
|
from the top level and it will build all the components ofthe system.
|
|
|
|
Other make targets are available
|
|
|
|
install - Installs the binary and the modules in the location defined by the
|
|
make variable DEST
|
|
|
|
ctags - Build tags files for the vi editor
|
|
|
|
documentation - Build the doxygen documentation
|
|
|
|
depend - Update the dependencies used by the makefiles
|
|
|
|
\section Running Running the Gateway
|
|
|
|
The gateway consists of a core executable and a number of modules that implement
|
|
the different protocols and routing algorithms. These modules are built as
|
|
shared objects that are loaded on demand. In order for the gateway to find these
|
|
modules it will search using a predescribed search path. The rules are:
|
|
|
|
1. Look in the current directory for the module
|
|
|
|
2. Look in $GATEWAY_HOME/modules
|
|
|
|
3. Look in /usr/local/skysql/gateway/modules
|
|
|
|
Configuration is read by default from the file $GATEWAY_HOME/etc/gateway.cnf,
|
|
/etc/gateway.cnf, an example file is included in the root of the source tree. The
|
|
default location can be overriden by use of the -c flag on the command line. This
|
|
should be immediately followed by the path to the configuration file.
|
|
|
|
*/
|