@briztaker: Интересно, сколько бы почтовых голубей потребовалось, чтобы запустить Твиттер без интернета.
Допустим, все станции стационарны. Из статьи [1] имеем следующие данные: средняя скорость голубя 65 км/ч, дальность среднего преодолеваемого им отрезка пути = 300 км. А для гарантии доставки на один пакет с данными в среднем нужно 3 голубя.
По имеющейся информации [2], в 2010 году было 3 × 10⁹ запросов к API в сутки, что составляло 75% трафика твиттера. Обычный размер пакета данных (MTU) в Интернете = 1400 байт, чего должно быть вполне достаточно на передачу 1 API call. Данные взяты отсюда [3], если кто не верит.
А вот эти данные являются моими допущениями:
- если предположить, что голуби летают свои 300 км (пять часов) раз в два дня, то аптайм птицы (время нахождения в полёте) составляет 10%;
- если расстояние больше 300 км, то следующий голубь со станции вылетает мгновенно после прилёта предыдущего;
- коммуникации осуществляются вне зависимости от местонахождения серверов Твиттера, напрямую между адресатами, т.е. голубь вылетает из точки отправителя до точки получателя;
- станции голубиной почты работают со 100% аптаймом, и сервисного трафика вроде смены маршрутизации между ними нет;
- и отправка, и получение твита совершаются за 1 API call. Запросы считаем совершаемыми по протоколу HTTP over TCP/IP, и на 1 API call нужно 2 пакета (пакет и подтверждение), т.к. условно говоря, TCP-соединения между станциями голубиной почты уже установлены;
- в данной калькуляции учитываются только запросы к API, а content delivery network, сервирующий аватарки и картинки, не учитывается;
- среднее расстояние до подписчика (судя по моим фолловерам) = 1000 км;
- в настоящее время трафик Твиттера в 10 раз больше, чем в 2010 году.
Считаем:
Из среднего расстояния до подписчика, количество голубей на один API call:
1000 км / 300 км = 4 отрезка пути,
(4 отрезка × 3голубя/отрезок) / 2 пакета/call = 24 голубя/call .
Время, необходимое для передачи одного API call:
1000 км / 65 км/ч=15,4 часа.
Итого, чтобы обслужить все API calls в сутки, с учётом аптайма голубя, нужно:
(15,4 ч / (24 ч/сут 10% аптайма)) × ((3 × 10⁹ calls/сут × 10) / 75%) = 257 миллиардов голубей.
Конечно же, допущений очень много, и получившийся результат годится лишь для оценки порядка величины.

No comments:
Post a Comment