КС:2015:Проект:Memcached — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Требования на зачет в конце 1-го модуля)
(Чему вы научитесь)
Строка 13: Строка 13:
  
 
== Чему вы научитесь ==
 
== Чему вы научитесь ==
 +
 +
Сетевому программированию под Linux.
  
 
== Начальные требования ==
 
== Начальные требования ==

Версия 00:15, 5 сентября 2015

Что это за проект

Введение

Memcached -- распределенная система кеширования объектов в памяти, предназначенная для ускорения веб-приложений за счет ослабления нагрузки на базу данных. Memcached представляет интерфейс ключ-значение (key-value) -- данные идентифицируются по ключу. Memcached использует LRU политику вытеснения записей. Подробности можно прочитать здесь https://code.google.com/p/memcached/wiki/NewStart?tm=6 и здесь https://ru.wikipedia.org/wiki/Memcached .

Что требуется

Требуется сделать сервер, реализующий текстовый протокол Memcached, совместимый с существующими клиентами memcached.

Чему вы научитесь

Сетевому программированию под Linux.

Начальные требования

1. Владение техническим английским языком.

2. Умение разрабатывать программы на Cи или C++.

Критерии оценивания

Требования на зачет в конце 1-го модуля

Необходимо реализовать сетевое взаимодействие для сервера

Для хеш-таблицы и LRU кеша можно использовать заглушку.

Итоговая оценка

  • 4 балла. Сервер способен выполнять команды "set", "add", "get", "delete". Сервер совместим с существующими клиентами memcached. Реализован LRU кеш. Выполнены замеры производительности.
  • 6 балла. Требования на 4 балла + выполнение команд "replace", "append" "prepend". Поддержка опций -d, -m.
  • 8 баллов. Требования на 8 баллов + выполнение команд "cas", "touch", "incr", "decr", "flush_all", "stats" (последняя -- для подмножества значений).
  • +1 балл. Использование epoll.
  • +2 балла. Реализация бинарного протокола в дополнение к текстовому.