Skip to content

Commit 81c5033

Browse files
Merge pull request #537 from redis/DOC-4067-rdi-oom-error-reassure
DOC-4067 added FAQ and note about harmless OOM message
2 parents 170ab34 + cad30af commit 81c5033

File tree

3 files changed

+29
-4
lines changed

3 files changed

+29
-4
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 quickly generates a lot of change data.
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/faq.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,18 @@ replica of an Active-Active replication setup or an Auto tiering database.
5959

6060
If you don't configure RDI to capture a specific set of tables in the schema then it will
6161
detect any new tables when they are added. Similarly, RDI will capture new table columns
62-
and changes to column names unless you configure it for a specfic set of columns.
62+
and changes to column names unless you configure it for a specific set of columns.
6363
Bear in mind that the Redis keys in the target database will change to reflect the
6464
new or renamed tables and columns.
6565

66+
## Should I be concerned when the log says RDI is out of memory? {#rdi-oom}
67+
68+
Sometimes the Debezium log will contain a message saying that RDI is out of
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.
73+
6674
## What happens when RDI can't write to the target Redis database?
6775

6876
RDI will keep attempting to write the changes to the target and will also attempt
@@ -79,7 +87,7 @@ more space available.
7987
## What does RDI do if the data is corrupted or invalid?
8088

8189
The collector reports the data to RDI in a structured JSON format. If
82-
the structure of the JSON data is invalid or if there is a fatal bug in the tranformation
90+
the structure of the JSON data is invalid or if there is a fatal bug in the transformation
8391
job then RDI can't transform the data. When this happens, RDI will store the original data
8492
in a "dead letter queue" along with a message to say why it was rejected. The dead letter
8593
queue is stored as a capped stream in the RDI staging database. You can see its contents

0 commit comments

Comments
 (0)