This is an automated email from the ASF dual-hosted git repository. zhangliang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push: new d4671c1352a Refactor TableMetaDataNodePath.getVersionNodePath() (#34585) d4671c1352a is described below commit d4671c1352a2a156810ae8625d2bfc6cba08dba5 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Fri Feb 7 11:57:09 2025 +0800 Refactor TableMetaDataNodePath.getVersionNodePath() (#34585) --- .../service/TableMetaDataPersistService.java | 11 +++---- .../node/path/metadata/TableMetaDataNodePath.java | 35 ++++------------------ .../path/metadata/TableMetaDataNodePathTest.java | 16 +++------- 3 files changed, 15 insertions(+), 47 deletions(-) diff --git a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistService.java b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistService.java index 261179b3ec1..16657c63a4a 100644 --- a/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistService.java +++ b/mode/core/src/main/java/org/apache/shardingsphere/mode/metadata/persist/metadata/service/TableMetaDataPersistService.java @@ -67,7 +67,7 @@ public final class TableMetaDataPersistService { public ShardingSphereTable load(final String databaseName, final String schemaName, final String tableName) { Integer activeVersion = getActiveVersion(databaseName, schemaName, tableName); String tableContent = repository.query( - TableMetaDataNodePath.getTableVersionPath(databaseName, schemaName, tableName, null == activeVersion ? MetaDataVersion.DEFAULT_VERSION : activeVersion)); + TableMetaDataNodePath.getVersionNodePath(databaseName, schemaName, tableName).getVersionPath(null == activeVersion ? MetaDataVersion.DEFAULT_VERSION : activeVersion)); return swapper.swapToObject(YamlEngine.unmarshal(tableContent, YamlShardingSphereTable.class)); } @@ -82,10 +82,11 @@ public final class TableMetaDataPersistService { Collection<MetaDataVersion> metaDataVersions = new LinkedList<>(); for (ShardingSphereTable each : tables) { String tableName = each.getName().toLowerCase(); - int nextActiveVersion = metaDataVersionPersistService.getNextVersion(TableMetaDataNodePath.getTableVersionsPath(databaseName, schemaName, tableName)); - repository.persist(TableMetaDataNodePath.getTableVersionPath(databaseName, schemaName, tableName, nextActiveVersion), YamlEngine.marshal(swapper.swapToYamlConfiguration(each))); + int nextActiveVersion = metaDataVersionPersistService.getNextVersion(TableMetaDataNodePath.getVersionNodePath(databaseName, schemaName, tableName).getVersionsPath()); + repository.persist( + TableMetaDataNodePath.getVersionNodePath(databaseName, schemaName, tableName).getVersionPath(nextActiveVersion), YamlEngine.marshal(swapper.swapToYamlConfiguration(each))); if (null == getActiveVersion(databaseName, schemaName, tableName)) { - repository.persist(TableMetaDataNodePath.getTableActiveVersionPath(databaseName, schemaName, tableName), String.valueOf(MetaDataVersion.DEFAULT_VERSION)); + repository.persist(TableMetaDataNodePath.getVersionNodePath(databaseName, schemaName, tableName).getActiveVersionPath(), String.valueOf(MetaDataVersion.DEFAULT_VERSION)); } metaDataVersions.add( new MetaDataVersion(TableMetaDataNodePath.getTablePath(databaseName, schemaName, tableName), getActiveVersion(databaseName, schemaName, tableName), nextActiveVersion)); @@ -94,7 +95,7 @@ public final class TableMetaDataPersistService { } private Integer getActiveVersion(final String databaseName, final String schemaName, final String tableName) { - String value = repository.query(TableMetaDataNodePath.getTableActiveVersionPath(databaseName, schemaName, tableName)); + String value = repository.query(TableMetaDataNodePath.getVersionNodePath(databaseName, schemaName, tableName).getActiveVersionPath()); return Strings.isNullOrEmpty(value) ? null : Integer.parseInt(value); } diff --git a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java index 2c5b6494eb6..7688006d16c 100644 --- a/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java +++ b/mode/node/src/main/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePath.java @@ -59,40 +59,15 @@ public final class TableMetaDataNodePath { } /** - * Get table active version path. + * Get table version node path. * * @param databaseName database name * @param schemaName schema name * @param tableName table name - * @return tables active version path + * @return table version node path */ - public static String getTableActiveVersionPath(final String databaseName, final String schemaName, final String tableName) { - return new VersionNodePath(getTablePath(databaseName, schemaName, tableName)).getActiveVersionPath(); - } - - /** - * Get table versions path. - * - * @param databaseName database name - * @param schemaName schema name - * @param tableName table name - * @return tables versions path - */ - public static String getTableVersionsPath(final String databaseName, final String schemaName, final String tableName) { - return new VersionNodePath(getTablePath(databaseName, schemaName, tableName)).getVersionsPath(); - } - - /** - * Get table version path. - * - * @param databaseName database name - * @param schemaName schema name - * @param tableName table name - * @param version version - * @return table version path - */ - public static String getTableVersionPath(final String databaseName, final String schemaName, final String tableName, final int version) { - return String.join("/", getTableVersionsPath(databaseName, schemaName, tableName), String.valueOf(version)); + public static VersionNodePath getVersionNodePath(final String databaseName, final String schemaName, final String tableName) { + return new VersionNodePath(getTablePath(databaseName, schemaName, tableName)); } /** @@ -124,7 +99,7 @@ public final class TableMetaDataNodePath { * @return table name */ public static Optional<String> findTableNameByActiveVersionPath(final String path) { - Pattern pattern = Pattern.compile(getTableActiveVersionPath(IDENTIFIER_PATTERN, IDENTIFIER_PATTERN, IDENTIFIER_PATTERN), Pattern.CASE_INSENSITIVE); + Pattern pattern = Pattern.compile(getVersionNodePath(IDENTIFIER_PATTERN, IDENTIFIER_PATTERN, IDENTIFIER_PATTERN).getActiveVersionPath(), Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(path); return matcher.find() ? Optional.of(matcher.group(3)) : Optional.empty(); } diff --git a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePathTest.java b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePathTest.java index a0e1c61cd26..418bc674688 100644 --- a/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePathTest.java +++ b/mode/node/src/test/java/org/apache/shardingsphere/mode/node/path/metadata/TableMetaDataNodePathTest.java @@ -39,18 +39,10 @@ class TableMetaDataNodePathTest { } @Test - void assertGetTableActiveVersionPath() { - assertThat(TableMetaDataNodePath.getTableActiveVersionPath("foo_db", "foo_schema", "foo_tbl"), is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version")); - } - - @Test - void assertGetTableVersionsPath() { - assertThat(TableMetaDataNodePath.getTableVersionsPath("foo_db", "foo_schema", "foo_tbl"), is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions")); - } - - @Test - void assertGetTableVersionPath() { - assertThat(TableMetaDataNodePath.getTableVersionPath("foo_db", "foo_schema", "foo_tbl", 0), is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0")); + void assertGetVersionNodePath() { + assertThat(TableMetaDataNodePath.getVersionNodePath("foo_db", "foo_schema", "foo_tbl").getActiveVersionPath(), is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/active_version")); + assertThat(TableMetaDataNodePath.getVersionNodePath("foo_db", "foo_schema", "foo_tbl").getVersionsPath(), is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions")); + assertThat(TableMetaDataNodePath.getVersionNodePath("foo_db", "foo_schema", "foo_tbl").getVersionPath(0), is("/metadata/foo_db/schemas/foo_schema/tables/foo_tbl/versions/0")); } @Test