tag:blogger.com,1999:blog-73224392756634688942023-06-20T16:57:57.884+03:00вычислительная ваткаменя зовут Сережа. я учусь и работаю. меня очень много чего интересует, но этот блог про мои интересы в компьютерной науке, их составляют: семантические технологии, обработка естественного языка, базы данных, функциональщина, ну и много чего еще. я веду этот блог в пренебрежительно-дурацком стиле и весьма этому рад.sboshttp://www.blogger.com/profile/02321840079949398185noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-7322439275663468894.post-34236314307807970412010-10-05T21:45:00.001+04:002010-10-05T21:59:07.065+04:00Не все так просто с этой вашей cassandraВот, значит, вы скачали последнюю версию кассандры, а также украли из соседнего дата-центра несколько представительных серверов и думаете, что теперь у вас все будет хорошо. Зачем вы все это затеяли? А, ну недавно вы состряпали замечательный СТАРТАП на php + mysql. Спустя сутки после опубликования поста на ХАБРЕ в блоге Я ПИАРЮСЬ на ваш сайт набежало 300 000 пользователей и mysql перестал справляться. Тогда-то вы и начали воровать сервера и ставить на них mysql в режиме slave. Но все равно что-то было не так, вы же читали про ГОРИЗОНТАЛЬНУЮ МАСШТАБИРУЕМОСТЬ и про то, что её-то mysql лишен. Еще вы читали про то, фейсбук, твиттер и все-все-все используют кассандру.<br />
<br />
Но вот беда - нету в кассандре селектов. Бог с ними, с транзакциями, на момент написания сайта, вы про них только мельком слышали и использовать не стали. А вот без селектов тяжело. Что же делать-то?<br />
<br />
Надо сказать, тот же фейсбук использует кассандру (согласно внешним данным) только для поиска по входящим личным сообщениям. Наверное, как распределенный поисковый индекс. То есть, не для селектов. А селекты нужны. Мы с пацанами обсудили этот вопрос и решили, что, наверное, надо иметь помимо кассандры что-то еще, что поддерживает нужные селекты, и дублировать в ней все необходимые поля, а еще хранить вместе с этими полями ключ, по которому все остальное можно вытащить из кассандры. При этом вопрос, что же использовать для селектов, остается открытым. Для себя (то есть для нашего СТАРТАПА) я пока склоняюсь к mongodb/couchdb, потому что они, как заявлено, ГОРИЗОНТАЛЬНО МАСШТАБИРУЮТСЯ, а кроме того поддерживают довольно широкий класс запросов. А mongodb еще и быстрая. Вот такие дела.<br />
<br />
Надо сказать, что кое-какие селекты в кассандре можно-таки сделать, если правильно организовать ключи. Ключ в кассандре это строка неограниченного размера. Доступно 8, кажется, способов их сравнивать. Если дичайше денормализовать данные и хитро устроить ключи, то некоторые выборки можно делать по непрерывному диапазону ключей. Key slice эта штука называется.sboshttp://www.blogger.com/profile/02321840079949398185noreply@blogger.com0