-This is mostly fixes for correct behaviour when using query cache + transactions + the thread that
fetches commit count from NDB at regular intervals. The major fix is to add a
list in thd_ndb, that keeps a list of NDB_SHARE's that were modified by
transaction and then "clearing" them in ndbcluster_commit.
mysql-test/r/ndb_cache2.result:
Updated test cases for the ndb_util thread, more simultaneous tables and more tesst
mysql-test/t/ndb_cache2.test:
Updated test cases for the ndb_util thread, more simultaneous tables and more advanced tesst
sql/ha_ndbcluster.cc:
Add table changed during transaction to list of changed tables in Thd_ndb, this list is then used in ndbcluster_commit to invalidate the cached commit_count in share
Fix so that ndb_util_thread uses milliseconds "sleeps"
Changed so that ndb_commit_count uses the commit_count from share if available
sql/ha_ndbcluster.h:
Add commit_count_lock to NBD_SHARE, use for detecting simultaneous attempts to update commit_count
Add list of tables changed by transaction to Thd_ndb
Change check_ndb_connection to take thd as argument, use current_thd as default
Added m_rows_changed variable to keep track of if this handler has modified any records within the transaction
sql/set_var.cc:
Change format of code
Sort sys__ variables in aplha order
mysql-test/r/ndb_cache2.result:
Decreased ndb_cache_check_time to avoid timing related problem on aix52-64bit and octane2
mysql-test/t/ndb_cache2.test:
Decreased ndb_cache_check_time to avoid timing related problem on aix52-64bit and octane2
mysql-test/r/ndb_cache.result:
Added 'order by' to select's
mysql-test/r/ndb_cache2.result:
Added 'order by' to select's
mysql-test/t/ndb_cache.test:
Added 'order by' to select's
mysql-test/t/ndb_cache2.test:
Added 'order by' to select's
sql/ha_innodb.h:
Changed function name
sql/ha_ndbcluster.cc:
Merge from query cache from 4.1 to 5.0
Added better comments
ndb_get_table_statistics had changed, so there where some adaptions to make
sql/ha_ndbcluster.h:
Changed name of function
sql/handler.h:
Changed name of function
sql/sql_cache.cc:
Changed name of function
- Added a thread that fetches commit_count for open tables. This
will mean that NDB will not have to be contacted for every use of a cached query.
sql/ha_ndbcluster.cc:
Added a thread that periodically will fetch commit_count
for open tables and store that value in share.
The commit count value is then used when query cache
asks if a cached query can be used.
The thread activation interval is regulated by the
config variable ndb_cache_check_time, it's default value is 0
which means that NDB is contacted every time a cached query is reused.
sql/ha_ndbcluster.h:
Added commit_count to share
Added ndb_cache_check_time
sql/mysqld.cc:
Added config variable ndb_cache_check_time
sql/set_var.cc:
Added config variable ndb_cache_check_time