diff --git a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/embedded/EmbeddedTimelineService.java b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/embedded/EmbeddedTimelineService.java index 20f9b75a9..72f8e29c9 100644 --- a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/embedded/EmbeddedTimelineService.java +++ b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/client/embedded/EmbeddedTimelineService.java @@ -112,8 +112,12 @@ public class EmbeddedTimelineService { FileSystemViewStorageType viewStorageType = writeConfig.getClientSpecifiedViewStorageConfig() .shouldEnableBackupForRemoteFileSystemView() ? FileSystemViewStorageType.REMOTE_FIRST : FileSystemViewStorageType.REMOTE_ONLY; - return FileSystemViewStorageConfig.newBuilder().withStorageType(viewStorageType) - .withRemoteServerHost(hostAddr).withRemoteServerPort(serverPort).build(); + return FileSystemViewStorageConfig.newBuilder() + .withStorageType(viewStorageType) + .withRemoteServerHost(hostAddr) + .withRemoteServerPort(serverPort) + .withRemoteTimelineClientTimeoutSecs(writeConfig.getClientSpecifiedViewStorageConfig().getRemoteTimelineClientTimeoutSecs()) + .build(); } public FileSystemViewManager getViewManager() { diff --git a/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java b/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java index b77b0d3a8..e2342edc3 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/table/view/FileSystemViewStorageConfig.java @@ -240,7 +240,7 @@ public class FileSystemViewStorageConfig extends HoodieConfig { return this; } - public Builder withRemoteTimelineClientTimeoutSecs(Long timelineClientTimeoutSecs) { + public Builder withRemoteTimelineClientTimeoutSecs(Integer timelineClientTimeoutSecs) { fileSystemViewStorageConfig.setValue(REMOTE_TIMEOUT_SECS, timelineClientTimeoutSecs.toString()); return this; } diff --git a/hudi-flink/src/main/java/org/apache/hudi/util/StreamerUtil.java b/hudi-flink/src/main/java/org/apache/hudi/util/StreamerUtil.java index 98df0bbcf..45d23f2ff 100644 --- a/hudi-flink/src/main/java/org/apache/hudi/util/StreamerUtil.java +++ b/hudi-flink/src/main/java/org/apache/hudi/util/StreamerUtil.java @@ -406,7 +406,9 @@ public class StreamerUtil { FileSystemViewStorageConfig rebuilt = FileSystemViewStorageConfig.newBuilder() .withStorageType(viewStorageConfig.getStorageType()) .withRemoteServerHost(viewStorageConfig.getRemoteViewServerHost()) - .withRemoteServerPort(viewStorageConfig.getRemoteViewServerPort()).build(); + .withRemoteServerPort(viewStorageConfig.getRemoteViewServerPort()) + .withRemoteTimelineClientTimeoutSecs(viewStorageConfig.getRemoteTimelineClientTimeoutSecs()) + .build(); ViewStorageProperties.createProperties(conf.getString(FlinkOptions.PATH), rebuilt); return writeClient; } diff --git a/hudi-flink/src/test/java/org/apache/hudi/sink/TestWriteCopyOnWrite.java b/hudi-flink/src/test/java/org/apache/hudi/sink/TestWriteCopyOnWrite.java index a91f45263..35523a8fb 100644 --- a/hudi-flink/src/test/java/org/apache/hudi/sink/TestWriteCopyOnWrite.java +++ b/hudi-flink/src/test/java/org/apache/hudi/sink/TestWriteCopyOnWrite.java @@ -397,6 +397,7 @@ public class TestWriteCopyOnWrite extends TestWriteBase { @Test public void testReuseEmbeddedServer() throws IOException { + conf.setInteger("hoodie.filesystem.view.remote.timeout.secs", 500); HoodieFlinkWriteClient writeClient = StreamerUtil.createWriteClient(conf); FileSystemViewStorageConfig viewStorageConfig = writeClient.getConfig().getViewStorageConfig(); @@ -406,6 +407,7 @@ public class TestWriteCopyOnWrite extends TestWriteBase { writeClient = StreamerUtil.createWriteClient(conf); assertSame(writeClient.getConfig().getViewStorageConfig().getStorageType(), FileSystemViewStorageType.REMOTE_FIRST); assertEquals(viewStorageConfig.getRemoteViewServerPort(), writeClient.getConfig().getViewStorageConfig().getRemoteViewServerPort()); + assertEquals(viewStorageConfig.getRemoteTimelineClientTimeoutSecs(), 500); } // -------------------------------------------------------------------------