示例#1
0
def test_shrink_to_size_dry_run_reflects_wet_run(flowmachine_connect):
    """
    Test that shrink_below_size dry run is an accurate report.
    """
    dl = daily_location("2016-01-01").store().result()
    dl2 = daily_location("2016-01-02").store().result()
    shrink_to = get_size_of_table(flowmachine_connect, dl.table_name, "cache")
    queries_that_would_be_removed = shrink_below_size(flowmachine_connect,
                                                      shrink_to,
                                                      dry_run=True)
    removed_queries = shrink_below_size(flowmachine_connect,
                                        shrink_to,
                                        dry_run=False)
    assert [q.md5 for q in removed_queries
            ] == [q.md5 for q in queries_that_would_be_removed]
示例#2
0
def test_shrink_to_size_does_nothing_when_cache_ok(flowmachine_connect):
    """
    Test that shrink_below_size doesn't remove anything if cache size is within limit.
    """
    dl = daily_location("2016-01-01").store().result()
    removed_queries = shrink_below_size(flowmachine_connect,
                                        get_size_of_cache(flowmachine_connect))
    assert 0 == len(removed_queries)
    assert dl.is_stored
示例#3
0
def test_shrink_to_size_respects_dry_run(flowmachine_connect):
    """
    Test that shrink_below_size doesn't remove anything during a dry run.
    """
    dl = daily_location("2016-01-01").store().result()
    dl2 = daily_location("2016-01-02").store().result()
    removed_queries = shrink_below_size(flowmachine_connect, 0, dry_run=True)
    assert 2 == len(removed_queries)
    assert dl.is_stored
    assert dl2.is_stored
示例#4
0
def test_shrink_to_size_removes_queries(flowmachine_connect):
    """
    Test that shrink_below_size removes queries when cache limit is breached.
    """
    dl = daily_location("2016-01-01").store().result()
    removed_queries = shrink_below_size(
        flowmachine_connect,
        get_size_of_cache(flowmachine_connect) - 1)
    assert 1 == len(removed_queries)
    assert not dl.is_stored
示例#5
0
def test_shrink_to_size_uses_score(flowmachine_connect):
    """
    Test that shrink_below_size removes cache records in ascending score order.
    """
    dl = daily_location("2016-01-01").store().result()
    dl_aggregate = dl.aggregate().store().result()
    flowmachine_connect.engine.execute(
        f"UPDATE cache.cached SET cache_score_multiplier = 100 WHERE query_id='{dl_aggregate.md5}'"
    )
    flowmachine_connect.engine.execute(
        f"UPDATE cache.cached SET cache_score_multiplier = 0.5 WHERE query_id='{dl.md5}'"
    )
    table_size = get_size_of_table(flowmachine_connect, dl.table_name, "cache")
    removed_queries = shrink_below_size(flowmachine_connect, table_size)
    assert 1 == len(removed_queries)
    assert not dl.is_stored
    assert dl_aggregate.is_stored