Я бы больше всего беспокоился о MySQL и о том, что диск является твоим узким местом. Я собираюсь предположить, что вы уже знакомы с компромиссом Ruby / Rails: всегда нужно выделять больше оборудования на уровне приложений в обмен на повышение производительности труда программиста. Однако вам понадобится масштабировать MySQL для записи, и это может быть сложным предложением, если вы говорите о более чем 1000 QPS (1000 пользователей, пишущих один раз в секунду). Я бы порекомендовал взять любую конфигурацию MySQL, которую вы планируете использовать, и использовать для этого значительный объем трафика записи. Если он упадет, скажем, до 3000 QPS (всегда оставляйте себе передышку для всплесков), вам нужно будет либо пересмотреть свой план (данные каждую секунду, правда?), Либо сначала написать что-то вроде memcache и использовать запланированные задачи для записи в базу данных за один раз (MySQL 3.22.5 и более поздние версии поддерживают несколько вставок в одном запросе, а также есть метод LOAD DATA INFILE
, который можно использовать вместе с /dev/shm
). Вы также можете посмотреть отложенную вставку, если не используете InnoDB.
Я, конечно, пристрастен (я работаю в Google), но я бы использовал для этого App Engine. Мы запускаем вещи, которые получают все больше трафика записи, чем этот, все время на App Engine, и это прекрасно работает. Он масштабируется из коробки, нет необходимости запускать новые образы, и вам не нужно решать вопросы масштабирования на основе SQL. Также вы получаете тонну бесплатной квоты для работы до начала выставления счетов. Вы можете запустить JRuby, если вам действительно нужна среда Ruby, или вы можете выбрать Python, который немного лучше поддерживается. Для такого развертывания развертывание также намного проще, даже если вы используете Влада или Capistrano с EC2.
Редактировать: Вот очень консервативная оценка роста ваших данных. 16 байт - это минимум, необходимый для хранения пары координат широта / долгота (два двойных). В реальном мире у вас есть индексы и другие издержки базы данных, которые увеличат это число. Измените формулу в соответствии с реальными данными, чтобы определить, насколько быстро вы достигнете пределов в 150 ГБ.