Creating sharded property databasesInfinigraphNot available on AuraIntroduced in 2025.12
You can create a sharded property database using the Cypher command CREATE DATABASE (requires Cypher 25, introduced alongside Neo4j 2025.06.0).
|
Starting from Neo4j 2026.02, the distributed neo4j.conf explicitly sets |
Syntax
| Command | Syntax |
|---|---|
|
|
When creating a sharded property database, the following are created:
-
A virtual sharded property database
<name>. -
A single graph shard with the name
<name>-g000. -
A number of property shards with the name
<name>-p<index>, where<index>ranges from000to999. The count property inSET PROPERTY SHARDSspecifies the number of property shards.
|
|
Options
The CREATE DATABASE command supports only the options seedURI, seedConfig, seedSourceDatabase, seedRestoreUntil, and txLogEnrichment when creating a sharded property database.
When using with seedURI, you can specify the seed URI in different ways, depending on how your seed data is organized and where it is stored:
-
A path to folder containing a data seed, e.g.,
OPTIONS {seedURI: "s3://bucket/folder/"}, where the folder contains the backup for each shard. The folder notation only works for backups, not dumps, because the DBMS relies on the metadata in the backup files to allocate the data to the correct databases. -
A map of shard names to data seed URIs, e.g.,
OPTIONS {key: 'value'}. Because the DBMS relies on the provided key-value pairs to allocate the data to the correct databases, the seed data can be in either backup or dump format. -
Introduced in 2026.04 A list of server URIs, e.g.,
OPTIONS {seedURI: ["server://server0/seeds/", "server://server1/seeds/"]}. This allows seed data to be distributed across multiple servers, which is useful when the data cannot fit on a single server or is already stored across several locations. Does not support dumps, use URI map approach instead.
|
When specifying each artifact manually the key of the map is the name of the shard, where the graph shard name = |
Default numbers for topology
The sharded property databases use the Neo4j cluster topology.
Therefore, you need to consider how the following settings will affect the creation of your sharded property database.
initial.dbms.default_primaries_count and initial.dbms.default_secondaries_count affect only the graph shard
| Configuration setting | Default value | Valid values | Description |
|---|---|---|---|
|
|
The initial default number of primaries for the standard databases. Initialized at the first DBMS startup. If the user does not specify the number of primaries in |
|
|
|
The initial default number of secondaries for the standard databases. Initialized at the first DBMS startup. If the user does not specify the number of secondaries in |
|
|
|
The initial default number of replicas of property shards. Initialized at the first DBMS startup.
If the user does not specify the number replicas of property shards in |
Creating an empty sharded property database
You can create an empty sharded database using the CREATE DATABASE command.
The command allows you to specify the number of property shards and the topology of the graph shard.
The following examples show how to create an empty sharded database with different configurations.
CYPHER 25 CREATE DATABASE `foo-sharded`
PROPERTY SHARDS { COUNT 3 };
CYPHER 25 CREATE DATABASE `foo-sharded`
SET GRAPH SHARD { TOPOLOGY 1 PRIMARY 0 SECONDARIES }
SET PROPERTY SHARDS { COUNT 3 TOPOLOGY 1 REPLICAS };
CYPHER 25 CREATE DATABASE `foo-sharded`
SET GRAPH SHARD { TOPOLOGY 3 PRIMARY 0 SECONDARIES }
SET PROPERTY SHARDS { COUNT 3 TOPOLOGY 2 REPLICAS };
Creating a sharded property database from a URI (online)
You can create a sharded property database from an existing sharded property database by seeding it with data from one or more URIs. This is useful when you want to create a sharded property database as a copy of an existing database, for example, for testing or staging purposes, or your seed data is from another source, for example, a backup with a different name, or when your seed data is in a dump format, or already stored across several locations.
For more information on how seed from a URI works, see the Create a database from a URI.
The following examples show how to create a sharded property database by seeding data from one URI, multiple URIs, and multiple server URIs.
Create a sharded property database by seeding from a single URI
Create a sharded property database by seeding from a single URI, which is a path to a folder containing the backup files for each shard.
This approach relies on the metadata in the backup files to allocate the data to the correct databases.
Therefore, the seed data must be in backup format, and the DBMS looks for foo-sharded-g000.backup, foo-sharded-p001.backup, foo-sharded-p002.backup, and so on at the specified location.
CYPHER 25 CREATE DATABASE `foo-sharded`
PROPERTY SHARDS { COUNT 3 }
OPTIONS { seedURI: “s3://bucket/folder/” };
CYPHER 25 CREATE DATABASE `foo-sharded`
PROPERTY SHARDS { COUNT 3 }
OPTIONS { seedURI: “s3://bucket/folder/”, seedSourceDatabase: “other-database” };
Create a sharded property database by seeding from multiple URIs
When seeding from multiple URIs, you specify different URIs for each shard, by using a map where the key is the shard name and the value is the URI where the seed for that shard can be found. The DBMS looks for the seeds at the specified locations for each shard, and all seeds can be in the same location or spread across multiple locations. Because the DBMS relies on the provided key-value pairs to allocate the data to the correct databases, the seed data can be in either backup or dump format.
CYPHER 25 CREATE DATABASE `foo-sharded`
PROPERTY SHARDS { COUNT 3 }
OPTIONS { seedUri: {
`foo-sharded-g000`: "s3://bucket/folder/foo-g000.dump",
`foo-sharded-p000`: "s3://bucket/folder/foo-p001.dump",
`foo-sharded-p001`: "s3://bucket/folder/foo-p002.dump",
`foo-sharded-p002`: "s3://bucket/folder/foo-p003.dump"
} };
CYPHER 25 CREATE DATABASE `foo-sharded`
PROPERTY SHARDS { COUNT 3 }
OPTIONS {
seedUri: {
`foo-sharded-g000`: "s3://bucket/folder1/foo-g000.backup",
`foo-sharded-p000`: "s3://bucket/folder2/foo-p001.backup",
`foo-sharded-p001`: "s3://bucket/folder3/foo-p002.backup",
`foo-sharded-p002`: "s3://bucket/folder4/foo-p003.backup"
}
};
Seeding from multiple server URIsIntroduced in 2026.04
You can specify multiple server URIs as a list in the seedUri options when creating a sharded property database.
This allows seed data to be distributed across multiple servers, which is useful when the data cannot fit on a single server or is already stored across several locations.
For each shard, the DBMS selects a suitable seed from the provided URIs.
Only one URI is expected to contain the required artefact for a given seed.
When using a backup chain to create a database, all backups in the same chain must be located within a single directory, i.e., the backup chain for foo-p000 cannot be spread across server-0 and server-1.
There can only be one backup chain per-shard existing across the directories.
This approach also does not support specifying artefact names, for example,[“server://server-0/seeds/foo-g000.backup”,“server://server-2/seeds/foo-p000.backup”], or mixing URI formats, for example, [“server://server-0/seeds/”,“s3://bucket/folder/”].
Dumps are not supported, use URI map approach instead.
CYPHER 25 CREATE DATABASE `foo-sharded`
SET GRAPH SHARD { TOPOLOGY 1 PRIMARIES 0 SECONDARIES }
SET PROPERTY SHARDS { COUNT 2 TOPOLOGY 1 REPLICA }
OPTIONS {
seedUri: ["server://server0/seeds/", "server://server1/seeds/"] };
CREATE DATABASE spd
SET GRAPH SHARD { TOPOLOGY 1 PRIMARIES 0 SECONDARIES }
SET PROPERTY SHARDS { COUNT 2 TOPOLOGY 1 REPLICA }
OPTIONS { seedUri: [] }
In this case, the DBMS looks for seeds on all known servers in the cluster.