DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Authors: Ivan Yurchenko, Anatolii Popov
| Table of Contents |
|---|
This page is meant as a template for writing a KIP. To create a KIP choose Tools->Copy on this page and modify with your content and replace the heading with the next KIP number and a description of your issue. Replace anything in italics with your own description.
Authors: Ivan Yurchenko, Anatolii Popov
Status
Current state: Under Discussion
Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]
JIRA: here [Change the link from KAFKA-1 to your own ticket]19448
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
This KIP proposes two changes that mostly make sense together.
Allow setting custom configurations for topics
...
Public Interfaces
There are two main three changes to the public interfaces. The first change is to pass LogConfig to the methods of RemoteStorageManager with the default implementation that calls the existing methods (to preserve compatibility with the existing implementations).
| Code Block | ||
|---|---|---|
| ||
default Optional<CustomMetadata> copyLogSegmentData(RemoteLogSegmentMetadata remoteLogSegmentMetadata,
LogSegmentData logSegmentData,
LogConfig logConfig)
throws RemoteStorageException {
return copyLogSegmentData(remoteLogSegmentMetadata, logSegmentData);
}
default InputStream fetchLogSegment(RemoteLogSegmentMetadata remoteLogSegmentMetadata,
int startPosition,
LogConfig logConfig) throws RemoteStorageException {
return fetchLogSegment(remoteLogSegmentMetadata, startPosition);
}
default InputStream fetchLogSegment(RemoteLogSegmentMetadata remoteLogSegmentMetadata,
int startPosition,
int endPosition,
LogConfig logConfig) throws RemoteStorageException {
return fetchLogSegment(remoteLogSegmentMetadata, endPositionstartPosition, startPositionendPosition);
}
default InputStream fetchIndex(RemoteLogSegmentMetadata remoteLogSegmentMetadata,
IndexType indexType,
LogConfig logConfig) throws RemoteStorageException {
return fetchIndex(remoteLogSegmentMetadata, indexType);
}
default void deleteLogSegmentData(RemoteLogSegmentMetadata remoteLogSegmentMetadata,
LogConfig logConfig) throws RemoteStorageException {
deleteLogSegmentData(remoteLogSegmentMetadata);
} |
The second public interface change is to update kafka-configs.sh and kafka-topics.sh so that they can handle the unchecked. configurations.
The third change is to add the uncheckedConfigs to LogConfig, which will return the map of unchecked configs:
| Code Block | ||
|---|---|---|
| ||
public Map<String, String> uncheckedConfigs() { ... } |
Compatibility, Deprecation, and Migration Plan
...