summaryrefslogtreecommitdiff
path: root/redis/asyncio/cluster.py
Commit message (Collapse)AuthorAgeFilesLines
* AsyncIO Race Condition Fix (#2639)v4.3.64.3Chayim2023-03-221-2/+10
|
* Cherry-pick for 4.3.5 (#2468)dvora-h2022-11-211-9/+9
| | | | | | | | | | | | | | | | | | | | Co-authored-by: pedro.frazao <perl.pf@netcf.org> Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com> Co-authored-by: Gauthier Imbert <gauthier@PC17> Co-authored-by: Chayim <chayim@users.noreply.github.com> Co-authored-by: szumka <106675199+szumka@users.noreply.github.com> Co-authored-by: Mehdi ABAAKOUK <sileht@sileht.net> Co-authored-by: Tim Gates <tim.gates@iress.com> Co-authored-by: Utkarsh Gupta <utkarshgupta137@gmail.com> Co-authored-by: Nial Daly <34862917+nialdaly@users.noreply.github.com> Co-authored-by: pedrofrazao <603718+pedrofrazao@users.noreply.github.com> Co-authored-by: Антон Безденежных <gamer392@yandex.ru> Co-authored-by: Iglesys <g.imbert34@gmail.com> Co-authored-by: Kristján Valur Jónsson <sweskman@gmail.com> Co-authored-by: DvirDukhan <dvir@redis.com> Co-authored-by: Alibi Shalgymbay <a.shalgymbay@mycar.kz> Co-authored-by: dvora-h <dvora.heller@redis.com> Co-authored-by: Alibi <aliby.bbb@gmail.com> Co-authored-by: Aarni Koskela <akx@iki.fi>
* commands/cluster: use pipeline to execute split commands (#2230)Utkarsh Gupta2022-06-271-6/+11
| | | | | | - allow passing target_nodes to pipeline commands - move READ_COMMANDS to commands/cluster to avoid import cycle - add types to list_or_args
* async_cluster: fix simultaneous initialize (#2231)Utkarsh Gupta2022-06-191-2/+2
| | | - close startup_nodes too during client.close(), in case they are different
* async_cluster: improve docs (#2208)Utkarsh Gupta2022-06-021-36/+37
| | | | - move response_callbacks kwarg inside __init__ to hide it from docs - use :member-order: bysource to group similar commands together
* async_cluster: optimisations (#2205)Utkarsh Gupta2022-06-011-79/+86
| | | | | | | | | | - return true from execute_pipeline if there are any errors - use todo list to speedup retries - store initialisation node in CommandsParser object - add sync context manager for pipeline - use if/else instead of try/except - make command a function argument in _determine_nodes & _determine_slot - add async cluster pipeline benchmark script
* async_cluster: add pipeline support (#2199)Utkarsh Gupta2022-05-301-16/+312
| | | Co-authored-by: dvora-h <67596500+dvora-h@users.noreply.github.com>
* update black to 22.3.0 (#2171)Utkarsh Gupta2022-05-301-1/+1
|
* async_cluster: add/update typing (#2195)Utkarsh Gupta2022-05-301-71/+91
| | | | | | | * async_cluster: add/update typing * async_cluster: update cleanup_kwargs with kwargs from async Connection * async_cluster: properly remove old nodes
* set default response_callbacks to redis.asyncio.cluster.ClusterNode (#2201)rapidia2022-05-301-1/+1
| | | | | | | | | * set default response_callbacks to redis.asyncio.cluster.ClusterNode * add test case for ClusterNode class * fix lint error * merge test case into `test_startup_nodes`
* Add Async RedisCluster (#2099)Utkarsh Gupta2022-05-081-0/+1113
* Copy Cluster Client, Commands, Commands Parser, Tests for asyncio * Async Cluster Tests: Async/Await * Add Async RedisCluster * cluster: use ERRORS_ALLOW_RETRY from self.__class__ * async_cluster: rework redis_connection, initialize, & close - move redis_connection from NodesManager to ClusterNode & handle all related logic in ClusterNode class - use Locks while initializing or closing - in case of error, close connections instead of instantly reinitializing - create ResourceWarning instead of manually deleting client object - use asyncio.gather to run commands/initialize/close in parallel - inline single use functions - fix test_acl_log for py3.6 * async_cluster: add types * async_cluster: add docs * docs: update sphinx & add sphinx_autodoc_typehints * async_cluster: move TargetNodesT to cluster module * async_cluster/commands: inherit commands from sync class if possible * async_cluster: add benchmark script with aredis & aioredis-cluster * async_cluster: remove logging * async_cluster: inline functions * async_cluster: manage Connection instead of Redis Client * async_cluster/commands: optimize parser * async_cluster: use ensure_future & generators for gather * async_conn: optimize * async_cluster: optimize determine_slot * async_cluster: optimize determine_nodes * async_cluster/parser: optimize _get_moveable_keys * async_cluster: inlined check_slots_coverage * async_cluster: update docstrings * async_cluster: add concurrent test & use read_response/_update_moved_slots without lock Co-authored-by: Chayim <chayim@users.noreply.github.com>