diff options
| author | Oleksandr Byelkin <sanja@mariadb.com> | 2018-04-24 09:32:10 +0200 | 
|---|---|---|
| committer | Oleksandr Byelkin <sanja@mariadb.com> | 2018-04-24 09:32:10 +0200 | 
| commit | 47ac7252ff2be9a07b669ce3365953cd9a207654 (patch) | |
| tree | d1a1bd36dd84ac049e812bd885e59e2edb54b5e7 | |
| parent | 461de7edeaef80693e38969a4d7d3f5ae9bb5e63 (diff) | |
| parent | abb4db4c3f52b6f79aad5df2decf10b49e7de1e9 (diff) | |
| download | mariadb-git-47ac7252ff2be9a07b669ce3365953cd9a207654.tar.gz | |
Merge branch 'grooverdan-10.2-MDEV-10814-dont-dump-query-cache' into bb-10.3-MDEV-10814
| -rw-r--r-- | sql/sql_cache.cc | 19 | ||||
| -rw-r--r-- | sql/sql_cache.h | 1 | 
2 files changed, 19 insertions, 1 deletions
diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc index c8f18556d50..d46df21bfcf 100644 --- a/sql/sql_cache.cc +++ b/sql/sql_cache.cc @@ -329,6 +329,9 @@ TODO list:  */  #include "mariadb.h"                          /* NO_EMBEDDED_ACCESS_CHECKS */ +#if defined(DBUG_OFF) && defined(HAVE_MADVISE) +#include <sys/mman.h> +#endif  #include "sql_priv.h"  #include "sql_basic_types.h"  #include "sql_cache.h" @@ -2591,7 +2594,7 @@ size_t Query_cache::init_cache()  {    size_t mem_bin_count, num, step;    size_t mem_bin_size, prev_size, inc; -  size_t additional_data_size, max_mem_bin_size, approx_additional_data_size; +  size_t max_mem_bin_size, approx_additional_data_size;    int align;    DBUG_ENTER("Query_cache::init_cache"); @@ -2656,6 +2659,13 @@ size_t Query_cache::init_cache()    if (!(cache= (uchar *)          my_malloc_lock(query_cache_size+additional_data_size, MYF(0))))      goto err; +#if defined(DBUG_OFF) && defined(HAVE_MADVISE) &&  defined(MADV_DONTDUMP) +  if (madvise(cache, query_cache_size+additional_data_size, MADV_DONTDUMP)) +  { +    DBUG_PRINT("warning", ("coudn't mark query cache memory as MADV_DONTDUMP: %s", +			 strerror(errno))); +  } +#endif    DBUG_PRINT("qcache", ("cache length %zu, min unit %zu, %zu bins",  		      query_cache_size, min_allocation_unit, mem_bin_num)); @@ -2818,6 +2828,13 @@ void Query_cache::free_cache()      } while (block != queries_blocks);    } +#if defined(DBUG_OFF) && defined(HAVE_MADVISE) &&  defined(MADV_DODUMP) +  if (madvise(cache, query_cache_size+additional_data_size, MADV_DODUMP)) +  { +    DBUG_PRINT("warning", ("coudn't mark query cache memory as MADV_DODUMP: %s", +			 strerror(errno))); +  } +#endif    my_free(cache);    make_disabled();    my_hash_free(&queries); diff --git a/sql/sql_cache.h b/sql/sql_cache.h index eb046b4d167..0ed45a9ed81 100644 --- a/sql/sql_cache.h +++ b/sql/sql_cache.h @@ -337,6 +337,7 @@ protected:      till the end of a flush operation.    */    mysql_mutex_t structure_guard_mutex; +  size_t additional_data_size;    uchar *cache;					// cache memory    Query_cache_block *first_block;		// physical location block list    Query_cache_block *queries_blocks;		// query list (LIFO)  | 
