Шардинг. По какому принципу распределить пользователей?
Здравствуйте.
Читаю различные материалы по шардингу и почти везде говорится о вычислении хешей, остатках от деления и тд, однако для меня не совсем понятно для чего такая сложность(относительная), поэтому прошу помочь разобраться.
То есть, к примеру , проектируем социальную сеть которая будет суперпупермегафэйсбук2 с миллиардом пользователей.
Создаем 1000 виртуальных шардов на одном физическом сервере. 1млрд / 1000 = 1 000 000 пользователей на каждом виртуальном шарде.
Собственно, вопрос: зачем вычислять хеши логинов и тд. чтобы раскидывать пользователей по разным шардам, если можно просто регистрировать пользователей на первый виртуальный шард пока их количество на нем не достигнет запланированного(в нашем примере 1 млн) ? То есть регистрируется пользователь, проверяем если на нашем виртуальном шарде еще нет миллиона пользователей то регистрируем его на первый, если же уже есть миллион пользователей, то регистрируем пользователя на второй и так далее. Если данных стало много, то переносим часть виртуальных шардов на другой физический сервер.
В чем я не прав в рассуждениях? для чего вообще эти хеши если можно отталкиваться от количества данных ? Спасибо.