Skip to content

Commit c2d3fed

Browse files
DOC-4067 added backpressure mech section to architecture page
1 parent afaf46d commit c2d3fed

File tree

4 files changed

+23
-16
lines changed

4 files changed

+23
-16
lines changed

content/integrate/redis-data-integration/ingest/_index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@ RDI provides enterprise-grade streaming data pipelines with the following featur
5454
[Prometheus](https://prometheus.io/) endpoints.
5555
- **Observability - logs** - RDI saves rotating logs to a single folder. They are in a JSON format,
5656
so you can collect and process them with your favorite observability tool.
57-
- **Back-pressure mechanism** - RDI is designed to backoff writing data when the cache gets
57+
- **Backpressure mechanism** - RDI is designed to backoff writing data when the cache gets
5858
disconnected, which prevents cascading failure. Since the change data is persisted in the source
5959
database and Redis is very fast, RDI can easily catch up with missed changes after a short period of
60-
disconnection.
60+
disconnection. See [Backpressure mechanism]({{< relref "/integrate/redis-data-integration/ingest/architecture #backpressure-mechanism">}}) for more information.
6161
- **Recovering from full failure** - If the cache fails or gets disconnected for a long time,
6262
RDI can reconstruct the cache data in Redis using a full snapshot of the defined dataset.
6363
- **High throughput** - Because RDI uses Redis for staging and writes to Redis as a target,

content/integrate/redis-data-integration/ingest/architecture.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,23 @@ RDI automatically enters a second phase called *change streaming*, where
6868
changes in the data are captured as they happen. Changes are usually
6969
added to the target within a few seconds after capture.
7070

71+
## Backpressure mechanism
72+
73+
Sometimes, data records can get added to the streams faster than RDI can
74+
process them. This can happen if the target is slowed or disconnected
75+
or simply if the source generates a lot of change data quickly.
76+
If this continues then the streams will eventually occupy all the
77+
available memory. When RDI detects this situation, it applies a
78+
*backpressure* mechanism to slow or stop the flow of incoming data.
79+
Change data is held at the source until RDI clears the backlog and has
80+
enough free memory to resume streaming.
81+
82+
{{<note>}}The Debezium log sometimes reports that RDI has run out
83+
of memory (usually while creating the initial snapshot). This is not
84+
an error, just an informative message to note that RDI has applied
85+
the backpressure mechanism.
86+
{{</note>}}
87+
7188
### Supported sources
7289

7390
RDI supports the following database sources using [Debezium Server](https://debezium.io/documentation/reference/stable/operations/debezium-server.html) connectors:

content/integrate/redis-data-integration/ingest/data-pipelines/data-pipelines.md

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -495,10 +495,3 @@ completely. For example, you might want to apply a new transformation to all the
495495
data or refresh the dataset if RDI is disconnected from the
496496
source for a long time. In situations like these, you can *reset* the pipeline back
497497
to the snapshot phase. When this is complete, the pipeline continues with CDC as usual.
498-
499-
{{<note>}}During the snapshot phase and occasionally during CDC, Debezium
500-
will sometimes log a message saying that RDI is out of memory. This is just
501-
an information message, not an error condition, and is typically harmless. See the
502-
[Ingest FAQ]({{< relref "/integrate/redis-data-integration/ingest/faq#rdi-oom" >}})
503-
for more information.
504-
{{</note>}}

content/integrate/redis-data-integration/ingest/faq.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,13 +66,10 @@ new or renamed tables and columns.
6666
## Should I be concerned when the log says RDI is out of memory? {#rdi-oom}
6767

6868
Sometimes the Debezium log will contain a message saying that RDI is out of
69-
memory. This is actually an information message, not an error. It means that
70-
RDI has used all available memory for its data streams and must now concentrate
71-
on processing the streams to make space for new data from the collector.
72-
The message is typically logged during the
73-
snapshot phase of the
74-
[ingest pipeline lifecycle]({{< relref "/integrate/redis-data-integration/ingest/data-pipelines/data-pipelines#ingest-pipeline-lifecycle" >}})
75-
but you may also sometimes see it during the CDC phase.
69+
memory. This is not an error but an informative message to say that RDI
70+
is applying *backpressure* to Debezium. See
71+
[Backpressure mechanism]({{< relref "/integrate/redis-data-integration/ingest/architecture#backpressure-mechanism" >}})
72+
in the Architecture guide for more information.
7673

7774
## What happens when RDI can't write to the target Redis database?
7875

0 commit comments

Comments
 (0)