<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%A1%3A2015%3A%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%3AMemcached</id>
	<title>КС:2015:Проект:Memcached - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://wikicshse.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9A%D0%A1%3A2015%3A%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82%3AMemcached"/>
	<link rel="alternate" type="text/html" href="https://wikicshse.ru/index.php?title=%D0%9A%D0%A1:2015:%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:Memcached&amp;action=history"/>
	<updated>2026-06-06T14:45:26Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wikicshse.ru/index.php?title=%D0%9A%D0%A1:2015:%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:Memcached&amp;diff=1146&amp;oldid=prev</id>
		<title>imported&gt;Tanyatik: /* Итоговая оценка */</title>
		<link rel="alternate" type="text/html" href="https://wikicshse.ru/index.php?title=%D0%9A%D0%A1:2015:%D0%9F%D1%80%D0%BE%D0%B5%D0%BA%D1%82:Memcached&amp;diff=1146&amp;oldid=prev"/>
		<updated>2015-12-19T09:43:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Итоговая оценка&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Ментор==&lt;br /&gt;
&lt;br /&gt;
Ментор -- Татьяна Сергеевна Борисова.&lt;br /&gt;
e-mail: tanyatik@yandex.ru&lt;br /&gt;
Аккаунты в GIT-сервисах:&lt;br /&gt;
&lt;br /&gt;
https://github.com/tanyatik/&lt;br /&gt;
https://bitbucket.org/tanyatik/&lt;br /&gt;
&lt;br /&gt;
== Что это за проект ==&lt;br /&gt;
&lt;br /&gt;
=== Введение ===&lt;br /&gt;
&lt;br /&gt;
Memcached -- распределенная система кеширования объектов в памяти, предназначенная для ускорения веб-приложений за счет ослабления нагрузки на базу данных.&lt;br /&gt;
Memcached представляет интерфейс ключ-значение (key-value) -- данные идентифицируются по ключу.&lt;br /&gt;
Memcached использует LRU политику вытеснения записей.&lt;br /&gt;
Подробности можно прочитать здесь  https://code.google.com/p/memcached/wiki/NewStart?tm=6 и здесь https://ru.wikipedia.org/wiki/Memcached .&lt;br /&gt;
&lt;br /&gt;
Github-репозиторий с конспектами семинаров находится здесь  https://github.com/tanyatik/hseos-project/tree/master/memcached/sem01 .&lt;br /&gt;
&lt;br /&gt;
=== Что требуется ===&lt;br /&gt;
&lt;br /&gt;
Требуется сделать сервер, реализующий текстовый протокол Memcached, совместимый с существующими клиентами memcached. &lt;br /&gt;
&lt;br /&gt;
== Чему вы научитесь ==&lt;br /&gt;
&lt;br /&gt;
Сетевому и многопоточному программированию под Linux.&lt;br /&gt;
&lt;br /&gt;
== Начальные требования ==&lt;br /&gt;
1. Владение техническим английским языком.&lt;br /&gt;
&lt;br /&gt;
2. Умение разрабатывать программы на Cи или C++.&lt;br /&gt;
&lt;br /&gt;
== Критерии оценивания ==&lt;br /&gt;
&lt;br /&gt;
===Требования на зачет к 1 контрольной точке (24 октября 2015)=== &lt;br /&gt;
&lt;br /&gt;
Необходимо иметь приватный git-репозиторий с проектом, в который приглашен ментор с правами администратора.&lt;br /&gt;
Приватные репозитории на bitbucket доступны для всех.&lt;br /&gt;
Приватные репозитории на github бесплатны для студентов, подробности здесь https://education.github.com/pack&lt;br /&gt;
&lt;br /&gt;
В репозитории должно быть:&lt;br /&gt;
&lt;br /&gt;
1. Файл README.md: фамилия и имя студента, а также краткое описание проекта, написанное самостоятельно;&lt;br /&gt;
&lt;br /&gt;
2. Скелет реализации (который был дан для задания 2, смотри https://github.com/tanyatik/hseos-project/tree/master/memcached/project , нужно положить все файлы оттуда в корень репозитория)&lt;br /&gt;
&lt;br /&gt;
3. Файл server.cpp , созданный для задания 1 (можно пока нерабочий).&lt;br /&gt;
&lt;br /&gt;
=== Требования на зачет к 2 контрольной точке (21 ноября 2015)===&lt;br /&gt;
Необходимо реализовать:&lt;br /&gt;
&lt;br /&gt;
1. Сетевое взаимодействие для сервера (без параллельной обработки соединений).&lt;br /&gt;
&lt;br /&gt;
2. Протокол memcached (обработка команд, в качестве результата можно выдавать заглушку).&lt;br /&gt;
&lt;br /&gt;
Этому соответствуют задания 2, 3 и 4, данные на семинарах.&lt;br /&gt;
&lt;br /&gt;
ДляLRU кеша можно использовать заглушку.&lt;br /&gt;
&lt;br /&gt;
===Дедлайн сдачи проекта 19 ноября 2015===&lt;br /&gt;
&lt;br /&gt;
Что должно быть в README:&lt;br /&gt;
&lt;br /&gt;
1. Фамилия и имя студента.&lt;br /&gt;
&lt;br /&gt;
2. Описание проекта (своими словами)&lt;br /&gt;
&lt;br /&gt;
3. Описание того, что вы сделали, и на сколько баллов претендуете.&lt;br /&gt;
Выпишите все пункты! То, что вы не напишете, может оказаться не проверено.&lt;br /&gt;
&lt;br /&gt;
4. Параграф про LRU кеш.&lt;br /&gt;
Должен быть описан алгоритм работы кеша, получившаяся асимптотика для всех операций и замеры производительности кеша для разного количества операций, экспериментально подтверждающие асимптотику.&lt;br /&gt;
&lt;br /&gt;
5. Параграф про нагрузочное тестирование при помощи memaslap.&lt;br /&gt;
Должны быть описаны параметры, с которыми вы запускали memaslap и получившиеся результаты.&lt;br /&gt;
Приветствуется скриншот.&lt;br /&gt;
&lt;br /&gt;
http://docs.libmemcached.org/bin/memaslap.html&lt;br /&gt;
&lt;br /&gt;
=== Итоговая оценка ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;4 балла&amp;#039;&amp;#039;&amp;#039;. Сервер способен выполнять команды &amp;quot;set&amp;quot;, &amp;quot;add&amp;quot;, &amp;quot;get&amp;quot;, &amp;quot;delete&amp;quot;. Реализован LRU кеш.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;6 балла&amp;#039;&amp;#039;&amp;#039;. Требования на 4 балла + Сервер совместим с существующими клиентами memcached. Сервер способен выполнять до 10 подключений одновременно.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;8 баллов&amp;#039;&amp;#039;&amp;#039;. Требования на 6 баллов + Сервер способен обработать до 100 подключений одновременно.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+1 балл&amp;#039;&amp;#039;&amp;#039;. Асимптотика O(1) для выполнения операций в классе Cache.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+1 балл&amp;#039;&amp;#039;&amp;#039;. Реализация чтения параметров из конфига (порт, объем кеша, другие настройки на ваш выбор). Формат конфига может быть любым.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+1 балл&amp;#039;&amp;#039;&amp;#039;. Остановка сервера.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+0.5 баллов за каждую команду&amp;#039;&amp;#039;&amp;#039;. Реализация команд &amp;quot;replace&amp;quot;, &amp;quot;append&amp;quot;, &amp;quot;prepend&amp;quot;, &amp;quot;touch&amp;quot;, &amp;quot;incr&amp;quot;, &amp;quot;decr&amp;quot;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+1 балл за каждую команду&amp;#039;&amp;#039;&amp;#039;. Реализация команд &amp;quot;cas&amp;quot;, &amp;quot;flush_all&amp;quot;.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+2 балла&amp;#039;&amp;#039;&amp;#039;. Реализация команды &amp;quot;stats&amp;quot; (последнюю как минимум для подмножества &amp;quot;pid&amp;quot;, &amp;quot;uptime&amp;quot;, &amp;quot;time&amp;quot;, &amp;quot;rusage_user&amp;quot;, &amp;quot;rusage_system&amp;quot;, &amp;quot;curr_items&amp;quot;, &amp;quot;total_items&amp;quot;, &amp;quot;bytes&amp;quot;, а также для всех реализованных команд).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+2 балла&amp;#039;&amp;#039;&amp;#039;. Реализация ThreadPool.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+5 балла&amp;#039;&amp;#039;&amp;#039;. Реализация бинарного протокола в дополнение к текстовому (не рассматривается на семинаре).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;+5 баллов&amp;#039;&amp;#039;&amp;#039;. Реализация асинхронной обработки соединений (не рассматривается на семинаре).&lt;/div&gt;</summary>
		<author><name>imported&gt;Tanyatik</name></author>
	</entry>
</feed>