Базы данных
Sharding: тест на припоминание
Припоминание сильнее перечитывания. На каждый промпт проговорите или запишите полный ответ по памяти, прежде чем открыть эталон — именно усилие припоминания закрепляет механизм, когда вы столкнётесь с ним на design review.
Восстановите хребет юнита — четыре свойства shard key, partitioning против sharding, ко-локацию, плейбук на hot shard, cross-shard транзакции и online resharding — не заглядывая в уроки.
- 01Назовите четыре свойства, которым shard key должен удовлетворять одновременно, и почему каждое важно.
- 02В чём разница между partitioning и sharding и как продакшен-системы их комбинируют?
- 03Объясните ко-локацию в Citus и что происходит с производительностью запросов при её нарушении.
- 04Почему hash sharding всё равно порождает hot shard и каков продакшен-плейбук их детекции и устранения?
- 05Когда транзакции нужен two-phase commit на шардированном кластере, чего стоит 2PC и каков его опасный режим отказа?
- 06Как работает online resharding в Citus, почему пер-шардовая пауза записи sub-second и почему смена shard key всё равно многомесячный проект?
Если вы смогли восстановить каждый ответ по памяти, вы держите хребет юнита: хороший shard key селективен, равномерен, стабилен и присутствует при маршрутизации; partitioning делает pruning и управляет retention на одной машине, тогда как sharding добавляет пропускную способность на многих; ко-локация держит 99% tenant-scoped случая single-node; hot shard — ожидаемое следствие степенного закона, на которое отвечают tenant isolation и многоуровневой политикой; cross-shard транзакции тянут за собой 2PC с его in-doubt риском, поэтому проектируйте single-shard; а online resharding дёшев (sub-second паузы, logical replication), тогда как смена shard key — дорогое решение, с которым живут годами.