КС:2015:Проект:Memcached — различия между версиями
Tanyatik (обсуждение | вклад) (→Чему вы научитесь) |
Tanyatik (обсуждение | вклад) (→Итоговая оценка) |
||
Строка 31: | Строка 31: | ||
* '''4 балла'''. Сервер способен выполнять команды "set", "add", "get", "delete". Сервер совместим с существующими клиентами memcached. Реализован LRU кеш. Выполнены замеры производительности. | * '''4 балла'''. Сервер способен выполнять команды "set", "add", "get", "delete". Сервер совместим с существующими клиентами memcached. Реализован LRU кеш. Выполнены замеры производительности. | ||
* '''6 балла'''. Требования на '''4 балла''' + выполнение команд "replace", "append" "prepend". Поддержка опций -d, -m. | * '''6 балла'''. Требования на '''4 балла''' + выполнение команд "replace", "append" "prepend". Поддержка опций -d, -m. | ||
− | * '''8 баллов'''. Требования на ''' | + | * '''8 баллов'''. Требования на '''6 баллов''' + выполнение команд "cas", "touch", "incr", "decr", "flush_all", "stats" (последняя -- для подмножества значений). |
* '''+1 балл'''. Использование epoll. | * '''+1 балл'''. Использование epoll. | ||
* '''+2 балла'''. Реализация бинарного протокола в дополнение к текстовому. | * '''+2 балла'''. Реализация бинарного протокола в дополнение к текстовому. |
Версия 00:17, 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 баллов. Требования на 6 баллов + выполнение команд "cas", "touch", "incr", "decr", "flush_all", "stats" (последняя -- для подмножества значений).
- +1 балл. Использование epoll.
- +2 балла. Реализация бинарного протокола в дополнение к текстовому.