Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-4583

QUERY CACHE - low memory cleanup method

    Details

      Description

      instead of removing queries from cache with today method, we could create a new method (news methods)

      query_cache_clean_method=DEFAULT / PROCEDURE

      DEFAULT is today implementation

      PROCEDURE will execute some mysql schema stored procedure

      since query cache can be veeery big (today i'm using 100MB), maybe procedure will lock query cache a lot, and queries will not hit query cache...
      well in this case we could continue with query cache locked, or timeout and get back to default method

      add a new global variable: query_cache_clean_timeout= 999999 in seconds, if set to "0" don't timeout

      well that's just an idea =) query cache is a nice feature, and, yes, it's not the main function of database / application development/runtime, but it can speed up many things very easly, in other words, a good cache (with very high hit rate) is a performace boost in any system

      in coments i will put some ideas from others MDEV (sorry about many comments in others MDEV), that could be procedures or method to remove queries from cache when lowmem

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            rspadim roberto spadim added a comment -

            please don't close this query cache...
            maybe it's a nice 'low memory' solution about query cache
            it's not related to prune what will be inserted (label = querycache_insert)
            it's not related to control query cache (label = querycache_control)
            it's not related to select / query cache hit (label = querycache_result)
            it's not related to query cache at client side (label = querycache_client)
            it's related to what query cache will do when it get low mem

            Show
            rspadim roberto spadim added a comment - please don't close this query cache... maybe it's a nice 'low memory' solution about query cache it's not related to prune what will be inserted (label = querycache_insert) it's not related to control query cache (label = querycache_control) it's not related to select / query cache hit (label = querycache_result) it's not related to query cache at client side (label = querycache_client) it's related to what query cache will do when it get low mem
            Hide
            rspadim roberto spadim added a comment -

            from MDEV-4581

            maybe should consider:
            1) mean period between hits lower than expend time
            2) mean period between hits higher than expend time
            3) global mean period between hits (today implemented)

            i'm seeing many queries that could be removed because the hit period is bigger than the expend time
            in other words... if my query cache remove this query i will have near no user reporting 'system is slow now'

            Show
            rspadim roberto spadim added a comment - from MDEV-4581 maybe should consider: 1) mean period between hits lower than expend time 2) mean period between hits higher than expend time 3) global mean period between hits (today implemented) i'm seeing many queries that could be removed because the hit period is bigger than the expend time in other words... if my query cache remove this query i will have near no user reporting 'system is slow now'

              People

              • Assignee:
                Unassigned
                Reporter:
                rspadim roberto spadim
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Time Tracking

                  Estimated:
                  Original Estimate - 5 weeks
                  5w
                  Remaining:
                  Remaining Estimate - 5 weeks
                  5w
                  Logged:
                  Time Spent - Not Specified
                  Not Specified