Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V1.3.0 #739

Merged
merged 117 commits into from
Oct 17, 2016
Merged

V1.3.0 #739

merged 117 commits into from
Oct 17, 2016

Conversation

renecannao
Copy link
Contributor

@renecannao renecannao commented Oct 16, 2016

Merging v1.3.0 into master. This pull requests includes all the changes in v1.3.0-exp2 , listed in #738 .

Additionally, it includes:

  • A lot of code refactoring
  • Support for prepared statements
  • reduced memory allocation overhead
  • upgrade from mariadb-connector-c 2.1.0 to 2.3.1
  • several performance improvements
  • use of pthread_mutex for connection pool

Adding some code for the evaluation of prepared statements
Variable mysql-stmt_multiplexing is introduced too, but not active
Conflicts:
	include/MySQL_Protocol.h
	include/mysql_connection.h
	lib/Makefile
	lib/MySQL_Session.cpp
Added functions:
* void handler___status_WAITING_CLIENT_DATA___STATE_SLEEP___MYSQL_COM_QUERY___create_mirror_session()
* int handler_again___status_PINGING_SERVER();
* void handler_again___new_thread_to_kill_connection();
Added functions:
* handler_again___verify_backend_charset();
* handler_again___verify_init_connect();
* handler_again___verify_backend_autocommit();
* handler_again___verify_backend_user_schema();
* handler_again___status_SETTING_INIT_CONNECT(int *);
* handler_again___status_CHANGING_SCHEMA(int *);
* handler_again___status_CONNECTING_SERVER(int *);
Added function:
* handler_again___status_CHANGING_USER_SERVER(int *)

Fixed indentation in handler_again___status_CONNECTING_SERVER
Added function:
* handler_again___status_CHANGING_AUTOCOMMIT(int *)
A new Query_Processor_Output (qpo) is allocated for every query.
Allocation is now done once per session, thus speeding up execution time
under memory profiler
sysbench starts running
So far, single thread sysbench is working.
Multi-threaded and resume from broken connections is still not working.
It means it still needs a lot of changes.
Introduced classes:
* stmt_execute_metadata_t
* MySQL_STMTs_meta
* converted MySQL_Authentication to use unsorted_map instead of btree_map
* Query_Cache now uses pointers to KV_BtreeArray
* removed some unnecesary headers
* fixed multiplexing
* fixed memory leak
ProxySQL used a patched version of MariaDB Connector C 2.1.0 (aka libmariadbclient).
That version was patched to fix several bugs.
Although, version 2.1.0 seems to be quite broken in handling Prepared Statements, so now MariaDB Connector C was upgraded to version 2.3.1 .
Since this is a key compoenent in ProxySQL, several tests need to be performed because of this major change.
These are 2 memory leaks related to prepared statements
* Resultset (MySQL_ResultSet() not deallocated
* mysql_stmt_free_result() is now correctly called
Related to issue #171
Added variable mysql-query_cache_size_MB

Also removed compiling of simple_kv.cpp

Conflicts:
	lib/Makefile
@renecannao renecannao merged commit 4a40741 into master Oct 17, 2016
acabaca24 added a commit to acabaca24/proxysql that referenced this pull request Jan 12, 2022
As reported in sysown#3740 there was duplicated code.
Originated from this merge sysown#739
@acabaca24 acabaca24 mentioned this pull request Jan 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant