Oct. 14th, 2011

Redis

Oct. 14th, 2011 12:45 am
ermouth: (Default)

bizwood.ru работает на самописной key-value storage поверх реляционной модели.

Новый проект по ЖКХ будет тоже работать на key-value storage. Оно хоть и самописное, но имитирует небольшое подмножество синтаксиса команд Redis. Я так делаю потому что времени мало совсем, а применять Redis в полный рост я явно не готов – хоть там и очень впечатляющие результаты по производительности и убойной простоты синтаксис.

Я просто собираюсь подменить в какой-то момент самописный велосипедик на Редис.

Чтобы было понятно, что такое Редис – вот примерчег длиной в три страницы, как на связке php+Redis сделать клон твиттера с производительностью… да вот сами почитайте:

On a very slow and loaded server, apache benchmark with 100 parallel clients issuing 100000 requests measured the average pageview to take 5 milliseconds. This means you can serve millions of users every day with just a single Linux box, and this one was monkey asses slow! Go figure with more recent hardware.”

Это для меня не выглядит преувеличением. Я когда тестировал на скорость выборки даже свой самописный бизвуд, был просто потрясен, насколько key-value подход для каталога быстрее всех без исключения известных мне cms на реляционных базах.

Скажем, Битрикс всея Руси при запросе списка товаров генерит 15+ запросов к базе. осКоммерс 10+. Бизвуд никогда не генерит больше трёх, а как правило вообще 1 (один) запрос. Который чаще всего выбор по primary-key без всяких там джоинов.

Это при том, что там такой говнокод у меня, что просто закачаешься.

Так вот.

Я окончательно забил на реляционную модель сегодня. Потому что прочитал вот это (Амазон у меня в аццком авторитете):

Многим сервисам в Amazon требуется доступ к данным только по первичному ключу. Для многих сервисов (таких как списки популярных товаров, корзина покупателя, пользовательские настройки, управление сессиями, рейтинги, каталог товаров) обычные паттерны использования реляционных БД неэффективны, ухудшают масштабируемость и снижают доступность. В соответствии с требованиями этих приложений, Dynamo предоставляет доступ к данным только по первичному ключу.”

Ну я двумя руками за. Если от key-value storage так прётся Амазон, то меня вообще от радости должно разорвать )

UPD. Тут мне примерчик в голову пришёл. Вот, скажем, на бизвуде иногда надо проверять права доступа (1 случай из 30 примерно на сейчас). Таблица прав у меня вчерне организована как два столбика в SQL-таблице, один из которых – ключ, а второй – права.

Весь цимес в том, как сформирован ключ. Он представляет из себя конкат двух хэшей – то есть, если надо проверить права субъекта c хэшем a1wwvxr8 на объект с хэшем s8ewkopb, я просто выбираю из базы права по ключу a1wwvxr8s8ewkopb. За раз легко выбрать несколько ключей сразу для каскадной проверки доступа – это получается очень, очень быстро.

ermouth: (Default)

Я както пропустил, что умер Деннис Ритчи – создатель языка C и соавтор операционной системы Unix.

Юникс был создан 40+ лет назад – и до сих пор активно используется. Например, айфон работает на Юникс-подобной системе.

Profile

ermouth: (Default)
ermouth

November 2021

S M T W T F S
 123456
78910111213
14151617181920
21 222324252627
282930    

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 6th, 2025 09:46 am
Powered by Dreamwidth Studios