<?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>Comments on: שימוש חכם בזכרון כדי להאיץ גישה לנתונים</title>
	<atom:link href="http://firefang.net/blog/1378/feed" rel="self" type="application/rss+xml" />
	<link>http://firefang.net/blog/1378</link>
	<description>May your sockets never timeout</description>
	<lastBuildDate>Sat, 04 Sep 2010 16:07:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: עמרי</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-8008</link>
		<dc:creator>עמרי</dc:creator>
		<pubDate>Fri, 29 May 2009 17:50:16 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-8008</guid>
		<description>גילי, השליפה לא היתה סדרתית.
תקרא שוב, יש שתי טבלאות, מאחת אני שולף סדרתית והמהשניה אני שולף כדי להשלים את הנתונים מהשליפה הראשונה.
הרשומות עצמן בגודל של בערך 200 בתים, אבל שלפתי רק 24 בתים.

אגב:
לא מדוייק לומר שאינדקס על טבלא עם עמודה בודדת הוא לא יעיל כמו הטבלא אותה הוא מאנדקס.
אינדקס מאפשר גישה בזמן לוגריתמי לפי המפתח, לעומת גישה בזמן לינארי בטבלא בלי אינדקס.
מה שכן, אינדקס בגודל של הנתונים עצמם יכול להיות בעיה, במקרה הזה הגודל של האינדקס מנע ממנו להכנס כולו למטמון הרלוונטי ופגע בביצועים.

כהערה:
רק להוריד את כל הנתונים לדיסק עם  SELECT a,b,c FROM table INTO OUTFILE file.txt לקח שלושה ימים, וזה כן היה סדרתי. הסיבה היא שINNODB שולף בצורה ממויינת לפי האינדקס הראשי, והנתונים לא אוכסנו בבלוקים עוקבים ולכן אפילו שליפה כזו היתה איטית מאוד.
בכל מקרה, הטכניקה הוכיחה את עצמה וחסכתי ימים רבים של עבודה, אם לא שבועות.

מצפה בקוצר רוח לטוקבקים מתהום הנשיה :)</description>
		<content:encoded><![CDATA[<p>גילי, השליפה לא היתה סדרתית.<br />
תקרא שוב, יש שתי טבלאות, מאחת אני שולף סדרתית והמהשניה אני שולף כדי להשלים את הנתונים מהשליפה הראשונה.<br />
הרשומות עצמן בגודל של בערך 200 בתים, אבל שלפתי רק 24 בתים.</p>
<p>אגב:<br />
לא מדוייק לומר שאינדקס על טבלא עם עמודה בודדת הוא לא יעיל כמו הטבלא אותה הוא מאנדקס.<br />
אינדקס מאפשר גישה בזמן לוגריתמי לפי המפתח, לעומת גישה בזמן לינארי בטבלא בלי אינדקס.<br />
מה שכן, אינדקס בגודל של הנתונים עצמם יכול להיות בעיה, במקרה הזה הגודל של האינדקס מנע ממנו להכנס כולו למטמון הרלוונטי ופגע בביצועים.</p>
<p>כהערה:<br />
רק להוריד את כל הנתונים לדיסק עם  SELECT a,b,c FROM table INTO OUTFILE file.txt לקח שלושה ימים, וזה כן היה סדרתי. הסיבה היא שINNODB שולף בצורה ממויינת לפי האינדקס הראשי, והנתונים לא אוכסנו בבלוקים עוקבים ולכן אפילו שליפה כזו היתה איטית מאוד.<br />
בכל מקרה, הטכניקה הוכיחה את עצמה וחסכתי ימים רבים של עבודה, אם לא שבועות.</p>
<p>מצפה בקוצר רוח לטוקבקים מתהום הנשיה <img src='http://firefang.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: גילי נחום</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-8006</link>
		<dc:creator>גילי נחום</dc:creator>
		<pubDate>Thu, 28 May 2009 20:12:24 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-8006</guid>
		<description>שליפה סדרתית מהדטהבייס, של כמה מאות רשומות, כ&quot;א בגודל של סה&quot;כ 24 בתים, לפי ID, התבצעה בקצב של רק כמה מאות בשניה?
נשמע די איטי, בטח מיותר לשאול אם ה- ID היה מאונדקס - אם הוא לא היה מאונדקס הקצב היה רשומה אחת בכמה מאות שניות.
גודל רשומה כאן הוא נורא קטן (24 בתים), וכמות הרשומות היא עצומה, לכן האינדקס גם הוא יהיה מליוני רשומות, ובגודל של מאות-אלפי מגה. מה שהופך אותו ללא יעיל באותה מידה כמו הטבלה שאותה הוא מאנדקס, אלא אם כן הוא מורכב מכמה רמות של אינדקס לאינדקס
אני מרשה לעצמי לנחש שאו הנתונים בטבלה, או אפילו האינדקס עצמו, לא אוחסנו בדיסק בבלוקים עוקבים, ולכן רובו ככולו של זמן השליפה בוזבז על תזוזות של ראש הדיסק (כלומר העדר של מפתח צבר ( http://en.wikipedia.org/wiki/Index_(database)#Clustered ) כמו שאוריאל שיער).
תכלס יכול להיות שהיית יכול להמנע מהפיתוח שעשית בעזרת DBA טוב, או DB טוב יותר, אבל זה עדיין נשמע מגניב! אז אתה הולך לפתח ענן משלך ולהתחרות ב- EC2? :)

טוב, בתכנון שלי כבר כמה שבועות לקרוא את הפוסטים שלך מ- 2005 ועד להיום, צפה לטוקבקים מתהום הנשייה.</description>
		<content:encoded><![CDATA[<p>שליפה סדרתית מהדטהבייס, של כמה מאות רשומות, כ&#8221;א בגודל של סה&#8221;כ 24 בתים, לפי ID, התבצעה בקצב של רק כמה מאות בשניה?<br />
נשמע די איטי, בטח מיותר לשאול אם ה- ID היה מאונדקס &#8211; אם הוא לא היה מאונדקס הקצב היה רשומה אחת בכמה מאות שניות.<br />
גודל רשומה כאן הוא נורא קטן (24 בתים), וכמות הרשומות היא עצומה, לכן האינדקס גם הוא יהיה מליוני רשומות, ובגודל של מאות-אלפי מגה. מה שהופך אותו ללא יעיל באותה מידה כמו הטבלה שאותה הוא מאנדקס, אלא אם כן הוא מורכב מכמה רמות של אינדקס לאינדקס<br />
אני מרשה לעצמי לנחש שאו הנתונים בטבלה, או אפילו האינדקס עצמו, לא אוחסנו בדיסק בבלוקים עוקבים, ולכן רובו ככולו של זמן השליפה בוזבז על תזוזות של ראש הדיסק (כלומר העדר של מפתח צבר ( <a href="http://en.wikipedia.org/wiki/Index_(database)#Clustered" rel="nofollow">http://en.wikipedia.org/wiki/Index_(database)#Clustered</a> ) כמו שאוריאל שיער).<br />
תכלס יכול להיות שהיית יכול להמנע מהפיתוח שעשית בעזרת DBA טוב, או DB טוב יותר, אבל זה עדיין נשמע מגניב! אז אתה הולך לפתח ענן משלך ולהתחרות ב- EC2? <img src='http://firefang.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>טוב, בתכנון שלי כבר כמה שבועות לקרוא את הפוסטים שלך מ- 2005 ועד להיום, צפה לטוקבקים מתהום הנשייה.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Guinness Bartender</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-8002</link>
		<dc:creator>The Guinness Bartender</dc:creator>
		<pubDate>Thu, 21 May 2009 12:28:23 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-8002</guid>
		<description>סחטיין עליך!</description>
		<content:encoded><![CDATA[<p>סחטיין עליך!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: עמרי</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-8001</link>
		<dc:creator>עמרי</dc:creator>
		<pubDate>Thu, 21 May 2009 12:07:04 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-8001</guid>
		<description>הקוד ברשיון BSD.</description>
		<content:encoded><![CDATA[<p>הקוד ברשיון BSD.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: עמרי</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-8000</link>
		<dc:creator>עמרי</dc:creator>
		<pubDate>Thu, 21 May 2009 12:03:32 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-8000</guid>
		<description>TGB:
http://svn.firestats.cc/stuff/trunk/dindex/
הקוד מתקמפל ועובד, אבל מתאים למבנה נתונים מסויים.
אם מישהו רוצה לשפר ולהפוך את זה ליותר כללי, בשמחה.
אני גם מוכן לתת גישת כתיבה לריפוזיטורי למי שיקח עליו את העניין.</description>
		<content:encoded><![CDATA[<p>TGB:<br />
<a href="http://svn.firestats.cc/stuff/trunk/dindex/" rel="nofollow">http://svn.firestats.cc/stuff/trunk/dindex/</a><br />
הקוד מתקמפל ועובד, אבל מתאים למבנה נתונים מסויים.<br />
אם מישהו רוצה לשפר ולהפוך את זה ליותר כללי, בשמחה.<br />
אני גם מוכן לתת גישת כתיבה לריפוזיטורי למי שיקח עליו את העניין.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Guinness Bartender</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-7999</link>
		<dc:creator>The Guinness Bartender</dc:creator>
		<pubDate>Thu, 21 May 2009 05:59:15 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-7999</guid>
		<description>ספינקס היה עושה עבודה מעולה, בהנחה שהיית מקנפג אתו נכון. אם היית מקנפג אותו להתאמות של אחד לאחד, ומוריד את כל אופציות החיפוש המתקדמות יותר זה היה יכול להיות מרשים מאוד. אני מניח שהפתרון שלך בכ&quot;ז קצת יותר יעיל (בהכרח בזיכרון, ואולי גם בזמן, אבל לא בטוח), השאלה היא מה ההפרשים. Guess we&#039;ll never know.

הייתי שמח לקבל את הקוד, אבל גם לי יש כמה פרוייקטים משלי.

אולי מישהו אחר מהקוראים מרים את הכפפה?
תשקול לשחחרר פה את הקוד כמו שהוא, להגיד שהוא לא גנרי, ולבקש ממי שהופך אותו לקוד כמו שצריך שישחרר אותו, ויעשה טראקבאק לפוסט שלך.</description>
		<content:encoded><![CDATA[<p>ספינקס היה עושה עבודה מעולה, בהנחה שהיית מקנפג אתו נכון. אם היית מקנפג אותו להתאמות של אחד לאחד, ומוריד את כל אופציות החיפוש המתקדמות יותר זה היה יכול להיות מרשים מאוד. אני מניח שהפתרון שלך בכ&#8221;ז קצת יותר יעיל (בהכרח בזיכרון, ואולי גם בזמן, אבל לא בטוח), השאלה היא מה ההפרשים. Guess we&#8217;ll never know.</p>
<p>הייתי שמח לקבל את הקוד, אבל גם לי יש כמה פרוייקטים משלי.</p>
<p>אולי מישהו אחר מהקוראים מרים את הכפפה?<br />
תשקול לשחחרר פה את הקוד כמו שהוא, להגיד שהוא לא גנרי, ולבקש ממי שהופך אותו לקוד כמו שצריך שישחרר אותו, ויעשה טראקבאק לפוסט שלך.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: עמרי</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-7997</link>
		<dc:creator>עמרי</dc:creator>
		<pubDate>Wed, 20 May 2009 22:22:18 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-7997</guid>
		<description>שם, סיסמאות ואמרות כנף לא משכנעות. מספרים קשים כן.
אם אני מסוגל לקחת צוואר בקבוק ולהעלים אותו תוך שימוש בהרבה זכרון (וכתוצאה מכך לחסוך שבועות של זמן - I shit you not), אז ברור שאני עושה את הדבר הנכון.

TGB, 
פונקציונלית MEMCACHE היה מספיק, אבל צריכת הזכרון שלו תהיה בהכרח יותר גבוהה משמעותית משל הפתרון שלי, וכשמדובר בג&#039;יגות של מידע שצריכים להכנס לזכרון, זה משחק תפקיד משמעותי מאוד.
על פניו לא נשמע שספינקס מתאים, ולו בגלל שאין שום דבר שקשור לחיפוש טקסט מלא במה שעשיתי.
לגבי שחרור לקהילה:
בשמחה, אבל מה שיש לי לא מספיק גנרי כדי להיות שימושי כמו שהוא כרגע, וקשה לי לראות אותי מוצא את הזמן להפוך אותו לגנרי כזה, יש לי מספיק פרוייקטים.
אם תרצה לקחת את זה על עצמך, רק תגיד ותקבל את הקוד. (ג&#039;אווה).</description>
		<content:encoded><![CDATA[<p>שם, סיסמאות ואמרות כנף לא משכנעות. מספרים קשים כן.<br />
אם אני מסוגל לקחת צוואר בקבוק ולהעלים אותו תוך שימוש בהרבה זכרון (וכתוצאה מכך לחסוך שבועות של זמן &#8211; I shit you not), אז ברור שאני עושה את הדבר הנכון.</p>
<p>TGB,<br />
פונקציונלית MEMCACHE היה מספיק, אבל צריכת הזכרון שלו תהיה בהכרח יותר גבוהה משמעותית משל הפתרון שלי, וכשמדובר בג&#8217;יגות של מידע שצריכים להכנס לזכרון, זה משחק תפקיד משמעותי מאוד.<br />
על פניו לא נשמע שספינקס מתאים, ולו בגלל שאין שום דבר שקשור לחיפוש טקסט מלא במה שעשיתי.<br />
לגבי שחרור לקהילה:<br />
בשמחה, אבל מה שיש לי לא מספיק גנרי כדי להיות שימושי כמו שהוא כרגע, וקשה לי לראות אותי מוצא את הזמן להפוך אותו לגנרי כזה, יש לי מספיק פרוייקטים.<br />
אם תרצה לקחת את זה על עצמך, רק תגיד ותקבל את הקוד. (ג&#8217;אווה).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Guinness Bartender</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-7995</link>
		<dc:creator>The Guinness Bartender</dc:creator>
		<pubDate>Wed, 20 May 2009 20:38:43 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-7995</guid>
		<description>אני מסכים לגבי ה- memcached. זה לא בדיוק אותו דבר, אבל יכול מאוד להיות שהוא היה מספיק לך.
אישית, אם memcached לא היה מספיק לי, הייתי עושה מנסה הטמעה של Sphinx - http://www.sphinxsearch.com לפני שהייתי מממש בעצמי את מה שמימשת.
אבל, אם כבר מימשת - שחרר לקהילה, נראה לי שימושי :).</description>
		<content:encoded><![CDATA[<p>אני מסכים לגבי ה- memcached. זה לא בדיוק אותו דבר, אבל יכול מאוד להיות שהוא היה מספיק לך.<br />
אישית, אם memcached לא היה מספיק לי, הייתי עושה מנסה הטמעה של Sphinx &#8211; <a href="http://www.sphinxsearch.com" rel="nofollow">http://www.sphinxsearch.com</a> לפני שהייתי מממש בעצמי את מה שמימשת.<br />
אבל, אם כבר מימשת &#8211; שחרר לקהילה, נראה לי שימושי <img src='http://firefang.net/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: נדב</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-7994</link>
		<dc:creator>נדב</dc:creator>
		<pubDate>Wed, 20 May 2009 20:16:41 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-7994</guid>
		<description>גישה לדיסק זה באמת זמן קבוע O(1), אבל הקבוע יכול להיות גדול מדי עבור הבעייה שמנסים לפתור (ה- seek time בסדרי גודל של עשרות מילישניות), וגישה לזכרון נמדדת בננו-שניות. להעלות את כל הנתונים ל- RAM של כמה מכונות זה לא בהכרח לא בסדר - זה רק עסקת חליפין.</description>
		<content:encoded><![CDATA[<p>גישה לדיסק זה באמת זמן קבוע O(1), אבל הקבוע יכול להיות גדול מדי עבור הבעייה שמנסים לפתור (ה- seek time בסדרי גודל של עשרות מילישניות), וגישה לזכרון נמדדת בננו-שניות. להעלות את כל הנתונים ל- RAM של כמה מכונות זה לא בהכרח לא בסדר &#8211; זה רק עסקת חליפין.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: שם</title>
		<link>http://firefang.net/blog/1378/comment-page-1#comment-7993</link>
		<dc:creator>שם</dc:creator>
		<pubDate>Wed, 20 May 2009 19:52:10 +0000</pubDate>
		<guid isPermaLink="false">http://firefang.net/blog/?p=1378#comment-7993</guid>
		<description>אם אתה טוען כל כך הרבה רושמות לאפיקציה (ולכן לזכרון ) אתה בטח עושה משהו לא בסדר. בדיוק לשם כך נועדו מסדי נתונים. 
כמו שכבר אמרו פה באורקל ניתן ליצור cluster שמאפשר שליטה במיקום הפיסי של הנתונים על הדיסק. גישה לנתון במקרה הזה תהיה ב O(1).</description>
		<content:encoded><![CDATA[<p>אם אתה טוען כל כך הרבה רושמות לאפיקציה (ולכן לזכרון ) אתה בטח עושה משהו לא בסדר. בדיוק לשם כך נועדו מסדי נתונים.<br />
כמו שכבר אמרו פה באורקל ניתן ליצור cluster שמאפשר שליטה במיקום הפיסי של הנתונים על הדיסק. גישה לנתון במקרה הזה תהיה ב O(1).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
