Re: [Maria-developers] [Commits] 7d386bb: MDEV-4549 [PATCH] Clean up code working with ACL tables
Hi Sergei, ok to push. A few minor questions inline. On Mon, Jun 16, 2014 at 09:34:21AM +0200, s...@mariadb.org wrote: revision-id: 7d386bbce216745ba28df728f45a0b796fcced98 parent(s): f61f36b386e8d0c6448297bb84c92e8d9b82be6a committer: Sergei Golubchik branch nick: maria timestamp: 2014-06-15 17:12:57 +0200 message: MDEV-4549 [PATCH] Clean up code working with ACL tables enum values to index different ACL tables, instead of hard-coded numbers (even different in diffent functions). Also factor out TABLE_LIST initialization into a separate function. --- mysql-test/r/not_embedded_server.result| 4 +- mysql-test/r/sp-destruct.result| 3 - .../suite/rpl/r/rpl_tmp_table_and_DDL.result | 22 +- mysql-test/t/not_embedded_server.test | 2 +- mysql-test/t/sp-destruct.test | 1 - sql/sql_acl.cc | 533 + 6 files changed, 235 insertions(+), 330 deletions(-) diff --git a/mysql-test/r/not_embedded_server.result b/mysql-test/r/not_embedded_server.result index 2295276..6dda855 100644 --- a/mysql-test/r/not_embedded_server.result +++ b/mysql-test/r/not_embedded_server.result @@ -1,4 +1,4 @@ -call mtr.add_suppression(Can't open and lock privilege tables: Table 'host' was not locked with LOCK TABLES); +call mtr.add_suppression(Can't open and lock privilege tables: Table 'roles_mapping' was not locked with LOCK TABLES); SHOW VARIABLES like 'slave_skip_errors'; Variable_nameValue slave_skip_errorsOFF Why did it change (here and in other tests)? I didn't notice any table order change in the code. ...skip... diff --git a/mysql-test/r/sp-destruct.result b/mysql-test/r/sp-destruct.result index 172e40c..fe68229 100644 --- a/mysql-test/r/sp-destruct.result +++ b/mysql-test/r/sp-destruct.result @@ -128,11 +128,8 @@ CREATE FUNCTION f1() RETURNS INT RETURN 1; RENAME TABLE mysql.procs_priv TO procs_priv_backup; FLUSH TABLE mysql.procs_priv; DROP FUNCTION f1; -ERROR 42S02: Table 'mysql.procs_priv' doesn't exist SHOW WARNINGS; LevelCodeMessage -Error1146Table 'mysql.procs_priv' doesn't exist -Warning 1405Failed to revoke all privileges to dropped routine # Restore the procs_priv table RENAME TABLE procs_priv_backup TO mysql.procs_priv; FLUSH TABLE mysql.procs_priv; Hmm... why? ...skip... diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 5e8e0e7..442d512 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -380,7 +380,7 @@ class ACL_PROXY_USER :public ACL_ACCESS MYSQL_PROXIES_PRIV_PROXIED_USER, MYSQL_PROXIES_PRIV_WITH_GRANT, MYSQL_PROXIES_PRIV_GRANTOR, -MYSQL_PROXIES_PRIV_TIMESTAMP } old_acl_proxy_users; +MYSQL_PROXIES_PRIV_TIMESTAMP } proxy_table_fields; public: ACL_PROXY_USER () {}; @@ -760,6 +760,99 @@ static int traverse_role_graph_down(ACL_USER_BASE *, void *, int (*) (ACL_USER_BASE *, ACL_ROLE *, void *)); /* + Enumeration of ACL/GRANT tables in the mysql database +*/ +enum enum_acl_tables +{ + USER_TABLE, + DB_TABLE, + TABLES_PRIV_TABLE, + COLUMNS_PRIV_TABLE, +#define FIRST_OPTIONAL_TABLE HOST_TABLE + HOST_TABLE, + PROCS_PRIV_TABLE, + PROXIES_PRIV_TABLE, + ROLES_MAPPING_TABLE, + TABLES_MAX // == always the last +}; +// bits for init_priv_tables +static const int Table_user= 1 USER_TABLE; +static const int Table_db= 1 DB_TABLE; +static const int Table_tables_priv= 1 TABLES_PRIV_TABLE; +static const int Table_columns_priv= 1 COLUMNS_PRIV_TABLE; +static const int Table_host= 1 HOST_TABLE; +static const int Table_procs_priv= 1 PROCS_PRIV_TABLE; +static const int Table_proxies_priv= 1 PROXIES_PRIV_TABLE; +static const int Table_roles_mapping= 1 ROLES_MAPPING_TABLE; + +const LEX_STRING acl_table_names[]= // matches enum_acl_tables +{ + { C_STRING_WITH_LEN(user) }, + { C_STRING_WITH_LEN(db) }, + { C_STRING_WITH_LEN(tables_priv) }, + { C_STRING_WITH_LEN(columns_priv) }, + { C_STRING_WITH_LEN(host) }, + { C_STRING_WITH_LEN(procs_priv) }, + { C_STRING_WITH_LEN(proxies_priv) }, + { C_STRING_WITH_LEN(roles_mapping) } +}; + +/** + Initialize a TABLE_LIST array to a set of acl/grant tables. + All tables will be opened with the same lock type, either read or write. + + @retval !0 a pointer to the first initialized element in the TABLE_LIST + @retval 0 replication filters matched. Abort operation, but return OK (!) +*/ +TABLE_LIST *init_priv_tables(THD *thd, TABLE_LIST *tables, + enum thr_lock_type lock_type, int tables_to_open) Nice clean-up, I assume there was a reason not rewrite open_grant_tables() instead. +{ + int prev= -1; + bzero(tables, sizeof(TABLE_LIST) * TABLES_MAX); + for (int cur=0, mask=1; mask = tables_to_open; cur++, mask = 1) + { +if ((tables_to_open mask) == 0) +
Re: [Maria-developers] [Commits] 7d386bb: MDEV-4549 [PATCH] Clean up code working with ACL tables
Hi, Sergey! Thanks for the review! I won't push yet, need to fix what I said below. Want to see a new patch? On Jun 23, Sergey Vojtovich wrote: Hi Sergei, ok to push. A few minor questions inline. On Mon, Jun 16, 2014 at 09:34:21AM +0200, s...@mariadb.org wrote: --- a/mysql-test/r/not_embedded_server.result +++ b/mysql-test/r/not_embedded_server.result @@ -1,4 +1,4 @@ -call mtr.add_suppression(Can't open and lock privilege tables: Table 'host' was not locked with LOCK TABLES); +call mtr.add_suppression(Can't open and lock privilege tables: Table 'roles_mapping' was not locked with LOCK TABLES); SHOW VARIABLES like 'slave_skip_errors'; Variable_name Value slave_skip_errors OFF Why did it change (here and in other tests)? I didn't notice any table order change in the code. Because TABLE_LIST's entries are linked in the list in the different order. And this error is issued for the first table in the list. I thought this was fine (as the new behavior is also correct) and didn't want to do something complex only to preserve old error messages. But it just occurred to me that I can trivially do that, simply by reversing the for() loop in the init_priv_tables(). I'm testing this now and restore old error messages if everything will work ok. ...skip... diff --git a/mysql-test/r/sp-destruct.result b/mysql-test/r/sp-destruct.result index 172e40c..fe68229 100644 --- a/mysql-test/r/sp-destruct.result +++ b/mysql-test/r/sp-destruct.result @@ -128,11 +128,8 @@ CREATE FUNCTION f1() RETURNS INT RETURN 1; RENAME TABLE mysql.procs_priv TO procs_priv_backup; FLUSH TABLE mysql.procs_priv; DROP FUNCTION f1; -ERROR 42S02: Table 'mysql.procs_priv' doesn't exist SHOW WARNINGS; Level CodeMessage -Error 1146Table 'mysql.procs_priv' doesn't exist -Warning1405Failed to revoke all privileges to dropped routine # Restore the procs_priv table RENAME TABLE procs_priv_backup TO mysql.procs_priv; FLUSH TABLE mysql.procs_priv; Hmm... why? ...skip... For certain objects it was ok to drop them (no error issued) is some of the privilege tables were missing. For example, one could do DROP USER with no error is, say, proxies_priv or roles_mapping doesn't exist. Which is pretty logical, DROP USER means you remove all existing privileges for this user, if a privilege table doesn't exist - well, it doesn't contain any privileges to drop, does it? :) But dropping a function behaved differently. It returned an error if procs_priv did not exist. But the function was dropped regardless. Which is pretty bad on itself. And inconsistent with how DROP generally behaves. I've fixed this as a side-effect (init_priv_tables() treats all tables equally, it cannot make a table optional for one DROP and mandatory for another DROP). diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 5e8e0e7..442d512 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc + + @retval !0 a pointer to the first initialized element in the TABLE_LIST + @retval 0 replication filters matched. Abort operation, but return OK (!) +*/ +TABLE_LIST *init_priv_tables(THD *thd, TABLE_LIST *tables, + enum thr_lock_type lock_type, int tables_to_open) Nice clean-up, I assume there was a reason not rewrite open_grant_tables() instead. Not really. Thanks, I'll do that. +#ifdef HAVE_REPLICATION + if (lock_type = TL_WRITE_ALLOW_WRITE thd-slave_thread !thd-spcont) + { +/* + GRANT and REVOKE are applied the slave in/exclusion rules as they are + some kind of updates to the mysql.% tables. +*/ +Rpl_filter *rpl_filter= thd-system_thread_info.rpl_sql_info-rpl_filter; +if (rpl_filter-is_on() !rpl_filter-tables_ok(0, tables)) + return NULL; + } +#endif Was it a bug that mysql_grant_role() didn't have this code? I suppose so. open_grant_tables() does updating= 0 after tables_ok(). Is that needed? I don't think so (also I set updating unconditionally, old code was only doing that in #ifdef HAVE_REPLICATION). This TABLE_LIST::updating is only used in rpl filtering, I believe it doesn't matter what it's set to after the filtering is done. ...skip... @@ -5783,8 +5796,9 @@ bool mysql_routine_grant(THD *thd, TABLE_LIST *table_list, bool is_proc, } } -if (replace_routine_table(thd, grant_name, tables[1].table, *Str, - db_name, table_name, is_proc, rights, +if (no_such_table(tables + PROCS_PRIV_TABLE) || +replace_routine_table(thd, grant_name, tables[PROCS_PRIV_TABLE].table, + *Str, db_name, table_name, is_proc, rights, revoke_grant) != 0) { result= TRUE; Why no_such_table() here? Yeah... See above - it's ok for a privilege table to be missing when some object is DROP'ped or a privilege is revoked. But
Re: [Maria-developers] [Commits] 7d386bb: MDEV-4549 [PATCH] Clean up code working with ACL tables
Hi Sergei, On Mon, Jun 23, 2014 at 10:01:58AM +0200, Sergei Golubchik wrote: Hi, Sergey! Thanks for the review! I won't push yet, need to fix what I said below. Want to see a new patch? Thanks for your clarifications. I believe there is no need to review new patch. ...skip... Regards, Sergey ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Re: [Maria-developers] Doubt in bin logging for CREATE VIEW
Hi, Sriram! On Jun 19, sriram patil wrote: Hi All, I was checking the behavior of bin logging in various methods. I found out CREATE VIEW differs a little bit than others in bin logging. The query is written into bin log if query is executed successfully. If there is any error the query is not logged. This behavior is observed across all the commands. In case of CREATE VIEW (method: mysql_create_view file: sql/sql_view.cc), while the bin logging is skipped for most of the errors by jumping to err label, it is not skipped ... Is there a specific reason why it is logged even though an error occurs? Or is it a bug? Looks like a bug to me too. It's easy to see in the history - git blame shows that this binlog-writing chunk was added in commit e6eef5c1a765d27e1a8d1c7d707fb416dfa0ec2f. Commit comment and changes to other files in the same commit show that the goal was to move binlogging code inside mysql_create_view (and other similar functions), it was outside before. And before that commit no binlogging was done if mysql_create_view() failed. So, apparently that commit has introduced a bug that you've now found. Good job :) Regards, Sergei ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Re: [Maria-developers] [GSoC] Introduction Mail
Hi all, You can find this week's blog entry at: http://igniting.in/2014/06/23/work-before-mid-term/ Suggestions/reviews are welcome. Regards Anshu Avinash On Mon, Jun 9, 2014 at 7:30 PM, Roberto Spadim robe...@spadim.com.br wrote: Well i wws reading your posts Do you need big data to test read and scan times? Em segunda-feira, 9 de junho de 2014, Anshu Avinash anshu.avinas...@gmail.com escreveu: Hi all, You can find this week's blog entry at http://igniting.in/gsoc2014/2014/06/09/more-coding/. I'm now maintaining the code only on github: https://github.com/igniting/server/tree/selfTuningOptimizer. Regards Anshu Avinash On Sun, May 25, 2014 at 3:27 PM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, You can find my this week's blog entry at http://igniting.in/gsoc2014/2014/05/25/coding-things-up/ . I have created a branch on launchpad for my work: http://bazaar.launchpad.net/~igniting/maria/maria/revision/4211 . You can give your suggestions/reviews either on this thread or as a comment on the blog itself. Regards Anshu Avinash On Tue, May 20, 2014 at 1:22 AM, Roberto Spadim robe...@spadim.com.br wrote: wow a big work, congratulation guy, i will read part by part to better understand mariadb code 2014-05-19 16:33 GMT-03:00 Anshu Avinash anshu.avinas...@gmail.com: Hi all, This week's blog entry would get delayed by couple of days. I have started coding though and would like to give heads up on what I'm doing. I've looked at the diffs for Cost model project of mysql: http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/7596 and http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/7222 . These give a pretty good idea about what are the hard-coded constants and where are they being used. The idea is to multiply READ_TIME_FACTOR and SCAN_TIME_FACTOR to the values returned by read_time() and scan_time() in handler.h, while returning. These values would be read from a table in mysql db. For that I've looked at sql_statistics.cc. After completing this, I'll first change the values of these constants manually and check if the better or worse query plans are being selected. I'll first do the last step manually, to check if everything is working as expected and later automate it. Regards Anshu On Mon, May 12, 2014 at 11:22 AM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, You can find my blog entry for this week at http://igniting.in/gsoc2014/2014/05/11/first-steps/ . Regards Anshu Avinash On Thu, May 8, 2014 at 11:46 PM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, Sorry for the irregular updates. I had been busy for last couple of days and might still be busy for 1-2 days more. I would be completely free starting next week, and would be updating my blog weekly on every Monday (so 1st update would be on May 12). I would also send the link of my post weekly on the mailing list. As discussed on irc, I started to explore the pair of constants: handler::scan_time() and handler::read_time(). -- Roberto Spadim SPAEmpresarial Eng. Automação e Controle ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Re: [Maria-developers] Doubt in bin logging for CREATE VIEW
Hi All, Indeed it is a bug. Here is what I did to verify. I installed MariaDB at two paths on my machine (I could have had multiple data dirs but that struck me later). Wrote a DBUG_EXECUTE_IF as suggested by Kristian in mysql_register_view, which returned ER_OUT_OF_RESOURCES. Ran one mysql server as master and the other as slave. And the result was clear. Even though CREATE VIEW returned error on the master, the VIEW was replicated at the slave. Have not written the test case yet but verified it manually. During this verification I also figured out that there is a crash too. If mysql_register_view returns ER_OUT_OF_RESOURCES. The *view-definer.host* and *view-definer.user* are not set. And the current code tries to write into bin log the details and crashes due to NULL pointer. Anyways, this will be fixed once the bin log issue is resolved. I have not yet figured out how to write automated test cases for replication, but will do that soon. Thanks, Sriram On Mon, Jun 23, 2014 at 3:01 PM, Sergei Golubchik s...@mariadb.org wrote: Hi, Sriram! On Jun 19, sriram patil wrote: Hi All, I was checking the behavior of bin logging in various methods. I found out CREATE VIEW differs a little bit than others in bin logging. The query is written into bin log if query is executed successfully. If there is any error the query is not logged. This behavior is observed across all the commands. In case of CREATE VIEW (method: mysql_create_view file: sql/sql_view.cc), while the bin logging is skipped for most of the errors by jumping to err label, it is not skipped ... Is there a specific reason why it is logged even though an error occurs? Or is it a bug? Looks like a bug to me too. It's easy to see in the history - git blame shows that this binlog-writing chunk was added in commit e6eef5c1a765d27e1a8d1c7d707fb416dfa0ec2f. Commit comment and changes to other files in the same commit show that the goal was to move binlogging code inside mysql_create_view (and other similar functions), it was outside before. And before that commit no binlogging was done if mysql_create_view() failed. So, apparently that commit has introduced a bug that you've now found. Good job :) Regards, Sergei ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Re: [Maria-developers] [GSoC] Introduction Mail
Sorry this page does not exist =( 2014-06-23 8:07 GMT-03:00 Anshu Avinash anshu.avinas...@gmail.com: Hi all, You can find this week's blog entry at: http://igniting.in/2014/06/23/work-before-mid-term/ Suggestions/reviews are welcome. Regards Anshu Avinash On Mon, Jun 9, 2014 at 7:30 PM, Roberto Spadim robe...@spadim.com.br wrote: Well i wws reading your posts Do you need big data to test read and scan times? Em segunda-feira, 9 de junho de 2014, Anshu Avinash anshu.avinas...@gmail.com escreveu: Hi all, You can find this week's blog entry at http://igniting.in/gsoc2014/2014/06/09/more-coding/. I'm now maintaining the code only on github: https://github.com/igniting/server/tree/selfTuningOptimizer. Regards Anshu Avinash On Sun, May 25, 2014 at 3:27 PM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, You can find my this week's blog entry at http://igniting.in/gsoc2014/2014/05/25/coding-things-up/ . I have created a branch on launchpad for my work: http://bazaar.launchpad.net/~igniting/maria/maria/revision/4211 . You can give your suggestions/reviews either on this thread or as a comment on the blog itself. Regards Anshu Avinash On Tue, May 20, 2014 at 1:22 AM, Roberto Spadim robe...@spadim.com.br wrote: wow a big work, congratulation guy, i will read part by part to better understand mariadb code 2014-05-19 16:33 GMT-03:00 Anshu Avinash anshu.avinas...@gmail.com: Hi all, This week's blog entry would get delayed by couple of days. I have started coding though and would like to give heads up on what I'm doing. I've looked at the diffs for Cost model project of mysql: http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/7596 and http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/7222 . These give a pretty good idea about what are the hard-coded constants and where are they being used. The idea is to multiply READ_TIME_FACTOR and SCAN_TIME_FACTOR to the values returned by read_time() and scan_time() in handler.h, while returning. These values would be read from a table in mysql db. For that I've looked at sql_statistics.cc. After completing this, I'll first change the values of these constants manually and check if the better or worse query plans are being selected. I'll first do the last step manually, to check if everything is working as expected and later automate it. Regards Anshu On Mon, May 12, 2014 at 11:22 AM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, You can find my blog entry for this week at http://igniting.in/gsoc2014/2014/05/11/first-steps/ . Regards Anshu Avinash On Thu, May 8, 2014 at 11:46 PM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, Sorry for the irregular updates. I had been busy for last couple of days and might still be busy for 1-2 days more. I would be completely free starting next week, and would be updating my blog weekly on every Monday (so 1st update would be on May 12). I would also send the link of my post weekly on the mailing list. As discussed on irc, I started to explore the pair of constants: handler::scan_time() and handler::read_time(). -- Roberto Spadim SPAEmpresarial Eng. Automação e Controle -- Roberto Spadim SPAEmpresarial Eng. Automação e Controle ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Re: [Maria-developers] [GSoC] Introduction Mail
Hi, Sorry for the confusion, this is the new link: http://igniting.in/gsoc2014/2014/06/23/work-before-mid-term/ Thanks for pointing out. Regards Anshu On Mon, Jun 23, 2014 at 7:32 PM, Roberto Spadim robe...@spadim.com.br wrote: Sorry this page does not exist =( 2014-06-23 8:07 GMT-03:00 Anshu Avinash anshu.avinas...@gmail.com: Hi all, You can find this week's blog entry at: http://igniting.in/2014/06/23/work-before-mid-term/ Suggestions/reviews are welcome. Regards Anshu Avinash On Mon, Jun 9, 2014 at 7:30 PM, Roberto Spadim robe...@spadim.com.br wrote: Well i wws reading your posts Do you need big data to test read and scan times? Em segunda-feira, 9 de junho de 2014, Anshu Avinash anshu.avinas...@gmail.com escreveu: Hi all, You can find this week's blog entry at http://igniting.in/gsoc2014/2014/06/09/more-coding/. I'm now maintaining the code only on github: https://github.com/igniting/server/tree/selfTuningOptimizer. Regards Anshu Avinash On Sun, May 25, 2014 at 3:27 PM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, You can find my this week's blog entry at http://igniting.in/gsoc2014/2014/05/25/coding-things-up/ . I have created a branch on launchpad for my work: http://bazaar.launchpad.net/~igniting/maria/maria/revision/4211 . You can give your suggestions/reviews either on this thread or as a comment on the blog itself. Regards Anshu Avinash On Tue, May 20, 2014 at 1:22 AM, Roberto Spadim robe...@spadim.com.br wrote: wow a big work, congratulation guy, i will read part by part to better understand mariadb code 2014-05-19 16:33 GMT-03:00 Anshu Avinash anshu.avinas...@gmail.com: Hi all, This week's blog entry would get delayed by couple of days. I have started coding though and would like to give heads up on what I'm doing. I've looked at the diffs for Cost model project of mysql: http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/7596 and http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/7222 . These give a pretty good idea about what are the hard-coded constants and where are they being used. The idea is to multiply READ_TIME_FACTOR and SCAN_TIME_FACTOR to the values returned by read_time() and scan_time() in handler.h, while returning. These values would be read from a table in mysql db. For that I've looked at sql_statistics.cc. After completing this, I'll first change the values of these constants manually and check if the better or worse query plans are being selected. I'll first do the last step manually, to check if everything is working as expected and later automate it. Regards Anshu On Mon, May 12, 2014 at 11:22 AM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, You can find my blog entry for this week at http://igniting.in/gsoc2014/2014/05/11/first-steps/ . Regards Anshu Avinash On Thu, May 8, 2014 at 11:46 PM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, Sorry for the irregular updates. I had been busy for last couple of days and might still be busy for 1-2 days more. I would be completely free starting next week, and would be updating my blog weekly on every Monday (so 1st update would be on May 12). I would also send the link of my post weekly on the mailing list. As discussed on irc, I started to explore the pair of constants: handler::scan_time() and handler::read_time(). -- Roberto Spadim SPAEmpresarial Eng. Automação e Controle -- Roberto Spadim SPAEmpresarial Eng. Automação e Controle ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp
Re: [Maria-developers] [GSoC] Introduction Mail
MDEV. it's nice to put full name (MDEV-350), since google and others search engines help when someone try to find information about mdev 350 text is ok :) 2014-06-23 11:04 GMT-03:00 Anshu Avinash anshu.avinas...@gmail.com: Hi, Sorry for the confusion, this is the new link: http://igniting.in/gsoc2014/2014/06/23/work-before-mid-term/ Thanks for pointing out. Regards Anshu On Mon, Jun 23, 2014 at 7:32 PM, Roberto Spadim robe...@spadim.com.br wrote: Sorry this page does not exist =( 2014-06-23 8:07 GMT-03:00 Anshu Avinash anshu.avinas...@gmail.com: Hi all, You can find this week's blog entry at: http://igniting.in/2014/06/23/work-before-mid-term/ Suggestions/reviews are welcome. Regards Anshu Avinash On Mon, Jun 9, 2014 at 7:30 PM, Roberto Spadim robe...@spadim.com.br wrote: Well i wws reading your posts Do you need big data to test read and scan times? Em segunda-feira, 9 de junho de 2014, Anshu Avinash anshu.avinas...@gmail.com escreveu: Hi all, You can find this week's blog entry at http://igniting.in/gsoc2014/2014/06/09/more-coding/. I'm now maintaining the code only on github: https://github.com/igniting/server/tree/selfTuningOptimizer. Regards Anshu Avinash On Sun, May 25, 2014 at 3:27 PM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, You can find my this week's blog entry at http://igniting.in/gsoc2014/2014/05/25/coding-things-up/ . I have created a branch on launchpad for my work: http://bazaar.launchpad.net/~igniting/maria/maria/revision/4211 . You can give your suggestions/reviews either on this thread or as a comment on the blog itself. Regards Anshu Avinash On Tue, May 20, 2014 at 1:22 AM, Roberto Spadim robe...@spadim.com.br wrote: wow a big work, congratulation guy, i will read part by part to better understand mariadb code 2014-05-19 16:33 GMT-03:00 Anshu Avinash anshu.avinas...@gmail.com: Hi all, This week's blog entry would get delayed by couple of days. I have started coding though and would like to give heads up on what I'm doing. I've looked at the diffs for Cost model project of mysql: http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/7596 and http://bazaar.launchpad.net/~mysql/mysql-server/5.7/revision/7222 . These give a pretty good idea about what are the hard-coded constants and where are they being used. The idea is to multiply READ_TIME_FACTOR and SCAN_TIME_FACTOR to the values returned by read_time() and scan_time() in handler.h, while returning. These values would be read from a table in mysql db. For that I've looked at sql_statistics.cc. After completing this, I'll first change the values of these constants manually and check if the better or worse query plans are being selected. I'll first do the last step manually, to check if everything is working as expected and later automate it. Regards Anshu On Mon, May 12, 2014 at 11:22 AM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, You can find my blog entry for this week at http://igniting.in/gsoc2014/2014/05/11/first-steps/ . Regards Anshu Avinash On Thu, May 8, 2014 at 11:46 PM, Anshu Avinash anshu.avinas...@gmail.com wrote: Hi all, Sorry for the irregular updates. I had been busy for last couple of days and might still be busy for 1-2 days more. I would be completely free starting next week, and would be updating my blog weekly on every Monday (so 1st update would be on May 12). I would also send the link of my post weekly on the mailing list. As discussed on irc, I started to explore the pair of constants: handler::scan_time() and handler::read_time(). -- Roberto Spadim SPAEmpresarial Eng. Automação e Controle -- Roberto Spadim SPAEmpresarial Eng. Automação e Controle -- Roberto Spadim SPAEmpresarial Eng. Automação e Controle ___ Mailing list: https://launchpad.net/~maria-developers Post to : maria-developers@lists.launchpad.net Unsubscribe : https://launchpad.net/~maria-developers More help : https://help.launchpad.net/ListHelp