Commit Graph

277 Commits

Author SHA1 Message Date
José Armando García Sancio bee7ec6f26
MINOR; Update upgrade documentation for 3.3.1 (#12701)
Reviewers: David Arthur <mumrah@gmail.com>
2022-09-29 14:56:32 -07:00
José Armando García Sancio fc6a814391
MINOR; Add missing li end tag (#12640)
Reviewers: Ismael Juma <ismael@juma.me.uk>
2022-09-14 08:55:28 -07:00
Ismael Juma fcbc9c49d0
MINOR: Mention that kraft is production ready in upgrade notes (#12635)
Reviewers: José Armando García Sancio <jsancio@apache.org>
2022-09-14 08:30:39 -07:00
Artem Livshits 7b49f175b9
MINOR: Add upgrade note regarding the Strictly Uniform Sticky Partitioner (KIP-794) (#12630)
Reviewers: Ismael Juma <ismael@juma.me.uk>, David Jacot <djacot@confluent.io>
2022-09-13 11:56:44 -07:00
José Armando García Sancio 6397d50396 Remove the html end tag from upgrade.html 2022-09-07 16:04:19 -07:00
Colin Patrick McCabe 28d5a05943
KAFKA-14187: kafka-features.sh: add support for --metadata (#12571)
This PR adds support to kafka-features.sh for the --metadata flag, as specified in KIP-778.  This
flag makes it possible to upgrade to a new metadata version without consulting a table mapping
version names to short integers. Change --feature to use a key=value format.

FeatureCommandTest.scala: make most tests here true unit tests (that don't start brokers) in order
to improve test run time, and allow us to test more cases. For the integration test part, test both
KRaft and ZK-based clusters. Add support for mocking feature operations in MockAdminClient.java.

upgrade.html: add a section describing how the metadata.version should be upgraded in KRaft
clusters.

Add kraft_upgrade_test.py to test upgrades between KRaft versions.

Reviewers: David Arthur <mumrah@gmail.com>, dengziming <dengziming1993@gmail.com>, José Armando García Sancio <jsancio@gmail.com>
2022-08-30 16:56:03 -07:00
José Armando García Sancio 4a870c0335
MINOR; Update upgrade documentation for 3.3 (#12550) 2022-08-25 17:27:14 -07:00
Derek Troy-West 2539be9086
MINOR: Add note on IDEMPOTENT_WRITE ACL to notable changes (#12260)
Update notable changes documentation to mention requiring IDEMPOTENT_WRITE permission
when producing messages with default/idempotent configuration and broker version lower than
2.8.0.

Reviewers: Ismael Juma <ismael@juma.me.uk>, Luke Chen <showuon@gmail.com>
2022-08-12 17:41:44 -07:00
RivenSun 7ec759d67c
MINOR: Mention switch to reload4j in Notable changes in 3.1.1 (#12313)
Reviewers: Mickael Maison <mickael.maison@gmail.com>, Kvicii
2022-07-12 16:51:18 +02:00
vamossagar12 5a1bac2608
KAFKA-13846: Follow up PR to address review comments (#12297)
Reviewers: Guozhang Wang <wangguoz@gmail.com>
2022-07-07 11:43:38 -07:00
RivenSun bad475166f
MINOR: Add indent space after hyperlink in `docs/upgrade.html` (#12353)
Reviewers: Kvicii <42023367+Kvicii@users.noreply.github.com>, Divij Vaidya <divijvaidya13@gmail.com>, Jason Gustafson <jason@confluent.io>
2022-07-01 10:30:32 -07:00
RivenSun 35ee09d43f
MINOR: Remove extra commas in upgrade steps documentation (#12311)
Reviewers: Luke Chen <showuon@gmail.com>
2022-06-20 16:57:49 +08:00
Luke Chen 4f40883d02
MINOR: add java 8/scala 2.12 deprecation info in doc (#12261)
Reviewers: Ismael Juma <mlists@juma.me.uk>
2022-06-09 09:39:23 +08:00
Mickael Maison e4f4e50b7b
MINOR: Small fixes in docs/upgrade.html (#12239)
Reviewers: David Jacot <djacot@confluent.io>
2022-06-02 12:05:30 +02:00
xjin-Confluent 354a4e9470
Update note on upgrade from log4j to reload4j (#12164)
Reviewers: Nikhil Bhatia <rite2nikhil@gmail.com>, Bruno Cadonna <cadonna@apache.org>
2022-05-16 13:23:10 +02:00
Bruno Cadonna 3d087244d8
MINOR: Note that slf4j-log4j in version 1.7.35+ should be used (#12114)
Adds a note to the upgrade notes to use slf4j-log4j version
1.7.35+ [1] or slf4j-reload4j to avoid possible compatibility issues
originating from the logging framework [2].

[1] https://www.slf4j.org/manual.html#swapping
[2] https://www.slf4j.org/codes.html#no_tlm

Reviewer: Ismael Juma <ismael@juma.me.uk>
2022-05-03 12:24:53 +02:00
Bruno Cadonna b7f2d979d6
[MINOR] Update upgrade documentation for 3.2 (#12055)
Reviewer: Bruno Cadonna <cadonna@apache.org>
2022-04-15 10:21:05 +02:00
Tom Bentley 9b8f6289be
MINOR: Mention KAFKA-13748 in release notes (#11994)
Reviewers: Mickael Maison <mickael.maison@gmail.com>, Bruno Cadonna <bruno@confluent.io>
2022-04-06 10:29:44 +01:00
Mickael Maison dd4afdeb6d
MINOR: Doc updates for Kafka 3.0.1 (#11906)
Reviewers: David Jacot <djacot@confluent.io>
2022-04-04 14:43:31 +02:00
Mike Lothian ecb0e8eece
KAFKA-13660: Switch log4j12 to reload4j (#11743)
This bumps the slf4j version to 1.7.36 and swaps out log4j 1.2.17 with
reload4j 1.2.19

Signed-off-by: Mike Lothian <mike@fireburn.co.uk>

Reviewers: Luke Chen <showuon@gmail.com>, Ismael Juma <ismael@juma.me.uk>, Bruno Cadonna <cadonna@apache.org>
2022-03-30 20:54:01 +02:00
Konstantine Karantasis 6ce69021fd
KAFKA-13759: Disable idempotence by default in producers instantiated by Connect (#11933)
With AK 3.0, idempotence was enabled by default in Kafka producers. However, if idempotence is enabled, Connect won't be able to communicate via its producers with Kafka brokers older than version 0.11. Perhaps more importantly, for brokers older than version 2.8 the IDEMPOTENT_WRITE ACL is required to be granted to the principal of the Connect worker.

Therefore this commit disables producer idempotence by default to all the producers instantiated by Connect. Users can still choose to enable producer idempotence by explicitly setting the right worker and/or connector properties.

The changes were tested via existing unit, integration and system tests.

Reviewers: Randall Hauch <rhauch@gmail.com>
2022-03-23 15:03:52 -07:00
Luke Chen 7c280c1d5f
KAFKA-13673: disable idempotence when config conflicts (#11788)
Disable idempotence when conflicting config values for acks, retries
and max.in.flight.requests.per.connection are set by the user. For the
former two configs, we log at info level when we disable idempotence
due to conflicting configs. For the latter, we log at warn level since
it's due to an implementation detail that is likely to be surprising.

This mitigates compatibility impact of enabling idempotence by default.

Added unit tests to verify the change in behavior.

Reviewers: Ismael Juma <ismael@juma.me.uk>, Jason Gustafson <jason@confluent.io>, Mickael Maison <mickael.maison@gmail.com>
2022-03-03 05:40:41 -08:00
Ismael Juma 71f732e6e5
MINOR: Clarify producer idempotence default in upgrade docs (#11757)
* Mention `acks=1` to `acks=all` change in 3.0.0 upgrade docs
* Have a separate section for 3.0.1 and 3.1.1 as some may skip the
  3.0.0/3.1.0 section when upgrading to a bug fix.
* Move the 3.0.0 note to the top since it's more impactful than the
  other changes.

Reviewers: Jason Gustafson <jason@confluent.io>
2022-02-14 15:17:44 -08:00
Luke Chen e6db0ca48c
KAFKA-13598: enable idempotence producer by default and validate the configs (#11691)
In v3.0, we changed the default value for `enable.idempotence` to true, but we didn't adjust the validator and the `idempotence` enabled check method. So if a user didn't explicitly enable idempotence, this feature won't be turned on. This patch addresses the problem, cleans up associated logic, and fixes tests that broke as a result of properly applying the new default. Specifically it does the following:

1. fix the `ProducerConfig#idempotenceEnabled` method, to make it correctly detect if `idempotence` is enabled or not
2. remove some unnecessary config overridden and checks due to we already default `acks`, `retries` and `enable.idempotence` configs.
3. move the config validator for the idempotent producer from `KafkaProducer` into `ProducerConfig`. The config validation should be the responsibility of `ProducerConfig` class.
4. add an `AbstractConfig#hasKeyInOriginals` method, to avoid `originals` configs get copied and only want to check the existence of the key. 
5. fix many broken tests. As mentioned, we didn't actually enable idempotence in v3.0. After this PR, there are some tests broken due to some different behavior between idempotent and non-idempotent producer.
6. add additional tests to validate configuration behavior

Reviewers: Kirk True <kirk@mustardgrain.com>, Ismael Juma <ismael@juma.me.uk>, Mickael Maison <mimaison@users.noreply.github.com>, Jason Gustafson <jason@confluent.io>
2022-02-05 10:53:27 -08:00
David Jacot fd9fdd8dac
MINOR: Update doc for 3.1 (#11539)
* Update main version of main documentation and add link to previous version;
* Update quick start guide (links do not work yet obviously);
* Add upgrade section.

Reviewers: Luke Chen <showuon@gmail.com>, Manikumar Reddy <manikumar.reddy@gmail.com>
2021-12-03 09:55:33 +01:00
Luke Chen 1b4cffdcb7
KAFKA-13439: Deprecate eager rebalance protocol in kafka stream (#11490)
Deprecate eager rebalancing protocol in kafka streams and log warning message when upgrade.from is set to 2.3 or lower. Also add a note in upgrade doc to prepare users for the removal of eager rebalancing support

Reviewers: Anna Sophie Blee-Goldman <ableegoldman@apache.org>
2021-11-17 03:05:19 -08:00
yasar03 1075e1189a
MINOR: Fix typo in upgrade docs (#11466)
Reviewers: Mickael Maison <mickael.maison@gmail.com>, Luke Chen <showuon@gmail.com>
2021-11-15 17:00:49 +01:00
GuoPhilipse 3f8ca44bc6
KAFKA-13441: Fix typo in upgrade.html (#11483)
Reviewers: Mickael Maison <mickael.maison@gmail.com>

Co-authored-by: gf13871 <gf13871@ly.com>
2021-11-15 14:16:41 +01:00
David Jacot ad6b7d421c
MINOR: Add missing upgrade doc for 2.8 (#11343)
Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>
2021-09-20 10:27:36 +02:00
Weisheng Yang db16c516a7
KAFKA-13301 Config documentation optimized for 'request.timeout. ms' and 'max.poll.interval.ms'. (#11329)
Reviewers: Guozhang Wang <wangguoz@gmail.com>
2021-09-18 22:19:02 -07:00
Josep Prat 286126f9a5
KAFKA-13243: KIP-773 Differentiate metric latency measured in ms and ns (#11302)
KAFKA-13243: KIP-773 Differentiate metric latency measured in ms and ns

Implementation of KIP-773

Deprecates inconsistent metrics bufferpool-wait-time-total,
io-waittime-total, and iotime-total.
Introduces new metrics bufferpool-wait-time-ns-total,
io-wait-time-ns-total, and io-time-ns-total with the same semantics as
before.
Adds metrics (old and new) in ops.html.
Adds upgrade guide for these metrics.

Reviewers: Guozhang Wang <wangguoz@gmail.com>, Tom Bentley <tbentley@redhat.com>
2021-09-08 18:00:58 +01:00
Ismael Juma 0118330103
KAFKA-13273: Add support for Java 17 (#11296)
Java 17 is at release candidate stage and it will be a LTS release once
it's out (previous LTS release was Java 11).

Details:
* Replace Java 16 with Java 17 in Jenkins and Readme.
* Replace `--illegal-access=permit` (which was removed from Java 17)
   with  `--add-opens` for the packages we require internal access to.
   Filed KAFKA-13275 for updating the tests not to require `--add-opens`
   (where possible).
* Update `release.py` to use JDK8. and JDK 17 (instead of JDK 8 and JDK 15).
* Removed all but one Streams test from `testsToExclude`. The
   Connect test exclusion list remains the same.
* Add notable change to upgrade.html
* Upgrade to Gradle 7.2 as it's required for proper Java 17 support.
* Upgrade mockito to 3.12.4 for better Java 17 support.
* Adjusted `KafkaRaftClientTest` and `QuorumStateTest` not to require
   private access to `jdk.internal.util.random`.

Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>, Chia-Ping Tsai <chia7712@gmail.com>
2021-09-06 08:55:52 -07:00
Ron Dagostino 2edaf9ddd3
MINOR: Update KRaft README.md and upgrade.html for 3.0
Reviewers: Colin P. McCabe <cmccabe@apache.org>
2021-08-02 10:39:32 -07:00
Luke Chen b6159042c0
KAFKA-12598: ConfigCommand should only support communication via ZooKeeper for a reduced set of cases (#10811)
Checked the documentation, we must use `--zookeeper` option in 3 places (alter and describe):
1. user configs where the config is a SCRAM mechanism name (i.e. a SCRAM credential for a user)
2. update broker configs for a particular broker when that broker is down
3. broker default configs when all brokers are down

Reference:
1. [config SCRAM Credentials](https://kafka.apache.org/documentation/#security_sasl_scram_credentials)
2. [Update config before broker started](https://kafka.apache.org/documentation/#dynamicbrokerconfigs)

So, after this PR, we only support `--zookeeper` on `users` and `brokers` entity. Add some argument parse rules and tests. 

Reviewers: Ron Dagostino <rdagostino@confluent.io>, Ismael Juma <ismael@juma.me.uk>
2021-07-19 18:53:14 -07:00
Ismael Juma a46b82bea9
KAFKA-12944: Assume message format version is 3.0 when inter-broker protocol is 3.0 or higher (KIP-724) (#11036)
Also:
* Deprecate `log.message.format.version` and `message.format.version`.
* Log broker warning if the deprecated config values are ignored due to
the inter-broker protocol version.
* Log warning if `message.format.version` is set via `ConfigCommand`.
* Always down-convert if fetch version is v3 or lower.
* Add tests to verify new message format version based on the
inter-broker protocol version.
* Adjust existing tests that create topics with an older message format to
have the inter-broker protocol set to 2.8.
* Add upgrade note.

Note that the log compaction change to always write new segments with
record format v2 if the IBP is 3.0 or higher will be done as part of
KAFKA-13093 (with Kafka 3.1 as the target release version).

Reviewers: David Jacot <djacot@confluent.io>, David Arthur <mumrah@gmail.com>, Jason Gustafson <jason@confluent.io>
2021-07-19 05:37:16 -07:00
Luke Chen ac18bdc183
MINOR: update doc for default assignor change (#11009)
Update the doc and upgrade doc for default assignor change. REF: #10903

Reviewers: Anna Sophie Blee-Goldman <ableegoldman@apache.org>
2021-07-13 13:00:15 -07:00
Ryan Dielhenn f97f36b650
KAFKA-13051; Require principal builders implement `KafkaPrincipalSerde` and set default (#11011)
This patch adds a check to ensure that principal builder implementations implement `KafkaPrincipalSerde` as specified in KIP-590: https://cwiki.apache.org/confluence/display/KAFKA/KIP-590%3A+Redirect+Zookeeper+Mutation+Protocols+to+The+Controller. This patch also changes the default value of `principal.builder.class` to `DefaultKafkaPrincipalBuilder`, which was already the implicit behavior when no principal builder was specified.

Reviewers: Ismael Juma <ismael@juma.me.uk>, Jason Gustafson <jason@confluent.io>
2021-07-13 10:54:36 -07:00
Ryanne Dolan 6d2f563865
KAFKA-12436: Deprecate MirrorMaker v1 (KIP-720) (#10805)
Reviewers: Luke Chen <showuon@gmail.com>, Ismael Juma <ismael@juma.me.uk>, Mickael Maison <mickael.maison@gmail.com>
2021-07-04 15:17:31 +01:00
Chris Egerton cad2f5e120
KAFKA-12717: Remove internal Connect converter properties (KIP-738) (#10854)
Removed Connect Distributed worker's internal converter properties.

Author: Chris Egerton <chrise@confluent.io>
Reviewer: Randall Hauch <rhauch@gmail.com>
2021-07-01 21:02:24 -05:00
Ryanne Dolan 93f57370c6
KAFKA-9726: Add IdentityReplicationPolicy to MirrorMaker2 (#10652)
This new policy enables active/passive, one-way replication without renaming topics, similar to MM1. This implementation is described in KIP-382 (adopted), originally as "LegacyReplicationPolicy".

This enables operators to migrate from MM1 to MM2 without re-architecting their replication flows, and enables some additional use-cases for MM2. For example, operators may wish to "upgrade" their Kafka clusters by mirroring everything to a completely new cluster. Such a migration would have been difficult with either MM1 or MM2 previously.

When using IdentityReplicationPolicy, operators should be aware that MM2 will not be able to detect cycles among replicated topics. A misconfigured topology may result in replicating the same records back-and-forth or in an infinite loop. However, we don't prevent this behavior, as some use-cases involve filtering records (via SMTs) to prevent cycles.

Reviewers: Mickael Maison <mickael.maison@gmail.com>

Co-authored-by: Ryanne Dolan <rdolan@twitter.com>
Co-authored-by: Matthew de Detrich <mdedetrich@gmail.com>
Co-authored-by: Ivan Yurchenko <ivanyu@aiven.io>
2021-07-01 09:21:27 +01:00
Ron Dagostino 4f5b4c868e
KAFKA-12756: Update ZooKeeper to v3.6.3 (#10918)
Update the ZooKeeper version to v3.6.3. This requires adding dropwizard
as a new dependency.

Also, add Kafka v2.8.0 to the ducktape system test image.

Reviewers: Luke Chen <showuon@gmail.com>, Colin P. McCabe <cmccabe@apache.org>, Ismael Juma <ismael@juma.me.uk>
2021-06-30 11:21:33 -07:00
kpatelatwork 5652ef1af0
KAFKA-12482 Remove deprecated rest.host.name and rest.port configs (#10841)
Remove the `rest.host.name` and `rest.port` Connect worker configs that were deprecated in KIP-208 and AK 1.1.

Author: Kalpesh Patel <kalpeshpatel.india@gmail.com>
Reviewers: Randall Hauch <rhauch@gmail.com>, Konstantine Karantasis <konstantine@confluent.io>, wenbingshen <oliver.shen999@gmail.com>
2021-06-23 09:20:04 -05:00
Ismael Juma d27a84f70c
KAFKA-12945: Remove port, host.name and related configs in 3.0 (#10872)
They have been deprecated since 0.10.0. Full list of removes configs:
* port
* host.name
* advertised.port
* advertised.host.name

Also adjust tests to take the removals into account. Some tests were
no longer relevant and have been removed.

Finally, took the chance to:
* Clean up unnecessary usage of `KafkaConfig$.MODULE$` in
related files.
* Add missing `Test` annotations to `AdvertiseBrokerTest` and
make necessary changes for the tests to pass.

Reviewers: David Jacot <djacot@confluent.io>, Luke Chen <showuon@gmail.com>
2021-06-17 05:32:34 -07:00
Jason Gustafson a75b5c635b
KAFKA-12874; Increase default consumer session timeout to 45s (#10803)
This patch increases the default consumer session timeout to 45s as documented in KIP-735: https://cwiki.apache.org/confluence/display/KAFKA/KIP-735%3A+Increase+default+consumer+session+timeout.

Reviewers: Luke Chen <showuon@gmail.com>, David Arthur <mumrah@gmail.com>, David Jacot <djacot@confluent.io>
2021-06-09 15:09:31 -07:00
Luke Chen ccde334ca9
KAFKA-12597: Remove deprecated --zookeeper option in ReassignPartitionsCommand (#10471)
Also remove zookeeper dependent methods and tests.

Reviewers: Ismael Juma <ismael@juma.me.uk>
2021-06-03 23:31:29 -07:00
Ismael Juma 364bd36771
KAFKA-12880: Remove deprecated `Count` and `SampledTotal` in 3.0 (#10808)
They were both deprecated in Apache Kafka 2.4 and it's a straightforward change
to use the non deprecated variants.

Reviewers: David Jacot <djacot@confluent.io>
2021-06-02 11:31:05 -07:00
wenbingshen 4c1efd3d08
MINOR: Update kafka-topics.sh line command tool upgrade notes with removed option (#10806)
Reviewers: Luke Chen <showuon@gmail.com>, Ismael Juma <ismael@juma.me.uk>

Co-authored-by: shenwenbing <shenwenbing@qianxin.com>
2021-06-02 05:57:04 -07:00
A. Sophie Blee-Goldman 3805f3706f
KAFKA-12574: KIP-732, Deprecate eos-alpha and replace eos-beta with eos-v2 (#10573)
Deprecates the following 

1. StreamsConfig.EXACTLY_ONCE
2. StreamsConfig.EXACTLY_ONCE_BETA
3. Producer#sendOffsetsToTransaction(Map offsets, String consumerGroupId)

And introduces a new StreamsConfig.EXACTLY_ONCE_V2 config. Additionally, this PR replaces usages of the term "eos-beta" throughout the code with the term "eos-v2"

Reviewers: Matthias J. Sax <mjsax@confluent.io>
2021-04-28 13:22:15 -07:00
Ismael Juma 89933f21f2
KAFKA-12612: Remove `checksum` from ConsumerRecord/RecordMetadata for 3.0 (#10470)
The methods have been deprecated since 0.11 without replacement since
message format 2 moved the checksum to the record batch (instead of the
record).

Unfortunately, we did not deprecate the constructors that take a checksum
(even though we intended to) so we cannot remove them. I have deprecated
them for removal in 4.0 and added a single non deprecated constructor to
`ConsumerRecord` and `RecordMetadata` that take all remaining parameters.
`ConsumerRecord` could do with one additional convenience constructor, but
that requires a KIP and hence should be done separately.

Also:
* Removed `ChecksumMessageFormatter`, which is technically not public
API, but may have been used with the console consumer.
* Updated all usages of `ConsumerRecord`/`RecordMetadata` constructors
to use the non deprecated ones.
* Added tests for deprecated `ConsumerRecord/`RecordMetadata`
constructors.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>, David Jacot <djacot@confluent.io>
2021-04-14 14:38:37 -07:00
David Jacot 23633cd1ec
KAFKA-12584; Remove deprecated `Sum` and `Total` classes (#10511)
`Sum` and `Total` classes were deprecated and replaced by `WindowedSum` and `CumulativeSum` in 2.4. This patch removes them for 3.0.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>, Ismael Juma <ismael@juma.me.uk>
2021-04-13 11:48:17 +02:00