Социальная сеть "Мой мир": граф связей Основная секция
Тезисы
Тезисы:
Как мы храним дружбы
Граф связей используется для хранения и отображения связей пользователей в социальной сети (дружбы, сообщества, группы пользователей и пр.) Сложность реализации представляет собой большой объем данных, необходимая высокая скорость доступа (Update\select), и основная проблема залючается в том, что данная структура очень плохо ложится на стандартные средства (RBD).
1. Зачем еще одна база?
- как хранить граф в реляционной базе?
- требования по производительности.
- fast cache + rel storage - негибкость подхода.
2. Есть ответ - silverspoon
- in memory storage, hash + slabs
- fsm (libev)
- snapshots ("soft" cores), как можно сделать эффективный persistent на диск большой In-memory db или почему работает у нас и не работает в MemcacheDB.
- recovery
- restarts
- replication
3. Что дальше?
- почему не реплики?
- кластер
- прокси
- резервирование
- стабильность: тесты падений