Как мы сбежали от postgresql или когда реляционная БД не...
TRANSCRIPT
ÏПËЛÀАÒТÔФÎОÐРÌМÀА ÄДËЛßЯ ÑСÎОÇЗÄДÀАÍНÈИßЯ ÈИ ÏПÐРÎОÑСÌМÎОÒТÐРÀА ÊКÎОÐРÎОÒТÊКÈИÕХ ÇЗÀАÖЦÈИÊКËЛÅЕÍНÍНÛЫÕХ ÂВÈИÄДÅЕÎО ÄДÎО
10 ÑСÅЕÊКÓУÍНÄД ÄДËЛÈИÍНÍНÎОÉЙ
3
— Большой JSON ~140 Kb— Нетривиальная выборка— Записи обновляются часто— Tree— Нет старого контента
9
SELECT * FROM coubs LIMIT 10;SELECT * FROM coubs LIMIT 10 OFFSET 10;INSERT INTO coubs ........;SELECT * FROM coubs LIMIT 10 OFFSET 20;
18
SELECT * FROM coubs LIMIT 10;SELECT * FROM coubs LIMIT 10 OFFSET 10;DELETE FROM coubs WHERE ........;SELECT * FROM coubs LIMIT 10 OFFSET 20;
19
SELECT * FROM coubs LIMIT 10;SELECT * FROM coubs LIMIT 10 OFFSET 10;UPDATE coubs ........;SELECT * FROM coubs LIMIT 10 OFFSET 20;
20
— Большой JSON ~140 Kb— Нетривиальная выборка— Записи обновляются часто— Tree— Нет старого контента
21
— Большой JSON ~140 Kb— Нетривиальная выборка— Записи обновляются часто — Tree— Нет старого контента
22
SELECT * FROM coubs ORDER BY key LIMIT 10;
SELECT * FROM coubs WHERE key < ... ORDER BY key LIMIT 10;
INSERT INTO coubs ……..;
SELECT * FROM coubs WHERE key < ... ORDER BY key LIMIT 10;
23
SELECT * FROM coubs ORDER BY key DESC LIMIT 10;
SELECT * FROM coubs WHERE key < ... ORDER BY key DESC LIMIT 10;
DELETE FROM coubs WHERE ...;
SELECT * FROM coubs WHERE key < ... ORDER BY key DESC LIMIT 10;
24
Page 1: делаем копию доступных данныхPage 2: работаем с данными из копииPage 3: работаем с данными из копии
28
Page 1: делаем копию доступных данных
Page 1: добавляем новые записиPage 2: работаем с данными из копии
33
36
— Берем все кобы, которые попадают в подписки — Среди этих кобов ищем дублирующиеся рекобы — Выкидываем их, оставляем только первые — Выкидываем все то, что не должно быть видно
ÁБÛЫËЛÎО ÊКÀАÊК-ÒТÎО ÒТÀАÊК
FRONTEND SERVERS
DATABASE SERVERS TIMELINE SERVER
BACKEND SERVERS
1
2 34 5
6
0.02-2ms1.5——-–2ms
~200-500ms
50
FRONTEND SERVERS
DATABASE SERVERS TIMELINE SERVER
BACKEND SERVERS
1
2 32 3
4
äдîо 5 ìмèи…
0.05 - 5ms
51
4
5
52
api workers
workershot data
fetch worker
data
refresh worker
update worker
immediate workers
workers
53
hash table
record
user_id
integer
coub_ids
list
tech_data
integer/binary
hash table
record
user_id
integer
coubs
record
tech_data
integer/binary
hot data
data