Make tempStorageDirectory configuration optional and rely on task dir instead#17015
Make tempStorageDirectory configuration optional and rely on task dir instead#17015adarshsanjeev merged 16 commits intoapache:masterfrom
Conversation
Should Druid rely on |
| public interface StorageConnectorProvider extends Provider<StorageConnector> | ||
| public interface StorageConnectorProvider | ||
| { | ||
| StorageConnector createStorageConnector(File tempDir); |
There was a problem hiding this comment.
Could you please add java docs for this method ?
The current implementation just ignores this tempDir if the property is already set which might confuse the caller.
Is it possible to not change this interface and have the implementation take the "tempFIle" as the constructor param. Based on that, we can set the correct tempDir values.
cryptoe
left a comment
There was a problem hiding this comment.
Everything else seems cool to me.
|
@adarshsanjeev I updated the description. Please check. |
|
@cryptoe could you please take a look at the changes I made now to MSQDurableStorageModule? |
…r instead (apache#17015) Currently, durable storage and export both require configuring a temporary directory to be used using druid.export.storage.<connectorType>.tempLocalDir and druid.msq.intermediate.storage.tempDir. Tasks on middle manager already have a configured temporary directory. This PR aims to reduce the configuration required by using the task directory as a default if it is not explicitly configured, thus reducing the number of configs that a user has to set. Please note that preference would be given to the user configured, druid.*.storage.temp*Dir, on the tasks. If that is not configured, we then use the configured temporary directory. Overlord and brokers also require storage connector configurations (for the durableStorageCleanerOverlordDuty and to fetch results of async queries respectively), but do not have a default temporary task directory. The configuration is still required for these services.
Currently, durable storage and export both require configuring a temporary directory to be used using
druid.export.storage.<connectorType>.tempLocalDiranddruid.msq.intermediate.storage.tempDir.Tasks on middle manager already have a configured temporary directory. This PR aims to reduce the configuration required by using the task directory as a default if it is not explicitly configured, thus reducing the number of configs that a user has to set.
Please note that preference would be given to the user configured,
druid.*.storage.temp*Dir, on the tasks. If that is not configured, we then use theconfigured temporary directory.Overlord and brokers also require storage connector configurations (for the durableStorageCleanerOverlordDuty and to fetch results of async queries respectively), but do not have a default temporary task directory. The configuration is still required for these services.
Release notes
druid.export.storage.<google/s3>.tempLocalDiranddruid.msq.intermediate.storage.tempDirare no longer required configurations. If not configured, the task defaults to using the task temp directory.This PR has: