Sharding y zonas

Shard keys, zonas y operaciones de chunks de MongoDB sobre los rangos de TeselaDB.

En TeselaDB no necesitas una shard key: cada colección se reparte en rangos por tamaño y por carga. Si tu aplicación ya usa shard keys o zonas, los comandos de MongoDB funcionan igual.

Shard key

JavaScript
sh.shardCollection("tienda.pedidos", { cliente: 1, _id: 1 });

shardCollection (por rango, hashed o compuesta) reordena la colección para que cada documento se guarde por su shard key. reshardCollection y refineCollectionShardKey la cambian en línea.

Unicidad

_id es único en todo el clúster y un índice único no necesita llevar la shard key como prefijo. En MongoDB solo es único dentro de cada shard.

Zonas

Una zona restringe las réplicas de unos intervalos de shard key a unos nodos, por ejemplo para tener los datos de clientes europeos en máquinas de la UE. El nombre de shard de cada nodo es el que muestra listShards:

JavaScript
sh.addShardToZone("<shard>", "eu");
sh.updateZoneKeyRange("tienda.pedidos", { region: "eu" }, { region: "eu~" }, "eu");

Chunks y equilibrador

split, moveChunk, mergeChunks, balancerStart, balancerStop y la base config (config.chunks, config.shards) tienen la forma de MongoDB. Cada nodo aparece como un shard en listShards.