diff --git a/36/documentation.html b/36/documentation.html index 6dad7fe3f..3589c4461 100644 --- a/36/documentation.html +++ b/36/documentation.html @@ -33,7 +33,7 @@

Documentation

-

Kafka 3.6 Documentation

+

Kafka 3.4 Documentation

Prior releases: 0.7.x, 0.8.0, 0.8.1.X, @@ -54,12 +54,10 @@

Kafka 3.6 Documentation

2.6.X, 2.7.X, 2.8.X, - 3.0.X, - 3.1.X, - 3.2.X, - 3.3.X, - 3.4.X, - 3.5.X. + 3.0.X. + 3.1.X. + 3.2.X. + 3.3.X.

1. Getting Started

1.1 Introduction

diff --git a/36/generated/connect_metrics.html b/36/generated/connect_metrics.html index 17b78e896..addf60ce3 100644 --- a/36/generated/connect_metrics.html +++ b/36/generated/connect_metrics.html @@ -1,5 +1,5 @@ -[2023-09-15 00:40:42,725] INFO Metrics scheduler closed (org.apache.kafka.common.metrics.Metrics:693) -[2023-09-15 00:40:42,729] INFO Metrics reporters closed (org.apache.kafka.common.metrics.Metrics:703) +[2024-02-22 11:02:50,169] INFO Metrics scheduler closed (org.apache.kafka.common.metrics.Metrics:693) +[2024-02-22 11:02:50,170] INFO Metrics reporters closed (org.apache.kafka.common.metrics.Metrics:703) diff --git a/36/generated/connect_rest.yaml b/36/generated/connect_rest.yaml index 03d98874b..03d51602d 100644 --- a/36/generated/connect_rest.yaml +++ b/36/generated/connect_rest.yaml @@ -8,7 +8,7 @@ info: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html title: Kafka Connect REST API - version: 3.6.1 + version: 3.6.2-SNAPSHOT paths: /: get: diff --git a/36/generated/streams_config.html b/36/generated/streams_config.html index 695de446e..bc329f99c 100644 --- a/36/generated/streams_config.html +++ b/36/generated/streams_config.html @@ -34,7 +34,7 @@

upgrade.from

-

Allows upgrading in a backward compatible way. This is needed when upgrading from [0.10.0, 1.1] to 2.0+, or when upgrading from [2.0, 2.3] to 2.4+. When upgrading from 3.3 to a newer version it is not required to specify this config. Default is `null`. Accepted values are "0.10.0", "0.10.1", "0.10.2", "0.11.0", "1.0", "1.1", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "3.0", "3.1", "3.2", "3.3", "3.4" (for upgrading from the corresponding old version).

+

Allows upgrading in a backward compatible way. This is needed when upgrading from [0.10.0, 1.1] to 2.0+, or when upgrading from [2.0, 2.3] to 2.4+. When upgrading from 3.3 to a newer version it is not required to specify this config. Default is `null`. Accepted values are "0.10.0", "0.10.1", "0.10.2", "0.11.0", "1.0", "1.1", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", "2.7", "2.8", "3.0", "3.1", "3.2", "3.3", "3.4", "3.5(for upgrading from the corresponding old version).

kafka.connect:type=connect-worker-metrics
- +
Type:string
Default:null
Valid Values:[null, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 1.0, 1.1, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 3.0, 3.1, 3.2, 3.3, 3.4]
Valid Values:[null, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 1.0, 1.1, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5]
Importance:low
diff --git a/36/js/templateData.js b/36/js/templateData.js index 36c205957..a391696d7 100644 --- a/36/js/templateData.js +++ b/36/js/templateData.js @@ -19,6 +19,6 @@ limitations under the License. var context={ "version": "36", "dotVersion": "3.6", - "fullDotVersion": "3.6.1", + "fullDotVersion": "3.6.2-SNAPSHOT", "scalaVersion": "2.13" }; diff --git a/36/ops.html b/36/ops.html index 0ae686da8..b6a30aa24 100644 --- a/36/ops.html +++ b/36/ops.html @@ -1453,8 +1453,8 @@

Quick Start Example

- -

Apache Kafka doesn't provide an out-of-the-box RemoteStorageManager implementation. To have a preview of the tiered storage - feature, the LocalTieredStorage - implemented for integration test can be used, which will create a temporary directory in local storage to simulate the remote storage. -

- -

To adopt the `LocalTieredStorage`, the test library needs to be built locally

-
# please checkout to the specific version tag you're using before building it
-# ex: `git checkout 3.6.1`
-./gradlew clean :storage:testJar
-

After build successfully, there should be a `kafka-storage-x.x.x-test.jar` file under `storage/build/libs`. -Next, setting configurations in the broker side to enable tiered storage feature.

+

Configurations Example

+

Here is a sample configuration to enable tiered storage feature in broker side:

 # Sample Zookeeper/Kraft broker server.properties listening on PLAINTEXT://:9092
 remote.log.storage.system.enable=true
-
-# Setting the listener for the clients in RemoteLogMetadataManager to talk to the brokers.
+# Please provide the implementation for remoteStorageManager. This is the mandatory configuration for tiered storage.
+# remote.log.storage.manager.class.name=org.apache.kafka.server.log.remote.storage.NoOpRemoteStorageManager
+# Using the "PLAINTEXT" listener for the clients in RemoteLogMetadataManager to talk to the brokers.
 remote.log.metadata.manager.listener.name=PLAINTEXT
-
-# Please provide the implementation info for remoteStorageManager.
-# This is the mandatory configuration for tiered storage.
-# Here, we use the `LocalTieredStorage` built above.
-remote.log.storage.manager.class.name=org.apache.kafka.server.log.remote.storage.LocalTieredStorage
-remote.log.storage.manager.class.path=/PATH/TO/kafka-storage-x.x.x-test.jar
-
-# These 2 prefix are default values, but customizable
-remote.log.storage.manager.impl.prefix=rsm.config.
-remote.log.metadata.manager.impl.prefix=rlmm.config.
-
-# Configure the directory used for `LocalTieredStorage`
-# Note, please make sure the brokers need to have access to this directory
-rsm.config.dir=/tmp/kafka-remote-storage
-
-# This needs to be changed if number of brokers in the cluster is more than 1
-rlmm.config.remote.log.metadata.topic.replication.factor=1
-
-# Try to speed up the log retention check interval for testing
-log.retention.check.interval.ms=1000
 

-

Following quick start guide to start up the kafka environment. - Then, create a topic with tiered storage enabled with configs: - -

-# remote.storage.enable=true -> enables tiered storage on the topic
-# local.retention.ms=1000 -> The number of milliseconds to keep the local log segment before it gets deleted.
-  Note that a local log segment is eligible for deletion only after it gets uploaded to remote.
-# retention.ms=3600000 -> when segments exceed this time, the segments in remote storage will be deleted
-# segment.bytes=1048576 -> for test only, to speed up the log segment rolling interval
-# file.delete.delay.ms=10000 -> for test only, to speed up the local-log segment file delete delay
-
-bin/kafka-topics.sh --create --topic tieredTopic --bootstrap-server localhost:9092 \
---config remote.storage.enable=true --config local.retention.ms=1000 --config retention.ms=3600000 \
---config segment.bytes=1048576 --config file.delete.delay.ms=1000
+

After broker is started, creating a topic with tiered storage enabled, and a small log time retention value to try this feature: +

bin/kafka-topics.sh --create --topic tieredTopic --bootstrap-server localhost:9092 --config remote.storage.enable=true --config local.retention.ms=1000
 

-

Try to send messages to the `tieredTopic` topic to roll the log segment:

- -
-bin/kafka-producer-perf-test.sh --topic tieredTopic --num-records 1200 --record-size 1024 --throughput -1 --producer-props bootstrap.servers=localhost:9092
-
-

Then, after the active segment is rolled, the old segment should be moved to the remote storage and get deleted. - This can be verified by checking the remote log directory configured above. For example:

-
 > ls /tmp/kafka-remote-storage/kafka-tiered-storage/tieredTopic-0-jF8s79t9SrG_PNqlwv7bAA
-00000000000000000000-knnxbs3FSRyKdPcSAOQC-w.index
-00000000000000000000-knnxbs3FSRyKdPcSAOQC-w.snapshot
-00000000000000000000-knnxbs3FSRyKdPcSAOQC-w.leader_epoch_checkpoint
-00000000000000000000-knnxbs3FSRyKdPcSAOQC-w.timeindex
-00000000000000000000-knnxbs3FSRyKdPcSAOQC-w.log
-
- -

Lastly, we can try to consume some data from the beginning and print offset number, to make sure it will successfully fetch offset 0 from the remote storage.

- -
bin/kafka-console-consumer.sh --topic tieredTopic --from-beginning --max-messages 1 --bootstrap-server localhost:9092 --property print.offset=true
- -

Please note, if you want to disable tiered storage at the cluster level, you should delete the tiered storage enabled topics explicitly. - Attempting to disable tiered storage at the cluster level without deleting the topics using tiered storage will result in an exception during startup.

- -
bin/kafka-topics.sh --delete --topic tieredTopic --bootstrap-server localhost:9092
- -

After topics are deleted, you're safe to set remote.log.storage.system.enable=false in the broker configuration.

-

Limitations

While the early access release of Tiered Storage offers the opportunity to try out this new feature, it is important to be aware of the following limitations: diff --git a/36/streams/developer-guide/dsl-api.html b/36/streams/developer-guide/dsl-api.html index 08bf2ef8c..ed2afb584 100644 --- a/36/streams/developer-guide/dsl-api.html +++ b/36/streams/developer-guide/dsl-api.html @@ -2818,6 +2818,7 @@

KTable-KTable Foreign-Key (leftValue, rightValue) -> "left=" + leftValue + ", right=" + rightValue, /* ValueJoiner */ Joined.keySerde(Serdes.String()) /* key */ .withValueSerde(Serdes.Long()) /* left value */ + .withGracePeriod(Duration.ZERO) /* grace period */ ); // Java 7 example @@ -2830,6 +2831,7 @@
KTable-KTable Foreign-Key }, Joined.keySerde(Serdes.String()) /* key */ .withValueSerde(Serdes.Long()) /* left value */ + .withGracePeriod(Duration.ZERO) /* grace period */ );

Detailed behavior:

See the semantics overview at the bottom of this section for a detailed description.

@@ -2872,6 +2880,7 @@
KTable-KTable Foreign-Key (leftValue, rightValue) -> "left=" + leftValue + ", right=" + rightValue, /* ValueJoiner */ Joined.keySerde(Serdes.String()) /* key */ .withValueSerde(Serdes.Long()) /* left value */ + .withGracePeriod(Duration.ZERO) /* grace period */ ); // Java 7 example @@ -2884,6 +2893,7 @@
KTable-KTable Foreign-Key }, Joined.keySerde(Serdes.String()) /* key */ .withValueSerde(Serdes.Long()) /* left value */ + .withGracePeriod(Duration.ZERO) /* grace period */ );

Detailed behavior:

See the semantics overview at the bottom of this section for a detailed description.

diff --git a/36/streams/upgrade-guide.html b/36/streams/upgrade-guide.html index 6d75d7242..6f40747d2 100644 --- a/36/streams/upgrade-guide.html +++ b/36/streams/upgrade-guide.html @@ -147,6 +147,15 @@

Streams API as upper and lower bound (with semantics "no bound") to simplify the usage of the RangeQuery class.

+

+ KStreams-to-KTable joins now have an option for adding a grace period. + The grace period is enabled on the Joined object using with withGracePeriod() method. + This change was introduced in KIP-923. + To use the grace period option in the Stream-Table join the table must be + versioned. + For more information, including how it can be enabled and further configured, see the Kafka Streams Developer Guide. +

+

Streams API changes in 3.5.0

A new state store type, versioned key-value stores, was introduced in @@ -1324,7 +1333,7 @@

Kafka Streams API (rows) 0.10.0.x 0.10.1.x and 0.10.2.x - 0.11.0.x and
1.0.x and
1.1.x and
2.0.x and
2.1.x and
2.2.x and
2.3.x and
2.4.x and
2.5.x and
2.6.x and
2.7.x and
2.8.x and
3.0.x and
3.1.x and
3.2.x and
3.3.x and
3.4.x and
3.5.x + 0.11.0.x and
1.0.x and
1.1.x and
2.0.x and
2.1.x and
2.2.x and
2.3.x and
2.4.x and
2.5.x and
2.6.x and
2.7.x and
2.8.x and
3.0.x and
3.1.x and
3.2.x and
3.3.x and
3.4.x and
3.5.x and
3.6.x 0.10.0.x @@ -1351,7 +1360,7 @@

compatible; requires message format 0.10 or higher;
if message headers are used, message format 0.11
or higher required - 2.2.1 and
2.3.x and
2.4.x and
2.5.x and
2.6.x and
2.7.x and
2.8.x and
3.0.x and
3.1.x and
3.2.x and
3.3.x and
3.4.x and
3.5.x + 2.2.1 and
2.3.x and
2.4.x and
2.5.x and
2.6.x and
2.7.x and
2.8.x and
3.0.x and
3.1.x and
3.2.x and
3.3.x and
3.4.x and
3.5.x and
3.6.x compatible; requires message format 0.11 or higher;
enabling exactly-once v2 requires 2.4.x or higher diff --git a/36/toc.html b/36/toc.html index 73bd66ae4..737ef887c 100644 --- a/36/toc.html +++ b/36/toc.html @@ -173,7 +173,7 @@
diff --git a/36/upgrade.html b/36/upgrade.html index cb0ef015a..e9a985076 100644 --- a/36/upgrade.html +++ b/36/upgrade.html @@ -19,6 +19,7 @@