Где именно? Нет никакого общего места, через которое текут данные. В том же hadoop: много нодов, в каждой по несколько дисков, десятки Гб ОЗУ и сетевой интерфейс (в новой концепции Kinetic диски отдельно). Несколько служб, принимающих решения о том, где что находится и откуда читать/куда писать конкретный кусок данных. Дальше зависит от использования, напр. map запускается прямо на нодах, где данные локально. Для hbase приложения постоянно узнают, с каким сервером им работать для данного конкретно куска данных и делают запросы к конечному серверу, а он берет данные локально. Диски, сеть, шины загружены как возможно равномерно. Ну не совсем, конечно, но явных узких мест нет, если только руками не делать что-нибудь странное.Аналогично в других технологиях, для которых применим Kinetic. Я так понимаю, он призван решать задачу, когда новые ноды ставить не хочется (дорого, большее тепловыделение, некуда и т.д.), а больше ввода-вывода нужно, а дисков в ноды больше не вставить (скажем, по 4 диска на ноду и они уже стоят). И это способ добавить большую пачку дисков к нодам и раздать каждой еще по 2 диска, скажем. Другого способа нет: нельзя поставить мега-ноду о 40 дисках (она загнется и вообще будет работать сильно хуже, чем более дешевые 5 нод по 4 диска на каждой), нельзя поставить SAN о 40 дисках и раздать с него диски на разные ноды (все упрется в его шины или интерфейс подключения). А с Kinetic - без проблем, общая пропускная способность даже гигабитных свитчей огромная, а лишний ethernet-порт в каждой ноде вполне может найтись.
|