Мы намереваемся создавать платформу онлайн (API, Серверы, Данные, Гавайи!). Для контекста предположите, что мы должны создать что-то как Твиттер, но с комментариями (твиты), организованные вокруг прямой трансляции. Информация о самой прямой трансляции должна быть передана клиентам максимально быстро и последовательно, в то время как комментарии о событии могут, вероятно, ожидать немного дольше, чтобы быть поставленными. Мы будем тяжелы чтением после того, как прямая трансляция закончится.
Масштабируемость очень важна. Мы хотим начать арендовать части VPS и масштабироваться оттуда. Я - большой поклонник облака и хотел бы остаться там максимально долго. Мы будем, вероятно, использовать рубин.
Я убежден, что хочу попробовать хранилище документа вместо RDBMS. Мне нравятся идея бессхемного устройства хранения данных и обещания более легкой масштабируемости путем фокусировки на значении ключа.
Проблема, я не знаю, какая технология наиболее подходит для нашей платформы. Я посмотрел на Диван, монго, Корпус Токио, Cassandra и RDBMS с blobbed документами. Какая-либо справка, выбирающая правильный инструмент для этого конкретного задания?
Оформить заказ отсутствия сравнения альтернатив SQL со стороны BJ Clark .
Масштабируемость очень важна.
Тогда вам нужно рассмотреть выдержки из своего блога:
и рассмотрим Hypertable . Это также серьезное соперник в альтернативах No-SQL. Это открытый источник реализации большой концепции Google концепции. Я считаю, что это хорошо, потому что она широко используется китайской поисковой системой Baidu и развлекательным порталом.
Вы говорили:
информация о живом событии Сама должна быть доставлена клиентам как быстро и последовательно, насколько это возможно, в то время как комментарии о мероприятии могут Вероятно, подождите немного дольше, чтобы быть доставлен. Мы будем читательными после живое событие заканчивается.
Это что-то вроде подхода Twitter. Ваш выбор языка программирования также очень важен, потому что Twitter изначально пошел с Ruby для доставки спины, но они говорили , это не правильный выбор, и они переместили все систему доставки сообщения в Scala Язык.
Они все еще используют Ruby для своего интерфейса. Если вы хотите пойти с высоконадежным, неисправным толерантным системой, которая хорошо подходит для масштабируемых сред, то вам следует рассмотреть Scala или Erlang .
Ramesh имеет хорошее резюме. Я бы добавил, что Cassandra имеет модель более богатых данных, чем клоны ValiLLA Dynamo (например, Voldemort или Dynomite): строки с именами, сортированными столбцами, а не просто ключом / значением. Кассандра используется Twitter, Mahalo, OboLya, Simplegeo, Webex и другими виптами ( http://n2.nablble.com/cassandra-users-survey-tdd40040068.html ), по крайней мере, некоторые из которых Запускаются кластеры Cassandra на облачных серверах EC2 или Rackspace.
Если вы хотите масштабировать горизонтально (распределите свои данные более одного узла), вы должны воспользоваться теоремой CAP.
http://www.julianbrowne.com/article/viewer/breters-cap-therem
Это не легко, но вы должны выбрать, всегда есть какая-то торговля.