예제 #1
0
    def __init__(self, orig, max_entries=1000, num_args=None, tree=False,
                 inlineCallbacks=False, cache_context=False, iterable=False):

        super(CacheDescriptor, self).__init__(
            orig, num_args=num_args, inlineCallbacks=inlineCallbacks,
            cache_context=cache_context)

        max_entries = int(max_entries * get_cache_factor_for(orig.__name__))

        self.max_entries = max_entries
        self.tree = tree
        self.iterable = iterable
예제 #2
0
from twisted.internet import defer

from synapse.api.constants import EventTypes, RoomVersions
from synapse.events.snapshot import EventContext
from synapse.state import v1, v2
from synapse.util.async_helpers import Linearizer
from synapse.util.caches import get_cache_factor_for
from synapse.util.caches.expiringcache import ExpiringCache
from synapse.util.logutils import log_function
from synapse.util.metrics import Measure

logger = logging.getLogger(__name__)

KeyStateTuple = namedtuple("KeyStateTuple", ("context", "type", "state_key"))

SIZE_OF_CACHE = 100000 * get_cache_factor_for("state_cache")
EVICTION_TIMEOUT_SECONDS = 60 * 60

_NEXT_STATE_ID = 1

POWER_KEY = (EventTypes.PowerLevels, "")


def _gen_state_id():
    global _NEXT_STATE_ID
    s = "X%d" % (_NEXT_STATE_ID, )
    _NEXT_STATE_ID += 1
    return s


class _StateCacheEntry(object):
예제 #3
0
from synapse.api.room_versions import KNOWN_ROOM_VERSIONS, StateResolutionVersions
from synapse.events.snapshot import EventContext
from synapse.state import v1, v2
from synapse.util.async_helpers import Linearizer
from synapse.util.caches import get_cache_factor_for
from synapse.util.caches.expiringcache import ExpiringCache
from synapse.util.logutils import log_function
from synapse.util.metrics import Measure

logger = logging.getLogger(__name__)


KeyStateTuple = namedtuple("KeyStateTuple", ("context", "type", "state_key"))


SIZE_OF_CACHE = 100000 * get_cache_factor_for("state_cache")
EVICTION_TIMEOUT_SECONDS = 60 * 60


_NEXT_STATE_ID = 1

POWER_KEY = (EventTypes.PowerLevels, "")


def _gen_state_id():
    global _NEXT_STATE_ID
    s = "X%d" % (_NEXT_STATE_ID,)
    _NEXT_STATE_ID += 1
    return s

예제 #4
0
파일: state.py 프로젝트: youxiawar/synapse
    def __init__(self, db_conn, hs):
        super(StateGroupWorkerStore, self).__init__(db_conn, hs)

        self._state_group_cache = DictionaryCache(
            "*stateGroupCache*",
            500000 * get_cache_factor_for("stateGroupCache"))