-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Logout all users instead of redis session migration for tenant to org migration #39392
Conversation
…overcome performance bottleneck for redis session migration
WalkthroughThe changes modify the migration process by removing a Redis data migration call in the existing migration class and adding a new migration class. The first change omits the call to Changes
Sequence Diagram(s)sequenceDiagram
participant M as Migration066_CacheBustTenantOrgMigration
participant R as ReactiveRedisOperations
M->>R: scanForKeysAcrossCluster(pattern="*")
Note right of M: Process keys in batches of 1000
R-->>M: Batch of matching keys
M->>R: Delete keys from batch
M->>M: Log progress (every 10,000 keys)
M->>M: Complete migration and log final count
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
✨ Finishing Touches
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
🧹 Nitpick comments (2)
app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/db/ce/Migration066_CacheBustTenantOrgMigration.java (2)
17-18
: Add a brief Javadoc comment to clarify purpose.
Providing a short explanation of the migration's goal (i.e., clearing out potentially stale Redis keys after tenant-to-org migration) would make maintenance and future reference easier.
30-57
: Consider more granular patterns or configurable chunk sizes.
Scanning all keys with "*" could be too broad and may inadvertently delete non-related data. Allowing a refined pattern or introducing configuration for chunk size (currently 1000) might offer safer and more targeted performance.
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/db/ce/Migration065_CopyTenantIdToOrganizationId.java
(1 hunks)app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/db/ce/Migration066_CacheBustTenantOrgMigration.java
(1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms (2)
- GitHub Check: server-spotless / spotless-check
- GitHub Check: server-unit-tests / server-unit-tests
🔇 Additional comments (2)
app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/db/ce/Migration066_CacheBustTenantOrgMigration.java (1)
25-27
: Validate whether blocking is appropriate.
Calling.block()
in a migration is generally acceptable, but ensure there's no risk of blocking the main thread if an environment is configured with limited startup time.app/server/appsmith-server/src/main/java/com/appsmith/server/migrations/db/ce/Migration065_CopyTenantIdToOrganizationId.java (1)
60-63
: Ensure downstream processes are unaffected.
The removal/comment-out ofmigrateRedisData()
is justified due to migration timeout issues, but confirm there's no overlooked dependency on this migration step.
Force merging this in since cypress tests for migration would not assert for anything. |
…overcome performance bottleneck for redis session migration
Description
Tip
Add a TL;DR when the description is longer than 500 words or extremely technical (helps the content, marketing, and DevRel team).
Please also include relevant motivation and context. List any dependencies that are required for this change. Add links to Notion, Figma or any other documents that might be relevant to the PR.
Fixes #
Issue Number
or
Fixes
Issue URL
Warning
If no issue exists, please create an issue first, and check with the maintainers if the issue is valid.
Automation
/ok-to-test tags=""
🔍 Cypress test results
Caution
If you modify the content in this section, you are likely to disrupt the CI result for your PR.
Communication
Should the DevRel and Marketing teams inform users about this change?
Summary by CodeRabbit
These updates enhance overall startup performance and improve data freshness for a smoother user experience.