This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Insert benchmark with 2b rows, 16 tables, 16 clients | |
* server changed to have ~56gb of RAM, 56 cores with HT enabled, fast SSD | |
* InnoDB has 35gb buffer pool, MyRocks has 30gb block cache | |
Insert benchmark has 4 steps - see http://smalldatum.blogspot.com/2017/06/the-insert-benchmark.html | |
1) concurrently load 16 tables with 1 client/table | |
2) concurrently scan 16 tables with 1 client/table - scan is done for PK, then each secondary index, then PK index again | |
3) OLTP using 16 write clients and 16 read clients (1 read/write pair per table), each writer does 1000 inserts/second | |
3) OLTP using 16 write clients and 16 read clients (1 read/write pair per table), each writer does 100 inserts/second |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=== modified file 'sql/sql_array.h' | |
--- sql/sql_array.h 2013-11-20 11:05:39 +0000 | |
+++ sql/sql_array.h 2014-01-16 12:01:51 +0000 | |
@@ -105,6 +105,21 @@ template <class Elem> class Dynamic_arra | |
init(prealloc, increment); | |
} | |
+ /* | |
+ Same as above, but make use of initial buffer provided by the caller. The | |
+ Dynamic_array will not try to free the initial buffer. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=== modified file 'sql/opt_subselect.cc' | |
--- sql/opt_subselect.cc 2013-01-07 19:21:05 +0000 | |
+++ sql/opt_subselect.cc 2013-01-28 07:38:00 +0000 | |
@@ -2542,6 +2542,12 @@ void advance_sj_state(JOIN *join, table_ | |
/* Mark strategy as used */ | |
(*strategy)->mark_used(); | |
pos->sj_strategy= sj_strategy; | |
+ | |
+ if (sj_strategy == SJ_OPT_MATERIALIZE) | |
+ join->sj_materialized_lookup_tables |= handled_fanout; |