Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Дмитрий Николаев, SUP, - Система статистики и рейтингов LiveJournal.com

1,027 views

Published on

  • Be the first to comment

  • Be the first to like this

Дмитрий Николаев, SUP, - Система статистики и рейтингов LiveJournal.com

  1. 1. Система статистики и рейтингов LiveJournal.com Николаев Дмитрий, <SUP>
  2. 2. LiveJournal.com Stats Статистика посещений журналов и записей (за час, за день, за месяц):  по хитам,  по посетителям,  по читателям. Статистика комментариев к записям. Списки недавних посетителей — «Мои гости». Другие счётчики. Рейтинги журналов и записей за период.
  3. 3. Входные данные Количество сообщений за сутки Скорость поступления событий 800-1200 в сек Отфильтрованные события ≈ 50% Объем данных за сутки 16 Gb 50 ∙ 106 Количество соединений с LJ.com 1000
  4. 4. LiveJournal.com Stats ... Hits Comments File Storage Events Storage Collector Server Filter Events Reader LJ.com Mobile Apache mod_ljstats PostgreSQL Counter Server Counters ... Database Server
  5. 5. Hits 7 Visitors 4 Readers 3 Size Id 1001 A B C D 1002 1003 1004... ... Id 1001 Offset... ... Id 1002 Offset ... ... Id 1003 Offset Hits 7 Visitors 4 Readers 3 Hits 15 Visitors 3 Readers 2 ... ...B C D 1002 1003 1004 B C E 1003 1005 A Index File Data File Uniques Hit Stats Table Hit Stats Log
  6. 6. id 101 visitors 3 read 2 A 102 104 id 101 offset id 102 visitors 3 readers 2 hits 20 visitors 4 readers 3 ...... offset id 103 C D offset ... ... ... C 101 102 A ...... C D E 101 102 105 id 101 offset id 102 visitors 4 readers 3 hits 25 visitors 5 readers ?... offset... B C 101 102... 104 A B C D E id 102 hits 5 visitors 2 read 2 B 103 104C ... OldTableNewTableLog Index Data Uniques Index Data Uniques A D DB hits 7 hits 10 hits 17
  7. 7. Счетчик Hit Stats Число ключей 3 M Журналы Записи 1,5 M 27 M5 M День ДеньМесяц Месяц Число посетителей Размер таблицы 80k 4 Gb 10k 10k 8 Gb400 Mb 700k 300 Mb Время пересчѐта 10 сек. 4 мин. 20 сек. 30 мин.
  8. 8. { "status" : "Ok", "result" : [ ["time_id", "hits", "visitors", ...], [1, 1, 1, 1], [3, 2, 2, 0], [5, 1, 1, 1], [6, 4, 3, 0], ... [24, 1, 1, 0] ] } GET http://ljstats-host/journal_stats?date=2010-09&journal_id=1001 ... journal_stats-2010-08-31.idx journal_stats-2010-08-31.dat journal_stats-2010-09.idx journal_stats-2010-09.dat journal_stats-2010-09-01.idx journal_stats-2010-09-01.dat ... Id 1001 Offset... ... ... ... 1 Hits: 1 Visitors: 1 Readers: 1 2 Hits: 2 Visitors: 2 Readers: 0 5 Hits: 1 Visitors: 1 Readers: 1 journal_stats-2010-09.idx journal_stats-2010-09.dat Binary Search JSON
  9. 9. LiveJournal.com Ratings Число ключей 2000 Журналы Записи Все из статистики Размер на диске Интервал пересчѐта 700 Mb 1 Mb часдень Время пересчѐта ≈ 15-20 мин.
  10. 10. LiveJournal.com Stats Heartbeat Collector 1 Collector 2 Counter 1 Counter 2 Apache Apache nginx 1 LJ.com File System Cache Nginx Cache If-Modified-Since DRBD nginx 2 BIG-IP
  11. 11. dmitry.nikolaev@sup.com Контакты

×