КС:2015:Проект:Memcached — различия между версиями
Tanyatik (обсуждение | вклад) |
Tanyatik (обсуждение | вклад) (Уточнены критерии на зачет) |
||
Строка 1: | Строка 1: | ||
+ | ==Ментор== | ||
+ | |||
+ | Ментор -- Татьяна Сергеевна Борисова. | ||
+ | e-mail: tanyatik@yandex.ru | ||
+ | Аккаунты в GIT-сервисах: | ||
+ | |||
+ | https://github.com/tanyatik/ | ||
+ | https://bitbucket.org/tanyatik/ | ||
+ | |||
== Что это за проект == | == Что это за проект == | ||
Строка 25: | Строка 34: | ||
== Критерии оценивания == | == Критерии оценивания == | ||
− | === Требования на зачет в | + | ===Требования на зачет к 1 контрольной точке (24 октября 2015)=== |
+ | |||
+ | Необходимо иметь приватный git-репозиторий с проектом, в который приглашен ментор. | ||
+ | |||
+ | В репозитории должно быть: | ||
+ | |||
+ | 1. Файл README.md: фамилия и имя студента, а также краткое описание проекта, написанное самостоятельно; | ||
+ | 2. Скелет реализации (который был дан для задания 2, смотри https://github.com/tanyatik/hseos-project/tree/master/memcached/project ) | ||
+ | 3. Файл server.cpp , созданный для задания 1 (можно пока нерабочий). | ||
+ | |||
+ | Проект должен успешно компилироваться командой make. | ||
+ | |||
+ | === Требования на зачет к 2 контрольной точке (14 ноября 2015)=== | ||
Необходимо реализовать: | Необходимо реализовать: | ||
Строка 32: | Строка 53: | ||
2. Протокол memcached (обработка команд, в качестве результата можно выдавать заглушку). | 2. Протокол memcached (обработка команд, в качестве результата можно выдавать заглушку). | ||
− | Этому соответствуют задания 1 | + | Этому соответствуют задания 1, 2 и 3, данные на семинарах. |
Для хеш-таблицы и LRU кеша можно использовать заглушку. | Для хеш-таблицы и LRU кеша можно использовать заглушку. |
Версия 20:14, 20 октября 2015
Содержание
Ментор
Ментор -- Татьяна Сергеевна Борисова. e-mail: tanyatik@yandex.ru Аккаунты в GIT-сервисах:
https://github.com/tanyatik/ https://bitbucket.org/tanyatik/
Что это за проект
Введение
Memcached -- распределенная система кеширования объектов в памяти, предназначенная для ускорения веб-приложений за счет ослабления нагрузки на базу данных. Memcached представляет интерфейс ключ-значение (key-value) -- данные идентифицируются по ключу. Memcached использует LRU политику вытеснения записей. Подробности можно прочитать здесь https://code.google.com/p/memcached/wiki/NewStart?tm=6 и здесь https://ru.wikipedia.org/wiki/Memcached .
Github-репозиторий с конспектами семинаров находится здесь https://github.com/tanyatik/hseos-project/tree/master/memcached/sem01 .
Что требуется
Требуется сделать сервер, реализующий текстовый протокол Memcached, совместимый с существующими клиентами memcached.
Чему вы научитесь
Сетевому и многопоточному программированию под Linux.
Начальные требования
1. Владение техническим английским языком.
2. Умение разрабатывать программы на Cи или C++.
Критерии оценивания
Требования на зачет к 1 контрольной точке (24 октября 2015)
Необходимо иметь приватный git-репозиторий с проектом, в который приглашен ментор.
В репозитории должно быть:
1. Файл README.md: фамилия и имя студента, а также краткое описание проекта, написанное самостоятельно; 2. Скелет реализации (который был дан для задания 2, смотри https://github.com/tanyatik/hseos-project/tree/master/memcached/project ) 3. Файл server.cpp , созданный для задания 1 (можно пока нерабочий).
Проект должен успешно компилироваться командой make.
Требования на зачет к 2 контрольной точке (14 ноября 2015)
Необходимо реализовать:
1. Сетевое взаимодействие для сервера (без параллельной обработки соединений).
2. Протокол memcached (обработка команд, в качестве результата можно выдавать заглушку).
Этому соответствуют задания 1, 2 и 3, данные на семинарах.
Для хеш-таблицы и 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 балла. Реализация бинарного протокола в дополнение к текстовому.