Распределенная обработка данных

Давайте теперь представим, что данные в системе должны изменяться очень быстро.  Как бы мы справились с такой проблемой? Стандартным решением в этом случае было бы применение так называемой «распределенной обработки данных».

Это значит, что наша система должна состоять из нескольких серверов и каждый из них будет обрабатывать определенное подмножество запросов. Наиболее просто это можно проиллюстрировать представив что каждая карта доступа имеет 32 разрядный серийный номер (идентификационный код карты). Если нам нужно разбить нашу задачу с сервером, скажем, на 16 подзадач, тогда мы можем сделать это довольно просто. Мы можем использовать четыре младших бита серийного номера в качестве «адреса» сервера, который обрабатывает запрос о этой карте. (При этом мы принимаем, что 32 разрядные серийные номера имеют равномерное распределение адресов в младших четырех битах.) А что делать если нужно разбить задачу на 32 подзадачи? Просто использовать пять младших бит серийного номера, и так далее.

Резюме

Я показал вам некоторые основные приемы использования обмена сообщениями, особенно «иерархию обмена сообщениями», и как применять их при разработке систем для того чтобы избежать взаимных блокировок. Мы так же рассмотрели концепции масштабирования систем и систем распределенной обработки данных, основанных на идее разбивки задачи на несколько мелких подзадач, которые могут быть распределены по разным компьютерам.

РубрикиFAQ

Добавить комментарий