<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии: Атомарность операций и счетчики в memcached</title>
	<atom:link href="http://www.smira.ru/2008/10/24/web-caching-memcached-3/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.smira.ru/2008/10/24/web-caching-memcached-3/</link>
	<description></description>
	<lastBuildDate>Thu, 13 Jan 2011 15:03:38 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>Автор: Андрей</title>
		<link>http://www.smira.ru/2008/10/24/web-caching-memcached-3/comment-page-1/#comment-948</link>
		<dc:creator>Андрей</dc:creator>
		<pubDate>Fri, 20 Mar 2009 05:52:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.smira.ru/?p=142#comment-948</guid>
		<description>&lt;p&gt;Yuriy, в общем случае трудно дать совет, тут необходимы детали реализации механизма.&lt;/p&gt;

&lt;p&gt;Например, я считаю показы только в счетчиках, ставлю время жизни 0 (бесконечно). Они могут быть вытеснены, но я должен следить за тем, чтобы было достаточно памяти и этого не случалось. Раз в час снимаю показания и обновляю БД. Если счетчика нет в memcached, можно взять из БД начальное значение.&lt;/p&gt;

&lt;p&gt;Я бы могу посоветовать другую мою статью про memcached, там даны более точные и формальные описания структур данных: http://www.smira.ru/2009/01/21/data-structures-in-memcached-memcachedb/&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Yuriy, в общем случае трудно дать совет, тут необходимы детали реализации механизма.</p>

<p>Например, я считаю показы только в счетчиках, ставлю время жизни 0 (бесконечно). Они могут быть вытеснены, но я должен следить за тем, чтобы было достаточно памяти и этого не случалось. Раз в час снимаю показания и обновляю БД. Если счетчика нет в memcached, можно взять из БД начальное значение.</p>

<p>Я бы могу посоветовать другую мою статью про memcached, там даны более точные и формальные описания структур данных: <a href="http://www.smira.ru/2009/01/21/data-structures-in-memcached-memcachedb/" rel="nofollow">http://www.smira.ru/2009/01/21/data-structures-in-memcached-memcachedb/</a></p>]]></content:encoded>
	</item>
	<item>
		<title>Автор: Yuriy</title>
		<link>http://www.smira.ru/2008/10/24/web-caching-memcached-3/comment-page-1/#comment-947</link>
		<dc:creator>Yuriy</dc:creator>
		<pubDate>Thu, 19 Mar 2009 16:26:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.smira.ru/?p=142#comment-947</guid>
		<description>&lt;p&gt;А как быть со значениями, которые не изменились в течении часа, но по ним будет сделан апдейт в базу.
Т.е. к примеру у меня накопилось 100 счетчиков в мемкеше 10 из них изменилось но делаю апдейт по всем 100. 
Какое время жизни выбирать для ключа и как его соглаосвывать с вызовами апдейтов. Очевидно, что возникнет ситуация, когда ключ с изменным значением будет вытеснен ранее чем считан для апдейта.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>А как быть со значениями, которые не изменились в течении часа, но по ним будет сделан апдейт в базу.
Т.е. к примеру у меня накопилось 100 счетчиков в мемкеше 10 из них изменилось но делаю апдейт по всем 100. 
Какое время жизни выбирать для ключа и как его соглаосвывать с вызовами апдейтов. Очевидно, что возникнет ситуация, когда ключ с изменным значением будет вытеснен ранее чем считан для апдейта.</p>]]></content:encoded>
	</item>
	<item>
		<title>Автор: Андрей</title>
		<link>http://www.smira.ru/2008/10/24/web-caching-memcached-3/comment-page-1/#comment-876</link>
		<dc:creator>Андрей</dc:creator>
		<pubDate>Tue, 28 Oct 2008 11:05:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.smira.ru/?p=142#comment-876</guid>
		<description>&lt;p&gt;Нет, аккумулирование просмотров может происходить без memcached, и тогда потери в просмотрах на уровне БД не будет. Если корректно обновим счетчик в memcached - то компенсируем потери ключей. &lt;/p&gt;

&lt;p&gt;Для действительно аккуратного расчета просмотров memcached - не самое надежное хранилище статистики.&lt;/p&gt;

&lt;p&gt;Пример возможного варианта: логируем просмотры в локальных файлах, раз в час собираем все логи в одном месте, обрабатываем, выполняем запрос в БД на обновление данных, проверяем счетчики в memcached - если там значение больше набежало, ничего не делаем, если меньше - корректируем до значения из БД.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Нет, аккумулирование просмотров может происходить без memcached, и тогда потери в просмотрах на уровне БД не будет. Если корректно обновим счетчик в memcached &#8211; то компенсируем потери ключей. </p>

<p>Для действительно аккуратного расчета просмотров memcached &#8211; не самое надежное хранилище статистики.</p>

<p>Пример возможного варианта: логируем просмотры в локальных файлах, раз в час собираем все логи в одном месте, обрабатываем, выполняем запрос в БД на обновление данных, проверяем счетчики в memcached &#8211; если там значение больше набежало, ничего не делаем, если меньше &#8211; корректируем до значения из БД.</p>]]></content:encoded>
	</item>
	<item>
		<title>Автор: Pashugan</title>
		<link>http://www.smira.ru/2008/10/24/web-caching-memcached-3/comment-page-1/#comment-875</link>
		<dc:creator>Pashugan</dc:creator>
		<pubDate>Tue, 28 Oct 2008 11:01:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.smira.ru/?p=142#comment-875</guid>
		<description>&lt;p&gt;Хорошо, тогда почему возник сам вопрос. В статье сказано про блокировки, призванные не позволить потеряться ни одному просмотру. В то же время при политике сохранения &quot;раз в час&quot; может потеряться заметное число просмотров, если memcached вытеснит некий счётчик как редко используемый. Я не пытаюсь Вас подловить, просто хотелось бы явного указания в статье на возможные проблемы и пути их решения. Ради общего блага. :)&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Хорошо, тогда почему возник сам вопрос. В статье сказано про блокировки, призванные не позволить потеряться ни одному просмотру. В то же время при политике сохранения &laquo;раз в час&raquo; может потеряться заметное число просмотров, если memcached вытеснит некий счётчик как редко используемый. Я не пытаюсь Вас подловить, просто хотелось бы явного указания в статье на возможные проблемы и пути их решения. Ради общего блага. <img src='http://www.smira.ru/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
	</item>
	<item>
		<title>Автор: Андрей</title>
		<link>http://www.smira.ru/2008/10/24/web-caching-memcached-3/comment-page-1/#comment-873</link>
		<dc:creator>Андрей</dc:creator>
		<pubDate>Tue, 28 Oct 2008 10:49:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.smira.ru/?p=142#comment-873</guid>
		<description>&lt;p&gt;Там было сказано о том, что данные аккумулируются и сохраняются. Способ не был озвучен сознательно, т.к. к самому счетчику это может и не иметь отношения. Можно складывать в локальные файлы, можно в тот же memcached, можно как-то собирать с серверов, но основное, что мы имеем возможность, например, в течение часа собирать, а потом один раз в час обновить значения счетчиков в БД. В это время мемкешовые будут продолжать считать.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Там было сказано о том, что данные аккумулируются и сохраняются. Способ не был озвучен сознательно, т.к. к самому счетчику это может и не иметь отношения. Можно складывать в локальные файлы, можно в тот же memcached, можно как-то собирать с серверов, но основное, что мы имеем возможность, например, в течение часа собирать, а потом один раз в час обновить значения счетчиков в БД. В это время мемкешовые будут продолжать считать.</p>]]></content:encoded>
	</item>
	<item>
		<title>Автор: Pashugan</title>
		<link>http://www.smira.ru/2008/10/24/web-caching-memcached-3/comment-page-1/#comment-872</link>
		<dc:creator>Pashugan</dc:creator>
		<pubDate>Tue, 28 Oct 2008 10:31:38 +0000</pubDate>
		<guid isPermaLink="false">http://www.smira.ru/?p=142#comment-872</guid>
		<description>&lt;p&gt;По поводу счётчиков просмотров, хотелось бы подробностей. Не было сказано про политику сохранения значений счётчика в базу.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>По поводу счётчиков просмотров, хотелось бы подробностей. Не было сказано про политику сохранения значений счётчика в базу.</p>]]></content:encoded>
	</item>
	<item>
		<title>Автор: Андрей</title>
		<link>http://www.smira.ru/2008/10/24/web-caching-memcached-3/comment-page-1/#comment-870</link>
		<dc:creator>Андрей</dc:creator>
		<pubDate>Fri, 24 Oct 2008 11:28:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.smira.ru/?p=142#comment-870</guid>
		<description>&lt;p&gt;Мы могли бы выделить два ключа - это минимум возможный. Один меняем, другой показываем. Так получается более сглаженная картинка, которая меняется несколько более плавно при резком притоке/оттоке посетителей.&lt;/p&gt;

&lt;p&gt;Спасибо, обновил запись!&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>Мы могли бы выделить два ключа &#8211; это минимум возможный. Один меняем, другой показываем. Так получается более сглаженная картинка, которая меняется несколько более плавно при резком притоке/оттоке посетителей.</p>

<p>Спасибо, обновил запись!</p>]]></content:encoded>
	</item>
	<item>
		<title>Автор: Станислав</title>
		<link>http://www.smira.ru/2008/10/24/web-caching-memcached-3/comment-page-1/#comment-869</link>
		<dc:creator>Станислав</dc:creator>
		<pubDate>Fri, 24 Oct 2008 10:00:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.smira.ru/?p=142#comment-869</guid>
		<description>&lt;p&gt;А какой смысл делать 6 полей для расчета сколько человек в онлайне?&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>А какой смысл делать 6 полей для расчета сколько человек в онлайне?</p>]]></content:encoded>
	</item>
</channel>
</rss>

