- WL#3158: IM: Instance configuration extensions;
- WL#3159: IM: --bootstrap and --start-default-instance modes
The following new statements have been added:
- CREATE INSTANCE;
- DROP INSTANCE;
The behaviour of the following statements have been changed:
- SET;
- UNSET;
- FLUSH INSTANCES;
- SHOW INSTANCES;
- SHOW INSTANCE OPTIONS;
BitKeeper/deleted/.del-im_options_set.imtest~b53d9d60e5684833:
Delete: mysql-test/t/im_options_set.imtest
BitKeeper/deleted/.del-im_options_set.result~59278f56be61d921:
Delete: mysql-test/r/im_options_set.result
BitKeeper/deleted/.del-im_options_unset.imtest~768eb186b51d0048:
Delete: mysql-test/t/im_options_unset.imtest
BitKeeper/deleted/.del-im_options_unset.result~20a4790cd3c70a4f:
Delete: mysql-test/r/im_options_unset.result
client/get_password.c:
Change prototype to avoid casting when using C-strings (char *).
include/m_string.h:
Moved LEX_STRING to global header from sql/ to be accessible
from all components (IM for one).
include/my_sys.h:
Added constants for modify_defaults_file().
include/mysql_com.h:
Removed duplicated declarations. my_sys.h should be used instead.
libmysql/get_password.c:
Change prototype to avoid casting when using C-strings (char *).
mysql-test/mysql-test-run.pl:
Added environment variables to be used from tests.
mysql-test/r/im_daemon_life_cycle.result:
Column name has been changed in SHOW INSTANCES.
mysql-test/r/im_life_cycle.result:
1. Column name has been changed in SHOW INSTANCES.
2. Removed redundant SHOW INSTANCE STATUS statements.
mysql-test/r/im_utils.result:
Updated the result file.
mysql-test/t/im_daemon_life_cycle-im.opt:
Set minimal monitoring interval for Instance Manager to speed up testing.
mysql-test/t/im_daemon_life_cycle.imtest:
Get Instance Manager and managed mysqld-instances enough time to start.
mysql-test/t/im_life_cycle.imtest:
1. Polishing;
2. Fixed a test error in 1.1.2.
mysql-test/t/im_utils.imtest:
Get Instance Manager and managed mysqld-instances enough time to start.
mysys/default.c:
Pass the name of the section to the handler function as well.
mysys/default_modify.c:
Added REMOVE_SECTION functionality.
server-tools/instance-manager/IMService.cpp:
Polishing: be more verbose.
server-tools/instance-manager/IMService.h:
Polishing: added copyright.
server-tools/instance-manager/Makefile.am:
Added new files.
server-tools/instance-manager/WindowsService.cpp:
Polishing: according to The Coding Style, TRUE/FALSE must be
used instead of true/false.
server-tools/instance-manager/WindowsService.h:
Polishing: added copyright.
server-tools/instance-manager/command.h:
Polishing: provide a comment for the main operation of "Command" class.
server-tools/instance-manager/commands.cc:
1. Added support for CREATE INSTANCE, DROP INSTANCE statements;
2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS;
3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements;
server-tools/instance-manager/commands.h:
1. Added support for CREATE INSTANCE, DROP INSTANCE statements;
2. Added "deprecated" column in output of SHOW INSTANCE OPTIONS;
3. Modified the behaviour of SET/UNSET, FLUSH INSTANCES statements;
server-tools/instance-manager/guardian.cc:
Added operations to retrieve state of managed instances.
server-tools/instance-manager/guardian.h:
Added operations to retrieve state of managed instances.
server-tools/instance-manager/instance.cc:
1. Provided an operation to check validity of instance name.
2. Added an attribute to distiguish mysqld-instances,
whose configuration should be kept backward-compatible.
server-tools/instance-manager/instance.h:
1. Provided an operation to check validity of instance name.
2. Added an attribute to distiguish mysqld-instances,
whose configuration should be kept backward-compatible.
server-tools/instance-manager/instance_map.cc:
1. Used the operation to check validity of instance name;
2. Added operations to manage instances.
server-tools/instance-manager/instance_map.h:
Added operations to manage instances.
server-tools/instance-manager/instance_options.cc:
Changed Instance_options so that it will be possible to manage
options on the fly.
server-tools/instance-manager/instance_options.h:
Changed Instance_options so that it will be possible to manage
options on the fly.
server-tools/instance-manager/listener.cc:
1. Remove reference to the instance of Options;
2. Use new Options naming scheme.
server-tools/instance-manager/listener.h:
Remove reference to the instance of Options;
server-tools/instance-manager/log.cc:
Polishing: use TRUE/FALSE instead of true/false.
server-tools/instance-manager/manager.cc:
Added a common for IM operation to work with configuration file.
server-tools/instance-manager/manager.h:
Added a common for IM operation to work with configuration file.
server-tools/instance-manager/messages.cc:
Added messages for new errors.
server-tools/instance-manager/mysql_connection.cc:
1. Move a constant to common place.
2. Polishing.
server-tools/instance-manager/mysql_manager_error.h:
Added new errors.
server-tools/instance-manager/mysqlmanager.cc:
1. Use error code from Options::load();
2. Eliminate type-casting warning on Windows.
server-tools/instance-manager/options.cc:
Added support for user-management command-line options.
server-tools/instance-manager/options.h:
Added support for user-management command-line options.
server-tools/instance-manager/parse.cc:
1. Added support of new statements:
- CREATE INSTANCE;
- DROP INSTANCE.
2. Modified SET/UNSET.
server-tools/instance-manager/parse.h:
1. Added support of new statements:
- CREATE INSTANCE;
- DROP INSTANCE.
2. Modified SET/UNSET.
server-tools/instance-manager/parse_output.cc:
Sorted out header files.
server-tools/instance-manager/parse_output.h:
Sorted out header files.
server-tools/instance-manager/portability.h:
1. Added constants for Windows.
2. Moved system-dependent defines from instance_options.cc.
server-tools/instance-manager/priv.cc:
Updated version.
server-tools/instance-manager/priv.h:
Added some global constants.
server-tools/instance-manager/protocol.cc:
Replaced NAME_WITH_LENGTH by LEX_STRING.
server-tools/instance-manager/protocol.h:
Replaced NAME_WITH_LENGTH by LEX_STRING.
server-tools/instance-manager/thread_registry.cc:
Polishing: use TRUE/FALSE instead of true/false.
server-tools/instance-manager/user_map.cc:
Added support for managing password database.
server-tools/instance-manager/user_map.h:
Added support for managing password database.
sql/sp.cc:
Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization.
sql/sp_head.cc:
Replaced LEX_STRING_WITH_INIT by LEX_STRING + struct initialization.
sql/spatial.cc:
Removed LEX_STRING_WITH_INIT.
sql/spatial.h:
Removed LEX_STRING_WITH_INIT.
sql/sql_string.h:
Moved STRING_WITH_LEN() macro out from sql (to m_string.h).
sql/sql_trigger.cc:
Moved STRING_WITH_LEN() macro out from sql (to m_string.h).
sql/structs.h:
Removed LEX_STRING_WITH_INIT.
support-files/mysql.server.sh:
Instruct Instance Manager to work in mysqld-safe compatible mode
for backward compatibility.
mysql-test/r/im_cmd_line.result:
Added result file.
mysql-test/r/im_instance_conf.result:
Added result file.
mysql-test/r/im_options.result:
Added result file.
mysql-test/t/im_cmd_line.imtest:
IM command-line options test.
mysql-test/t/im_instance_conf-im.opt:
Set minimal monitoring interval for Instance Manager to speed up testing.
mysql-test/t/im_instance_conf.imtest:
Added a new test case for checking instance-management.
mysql-test/t/im_life_cycle-im.opt:
Set minimal monitoring interval for Instance Manager to speed up testing.
mysql-test/t/im_options.imtest:
Join im_options_set and im_options_unset and add new tests.
mysql-test/t/im_utils-im.opt:
Set minimal monitoring interval for Instance Manager to speed up testing.
server-tools/instance-manager/exit_codes.h:
New file for defining exit codes for user-management mode.
server-tools/instance-manager/user_management_commands.cc:
User-management commands implementation.
server-tools/instance-manager/user_management_commands.h:
User-management command declarations.
Intel compiler.
client/mysqltest.c:
Fixed a warning from using reference to a memory area,
which is outside an object. This is just a minor
clean-up, not a bug fix.
server-tools/instance-manager/buffer.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/buffer.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/command.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/command.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/guardian.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/guardian.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/instance.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/instance.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/instance_map.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/instance_map.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/instance_options.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/instance_options.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/listener.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/listener.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/mysql_connection.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/mysql_connection.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/options.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/options.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/parse_output.cc:
Removed unused goto.
server-tools/instance-manager/thread_registry.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/thread_registry.h:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/user_map.cc:
Fixed pragma warning for those compilers that do
not support it.
server-tools/instance-manager/user_map.h:
Fixed pragma warning for those compilers that do
not support it.
sql/field.cc:
Fixed a warning about overflow.
sql/item.h:
Fixed implicit function declaration warning.
sql/item_sum.cc:
Fixed implicit function declaration warning.
BitKeeper/deleted/.del-factory.h~c1679505d3a6dd53:
Delete: server-tools/instance-manager/factory.h
BitKeeper/deleted/.del-factory.cc~6836cccd4cd35b4d:
Delete: server-tools/instance-manager/factory.cc
server-tools/instance-manager/Makefile.am:
- remove Commands_factory: it'll be needed when we add support
for NNTP/HTTP connections, currently it only adds unnecessary
complexity.
server-tools/instance-manager/commands.cc:
- fix coding style: no else after return; fix comments, make
one place a bit faster.
server-tools/instance-manager/guardian.cc:
- fix coding style and comments.
- we must register the current thread in the thread registry
before entering pthread_cond_timedwait, because at shutdown
the thread registry will try to kick out of wait all blocked
threads. Unregistered threads are not awakened by the registry.
This fixes the failinig assert in Thread_registry::~Thread_registry
at shutdown, when shutdown is requested and there is an
instance monitored by Guardian.
server-tools/instance-manager/guardian.h:
- fix coding style: enums must start with enum_
server-tools/instance-manager/instance.h:
- move comment to the variable it comments
server-tools/instance-manager/instance_map.cc:
- cleanup
server-tools/instance-manager/instance_options.cc:
- cleanup; no else after return (fix coding style).
server-tools/instance-manager/manager.cc:
- fix alignment; make some code easier to read.
server-tools/instance-manager/mysql_connection.cc:
- remove Commands_factory
server-tools/instance-manager/options.cc:
- fix a possible crash when the instance manager is started with
--no-defaults --defaults-file=~/.my.cnf: if we return
without cloning saved_argv by calling load_defaults, Options::cleanup
will crash on attempt to free_defaults(saved_argv);
server-tools/instance-manager/parse.cc:
- get rid of Commands_factory
server-tools/instance-manager/parse.h:
- get rid of Commands_factory
server-tools/instance-manager/parse_output.cc:
- in parse_output_and_get_value return error also if the specified
pattern was not found, or the command failed to execute.
server-tools/instance-manager/portability.h:
- fix coding style (// comments are allowed only at ends of lines)
server-tools/instance-manager/thread_registry.cc:
- implement Thread_registry::cond_timedwait
server-tools/instance-manager/thread_registry.h:
- implement Thread_registry::cond_timedwait; remove
unused out parameter from Thread_registry::cond_wait.
server-tools/instance-manager/user_map.cc:
- safety: newline can take 2 bytes.
include/my_sys.h:
added prototype for the defaults correction function
libmysql/Makefile.shared:
my_chsize added to libmysql to let my_correct_defaults_file be used from libmysql
mysys/default.c:
New defaults function added we use it to correct defaults file. Currently the function doesn't lock defaults
file. This is because of the linking and backwards-compatibility issues. This needs to be fixed later.
mysys/my_chsize.c:
comment added
server-tools/instance-manager/buffer.cc:
cleanup
server-tools/instance-manager/commands.cc:
refactoring: removed do_command method from most of the classes
server-tools/instance-manager/commands.h:
cleanup
server-tools/instance-manager/guardian.cc:
cleanup
server-tools/instance-manager/instance.cc:
cleanup
server-tools/instance-manager/instance_map.cc:
cleanup
server-tools/instance-manager/instance_options.cc:
cleanup
server-tools/instance-manager/instance_options.h:
cleanup
server-tools/instance-manager/listener.cc:
cleanup
server-tools/instance-manager/log.cc:
cleanup
server-tools/instance-manager/manager.cc:
cleanup
server-tools/instance-manager/messages.cc:
new errors added
server-tools/instance-manager/mysql_connection.cc:
cleanup
server-tools/instance-manager/mysql_manager_error.h:
new error codes added
server-tools/instance-manager/mysqlmanager.cc:
clenup
server-tools/instance-manager/options.cc:
cleanup
server-tools/instance-manager/parse.cc:
removed unused function
server-tools/instance-manager/parse.h:
removed prototype
server-tools/instance-manager/protocol.cc:
cleanup
server-tools/instance-manager/protocol.h:
added enum to be used in protocol.cc instead of the constants
current version of the IM
server-tools/instance-manager/commands.cc:
Log and set options commands added
server-tools/instance-manager/commands.h:
Log and set options commands added
server-tools/instance-manager/factory.cc:
Log and set options factory entries added
server-tools/instance-manager/factory.h:
prototypes added
server-tools/instance-manager/instance_options.cc:
fill_log_options() added
server-tools/instance-manager/instance_options.h:
log processing options and funcctions added
server-tools/instance-manager/messages.cc:
new error messages added (log and option processing-related)
server-tools/instance-manager/mysql_connection.cc:
minor fixes
server-tools/instance-manager/mysql_manager_error.h:
new error codes added
server-tools/instance-manager/parse.cc:
parser fixed to recognize new commands. function to parse command-line options added
server-tools/instance-manager/parse.h:
header fixed in line with .cc changes
server-tools/instance-manager/parse_output.cc:
cleanup
server-tools/instance-manager/parse_output.h:
header guards added
server-tools/instance-manager/protocol.cc:
Protocol support extended to provide messages in ok packet
server-tools/instance-manager/protocol.h:
protocol support extended: ok packet could contain messages
server-tools/instance-manager/mysql_connection.cc:
use enum value instead of extern const in array definition
server-tools/instance-manager/priv.cc:
added a comment to remind of enum value in mysql_connection.cc
server-tools/instance-manager/buffer.cc:
simplified buffer interface
server-tools/instance-manager/buffer.h:
simplified buffer interface
server-tools/instance-manager/command.cc:
Command class now uses instance_map directly
server-tools/instance-manager/command.h:
Made Command to use instance_map directly (not through the factory,
which is not needed here in fact)
server-tools/instance-manager/commands.cc:
Moved mysql client/server protocol-specific functions to the commands
server-tools/instance-manager/commands.h:
Added a comment for Syntax_error command, fixed classes to use instance
map instead of the factory
server-tools/instance-manager/factory.cc:
Fixed factory to give appropriate class to the commands
server-tools/instance-manager/guardian.cc:
Fixed guardian to delay start of new instances monitoring.
Moved guardian initialization to the class from Instance map.
server-tools/instance-manager/guardian.h:
interface fixed
server-tools/instance-manager/instance.cc:
added some loging
server-tools/instance-manager/instance_map.cc:
All non-instance map specific functions moved from the class. Added
iterator for instance_map
server-tools/instance-manager/instance_map.h:
All non-instance map related functions moved from the class. Added
iterator for instance_map.
server-tools/instance-manager/listener.cc:
Added FD_CLOEXEC flag to sockets, as we don't want instances to inherit
them after exec.
server-tools/instance-manager/manager.cc:
use guardian method moved from the instance map
server-tools/instance-manager/mysql_connection.cc:
cleanup
server-tools/instance-manager/protocol.cc:
fix according to the changes in the Buffer class
tree
server-tools/instance-manager/Makefile.am:
Fixed IM linking to avoid using both mysys and libmysql as the define the
same symbols and therefore conflict
server-tools/instance-manager/listener.cc:
Added ability to listen network ports
server-tools/instance-manager/listener.h:
Various additions to the Listener_thread_args
server-tools/instance-manager/log.cc:
merge
server-tools/instance-manager/log.h:
merge
server-tools/instance-manager/manager.cc:
Fixes and additions to enable guardian functionality
server-tools/instance-manager/manager.h:
Changed manager() signature
server-tools/instance-manager/mysqlmanager.cc:
Various fixes
server-tools/instance-manager/options.cc:
Added handling of default values for new options in the Options struct. (such
as default_user, default_password, monitoring_interval e.t.c)
server-tools/instance-manager/options.h:
Added new options to the Options struct
sql/net_serv.cc:
Added MYSQL_INSTANCE_MANAGER defines to enable alarm handling in the IM
server-tools/instance-manager/buffer.cc:
Simple implementation of variable-length buffer
server-tools/instance-manager/command.cc:
Abstract command. All commands are derived from Command class
server-tools/instance-manager/commands.h:
Interfaces for all commands we have
server-tools/instance-manager/factory.cc:
Commands factory. This class hides command instantiation. The idea is to
handle various protocols this way. (different commands for different
protocols
server-tools/instance-manager/guardian.cc:
Guardian thread implementation (monitor and restart instances in case of a
failure
server-tools/instance-manager/guardian.h:
Guardian_thread and Guardian_thread_args class interface. The
Guardian_thread is responsible for monitoring and restarting instances
server-tools/instance-manager/instance.cc:
Instance class contains methods and data to manage a single instance
server-tools/instance-manager/instance.h:
This file contains class an instance class interface. The class is
responsible for starting/stopping an instance
server-tools/instance-manager/instance_map.cc:
The instance repository. This class is also responsible for initialization
of Instance class objects.
server-tools/instance-manager/instance_options.cc:
The Instance_options class contains all methods to get and handle options
of an instance
server-tools/instance-manager/mysql_connection.cc:
The class responsible for handling MySQL client/server protocol connections
server-tools/instance-manager/mysql_manager_error.h:
The list of Instance Manger-specific errors
server-tools/instance-manager/parse.cc:
Simple query parser
server-tools/instance-manager/parse.h:
Parser interface
server-tools/instance-manager/protocol.cc:
Here implemented functions used to handle mysql client/server protocol
server-tools/instance-manager/protocol.h:
Interface for MySQL client/server protocol
server-tools/instance-manager/thread_registry.cc:
Thread registry stores information about every thread. It's main function is
to provide graceful shutdown for all threads.
server-tools/instance-manager/user_map.h:
User map contains hash with user names and passwords