<?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>Megjegyzések: Mi a baj a Twitterrel?</title>
	<atom:link href="http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/feed/" rel="self" type="application/rss+xml" />
	<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/</link>
	<description>/ András webkettőt fejleszt /</description>
	<lastBuildDate>Tue, 07 Feb 2012 09:36:26 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>Hodicska Gergely</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-900</link>
		<dc:creator>Hodicska Gergely</dc:creator>
		<pubDate>Sat, 31 May 2008 13:16:30 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-900</guid>
		<description>Én tisztán értelek, csak nem értek egyet. Próbáld ki egyszer, hogy mekkora különbség van mysqlből lekérni valamit és mennyi memcacheből. Kb. nagyságrenddel gyorsabb a memcache. (Ettől függetlenül az a két idézett sor üti egymást. ;))

&quot;utóbbi 24 óra összes csiripjei nem fér bele _egy_ szerver memóriájába&quot;
Egyrészt nem is kell egy szerver memóriájába beférjen, memcache alapból megoldja neked, hogy elosztja az adatokat több szerver között.
Másrészt vegyünk mondjuk 8GB memóriát (ami simán nem sok, ennek többszöröse lehet egy szerverben), ha 200 byte-ot veszünk egy üzenet memória foglalására (járulékos költségek), akkor is több mint 40 millió üzenet simán elfér benne, bőven ez alatt van a twitter napi termelése.

Plusz én nem azt vázoltam, hogy az üzeneteket össze kell szedni különböző szerverekről, hanem azt, hogy NÉHA. Alapban DB-ben tárolod az adott node usereit, plusz minden usernek az ő listájához tartozó üzenet azonosítókat. Ezen kívül tárolunk teljes listákat is memcacheben (ezt innen lekérdezni lénegesen gyorsabb, mint DB-ből). Ha itt nincs meg, akkor kérem le DB-ből az ID-kat, és ezek alapján kérem le memcacheből az adatokat, és leteszem a listát memcachebe, legközelebb onnan szolgálom ki. Cache invalidálást nagyon könnyen meg lehet oldani, akár DB trigger kiütheti, de egyéb okos megoldásokat ki lehet találni a részletek fényében. És a memcahe-nek ami még nagy előnye, hogy automatikusan megoldja neked, hogy a legfontosabb (leggyakrabban) használt elemek vannak a cache-ben.

Üdv,
Felhő</description>
		<content:encoded><![CDATA[<p>Én tisztán értelek, csak nem értek egyet. Próbáld ki egyszer, hogy mekkora különbség van mysqlből lekérni valamit és mennyi memcacheből. Kb. nagyságrenddel gyorsabb a memcache. (Ettől függetlenül az a két idézett sor üti egymást. <img src='http://webakademia.hu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</p>
<p>&#8220;utóbbi 24 óra összes csiripjei nem fér bele _egy_ szerver memóriájába&#8221;<br />
Egyrészt nem is kell egy szerver memóriájába beférjen, memcache alapból megoldja neked, hogy elosztja az adatokat több szerver között.<br />
Másrészt vegyünk mondjuk 8GB memóriát (ami simán nem sok, ennek többszöröse lehet egy szerverben), ha 200 byte-ot veszünk egy üzenet memória foglalására (járulékos költségek), akkor is több mint 40 millió üzenet simán elfér benne, bőven ez alatt van a twitter napi termelése.</p>
<p>Plusz én nem azt vázoltam, hogy az üzeneteket össze kell szedni különböző szerverekről, hanem azt, hogy NÉHA. Alapban DB-ben tárolod az adott node usereit, plusz minden usernek az ő listájához tartozó üzenet azonosítókat. Ezen kívül tárolunk teljes listákat is memcacheben (ezt innen lekérdezni lénegesen gyorsabb, mint DB-ből). Ha itt nincs meg, akkor kérem le DB-ből az ID-kat, és ezek alapján kérem le memcacheből az adatokat, és leteszem a listát memcachebe, legközelebb onnan szolgálom ki. Cache invalidálást nagyon könnyen meg lehet oldani, akár DB trigger kiütheti, de egyéb okos megoldásokat ki lehet találni a részletek fényében. És a memcahe-nek ami még nagy előnye, hogy automatikusan megoldja neked, hogy a legfontosabb (leggyakrabban) használt elemek vannak a cache-ben.</p>
<p>Üdv,<br />
Felhő</p>
]]></content:encoded>
	</item>
	<item>
		<title>Bártházi András</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-898</link>
		<dc:creator>Bártházi András</dc:creator>
		<pubDate>Sat, 31 May 2008 08:17:49 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-898</guid>
		<description>Hodicska Gergely: Szerintem hagyjuk, ha nem akarod érteni. Én azt mondom hogy (mondjuk) az utóbbi 24 óra összes csiripjei nem fér bele _egy_ szerver memóriájába, egy adott felhasználói halmaz bejegyzései viszont simán. Innentől az a kérdés hogy mi a gyorsabb/hatékonyabb/működőképes, összelapátolni indexek alapján a felhasználói bejegyzéseket akár külön szerverekről (ahogy te mondod), vagy pedig előre összeállítani úgy, hogy 0 erőforrást igényeljen, és egy szerveren meglegyen minden. A twitter akkorára nőtt, hogy az előbbi szerintem egyszerűen nem működik.</description>
		<content:encoded><![CDATA[<p>Hodicska Gergely: Szerintem hagyjuk, ha nem akarod érteni. Én azt mondom hogy (mondjuk) az utóbbi 24 óra összes csiripjei nem fér bele _egy_ szerver memóriájába, egy adott felhasználói halmaz bejegyzései viszont simán. Innentől az a kérdés hogy mi a gyorsabb/hatékonyabb/működőképes, összelapátolni indexek alapján a felhasználói bejegyzéseket akár külön szerverekről (ahogy te mondod), vagy pedig előre összeállítani úgy, hogy 0 erőforrást igényeljen, és egy szerveren meglegyen minden. A twitter akkorára nőtt, hogy az előbbi szerintem egyszerűen nem működik.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Hodicska Gergely</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-895</link>
		<dc:creator>Hodicska Gergely</dc:creator>
		<pubDate>Fri, 30 May 2008 20:21:47 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-895</guid>
		<description>&quot;csak éppen a memóriába biztosan nem fér el az összes üzenet&quot;
&quot;beszélhetünk memcache alapú adatbázisról is ami a szétszórást illeti.&quot;
Itt azért érzek némi ellentmondást. ;)

Üdv,
Felhő</description>
		<content:encoded><![CDATA[<p>&#8220;csak éppen a memóriába biztosan nem fér el az összes üzenet&#8221;<br />
&#8220;beszélhetünk memcache alapú adatbázisról is ami a szétszórást illeti.&#8221;<br />
Itt azért érzek némi ellentmondást. <img src='http://webakademia.hu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Üdv,<br />
Felhő</p>
]]></content:encoded>
	</item>
	<item>
		<title>Bártházi András</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-889</link>
		<dc:creator>Bártházi András</dc:creator>
		<pubDate>Thu, 29 May 2008 10:39:05 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-889</guid>
		<description>Hodicska Gergely: De ha pár másodperces cache csodákra képes, akkor miért ne legyen folyamatos a &quot;cache&quot;, avagy legyen eleve terítve az információ? &quot;adatbázis&quot; alatt pedig nem relációs adatbázisszervert értek, beszélhetünk memcache alapú adatbázisról is ami a szétszórást illeti. ezért mondom hogy elég közel vannak egymáshoz az elképzeléseink. ;)</description>
		<content:encoded><![CDATA[<p>Hodicska Gergely: De ha pár másodperces cache csodákra képes, akkor miért ne legyen folyamatos a &#8220;cache&#8221;, avagy legyen eleve terítve az információ? &#8220;adatbázis&#8221; alatt pedig nem relációs adatbázisszervert értek, beszélhetünk memcache alapú adatbázisról is ami a szétszórást illeti. ezért mondom hogy elég közel vannak egymáshoz az elképzeléseink. <img src='http://webakademia.hu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>Hodicska Gergely</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-887</link>
		<dc:creator>Hodicska Gergely</dc:creator>
		<pubDate>Thu, 29 May 2008 10:33:48 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-887</guid>
		<description>&quot;Cache-elni, késleltetni egyszerűen nem lehet&quot;: a második felére nem tudok mit mondani, mert az valamilyen szinten üzleti döntés, viszont az elős felére: pár másodperces cache már csodákra lehet képes, és a legtöbb feed esetén azért van pár (több) másodperc amíg nem frissül.

&quot;csak éppen a memóriába biztosan nem fér el az összes üzenet&quot;
&quot;Memóriában tárolt megoldásra építeni (mármint megpróbálni berakni a memóriába az összes friss hozzászólást) szerintem hosszútávon gyilkos megoldás, gyorsabban fejlődhet a Twitter, mint a memóriák.&quot;
Facebooknál 800 DB csak memcache szerver van, elég sok minden el tud férni benne. ;)

&quot;Egyébként nagyon hasonló megoldásról beszélünk másképpen&quot;
&quot;szerintem valamilyen ügyes denormalizálás lehet a megoldás&quot;
Csak azt nem értem, hogy ezzel a megoldással jóval több melót adsz a DB-nek. Az üzeneteket magukat is szét kell teríteni, plusz így kvázi a DB-be cache-elnél, viszont a DB-ből kiszedni egy adatot az jóval bonyolultabb &quot;protokol&quot;, mint memcache-ből kiszedni, tehát még a query cacheből is lassabban jön ki egy adat.

Üdv,
Felhő</description>
		<content:encoded><![CDATA[<p>&#8220;Cache-elni, késleltetni egyszerűen nem lehet&#8221;: a második felére nem tudok mit mondani, mert az valamilyen szinten üzleti döntés, viszont az elős felére: pár másodperces cache már csodákra lehet képes, és a legtöbb feed esetén azért van pár (több) másodperc amíg nem frissül.</p>
<p>&#8220;csak éppen a memóriába biztosan nem fér el az összes üzenet&#8221;<br />
&#8220;Memóriában tárolt megoldásra építeni (mármint megpróbálni berakni a memóriába az összes friss hozzászólást) szerintem hosszútávon gyilkos megoldás, gyorsabban fejlődhet a Twitter, mint a memóriák.&#8221;<br />
Facebooknál 800 DB csak memcache szerver van, elég sok minden el tud férni benne. <img src='http://webakademia.hu/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>&#8220;Egyébként nagyon hasonló megoldásról beszélünk másképpen&#8221;<br />
&#8220;szerintem valamilyen ügyes denormalizálás lehet a megoldás&#8221;<br />
Csak azt nem értem, hogy ezzel a megoldással jóval több melót adsz a DB-nek. Az üzeneteket magukat is szét kell teríteni, plusz így kvázi a DB-be cache-elnél, viszont a DB-ből kiszedni egy adatot az jóval bonyolultabb &#8220;protokol&#8221;, mint memcache-ből kiszedni, tehát még a query cacheből is lassabban jön ki egy adat.</p>
<p>Üdv,<br />
Felhő</p>
]]></content:encoded>
	</item>
	<item>
		<title>Bártházi András</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-886</link>
		<dc:creator>Bártházi András</dc:creator>
		<pubDate>Thu, 29 May 2008 10:05:18 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-886</guid>
		<description>Hodicska Gergely: amit belinkeltél, az összes fenti link arra hivatkozik és azt elemzi - mondjuk pont ezt nem sikerült belinkelni edddig, szóval kösz. :)

Szerintem 140 byte letárolása sok helyen nem okoz gondot. Cache-elni, késleltetni egyszerűen nem lehet, az API felhasználók egyből észrevennék, sok az API-ra épülő alkalmazás használhatatlanná válna. Egyébként nagyon hasonló megoldásról beszélünk másképpen - csak éppen a memóriába biztosan nem fér el az összes üzenet, amit egy API lekérdezés jellemzően visszaadhat, és a jelenlegi API forgalom iszonyatosan nagy lehet. Memóriában tárolt megoldásra építeni (mármint megpróbálni berakni a memóriába az összes friss hozzászólást) szerintem hosszútávon gyilkos megoldás, gyorsabban fejlődhet a Twitter, mint a memóriák. Elosztani el lehet persze, a friss elemeket is, de szerintem valamilyen ügyes denormalizálás lehet a megoldás.

Jelenleg csak az utolsó 10(?) elem érhető el egy felhasználó csiripel</description>
		<content:encoded><![CDATA[<p>Hodicska Gergely: amit belinkeltél, az összes fenti link arra hivatkozik és azt elemzi &#8211; mondjuk pont ezt nem sikerült belinkelni edddig, szóval kösz. <img src='http://webakademia.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Szerintem 140 byte letárolása sok helyen nem okoz gondot. Cache-elni, késleltetni egyszerűen nem lehet, az API felhasználók egyből észrevennék, sok az API-ra épülő alkalmazás használhatatlanná válna. Egyébként nagyon hasonló megoldásról beszélünk másképpen &#8211; csak éppen a memóriába biztosan nem fér el az összes üzenet, amit egy API lekérdezés jellemzően visszaadhat, és a jelenlegi API forgalom iszonyatosan nagy lehet. Memóriában tárolt megoldásra építeni (mármint megpróbálni berakni a memóriába az összes friss hozzászólást) szerintem hosszútávon gyilkos megoldás, gyorsabban fejlődhet a Twitter, mint a memóriák. Elosztani el lehet persze, a friss elemeket is, de szerintem valamilyen ügyes denormalizálás lehet a megoldás.</p>
<p>Jelenleg csak az utolsó 10(?) elem érhető el egy felhasználó csiripel</p>
]]></content:encoded>
	</item>
	<item>
		<title>Turulcsirip - Klötzl Ferenc</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-883</link>
		<dc:creator>Turulcsirip - Klötzl Ferenc</dc:creator>
		<pubDate>Thu, 29 May 2008 07:18:47 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-883</guid>
		<description>[...] aranyos cikk hogy miért hal le a twitter mindég: http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/  &#171; előző &#124; Klötzl Ferenc &#8212; 2008. 05. 29. [...]</description>
		<content:encoded><![CDATA[<p>[...] aranyos cikk hogy miért hal le a twitter mindég: <a href="http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/" rel="nofollow">http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/</a>  &laquo; előző | Klötzl Ferenc &mdash; 2008. 05. 29. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Hodicska Gergely</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-881</link>
		<dc:creator>Hodicska Gergely</dc:creator>
		<pubDate>Thu, 29 May 2008 05:49:55 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-881</guid>
		<description>Messze nem vagyok benne biztos, hogy a twitter esetében nyerő lenne a fentebb említett denormalizálás. Elég sokan követgetik egymást, nagyon sokszor kéne ugyanazt az adatot sok helyen letárolni. 

Szerintem esetükben inkább olyasmi lehet nyerő, hogy a kapcsoló táblák vannak csak szétterítve, maguk az üzenetek pedig durván cachelve vannak. Magukat a usereket listafrissülésük szerint lehet különböző osztályokba sorolni, adott esetben lehet a teljes lisátkat is cache-elni. 

Plusz még lehet csalni azzal is, hogy nem egyből jelenik meg egy hozzászólás, így elérhető, hogy sok kérés full cache-ből legyen kiszolgálva, míg egy másik nagy részük esetén magukat az id-kat kell csak DB-ből leszedni (ami mondjuk InnoDB clustered index esetén piszok gyors tud lenni), és az üzenetek pedig külön memcacheből jönnek elő.

Plusz még ez is érdekes lehet: http://dev.twitter.com/2008/05/twittering-about-architecture.html

Üdv,
Felhő</description>
		<content:encoded><![CDATA[<p>Messze nem vagyok benne biztos, hogy a twitter esetében nyerő lenne a fentebb említett denormalizálás. Elég sokan követgetik egymást, nagyon sokszor kéne ugyanazt az adatot sok helyen letárolni. </p>
<p>Szerintem esetükben inkább olyasmi lehet nyerő, hogy a kapcsoló táblák vannak csak szétterítve, maguk az üzenetek pedig durván cachelve vannak. Magukat a usereket listafrissülésük szerint lehet különböző osztályokba sorolni, adott esetben lehet a teljes lisátkat is cache-elni. </p>
<p>Plusz még lehet csalni azzal is, hogy nem egyből jelenik meg egy hozzászólás, így elérhető, hogy sok kérés full cache-ből legyen kiszolgálva, míg egy másik nagy részük esetén magukat az id-kat kell csak DB-ből leszedni (ami mondjuk InnoDB clustered index esetén piszok gyors tud lenni), és az üzenetek pedig külön memcacheből jönnek elő.</p>
<p>Plusz még ez is érdekes lehet: <a href="http://dev.twitter.com/2008/05/twittering-about-architecture.html" rel="nofollow">http://dev.twitter.com/2008/05/twittering-about-architecture.html</a></p>
<p>Üdv,<br />
Felhő</p>
]]></content:encoded>
	</item>
	<item>
		<title>Bártházi András</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-854</link>
		<dc:creator>Bártházi András</dc:creator>
		<pubDate>Mon, 26 May 2008 19:28:30 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-854</guid>
		<description>Benjamin: Ha gondolod írj róla! :) A Netvibes-szal is hasonlóak a gondok, bár itt főként az, hogy nem számítottunk ekkora érdeklődésre a Ginger után. A képen ugyan nem látszik mi a gond, de valahol mintha írtad volna, hogy a régi elemek olvasatlanok lesznek hirtelen. Ezt a hibát láttam már előfordulni a hibakövető rendszerünkben, talán már ki is van javítva. Konkrét leállásról az utóbbi időben nem tudok.</description>
		<content:encoded><![CDATA[<p>Benjamin: Ha gondolod írj róla! <img src='http://webakademia.hu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  A Netvibes-szal is hasonlóak a gondok, bár itt főként az, hogy nem számítottunk ekkora érdeklődésre a Ginger után. A képen ugyan nem látszik mi a gond, de valahol mintha írtad volna, hogy a régi elemek olvasatlanok lesznek hirtelen. Ezt a hibát láttam már előfordulni a hibakövető rendszerünkben, talán már ki is van javítva. Konkrét leállásról az utóbbi időben nem tudok.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Benjamin</title>
		<link>http://webakademia.hu/2008/05/mi-a-baj-a-twitterrel/comment-page-1/#comment-853</link>
		<dc:creator>Benjamin</dc:creator>
		<pubDate>Mon, 26 May 2008 19:10:16 +0000</pubDate>
		<guid isPermaLink="false">http://webakademia.hu/?p=170#comment-853</guid>
		<description>Mi a baj a Netvibessal mikor lesz? Vagy irjak rola?
http://benjamin.hu/tmp/netvibes.error.gif</description>
		<content:encoded><![CDATA[<p>Mi a baj a Netvibessal mikor lesz? Vagy irjak rola?<br />
<a href="http://benjamin.hu/tmp/netvibes.error.gif" rel="nofollow">http://benjamin.hu/tmp/netvibes.error.gif</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
