Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет imp_171 ([info]alexclear@lj)
- вместо мемкеша на каждый тип объекта можно в качестве ключа использовать не ID объекта а строку вида "OBJECT_TYPE-OBJECT_ID", т.е. например запись 23 таблицы user хранить не в memcached для user под ключём 23 а в memcached для всего с ключём "user-23"

Угу.
Но я пока не очень понимаю, чем это поможет - при инвалидации придется весь кэш полностью перебрать.

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

Да, была такая идея.
Проблема в том, что я так и не придумал, как у меня это будет работать при параллельном доступе к одной и той же иерархии из многих процессов.
Скажем, два воркера решили у меня закинуть по объекту в кэш для одного и того же модуля. Соответственно, они оба должны проапдейтить иерархию в кэше, и может настать момент, когда они друг за другом ее возьмут и друг за другом ее обратно положат. Изменения первого положившего будут потеряны, а это в моем случае плохо, т.к. при инвалидации не все объекты для модуля выбросятся.

p.s. кстати, в mysql есть 2 способа заставить его держать таблицы в памяти - движок HEAP и "хакерский" вариант - диск в оперативе и симлинк DATA папки мускула или отдельной таблицы туда. Использовал такой вариант когда нужна была большая таблица в памяти с полями, не поддерживаемыми HEAP движком.

Отличная тема, спасибо, при случае попробую применить.
А то я уже понял, что хранилище в памяти только для индексации memcached и годится, ничего тяжелого туда не положить.


(Читать комментарии)

Добавить комментарий:

Как:
(комментарий будет скрыт)
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Имя пользователя:
Пароль:
Тема:
HTML нельзя использовать в теме сообщения
Сообщение: