РИТ 2014



http://vk.com/illarionov

2006 год

(выживали как могли)


  • PHP
  • Perl
  • MySQL
  • PostgreSQL

2014 год

  • Солидный выбор технологий
  • PHP по прежнему самая популярная среда веб разработки
  • Реляционные базы данных уступили место NoSQL решением
  • Медиаконтент стал важнее


Opensource решения от ВКонтакте

  • KPHP транслятор php в быстрый С++ код
  • Набор NoSQL движков для хранения данных pmemcached, texts, lists, search, hints и.т.д.
  • Набор утилит и различных решений db-proxy, mc-proxy, antispam, cache, copyfast


http://vk.cc/kphp

KPHP

транслятор php в быстрый С++ код

  • В 4 раза быстрее HHVM
  • В 25 раз быстрее PHP
  • Статический анализ кода
  • Расширение возможностей PHP(при отказе от совместимости)
  • Отсутствие OOP
  • Отсутствие некоторых стандартных библиотек PHP(curl, DOM)

NoSQL

Набор независимых движков, решающих отдельные задачи

  • Система снимков и бинлогов
  • Memcache протокол
  • RPC протокол
  • Масштабируемость
  • Скорость
  • Отсутствие свободы реляционных баз данных
  • Только Linux

PMemcached

Persistent memcached, key-value хранилище данных

  • Хранение данных ключ-значение
  • Высокая скорость работы
  • Возможность получать наборы ключей по префиксу
  • Поддержка метафайлов

Lists

Работа со списками

  • Возможность получать подсписки используя флаги
  • Поддерживается сортировка списков
  • Поддерживаются ключи в виде набора int-ов
  • В качестве значения – int и 256 символов текста

Search

Поиск по любой текстовой информации

  • Произвольные теги для выборки
  • Произвольные поля для сортировки
  • Модификация Search-XГруппировки
  • Mодификация Search-YУчет порядка слов, сортировка по количеству найденных слов

Storage

Хранение пользовательских данных

  • Быстрее, чем хранение данных в отдельных файлах
  • Действия с файлами через MC и RPC протоколы
  • Возможности администрирования, миграции

Hints

Решает три задачи:

  • Быстрый поиск по префиксам слов
  • Поиск по объектам пользователя
  • Сортировка объектов пользователя по рейтингу(рейтинг повышается специальным запросом)

Queue

Позволяет организовывать realtime общение между браузером и сервером

  • Клиент подключается к назначенному ему Queue серверу,
    подписываясь на набор ключей.
  • Сервер может передать обновление на любой из ключей.

Friends

Движок для хранения списков (lists, с расширенными возможностями)

  • Операции с приватностью
  • Папки друзей
  • Ряд специфических запросов

Letters

Организация очереди для серверной обработки:


  • Добавление событий с произвольным количеством полей
  • Получение событий, в том числе повторное, через
    заданный промежуток времени
  • Удаление событий
  • Рассчитан на большой поток событий

Logs

Единственный SQL движек, предназначен для логирования

Хранит произвольные данные в течении определенного промежутка времени в зависимости от количества доступной памяти.

Позволяет осуществлять запросы с набором условий по любым полям.

Bayes

Предназначен для анализа текста на спам

  • Принимает тексты, возвращает вероятность того,
    что текст является спамом
  • Движок необходимо обучать, передавая
    жалобы пользователей на спам.

Набор утилит

Дополнительные решения

  • Image engine – обработка изображений
  • Cache – кеширование контента нагруженных файлов
  • CopyFast – организация p2p деплоя
  • Replicator – репликация бинлогов между серверами

Спасибо за внимание



Копия доклада на http://brainfucker.ru