Commit graph

36 commits

Author SHA1 Message Date
Marcin Kuzminski
08399d7563 caches: added reprs 2019-09-22 18:02:28 +02:00
Marcin Kuzminski
77908a855b dogpile: use connection_pool for redis backend which is faster in gevent scenarios 2019-09-20 19:51:35 +02:00
Marcin Kuzminski
e9054ac9e7 ssh: skip loading parts for SSH to make execution of ssh commands faster. 2019-08-28 15:05:48 +02:00
Marcin Lulek
9a3fa67ca9 cache-key: make cleanup safe so we don't cause any errors on exit in case it fails.. 2019-08-23 11:05:55 +02:00
Marcin Kuzminski
16f3b5992a cache-keys: register and self cleanup cache keys used for invalidation to prevent leaking lot of them into DB on worker recycle 2019-08-20 21:18:12 +02:00
Marcin Kuzminski
0cb728cb99 cache: updated cache decorators based on latest code from dogpile 2019-07-23 12:30:39 +02:00
Marcin Kuzminski
3167ea3c86 caches: newly generated cache object should have always unique UIDs to prevent
situation when after restart of services we get back to initial cache keys.
2019-07-18 21:12:48 +02:00
Marcin Kuzminski
928652312a core: added more accurate time measurement for called functions 2019-07-17 16:28:41 +02:00
Marcin Kuzminski
a356085774 caches: synced cache logic with vcsserver. 2019-07-17 14:34:03 +02:00
Marcin Kuzminski
0b076e1f65 caches: updated cache backend to new vcsserver caches implementation. 2019-07-17 00:14:26 +02:00
Marcin Kuzminski
e8388893db caches: add cython compat to our own decorator for caching 2019-02-23 20:07:06 +01:00
Marcin Kuzminski
1629ab748a redis: add logging about lock acquire, this should help in case of locked row debugging 2019-02-08 16:08:03 +01:00
Daniel Dourvaris
96fa4e0bdc py3: remove usage of basestring 2019-01-22 23:06:49 +01:00
Marcin Kuzminski
69933a19e6 cache: use global flock to prevent recursion when using gevent workers. 2019-01-18 17:20:50 +01:00
Marcin Kuzminski
bd1a9c8201 docs: updated copyrights to 2019 2019-01-02 18:13:27 +01:00
Marcin Kuzminski
0faa3e93e1 summary: don't load size on container expand, only on manual action.
- this is too heavy to open without explicit action
- increase locking timeout to 15min
- expose basic info on summary page without expand.
2018-12-27 22:57:53 +01:00
Marcin Kuzminski
9033601562 logging: use lazy parameter evaluation in log calls. 2018-09-13 17:41:35 +02:00
Marcin Kuzminski
e7c5cbb270 caches: don't try to delete keys if there aren't any to delete.
- This is problematic for REDIS backend.
2018-08-22 13:22:39 +02:00
Marcin Kuzminski
0d75142ebc cache: fix overwrite of flock timeout, and improve logging. 2018-08-06 23:25:23 +02:00
Marcin Kuzminski
0946eaebaf caches: use repo.lru based Dict cache. This LRUDict uses Timing Algo to not have to use locking
for the LRU implementation, this it's safer to use for dogpile. We used it before with beaker, so it's
generally more stable.
2018-08-06 00:35:46 +02:00
Marcin Kuzminski
b9e6b76da3 caches: reduce timeouts on flock, and provide error output about filename which we cannot lock at. 2018-08-04 16:11:55 +02:00
Marcin Kuzminski
c218e2a9ea caches: use .refresh() instead of .invalidate()
- .invalidate() does a delete of cached valued under a key, which means
in previous logic we delete, get_or_create, and compute.
- .refresh() is simply replacing exising key with newly computed values, this
creates less locks, and it's faster.
2018-08-03 14:34:33 +02:00
Marcin Kuzminski
543be29fea caches: improve logging. 2018-08-02 22:20:03 +02:00
Marcin Kuzminski
49f08fd080 caches: store computation time inside context manager as helper. Since the with block is full
calculation we can use it to calculate the function execution time.
2018-08-02 22:14:42 +02:00
Marcin Kuzminski
64ee0ddc8f caches: turn off thread scoped caches, and allow .ini override. Thread scoped caches are only usefull for development on using pserve 2018-08-02 18:28:22 +02:00
Marcin Kuzminski
f1497f5afd caches: new cache context managers.
- deprecate beaker cache completly
- use new cache decorators from dogpile
- use a proper per cache key invalidation
2018-08-02 18:04:52 +02:00
Marcin Kuzminski
5e9a2b5c64 caches: use safer method of purging keys from memory dict. During some concurrency tests
we detected that has_key has a race condition, and catching exception is safer.
2018-08-02 12:13:00 +02:00
Marcin Kuzminski
e9e73ec871 caches: use safest possible pickle for cache backends.
- If this crashes we end up in fatal non-recoverable state.
2018-07-23 15:26:36 +02:00
Marcin Kuzminski
6e45dc9605 caches: introduce new conditional cache function. 2018-07-14 18:17:02 +02:00
Marcin Kuzminski
ec504c9907 caches: use delete_multi for clearing out cache keys.
- This is a safer and more efficient way of purging many keys.
- For file based cache it only opens the DB once
2018-07-13 18:39:52 +02:00
Marcin Kuzminski
f4b8149962 caches: allow debug of max_size reached by the MemoryLRU cache. 2018-07-13 17:29:36 +02:00
Marcin Kuzminski
7d7d6741bb caches: added logging for dogpile configuration. 2018-07-13 13:06:04 +02:00
Marcin Kuzminski
0e05d6dd64 caches: use a faster LRUDict implementation for LRUMemoryCache 2018-07-12 17:48:12 +02:00
Marcin Kuzminski
a19d4b732a caches: use a gevent compatible file-lock mechanism.
- because of gevent we can run into a deadlock situation and worker freeze because of
each of the workers will try to aquire a lock.
- This should help with the issue and gevent.
2018-07-12 10:40:18 +02:00
Marcin Kuzminski
a48ab8a32d caches: don't use beaker for file caches anymore 2018-07-06 12:55:13 +02:00
Marcin Kuzminski
ddc445856e caches: rewrite of auth/permission caches to dogpile. 2018-07-05 20:14:33 +02:00