<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Eksperyment ze skalowaniem aplikacji WWW</title>
	<link>http://blog.isolution.pl/?p=67</link>
	<description>Oficjalny blog zespołu Isolution -  nowe technologie J2EE...</description>
	<pubDate>Mon, 06 Sep 2010 03:20:28 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: hp</title>
		<link>http://blog.isolution.pl/?p=67#comment-5849</link>
		<dc:creator>hp</dc:creator>
		<pubDate>Mon, 30 Aug 2010 04:20:55 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-5849</guid>
		<description>&lt;strong&gt; Cartridges http://xlights9nzlr0l.03GMCPARTS.US/tag/hp+Cartridges+Epson/ : hp...&lt;/strong&gt;

Epson...</description>
		<content:encoded><![CDATA[<p><strong> Cartridges <a href="http://xlights9nzlr0l.03GMCPARTS.US/tag/hp+Cartridges+Epson/" rel="nofollow">http://xlights9nzlr0l.03GMCPARTS.US/tag/hp+Cartridges+Epson/</a> : hp&#8230;</strong></p>
<p>Epson&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: shops</title>
		<link>http://blog.isolution.pl/?p=67#comment-5846</link>
		<dc:creator>shops</dc:creator>
		<pubDate>Sun, 29 Aug 2010 22:01:52 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-5846</guid>
		<description>&lt;strong&gt; downtown http://hpatioojamu.AWESOMEBABYCLOTHES.INFO/tag/shops+cruz+downtown/ : shops...&lt;/strong&gt;

cruz...</description>
		<content:encoded><![CDATA[<p><strong> downtown <a href="http://hpatioojamu.AWESOMEBABYCLOTHES.INFO/tag/shops+cruz+downtown/" rel="nofollow">http://hpatioojamu.AWESOMEBABYCLOTHES.INFO/tag/shops+cruz+downtown/</a> : shops&#8230;</strong></p>
<p>cruz&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Furniture</title>
		<link>http://blog.isolution.pl/?p=67#comment-5843</link>
		<dc:creator>Furniture</dc:creator>
		<pubDate>Sun, 29 Aug 2010 21:34:18 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-5843</guid>
		<description>&lt;strong&gt; Furniture http://oteatjvnbey.05KIAPARTS.US/tag/Starting+an+Business+sale+Furniture/ : Furniture...&lt;/strong&gt;

an...</description>
		<content:encoded><![CDATA[<p><strong> Furniture <a href="http://oteatjvnbey.05KIAPARTS.US/tag/Starting+an+Business+sale+Furniture/" rel="nofollow">http://oteatjvnbey.05KIAPARTS.US/tag/Starting+an+Business+sale+Furniture/</a> : Furniture&#8230;</strong></p>
<p>an&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kitchen</title>
		<link>http://blog.isolution.pl/?p=67#comment-5841</link>
		<dc:creator>Kitchen</dc:creator>
		<pubDate>Sun, 29 Aug 2010 21:29:26 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-5841</guid>
		<description>&lt;strong&gt; Kitchen http://agrillz-lyqd.ANTIQUEFURNINISHING.INFO/tag/Kitchen+electric+Cooking/ : electric...&lt;/strong&gt;

Kitchen...</description>
		<content:encoded><![CDATA[<p><strong> Kitchen <a href="http://agrillz-lyqd.ANTIQUEFURNINISHING.INFO/tag/Kitchen+electric+Cooking/" rel="nofollow">http://agrillz-lyqd.ANTIQUEFURNINISHING.INFO/tag/Kitchen+electric+Cooking/</a> : electric&#8230;</strong></p>
<p>Kitchen&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Wonderflex</title>
		<link>http://blog.isolution.pl/?p=67#comment-5832</link>
		<dc:creator>Wonderflex</dc:creator>
		<pubDate>Sun, 29 Aug 2010 10:29:47 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-5832</guid>
		<description>&lt;strong&gt; friendly http://jfriendly259.AUTOPARTSTHAI.INFO/tag/Wonderflex+Plastic+plastic+friendly/ : Plastic...&lt;/strong&gt;

Wonderflex...</description>
		<content:encoded><![CDATA[<p><strong> friendly <a href="http://jfriendly259.AUTOPARTSTHAI.INFO/tag/Wonderflex+Plastic+plastic+friendly/" rel="nofollow">http://jfriendly259.AUTOPARTSTHAI.INFO/tag/Wonderflex+Plastic+plastic+friendly/</a> : Plastic&#8230;</strong></p>
<p>Wonderflex&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: CHRISTIAN</title>
		<link>http://blog.isolution.pl/?p=67#comment-5464</link>
		<dc:creator>CHRISTIAN</dc:creator>
		<pubDate>Wed, 21 Jul 2010 12:43:34 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-5464</guid>
		<description>&lt;strong&gt;&#60; blockquote &#62;&#60; a href="http://medicamentspot.com/"&#62;Medicamentspot.com. Canadian Health&#38;Care.No prescription online pharmacy.Best quality drugs.Special Internet Prices. No prescription drugs. Buy pills online&#60; /a &#62;...&lt;/strong&gt;

Buy:Retin-A.Human Growth Hormone.Petcam (Metacam) Oral Suspension.Mega Hoodia.Prednisolone.Prevacid.Arimidex.Lumigan.Zyban.100% Pure Okinawan Coral Calcium.Nexium.Actos.Zovirax.Accutane.Valtrex.Synthroid....</description>
		<content:encoded><![CDATA[<p><strong>&lt; blockquote &gt;&lt; a href=&#8221;http://medicamentspot.com/&#8221;&gt;Medicamentspot.com. Canadian Health&#38;Care.No prescription online pharmacy.Best quality drugs.Special Internet Prices. No prescription drugs. Buy pills online&lt; /a &gt;&#8230;</strong></p>
<p>Buy:Retin-A.Human Growth Hormone.Petcam (Metacam) Oral Suspension.Mega Hoodia.Prednisolone.Prevacid.Arimidex.Lumigan.Zyban.100% Pure Okinawan Coral Calcium.Nexium.Actos.Zovirax.Accutane.Valtrex.Synthroid&#8230;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: xyzyluzo</title>
		<link>http://blog.isolution.pl/?p=67#comment-1590</link>
		<dc:creator>xyzyluzo</dc:creator>
		<pubDate>Fri, 25 Sep 2009 21:32:48 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-1590</guid>
		<description>&lt;strong&gt;xyzyluzo...&lt;/strong&gt;

 &lt;a href="http://lebehuzyzida.blogspot.com/2009/09/cabi-online-catalog.html" rel="nofollow"&gt;donnie baker pics&lt;/a&gt; ...</description>
		<content:encoded><![CDATA[<p><strong>xyzyluzo&#8230;</strong></p>
<p> <a href="http://lebehuzyzida.blogspot.com/2009/09/cabi-online-catalog.html" rel="nofollow">donnie baker pics</a> &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: zyraweg</title>
		<link>http://blog.isolution.pl/?p=67#comment-1517</link>
		<dc:creator>zyraweg</dc:creator>
		<pubDate>Thu, 27 Aug 2009 00:25:35 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-1517</guid>
		<description>&lt;strong&gt;zyraweg...&lt;/strong&gt;

 &lt;a href="http://namelindablog.info/ashley-leggat-nude-pictures/" rel="nofollow"&gt;Ashley Leggat Nude Pictures&lt;/a&gt; ...</description>
		<content:encoded><![CDATA[<p><strong>zyraweg&#8230;</strong></p>
<p> <a href="http://namelindablog.info/ashley-leggat-nude-pictures/" rel="nofollow">Ashley Leggat Nude Pictures</a> &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Marcin Sarniak</title>
		<link>http://blog.isolution.pl/?p=67#comment-662</link>
		<dc:creator>Marcin Sarniak</dc:creator>
		<pubDate>Wed, 28 Jan 2009 21:02:56 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-662</guid>
		<description>Teraz ja:)

AD 1)  Zależy, co jest kluczowe: pamięć czy procesor. 

Jeśli procesor to nie ma znaczenia czy mam 10 maszyn na web i 90 na serwisy, czy 100 maszyn które równo dzielą między siebie 10% obciążenia web, 90% obciążenia serwisów.
            
Jeśli pamięć, to znowu zależy jaka jest charakterystyka zużycia pamięci naszego serwisu. Załóżmy, że jest liniowo zależna od ilości żądań (oczywiście, niektóre żądania mogą być lekkie, inne ciężkie, przyjmujemy tu żądanie uśrednione). Wprowadźmy sobie wzór: 

        mem = ż * (aw + au) + bw + bu   ;-)

  mem - ilość użytej pamięci
  ż = ilość żądań
  aw = wielkość pamięci używana przez warstwę web na obsługę jednego żądania uśrednionego
  au = analogiczne dla aw, dla warstwy usług
  bw = wielkość stała pamięci zużywana przez warstwę web
  bu = jak wyżej, dla warstwy usług
  ;-) = symbol wskazujący, że powyższy wzór nie powinien być traktowany zbyt serio

  I teraz tak: jeśli bu i bw są względnie małe (tzn. pamięć zajęta przez classloader itp. jest względnie mała): to nadal nie ma znaczenia, czy możemy rozdzielić usługi od web, czy nie: w obu przypadkach obsługa jednego requestu zajmuje pewną stałą ilość zasobów (aw + au) i podobnie jak w przypadku procesora - rozdzielenie tego na różne grupy komputerów nic nie zmienia.  
  
  Jeśli bw i/lub bu są względnie duże to oczywiście Twoje rozwiązanie zaczyna mieć przewagę. Kiedy bw i bu będą względnie duże? Kiedy będziemy chcieli stosować jakieś kesze itp. Czy w tym wypadku Wojtek planował ich stosowanie? Nie wiem:)

AD 2)
   Tu nie chodzi o wyszukiwania pełnotekstowe czy temu podobne. To coś jak znalezienie wspólnych znajomych 4-tego stopnia (czyli ja znam X, X zna Y, Y zna Z, Z zna Ciebie) tyle że dużo bardziej skomplikowane i niestety bardzo dynamiczne - tak że odpadają rozwiązania preindeksujące dane. Nie chce mi sie wchodzić w szczegóły, w każdym razie to, o ile znam lucene, compas itp to nie jest ta bajka.

pozdrawiam
Marcin</description>
		<content:encoded><![CDATA[<p>Teraz ja:)</p>
<p>AD 1)  Zależy, co jest kluczowe: pamięć czy procesor. </p>
<p>Jeśli procesor to nie ma znaczenia czy mam 10 maszyn na web i 90 na serwisy, czy 100 maszyn które równo dzielą między siebie 10% obciążenia web, 90% obciążenia serwisów.</p>
<p>Jeśli pamięć, to znowu zależy jaka jest charakterystyka zużycia pamięci naszego serwisu. Załóżmy, że jest liniowo zależna od ilości żądań (oczywiście, niektóre żądania mogą być lekkie, inne ciężkie, przyjmujemy tu żądanie uśrednione). Wprowadźmy sobie wzór: </p>
<p>        mem = ż * (aw + au) + bw + bu   <img src='http://blog.isolution.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>  mem - ilość użytej pamięci<br />
  ż = ilość żądań<br />
  aw = wielkość pamięci używana przez warstwę web na obsługę jednego żądania uśrednionego<br />
  au = analogiczne dla aw, dla warstwy usług<br />
  bw = wielkość stała pamięci zużywana przez warstwę web<br />
  bu = jak wyżej, dla warstwy usług<br />
  <img src='http://blog.isolution.pl/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> = symbol wskazujący, że powyższy wzór nie powinien być traktowany zbyt serio</p>
<p>  I teraz tak: jeśli bu i bw są względnie małe (tzn. pamięć zajęta przez classloader itp. jest względnie mała): to nadal nie ma znaczenia, czy możemy rozdzielić usługi od web, czy nie: w obu przypadkach obsługa jednego requestu zajmuje pewną stałą ilość zasobów (aw + au) i podobnie jak w przypadku procesora - rozdzielenie tego na różne grupy komputerów nic nie zmienia.  </p>
<p>  Jeśli bw i/lub bu są względnie duże to oczywiście Twoje rozwiązanie zaczyna mieć przewagę. Kiedy bw i bu będą względnie duże? Kiedy będziemy chcieli stosować jakieś kesze itp. Czy w tym wypadku Wojtek planował ich stosowanie? Nie wiem:)</p>
<p>AD 2)<br />
   Tu nie chodzi o wyszukiwania pełnotekstowe czy temu podobne. To coś jak znalezienie wspólnych znajomych 4-tego stopnia (czyli ja znam X, X zna Y, Y zna Z, Z zna Ciebie) tyle że dużo bardziej skomplikowane i niestety bardzo dynamiczne - tak że odpadają rozwiązania preindeksujące dane. Nie chce mi sie wchodzić w szczegóły, w każdym razie to, o ile znam lucene, compas itp to nie jest ta bajka.</p>
<p>pozdrawiam<br />
Marcin</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Piotr Maj</title>
		<link>http://blog.isolution.pl/?p=67#comment-630</link>
		<dc:creator>Piotr Maj</dc:creator>
		<pubDate>Tue, 20 Jan 2009 11:02:43 +0000</pubDate>
		<guid>http://blog.isolution.pl/?p=67#comment-630</guid>
		<description>Moje kolejne 4 grosze:

1) Restart samej warstwy usług może i jest rozważaniem akademickim (choć z mojego doświadczenia wynika, że występuje dość często w fazie skalowania systemu i optymalizacji).

Dużo większą wadą tego połączenia jest to, że od razu zabieracie sobie możliwość skalowania tych dwóch warstw oddzielnie. Takie combo będzie się skalować wprost proporcjonalnie do najcięższego komponentu. Jeśli warstwa usług biznesowych przestanie się wyrabiać, to trzeba będzie dołożyć do farmy
dodatkowy serwer, który będzie tylko w części wykorzystany przez owe usługi, bo część maszyny będzie zajęta przez "fronty" (których np. wcale więcej nie potrzeba).

2) Ciężkie wyszukiwanie wg różnych kryteriów czasem lepiej jest zrobić w oparciu o dedydowaną usługę, np. Lucene z indexem zoptymalizowanym do tego typu przeszukiwań.

Oczywiście wszystko jest kwestią skali, do jakiegoś momentu zadawanie ciężkich zapytań do bazy w zupełności wystarczy i w sumie jest to bardzo dobre rozwiązanie na start. Optymalizację można zostawić na później.

Tak w ogóle to cieszę się bardzo, że podjęliście temat skalowalności - niewiele się w Polsce pisze na ten temat. Mam nadzieję, że podzielicie się również swoimi doświadczeniami z implementacji tegoż rozwiazania.

-- 
pozdrawiam
piotr maj</description>
		<content:encoded><![CDATA[<p>Moje kolejne 4 grosze:</p>
<p>1) Restart samej warstwy usług może i jest rozważaniem akademickim (choć z mojego doświadczenia wynika, że występuje dość często w fazie skalowania systemu i optymalizacji).</p>
<p>Dużo większą wadą tego połączenia jest to, że od razu zabieracie sobie możliwość skalowania tych dwóch warstw oddzielnie. Takie combo będzie się skalować wprost proporcjonalnie do najcięższego komponentu. Jeśli warstwa usług biznesowych przestanie się wyrabiać, to trzeba będzie dołożyć do farmy<br />
dodatkowy serwer, który będzie tylko w części wykorzystany przez owe usługi, bo część maszyny będzie zajęta przez &#8220;fronty&#8221; (których np. wcale więcej nie potrzeba).</p>
<p>2) Ciężkie wyszukiwanie wg różnych kryteriów czasem lepiej jest zrobić w oparciu o dedydowaną usługę, np. Lucene z indexem zoptymalizowanym do tego typu przeszukiwań.</p>
<p>Oczywiście wszystko jest kwestią skali, do jakiegoś momentu zadawanie ciężkich zapytań do bazy w zupełności wystarczy i w sumie jest to bardzo dobre rozwiązanie na start. Optymalizację można zostawić na później.</p>
<p>Tak w ogóle to cieszę się bardzo, że podjęliście temat skalowalności - niewiele się w Polsce pisze na ten temat. Mam nadzieję, że podzielicie się również swoimi doświadczeniami z implementacji tegoż rozwiazania.</p>
<p>&#8211;<br />
pozdrawiam<br />
piotr maj</p>
]]></content:encoded>
	</item>
</channel>
</rss>
