12. только от Васи только важное за период времени Последние 10 Over 9000 Следующие / предыдущие 10
13.
14.
15. Что понадобится нам? Insert(item)Delete(item) GetRange(first, last, count)GetCount(first, last)
16.
17.
18. Показать последние 10 GetRange( new Key(userId, DateTime.MaxValue, Guid.MaxValue), new Key(userId, DateTime.MinValue, Guid.MinValue), 10)
19. Показать 10 предшествующих X GetRange( new Key(userId, X.Timestamp, X.ItemId), new Key(userId, DateTime.MinValue, Guid.MinValue), 10)
20. …пришедших от Васи GetRange( new Key(userId, vasya.Id, DateTime.Max, Guid.Max), new Key(userId, vasya.Id, DateTime.Min, Guid.Min), 10);
21. Важные, от Васи, с понедельника по пятницу GetRange( new Key(userId, vasyaId, Priority.High, friday, Guid.Min), new Key(userId, vasyaId, Priority.High, monday, Guid.Max) 10);
22. От Васи, Пети, и Кати GetRange(... vasyaId ..., M).Union( GetRange(... petyaId..., M).Union( GetRange(... katyaId..., M))) .OrderBy(k => k.Timestamp).Take(M); O(A * M * log N)А можно ли эффективнее?
23.
24.
25. Все уже украдено до нас!BerkeleyDB db = BTreeDatabase.Open(“dbFile”, “dbName”, cfg); using(var cur = db.Cursor(…)) { if(cur.Move(newDatabaseEntry(keyBytes), true)) returntrue; } returnfalse;
26. Berkeley DB Под капотом B+Tree (или Hash) Whitepaper: http://www.usenix.org/event/usenix99/full_papers/olson/olson.pdf Web site: http://www.oracle.com/technetwork/database/berkeleydb/overview/index.html
27. Все уже украдено до нас!Cassandra SlicePredicate: start, finish, count, reversed client.multiget_slice(… slicePredicate …) + масштабируемость + шардинг + …
28. Cassandra Под капотом: деревья в памяти + SSTables на диске Web site: http://cassandra.apache.org/
30. Что осталось за кадром Надежное хранение Масштабирование Отказоустойчивость Шардинг Как жить с отложенной консистентностью? …
31. Общая картинка Тут была импровизация с рисованием маркерами на доске :-) Я рассказал о том, как все устроено в целом, как взаимодействую индексы и хранилище и т.п.
32. Общая картинка Есть ещё одна презентация, немного раскрывающая тему общей картинки: http://www.slideshare.net/xoposhiy/highload-dump-2011
33.
34. Конец! Павел Егоров СКБ Контур, Екатеринбург pe@skbkontur.ru twitter.com/xoposhiy