Github user greghogan commented on a diff in the pull request:
https://github.com/apache/flink/pull/5045#discussion_r152612059
--- Diff: docs/concepts/runtime.md ---
@@ -107,21 +107,20 @@ With hyper-threading, each slot then takes 2 or more
hardware thread contexts.
## State Backends
-The exact data structures in which the key/values indexes are stored
depends on the chosen [state backend](../ops/state/state_backends.html). One
state backend
+The exact data structures in which the key/values indexes are stored
depends on the [state backend](../ops/state/state_backends.html) you choose.
One state backend
stores data in an in-memory hash map, another state backend uses
[RocksDB](http://rocksdb.org) as the key/value store.
-In addition to defining the data structure that holds the state, the state
backends also implement the logic to
-take a point-in-time snapshot of the key/value state and store that
snapshot as part of a checkpoint.
+The state backends also implement the logic to take a point-in-time
snapshot of the key/value state and store that snapshot as part of a checkpoint.
<img src="../fig/checkpoints.svg" alt="checkpoints and snapshots"
class="offset" width="60%" />
{% top %}
## Savepoints
-Programs written in the Data Stream API can resume execution from a
**savepoint**. Savepoints allow both updating your programs and your Flink
cluster without losing any state.
+Programs written in the Data Stream API can resume execution from a
**savepoint**. Savepoints allow both updating your programs and your Flink
cluster without losing any state.
-[Savepoints](../ops/state/savepoints.html) are **manually triggered
checkpoints**, which take a snapshot of the program and write it out to a state
backend. They rely on the regular checkpointing mechanism for this. During
execution programs are periodically snapshotted on the worker nodes and produce
checkpoints. For recovery only the last completed checkpoint is needed and
older checkpoints can be safely discarded as soon as a new one is completed.
+[Savepoints](../ops/state/savepoints.html) are **manually triggered
checkpoints**, which take a snapshot of the program and write it out to a state
backend. They rely on the regular checkpointing mechanism for this. During
execution programs are periodically snapshotted on the worker nodes and produce
checkpoints. The last completed checkpoint is only needed for recovery and you
can safely discard older checkpoints as soon as a new one is completed.
--- End diff --
Should we leave the original but change "can be safely" to "are" or "are by
default"? The paragraph starts discussing savepoints but then switches to
commenting on checkpoints with no distinction about externalized checkpoints.
---