• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

georgia-tech-db / eva / 20a9a0f9-edcc-437c-815d-bcc1a2d22b17

10 Nov 2023 04:50AM UTC coverage: 66.644% (-10.2%) from 76.812%
20a9a0f9-edcc-437c-815d-bcc1a2d22b17

push

circleci

americast
update docs

0 of 1 new or added line in 1 file covered. (0.0%)

1354 existing lines in 113 files now uncovered.

8767 of 13155 relevant lines covered (66.64%)

0.67 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

53.85
/evadb/utils/kv_cache.py
1
# coding=utf-8
2
# Copyright 2018-2023 EvaDB
3
#
4
# Licensed under the Apache License, Version 2.0 (the "License");
5
# you may not use this file except in compliance with the License.
6
# You may obtain a copy of the License at
7
#
8
#     http://www.apache.org/licenses/LICENSE-2.0
9
#
10
# Unless required by applicable law or agreed to in writing, software
11
# distributed under the License is distributed on an "AS IS" BASIS,
12
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
# See the License for the specific language governing permissions and
14
# limitations under the License.
15
import pickle
1✔
16
from typing import Any
1✔
17

18
from diskcache import FanoutCache
1✔
19

20

21
class DiskKVCache:
1✔
22
    """Disk key value cache
23

24
    Args:
25
        `path` (str): the path on disk where the cache will be stored
26
        `max_cache_size` (int, optional): an integer representing the maximum size of
27
            the cache. The system will make its best effort to enforce this limit, but it may slightly exceed it. The default value is 2**30.
28
        `shards` (int, optional): an integer representing the number of shards to use.
29
            This can improve concurrent writes. The default value is 3. size limit of
30
            individual cache shards is the `max_cache_size` divided by the number of
31
            shards.
32
    """
33

34
    def __init__(self, path: str, max_cache_size: int = 2**30, shards: int = 3):
1✔
35
        # For details, see: http://www.grantjenks.com/docs/diskcache/tutorial.html#settings
UNCOV
36
        default_settings = {
×
37
            "size_limit": max_cache_size,
38
            "eviction_policy": "least-recently-stored",
39
            "disk_pickle_protocol": pickle.HIGHEST_PROTOCOL,
40
        }
UNCOV
41
        self._path = path
×
UNCOV
42
        self._cache = FanoutCache(path, shards=shards, **default_settings)
×
43

44
    def get(self, key: Any):
1✔
45
        value = self._cache.get(key, default=None)
×
46
        return value
×
47

48
    def set(self, key: Any, value: Any):
1✔
49
        self._cache.set(key, value)
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc