[ 
https://issues.apache.org/jira/browse/KAFKA-10630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17283068#comment-17283068
 ] 

Dongjin Lee commented on KAFKA-10630:
-------------------------------------

Hi [~vvcephei], I inspected this issue a little bit.

If I understood correctly, this issue addresses:
 # State directory is not created lazily, nor deleted.
 # So many tests are repeatedly creating test state directory with 
{{TestUtil#tempDirectory}}, degrading test.
 # {{StreamsConfig.STATE_DIR_CONFIG}} config is os-specific.

1 is addressed in KAFKA-10585, and 3 is resolved with KAFKA-10604. So, it seems 
like the only remaining problem is 2, which does not require a KIP. How do you 
think?

 

> State Directory config could be improved
> ----------------------------------------
>
>                 Key: KAFKA-10630
>                 URL: https://issues.apache.org/jira/browse/KAFKA-10630
>             Project: Kafka
>          Issue Type: Task
>          Components: streams
>            Reporter: John Roesler
>            Priority: Minor
>              Labels: needs-kip
>
> During [https://github.com/apache/kafka/pull/9477,] I noticed that many tests 
> wind up providing a state directory config purely to ensure a unique temp 
> directory for the test. Since TopologyTestDriver and MockProcessorContext 
> tests are typically unit tests, it would be more convenient to initialize 
> those components with their own unique temp state directory, following the 
> universal pattern from such tests:
> {code:java}
> props.setProperty(StreamsConfig.STATE_DIR_CONFIG, 
> TestUtils.tempDirectory().getAbsolutePath()); {code}
> Note that this literal setting is not ideal, since it actually creates a 
> directory regardless of whether the application needs one. Instead, we should 
> create a new TestUtil method to lazily generate a temp directory _name_ and 
> then register a shutdown handler to delete it if it exists. Then, Streams 
> would only create the directory if it actually needs persistence.
> Also, the default value for that config is not platform independent. It is 
> simply: {color:#067d17}"/tmp/kafka-streams"{color}. Perhaps instead we should 
> set the default to something like "unset" or "" or "none". Then, instead of 
> reading the property directly, when Streams actually needs the state 
> directory, it could log a warning that the state directory config is not set 
> and call the platform-independent Java api for creating a temporary directory.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to