RDSC-6045: Document draining streams before Flink processor migration - #4017
ZdravkoDonev-redis merged 16 commits into
Conversation
* Update content/operate/rc/api/api-reference/openapi.json * Update content/operate/rc/api/api-reference/openapi.json --------- Co-authored-by: redisdocsapp[bot] <177626021+redisdocsapp[bot]@users.noreply.github.com>
* initial draft * crop image * edits and questions * add in missing info * edits * review feedback changes * 2026.9.5 RN
* Let scrollbar clicks pass through the Qualified widget strip On production the Qualified chat widget (injected via GTM, not part of this repo) restyles <html> to overflow:hidden so <body> becomes the page's scroll container, and parks an invisible ~20px-wide, full-height, max-z-index iframe (#q-messenger-frame) against the right edge of the viewport — exactly where body's scrollbar sits. Chrome hit-tests its scrollbars before page content, but Firefox hit-tests content first, so the invisible strip swallowed every click and hover on the scrollbar: it never reacted and, with overlay scrollbars, never faded in. Reported as 'the scrollbar doesn't show up on Firefox'; never reproduces on hugo server because GTM only runs on production. Disable pointer events on the strip while the chat is closed. The widget sets the q-docked attribute on <html> whenever the panel is open (on mobile too, where the docked width is 0), so scoping the override to html:not([q-docked]) hands pointer events back to the open panel. Verified by hit-testing (elementFromPoint) a repro page built from the widget's captured stylesheet plus a simulated messenger iframe: without the fix the strip captures the point next to the scrollbar; with the fix clicks pass through; with q-docked set the frame captures again. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Keep the page scrollbar visible under the Qualified widget Reviewers on DOC-7044 still saw the scrollbar flash at load and vanish. The pointer-events fix in the previous commit was real but secondary; the disappearance itself has a different mechanism. The Qualified widget replaces root scrolling with a <body> scroller. At init it measures the root scrollbar width N, then applies html { width: calc(100dvw - N); margin-right: N; overflow: hidden } and body { width: calc(100% + N) }, so that body's scrollbar lands exactly where the root scrollbar was. With overlay scrollbars N = 0 and nothing breaks, which is why this never reproduced on trackpad Macs. With classic always-visible scrollbars (Windows, or macOS with a mouse) N is ~15-17px: body overshoots html's box by N, and html's own overflow: hidden clips body's scrollbar out of view. The root scrollbar dies when the widget loads and its replacement is never visible. While the chat is closed (html[q-docked-target]:not([q-docked])), neutralize the compensation: html back to 100dvw with no margin, body back to 100%. Body then fills the window and its scrollbar sits at the window edge, unclipped. While the panel is docked open the widget's own geometry applies untouched — verified html still shrinks by the panel width. Also scope our html { scrollbar-gutter: stable } to auto while the widget is active: a reserved gutter inside the widget's overflow-hidden html box would push body's scrollbar inboard again. Verified against the live staging build in Firefox by injecting these rules at document start: body flush with the window, a real mouse drag on the thumb at page top scrolls (previously dead), wheel scrolling unaffected, and docked mode still lays out correctly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: redisdocsapp[bot] <177626021+redisdocsapp[bot]@users.noreply.github.com>
* make OLM distinction * clarify versions
* helm chart link fix * postgres 16 change, radar over mcm * remove checksums from download center steps * bugbot fixes
* RS: fix incorrect alerts email link (DOC-6925) The "database and cluster alerts" link in the send-alerts-by-email procedure pointed at security/access-control/manage-users, which documents password complexity, expiration, lockouts, and account inactivity timeout. It says nothing about alerts. Point it at create-users#add-users instead, the section that documents selecting which database and cluster alerts each user receives by email. Fixed in current content only: references/alerts/_index.md (the page on the ticket) and monitoring/v1_monitoring.md, which carries the same procedure. The versioned snapshots under 7.4/, 7.8/, 7.22/, and 8.0/ have the same wrong link and are left as-is. * RS: fix alerts email link in 8.0 snapshot (DOC-6925) Applies the same create-users#add-users correction to the 8.0 snapshot, which is the current snapshot readers are most likely on. The 7.4, 7.8, and 7.22 snapshots carry the same wrong link and are left as-is, per the versioned-content convention in content/operate/rs/AGENTS.md.
Add AISIX to Redis AI ecosystem integrations
🧠 Redis MemoryFound 8 related items from repository history (1 new this commit):
Memory updated at c9e8a95 |
c43b74d
into
RDSC-6038-rdi-2.0.0-release-notes
| Run: | ||
|
|
||
| ```bash | ||
| redis-di describe default |
There was a problem hiding this comment.
| redis-di describe default | |
| redis-di describe |
|
|
||
| Wait for the deployment to finish and the source collector to stop. Keep | ||
| the pipeline active so the classic processor can process the remaining input records. | ||
| Do not use `redis-di stop` for this step, because it also stops the processor. |
There was a problem hiding this comment.
| Do not use `redis-di stop` for this step, because it also stops the processor. |
| Applications can continue writing to the source database while collection | ||
| is disabled. Make sure the database change log retains the whole paused | ||
| interval. When the collector restarts, it resumes from the saved source | ||
| position and processes those changes. |
There was a problem hiding this comment.
| Applications can continue writing to the source database while collection | |
| is disabled. Make sure the database change log retains the whole paused | |
| interval. When the collector restarts, it resumes from the saved source | |
| position and processes those changes. | |
| Applications can continue writing to the source database while collection | |
| is disabled. When the collector restarts, it resumes from the saved source | |
| position and processes those changes. |
| ### Check with Redis Insight | ||
|
|
||
| 1. Connect Redis Insight to the RDI database and open **Browse**. | ||
| 1. Filter by the pipeline's input stream pattern. For the default pipeline, | ||
| use `data:{rdi}:*`. Confirm that all input streams are listed. | ||
| 1. Open each stream, select **Stream Data**, and use the refresh button. | ||
| Confirm that **Entries** is `0`. | ||
| 1. Repeat the complete inventory and entry check three times, five seconds | ||
| apart. | ||
|
|
||
| You can also open the built-in **CLI** and run the `SCAN` and `XLEN` commands | ||
| shown above. The Browser and CLI results must contain the same streams and | ||
| lengths. | ||
|
|
||
| If records remain, keep the classic processor running and resolve its | ||
| processing errors before continuing. Do not delete stream entries, reset the | ||
| pipeline, or move consumer-group positions to make the count reach `0`. |
There was a problem hiding this comment.
| ### Check with Redis Insight | |
| 1. Connect Redis Insight to the RDI database and open **Browse**. | |
| 1. Filter by the pipeline's input stream pattern. For the default pipeline, | |
| use `data:{rdi}:*`. Confirm that all input streams are listed. | |
| 1. Open each stream, select **Stream Data**, and use the refresh button. | |
| Confirm that **Entries** is `0`. | |
| 1. Repeat the complete inventory and entry check three times, five seconds | |
| apart. | |
| You can also open the built-in **CLI** and run the `SCAN` and `XLEN` commands | |
| shown above. The Browser and CLI results must contain the same streams and | |
| lengths. | |
| If records remain, keep the classic processor running and resolve its | |
| processing errors before continuing. Do not delete stream entries, reset the | |
| pipeline, or move consumer-group positions to make the count reach `0`. |
| In the **Statistics** table, the **Pending** value for each classic processor | ||
| stream is its current length. Confirm that every input stream is listed and | ||
| that the values agree with the Redis command checks below. This **Pending** | ||
| value is different from consumer-group pending entries. `XPENDING` or group | ||
| lag of `0` alone does not prove that a stream is empty. |
There was a problem hiding this comment.
| In the **Statistics** table, the **Pending** value for each classic processor | |
| stream is its current length. Confirm that every input stream is listed and | |
| that the values agree with the Redis command checks below. This **Pending** | |
| value is different from consumer-group pending entries. `XPENDING` or group | |
| lag of `0` alone does not prove that a stream is empty. | |
| In the **Statistics** table, the **Pending** value for each classic processor | |
| stream is its current length. Confirm that every input stream is listed. |
|
|
||
| Then redeploy the pipeline. The operator stops the classic processor pods | ||
| and starts the Flink JobManager and TaskManager workloads for the pipeline. | ||
| RDI 1.19.0 requires this setting because its default processor is `classic`. |
There was a problem hiding this comment.
| RDI 1.19.0 requires this setting because its default processor is `classic`. | |
| RDI 1.19.x requires this setting because its default processor is `classic`. On RDI 2.0.0 the default processor is `flink`, so this setting is no longer required. |
Switching an existing pipeline from the classic processor to the Flink processor while input streams still contain records can leave records unprocessed. Consumer-group pending counts and lag can be zero while physical stream entries still remain.
This PR documents a processor migration that can be completed on RDI 1.19.0:
processors.type: flink, resume collection, and deploy the complete configuration.The RDI version upgrade is a separate procedure. The upgrade page links to this guide and requires an explicit processor type before upgrading to 2.0.0.
Tracking: https://redislabs.atlassian.net/browse/RDSC-6045
Validation
git diff --checkpasses. Existing unrelated repository warnings remain.0.0.202609101145: exact target comparison, empty input streams, completed checkpoints, and ten further minutes of writes.SCAN/XLEN, packagedredis-di describe default, and raw classic-processor metrics reported the same eight-stream inventory and compatible physical lengths. The guide explains that the CLIPendingfield is a stream length, not anXPENDINGcount.Entries: 0after three manual refreshes five seconds apart. Its built-in CLI returned the same eight keys withSCAN, andXLENreturned0.The tested upgrade artifact is
0.0.202609101145, the agreed 2.0.0 candidate. This PR does not claim validation of the final 2.0.0 release.Related work
PR #3916 changes some of the same processor-default and rollback text. Keep explicit processor selection and the stream-drain procedure when resolving conflicts.