| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: I97e477796cd3d747270d0b5c2bfd34ada7e63794
|
| |
|
| |
|
|
|
|
| |
Change-Id: Ic9de2099134e8bd9c20a802ff604599ef511cfd9
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
using the scripts from
https://github.com/scoriacorp/docker-tls-memcached so that
we can refresh the certs locally
Change-Id: I795e00c2191a1f771528518892112b74a0b8ea56
|
|
|
|
| |
Change-Id: Ic4ff6ed0258d37b28bdd7fdb3002d98dd4593a5a
|
|
|
|
| |
Change-Id: If2522b527944c89fdd455a8c3e0428f385150e5c
|
| |
|
| |
|
|
|
|
| |
Change-Id: Ie17151120e1cb9437f026624b814f749703d3453
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
was using a py2k print statement and failing
jobs on jenkins
Change-Id: Iefa4b94039e6f098384126d8c15aa27543c42a4d
|
|
|
|
| |
Change-Id: Ia78ea6aaa95278fce3c7b7b2363cf99ac3c8c5a4
|
| |
|
| |
|
|
|
|
|
|
| |
this was failing on a generic tox run due to dependencies
Change-Id: I25806a256e6e5f876a1c896e6a76bec976612cef
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
types-redis and types-decorator seems missing requirements, these
changes add them to the mypy tox environment.
Change-Id: Iee34ed090895728ae4e46c45eb4ef56ba6a43a4b
|
|
|
|
|
|
|
| |
@caselit has fixed the "else" issue so we can restore
the black lines here
Change-Id: I06f474daac04b19c3a4a7f122c31c374fef8d4ed
|
|
|
|
|
|
|
| |
also pin versions for zimports / flake8,
fix some things for mypy
Change-Id: Ia619e5ae9ffcf95b4546e2b320e5186402c15467
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Fixed regression where :class:`.ProxyBackend` was missing several methods
that were added as part of the 1.1 release.
Fixes: #202
Change-Id: I7dc419ab11b47b5d39b60792e9660bfc8cbc50c6
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Change-Id: Ia8e4138f8c869704addfd0ffcc01b95886db3dd6
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
|
|
|
| |
Change-Id: I1e206f9eae5b751b143a3e301240583a290c06c8
|
|\ |
|
| |
| |
| |
| | |
Change-Id: I0c2fbb5e577c956c3d3f80abeb910ec6f546cb23
|