Skip to content

Conversation

@uglide
Copy link
Contributor

@uglide uglide commented Jun 6, 2025

  • Introduce executeKeylessCommand
  • Implement round-robin execution in ClusterCommandExecutor
  • Update search commands according to the latest request/response policies
  • Remove JedisBroadcastAndRoundRobinConfig
  • Introduce AggregateIterator for proper Cluster support
  • Deprecate APIs that rely on legacy RediSeach behaviour

Based on #4332

@uglide uglide force-pushed the imalinovskyi_keyless_command_execution branch from 85ff14f to f85344a Compare June 12, 2025 12:23
@uglide uglide changed the title Introduce keyless-commands execution @uglide Align Search APIs and behaviour with Redis 8.0+ Jun 12, 2025
@uglide uglide changed the title @uglide Align Search APIs and behaviour with Redis 8.0+ Align Search APIs and behaviour with Redis 8.0+ Jun 12, 2025
@github-actions
Copy link

github-actions bot commented Jun 13, 2025

Test Results

  251 files  + 2    251 suites  +2   9m 21s ⏱️ +7s
4 626 tests +23  4 574 ✅ +18  52 💤 +5  0 ❌ ±0 
2 495 runs  +14  2 490 ✅ + 9   5 💤 +5  0 ❌ ±0 

Results for commit 7145811. ± Comparison against base commit ebe30f7.

♻️ This comment has been updated with latest results.

@uglide uglide requested review from Copilot and ggivo June 13, 2025 09:36
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR aligns various Redis search APIs with Redis 8.0+ policies by introducing a new keyless command execution method, implementing round‑robin distribution for keyless commands in cluster mode, and replacing legacy search iteration APIs with a more robust AggregateIterator. Key changes include the introduction of executeKeylessCommand, removal of JedisBroadcastAndRoundRobinConfig, and the implementation of round‑robin scheduling in ClusterCommandExecutor.

Reviewed Changes

Copilot reviewed 14 out of 14 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/test/java/redis/clients/jedis/modules/search/AggregateIteratorTest.java New tests for AggregateIterator covering basic use, cursor removal and error cases
src/main/java/redis/clients/jedis/search/aggr/AggregationBuilder.java Adds cursorCount tracking when using cursor-based aggregation
src/main/java/redis/clients/jedis/search/aggr/AggregateIterator.java Implements a new iterator for aggregation results with proper cursor management
src/main/java/redis/clients/jedis/executors/ClusterCommandExecutor.java Introduces round‑robin distribution for keyless command execution
src/main/java/redis/clients/jedis/UnifiedJedis.java Updates search commands to use the new executeKeylessCommand method and deprecates legacy APIs
src/main/java/redis/clients/jedis/CommandObjects.java Adjusts round‑robin command routing logic and removes unused configuration
Comments suppressed due to low confidence (1)

src/main/java/redis/clients/jedis/CommandObjects.java:3443

  • [nitpick] Add a comment explaining why certain SearchCommands (SUGGET, SUGADD, SUGLEN, SUGDEL, CURSOR) are excluded from round-robin routing to aid future maintainers.
private boolean isRoundRobinSearchCommand(SearchCommand sc) {

@ggivo ggivo added the breakingchange Pull request that has breaking changes. Must include the breaking behavior in release notes. label Jun 16, 2025
@ggivo ggivo added this to the 7.0.0 milestone Jun 16, 2025
@ggivo ggivo modified the milestones: 7.0.0, 8.0.0 Oct 10, 2025
@uglide uglide force-pushed the imalinovskyi_keyless_command_execution branch from 7145811 to c9812a6 Compare October 17, 2025 07:39
@uglide uglide force-pushed the imalinovskyi_keyless_command_execution branch from 0de5b8f to b03ef67 Compare October 20, 2025 10:46
- Introduce executeKeylessCommand
- Implement round-robin execution in ClusterCommandExecutor
- Update search commands according to the latest request/response policies
- Remove JedisBroadcastAndRoundRobinConfig
- Introduce AggregateIterator for proper Cluster support
- Deprecate APIs that rely on legacy RediSeach behaviour
@uglide uglide force-pushed the imalinovskyi_keyless_command_execution branch from b03ef67 to 3e38aa4 Compare October 20, 2025 11:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

breakingchange Pull request that has breaking changes. Must include the breaking behavior in release notes.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants