Что такое database sharding в контексте Java приложений?

Senior
190 просмотров
AFK Offer AI

Sharding — горизонтальное разделение данных по нескольким БД (shards). Shard key определяет какой шард хранит запись (by userId, by region). В Java: Apache ShardingSphere — прозрачный sharding слой поверх JDBC. Spring с несколькими DataSources и кастомным маршрутизатором. Сложности: cross-shard queries (JOIN невозможен), distributed transactions, rebalancing при добавлении шардов. Большинство приложений никогда не нужен — сначала вертикальное масштабирование, индексы, read replicas, потом шардинг.

Следующий вопрос

Чем JDK Mission Control отличается от JFR?