Implementation:Apache Shardingsphere StandaloneMetaDataManagerPersistService Persist
| Knowledge Sources | |
|---|---|
| Domains | Mode_Management, Persistence, Standalone |
| Last Updated | 2026-02-10 00:00 GMT |
Overview
Standalone mode implementation of the metadata manager persistence service that coordinates all metadata operations locally.
Description
StandaloneMetaDataManagerPersistService implements MetaDataManagerPersistService for standalone (non-clustered) mode. It coordinates database creation/dropping, schema management, table/view metadata persistence, storage unit registration/alteration/unregistration, and rule configuration changes. Unlike the cluster implementation, all operations execute locally without distributed coordination, directly updating both the persistence layer and in-memory metadata context.
Usage
This service is loaded via SPI when ShardingSphere operates in standalone mode. It is the primary entry point for all metadata management persistence operations in non-clustered deployments.
Code Reference
Source Location
- Repository: Apache_Shardingsphere
- File: StandaloneMetaDataManagerPersistService.java
- Lines: 1-305
Signature
public final class StandaloneMetaDataManagerPersistService implements MetaDataManagerPersistService {
private final MetaDataPersistFacade metaDataPersistFacade;
private final MetaDataContextManager metaDataContextManager;
// Database lifecycle
void createDatabase(String databaseName);
void dropDatabase(String databaseName);
// Schema lifecycle
void createSchema(String databaseName, String schemaName);
void dropSchema(String databaseName, String schemaName);
void renameSchemaMetaData(String databaseName, String fromSchemaName, String toSchemaName);
// Table/View metadata
void alterSchemaMetaData(AlterSchemaMetaDataPOJO alterSchemaMetaDataPOJO);
// Storage units
void registerStorageUnits(String databaseName, Map<String, DataSourcePoolProperties> toBeRegistered);
void alterStorageUnits(String databaseName, Map<String, DataSourcePoolProperties> toBeAltered);
void unregisterStorageUnits(String databaseName, Collection<String> toBeDropped);
// Rule configuration
void alterRuleConfiguration(String databaseName, RuleConfiguration toBeAlteredRuleConfig);
void removeRuleConfigurationItem(String databaseName, RuleConfiguration toBeRemovedRuleConfig);
void removeRuleConfiguration(String databaseName, String ruleType);
}
Import
import org.apache.shardingsphere.mode.manager.standalone.persist.service.StandaloneMetaDataManagerPersistService;
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| databaseName | String | Yes | Target database name |
| schemaName | String | Varies | Target schema name |
| toBeRegistered | Map<String, DataSourcePoolProperties> | Varies | Storage units to register |
| toBeAlteredRuleConfig | RuleConfiguration | Varies | Rule configuration to alter |
Outputs
| Name | Type | Description |
|---|---|---|
| void | — | Operations modify persistence and in-memory state as side effects |
Usage Examples
// Standalone mode automatically loads this service via SPI
// Typically invoked through DistSQL or the ShardingSphere management API
// Create a new database
persistService.createDatabase("my_database");
// Register storage units
Map<String, DataSourcePoolProperties> storageUnits = new HashMap<>();
storageUnits.put("ds_0", new DataSourcePoolProperties("com.zaxxer.hikari.HikariDataSource", props));
persistService.registerStorageUnits("my_database", storageUnits);
// Alter rule configuration
persistService.alterRuleConfiguration("my_database", newShardingRuleConfig);