Exemple #1
0
class LRUCacheTestCase(unittest.TestCase):
    def setUp(self):
        super(LRUCacheTestCase, self).setUp()
        self.size = 5
        self.cache = LRUCache(size=self.size)

    def test_non_existent_key(self):
        self.assertEquals(None, self.cache.get("abc"))

    def test_purges_least_recently_used(self):
        for i in range(self.size + 1):
            self.cache[i] = "a"
        self.assertEquals(None, self.cache.get(0))

    def test_get_key(self):
        self.cache[1] = "a"
        self.assertEquals("a", self.cache[1])

    def test_bumps_recently_used(self):
        for i in range(2 * self.size):
            self.cache[i] = "a"
            self.cache[0] = "a"
        self.assertEquals("a", self.cache[0])
Exemple #2
0
 def setUp(self):
     self.client_stub = FlawlessServiceStub()
     self.saved_get_get_service = flawless.client.client._get_service
     setattr(
         flawless.client.client, "_get_service", lambda:
         (self.client_stub, TransportStub(), flawless.client.client.
          HOSTPORT_INFO[0]))
     self.saved_config = copy.deepcopy(flawless.lib.config.get().__dict__)
     self.test_config = flawless.lib.config.get()
     self.test_config.__dict__ = dict(
         (o.name, o.default) for o in flawless.lib.config.OPTIONS)
     flawless.client.set_hostports(["localhost:9028"])
     flawless.client.client.ERROR_CACHE = LRUCache(
         size=flawless.client.client.LRU_CACHE_SIZE)
Exemple #3
0
 def setUp(self):
     super(LRUCacheTestCase, self).setUp()
     self.size = 5
     self.cache = LRUCache(size=self.size)
Exemple #4
0
import flawless.server.api.ttypes as api_ttypes
from flawless.server.api import Flawless

config = flawless.lib.config.get()

MAX_VARIABLE_REPR = 250
MAX_LOCALS = 100
NUM_FRAMES_TO_SAVE = 20

HOSTPORT_INFO = list()
SCRUBBED_VARIABLES_REGEX = None

CACHE_ERRORS_AFTER_N_OCCURRENCES = 10
REPORT_AFTER_N_MILLIS = 10 * 60 * 1000  # 10 minutes
LRU_CACHE_SIZE = 200
ERROR_CACHE = LRUCache(size=LRU_CACHE_SIZE)


class HostportInfo(object):
    def __init__(self, hostport):
        host, port = hostport.split(":")
        self.host = host
        self.port = int(port)
        self.backoff_ms = 0
        self.consecutive_connection_errors = 0

    def increment_backoff(self):
        self.consecutive_connection_errors = max(
            12, self.consecutive_connection_errors + 1)
        backoff = 1000 * random.randint(1, 2**
                                        self.consecutive_connection_errors)