summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Version 1.2.1 placeholderHEADmainMike Bayer2023-04-262-1/+5
|
* - 1.2.0rel_1_2_0Mike Bayer2023-04-263-13/+14
|
* handle CantDeserializeException raised from deserialize methodSimon Hewitt2023-04-256-6/+60
| | | | | | | | | | | | | | | | Added new construct :class:`.api.CantDeserializeException` which can be raised by user-defined deserializer functions which would be passed to :paramref:`.CacheRegion.deserializer`, to indicate a cache value that can't be deserialized and therefore should be regenerated. This can allow an application that's been updated to gracefully re-cache old items that were persisted from a previous version of the application. Pull request courtesy Simon Hewitt. Closes: #236 Pull-request: https://github.com/sqlalchemy/dogpile.cache/pull/236 Pull-request-sha: f2ec26521acb8069d092c51749952f8540b5d75c Change-Id: Idec175b9c06274628d3d027024f9878abb1d188b
* happy new year 2023Mike Bayer2023-01-032-2/+2
| | | | Change-Id: I97e477796cd3d747270d0b5c2bfd34ada7e63794
* Version 1.1.9 placeholderMike Bayer2022-07-082-1/+5
|
* - 1.1.8rel_1_1_8Mike Bayer2022-07-083-13/+14
|
* Reference #228, #223Mike Bayer2022-07-081-1/+1
| | | | Change-Id: Ic9de2099134e8bd9c20a802ff604599ef511cfd9
* Moves dead_retry and socket_timeout into the MemcachedBackend classHervé Beraud2022-07-083-36/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Moved the :paramref:`.MemcacheArgs.dead_retry` argument and the :paramref:`.MemcacheArgs.socket_timeout` argument which were erroneously added to the "set_parameters", where they have no effect, to be part of the Memcached connection arguments :paramref:`.MemcachedBackend.dead_retry`, :paramref:`.MemcachedBackend.socket_timeout`. Indeed, In my previous patch [1] I proposed to add the ``dead_retry`` and ``socket_timeout`` params to the ``MemcacheArgs`` class. I was wrong. My goal was to pass these parameters to the client during its initialization to set the memcached client dead_retry and socket_timeout arguments [2]. By using the MemcacheArgs they are passed to the method calls which is not what it was requested in the feature request [3]. I misunderstood the goal of this class (MemcacheArgs). The ``MemcacheArgs`` class is only inherited by the ``MemcachedBackend`` class and the ``PylibmcBackend`` class. Both libraries doesn't support ``dead_retry`` and ``socket_timeout`` in their methods related to the memcache API commands (set, get, set_multi, etc), so for this reason I think we can move those parameters safely. My previous patch led to issues [4][5] that I'm able to reproduce locally by using oslo.cache's functional test. These changes fix these issues. [1] https://github.com/sqlalchemy/dogpile.cache/commit/1de93aab14c1274f20c1f44f8adff3b143c864f6 [2] https://github.com/linsomniac/python-memcached/blob/7942465eba2009927e5d14b4b6dbd48b75780d80/memcache.py#L165 [3] https://github.com/sqlalchemy/dogpile.cache/issues/223 [4] https://bugzilla.redhat.com/show_bug.cgi?id=2103117 [5] https://review.opendev.org/c/openstack/requirements/+/848827 Closes: #228 Pull-request: https://github.com/sqlalchemy/dogpile.cache/pull/228 Pull-request-sha: dcef04b200c62d615054b3520ece480825597e61 Change-Id: Ic77c1d657b81449a34114cf9f61c350ffc7e2ba1
* Version 1.1.8 placeholderMike Bayer2022-07-052-1/+5
|
* - 1.1.7rel_1_1_7Mike Bayer2022-07-053-10/+11
|
* Add support of dead_retry and socket_timeout for memcached backendHervé Beraud2022-06-163-0/+41
| | | | | | | | | | | | | | | | | | Added :paramref:`.MemcacheArgs.dead_retry` and :paramref:`.MemcacheArgs.socket_timeout` to the dictionary of additional keyword arguments that will be passed directly to ``GenericMemcachedBackend()``. Thanks to François Rigault for assistance. Closes: #223 Co-Authored-By: François Rigault <frigo@amadeus.com> Closes: #224 Pull-request: https://github.com/sqlalchemy/dogpile.cache/pull/224 Pull-request-sha: 5210f8eae297d1dd192aa178434beb9e1eb98387 Change-Id: I058a52e1c3561508763d036e7827b464b2b734d7
* Version 1.1.7 placeholderMike Bayer2022-06-102-1/+5
|
* - 1.1.6rel_1_1_6Mike Bayer2022-06-104-16/+18
|
* add connection_kwargs for plain redisMike Bayer2022-06-103-11/+49
| | | | | | | | | | | | | | | Added :paramref:`.RedisBackend.connection_kwargs` parameter, which is a dictionary of additional keyword arguments that will be passed directly to ``StrictRedis()`` or ``StrictRedis.from_url()``, in the same way that this parameter works with the :class:`.RedisSentinelBackend` already. Thanks to Pim Beenes for assistance. Closes: #221 Pull-request: https://github.com/sqlalchemy/dogpile.cache/pull/221 Pull-request-sha: 26c6cc97ad677d9df4e7387bbae861c15db395de Change-Id: I0991a25ddf31a64d831d3b7e56b3cb9a41685260
* repair backwards incompat redis lock changesMike Bayer2022-06-105-13/+37
| | | | | | | | | | | Fixed regression caused by backwards-incompatible API changes in Redis that caused the "distributed lock" feature to not function. This commit also updates black which was not passing due to the older version having dependency issues Fixes: #220 Change-Id: Ibba3307dbfd9dfeacc08af79800b681ce160dea9
* move memcahced tls cert gen locallyMike Bayer2022-06-0916-229/+522
| | | | | | | | using the scripts from https://github.com/scoriacorp/docker-tls-memcached so that we can refresh the certs locally Change-Id: I795e00c2191a1f771528518892112b74a0b8ea56
* fix spec, add for sentinelMike Bayer2022-06-091-2/+2
| | | | Change-Id: Ic4ff6ed0258d37b28bdd7fdb3002d98dd4593a5a
* block redis 4.3.2, 4.3.3Mike Bayer2022-06-091-1/+1
| | | | Change-Id: If2522b527944c89fdd455a8c3e0428f385150e5c
* Version 1.1.6 placeholderMike Bayer2022-01-192-1/+5
|
* - 1.1.5rel_1_1_5Mike Bayer2022-01-193-16/+17
|
* update for 2022Mike Bayer2022-01-192-2/+2
| | | | Change-Id: Ie17151120e1cb9437f026624b814f749703d3453
* Allow to configure pymemcache's HashClient retryingHervé Beraud2022-01-183-19/+181
| | | | | | | | | | | | | | | | These changes allow us to configure pymemcache's HashClient retrying mechanisms by exposing his public params. Without these changes that we are limitated to the default values. Configuring the internal retrying feature of the HashClient can be useful in a HA context to properly setup the failover. The internal retrying feature are a good complement to the retrying wrapper introduced previously. [1] https://github.com/pinterest/pymemcache/blob/071191455363943e7d5919701465455e78bb64ae/pymemcache/client/hash.py#L66-L71 Change-Id: Id7aa3d363d281daa640ca34a325454d4c18a8ff0
* update pep484 testsMike Bayer2022-01-172-5/+13
| | | | | | | | | | | | staticmethod can now be type-qualified, so static checkers are complaining. however we don't want to do that here because it's going to fail in Python 3.7. just use an ignore type for the one place we do this right now. Add pep484 tox target as we are getting jenkins to target this for all projects. Change-Id: Ic4db0fc7dd0bfe01308027c911f4dcb288bb169e
* repair hash_port programMike Bayer2021-10-101-1/+1
| | | | | | | was using a py2k print statement and failing jobs on jenkins Change-Id: Iefa4b94039e6f098384126d8c15aa27543c42a4d
* rename default branch to mainMike Bayer2021-10-101-1/+1
| | | | Change-Id: Ia78ea6aaa95278fce3c7b7b2363cf99ac3c8c5a4
* Version 1.1.5 placeholdermasterMike Bayer2021-09-022-1/+5
|
* - 1.1.4rel_1_1_4Mike Bayer2021-09-024-18/+20
|
* move pymemcache args test to pymemcache-specific fixtureMike Bayer2021-09-021-14/+14
| | | | | | this was failing on a generic tox run due to dependencies Change-Id: I25806a256e6e5f876a1c896e6a76bec976612cef
* Allow using pymemcache's socket keepalive and retry mechanismsHervé Beraud2021-08-306-50/+161
| | | | | | | | | | | | | | | | | | | | | | | | | Socket keepalive capabilities have been introduced [1][2][3] with pymemcache 3.5.0 [4][5]. These changes allow to pass keepalive configuration to the pymemcache client. Retry mechanisms have been implemented [6][7] with pymemcache 3.5.0 [5][8]. These changes allow to instantiate a ``RetryingClient`` by using dogpile.cache. [1] https://github.com/pinterest/pymemcache/commit/b289c87bb89b3ab477bd5d92c8951ab42c923923 [2] https://github.com/pinterest/pymemcache/commit/c782de1cac7cfaf4f6868d17682197022dad2d6b [3] https://github.com/pinterest/pymemcache/commit/4d46f5ad8ddbd860e5219965df0714bdc15062f6 [4] https://github.com/pinterest/pymemcache/commit/07b5ecc21ce5d388d4312c943d79f813311e349f [5] https://pypi.org/project/pymemcache/3.5.0/ [6] https://github.com/pinterest/pymemcache/commit/75fe5c81c35d2bcfc8e6a697aef948efbfebe8ba [7] https://pymemcache.readthedocs.io/en/latest/getting_started.html#using-the-built-in-retrying-mechanism [8] https://github.com/pinterest/pymemcache/commit/07b5ecc21ce5d388d4312c943d79f813311e349f Closes: #205 Pull-request: https://github.com/sqlalchemy/dogpile.cache/pull/205 Pull-request-sha: 8a7ea5dfb0653b675f2ce9eb4873d8bf08841028 Change-Id: Ia2e76475943bc8ec86b5974217d1c92110be5b43
* Fix mypy's redis requirements issuesHervé Beraud2021-08-201-0/+2
| | | | | | | types-redis and types-decorator seems missing requirements, these changes add them to the mypy tox environment. Change-Id: Iee34ed090895728ae4e46c45eb4ef56ba6a43a4b
* update zimports to 0.4.1Mike Bayer2021-08-113-5/+3
| | | | | | | @caselit has fixed the "else" issue so we can restore the black lines here Change-Id: I06f474daac04b19c3a4a7f122c31c374fef8d4ed
* update black and add to flake8Mike Bayer2021-08-105-27/+24
| | | | | | | also pin versions for zimports / flake8, fix some things for mypy Change-Id: Ia619e5ae9ffcf95b4546e2b320e5186402c15467
* Fix DeprecationWarning due to camelCase aliases in Python 3.10.Karthikeyan Singaravelan2021-05-282-5/+11
| | | | | | | | | | | | Fixed Python 3.10 deprecation warning involving threading. Pull request courtesy Karthikeyan Singaravelan. Fixes: #203 Closes: #204 Pull-request: https://github.com/sqlalchemy/dogpile.cache/pull/204 Pull-request-sha: 9e21b3a52c87d5ea4edc254fb9362fe4a27a2f67 Change-Id: I6f9a7c81e1248d5c5edb1d05d4bd7bf7d8695f53
* Version 1.1.4 placeholderMike Bayer2021-05-202-1/+5
|
* - 1.1.3rel_1_1_3Mike Bayer2021-05-204-13/+15
|
* Add missing methods to ProxyBackendMike Bayer2021-05-203-0/+31
| | | | | | | | Fixed regression where :class:`.ProxyBackend` was missing several methods that were added as part of the 1.1 release. Fixes: #202 Change-Id: I7dc419ab11b47b5d39b60792e9660bfc8cbc50c6
* Use built in getfullargspec if __signature__ is presentMike Bayer2021-05-202-0/+10
| | | | | | | Repaired the test suite to work with the 5.x series of the ``decorator`` module, which now appears to make use of the ``__signature__`` attribute. Change-Id: Id0ef2242ed7e400f5b2445df4be44b34598ae1e8
* Version 1.1.3 placeholderMike Bayer2021-01-262-1/+5
|
* - 1.1.2rel_1_1_2Mike Bayer2021-01-264-21/+23
|
* Add pymemcache backendMoisés Guimarães de Medeiros2021-01-256-10/+177
| | | | | | | | | | | | | | | | | | Added support for the pymemcache backend, using the ``"dogpile.cache.pymemcache"`` backend identifier. Pull request courtesy Moisés Guimarães de Medeiros. Also includes some refinements to two of the most commonly failing "timing intensive" tests so that they are more reliable. Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com> Fixes: #134 Closes: #197 Pull-request: https://github.com/sqlalchemy/dogpile.cache/pull/197 Pull-request-sha: 29ec25a62218932e07a33829dc74b148f16d4795 Change-Id: Id73faeb9a7262683921ea14555a29288c3183efd
* Add feature region.key_is_locked()Bastien Gerard2021-01-258-0/+75
| | | | | | | | | | | | | | Added new region method :meth:`.Region.key_is_locked`. Returns True if the given key is subject to the dogpile lock, which would indicate that the generator function is running at that time. Pull request courtesy Bastien Gerard. Fixes: #101 Closes: #198 Pull-request: https://github.com/sqlalchemy/dogpile.cache/pull/198 Pull-request-sha: 8a5ec7aa07dbdfc654617632ffffae6834078263 Change-Id: I8449beeeef0052ac11a4e3d2e8305e10ba70a765
* happy new yearMike Bayer2021-01-042-2/+2
| | | | Change-Id: Ia8e4138f8c869704addfd0ffcc01b95886db3dd6
* Version 1.1.2 placeholderMike Bayer2020-11-232-1/+5
|
* - 1.1.1rel_1_1_1Mike Bayer2020-11-233-11/+12
|
* apply staticmethod() to pickle.dumps/loads as class variablesMike Bayer2020-11-202-4/+17
| | | | | | | | | | Fixed regression where the serialization and deserialization functions could be inadvertently turned into instance methods with an unexpected argument signature, namely when pickle.dumps and pickle.loads are the pure Python version as is the case in pypy. Fixes: #195 Change-Id: Ie8b332510a1d5d0a6c34ed4338f2a71e327676a8
* Version 1.1.1 placeholderMike Bayer2020-11-152-1/+5
|
* - 1.1.0rel_1_1_0Mike Bayer2020-11-154-38/+40
|
* correct expiration_time signature for cache_multi_on_argumentsMike Bayer2020-11-151-3/+3
| | | | Change-Id: I1e206f9eae5b751b143a3e301240583a290c06c8
* Merge "update black and set for python 3.6"mike bayer2020-11-1415-48/+52
|\
| * update black and set for python 3.6Mike Bayer2020-11-1415-48/+52
| | | | | | | | Change-Id: I0c2fbb5e577c956c3d3f80abeb910ec6f546cb23