ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin

quick_linkHandlerSocket: מ-MySQL ל-NoSQL

published at 31/12/2010 - 15:19 · ‏פורסם mksoft · ‏tags פיתוח · שלח לחברידידותי למדפסת
פיתוח אחסון ושליפת ערכים בצורה מהירה ע"י מפתחות (Key/Value) מהווים נדבך חשוב באתרים המשתמשים ב-memcached ו/או בסיסי נתונים המוגדרים (משום מה) בתור NoSQL. לבסיסי הנתונים הרלציונים יש תקורה אשר מקשה עליהם להתמודד מבחינת ביצועים עבור מקרה פשוט שכזה ...

צוואר בקבוק בביצוע הנ"ל בבסיסי הנתונים הרלציונים הוא הצורך בפענוח והרצת השאילתה גם עבור אחזור פשוט ע"י Primary Key‏.

HandlerSocket הוא תוסף עבור שרת MySQL שנוצר ע"י חברת המשחקים והאינטרנט היפנית Dena כדי לספק מענה לצורך זה. התוסף מאזין על פורט נפרד מזה של MySQL, עובד ישירות מול מנוע האחסון InnoDB ועוקף את מנגנון השאילתות של בסיס הנתונים לאחזור ע"פ מפתח ראשי. מאחר והוא עובד מעל מנוע האחסון הנ"ל, להבדיל מבסיסי NoSQL, לא מתפשרים על ACID‏. כמו כן מתאפשרת במקביל העבודה הרגילה מול בסיס הנתונים.

Yoshinori Matsunobu, אחד ממפתחי התוסף, כותב בהרחבה על HandlerSocket, הבעיה והצורך ביעילות צריכת המעבד בעבודה מול הזכרון. כמו כן הוא מספק דוגמאות לעבודה מול התוסף ומספק השוואת ביצועי MySQL עם שאילתה, memcached ו-HandlerSocket (כולל עומס על המעבד). התוצאות הן די מפתיעות, כאשר HandlerSocket מבצע 750,000 שאילתות לשניה מול 420,000 ל-memcached (בעוד MySQL משתרך עם 105,000).

עם היתרונות המפורטים במאמר שלו, כדאי גם לשים לב למספר מגבלות: API שונה, חוסר מוחלט באבטחה (בדומה ל-NoSQL) והתאמתו לעבודה מול Data set שמוכל כולו בזכרון הזמין למכונה (הצורך בעבודת I/O מבטל את יתרונו).

תמצאו גם הוראות התקנה עבור CentOS ועבור אובונטו.
 

קישורים רלוונטיים

· עוד על פיתוח
· חדשות מאת mksoft


הסיפור הנקרא ביותר בנושא פיתוח:
הטבלה המחזורית של האופרטורים

HandlerSocket: מ-MySQL ל-NoSQL | כניסה / יצירת מנוי חדש | 9 תגובות
סף חסימה
  
ההערות הינן מטעם כותביהן. אין צוות האתר לוקח אחריות על תוכנן
Re: HandlerSocket: מ-MySQL ל-NoSQL (ניקוד: 1)
ע"י ik_5 (e@mail.place)
ב 31/12/2010 - 15:31
(מידע על משתמש | שלח הודעה) http://www.linesip.com/
לא עדיף לעבוד עם משהו כמו redis במקום ?
זה גם ככה גורם ל mysql להיות לא mysql, ובקצב הזה, גם הנתונים שלך יהיו אמינים יותר, אז למה לא לעבוד עם משהו אמין, שגם בנוי להיות כלי לעבודה הזו ?

[ השב לזאת ]

Re: HandlerSocket: מ-MySQL ל-NoSQL ע"י פינגווין אנונימי ב 31/12/2010 - 18:15
Re: HandlerSocket: מ-MySQL ל-NoSQL ע"י mksoft ב 01/01/2011 - 19:08
Re: HandlerSocket: מ-MySQL ל-NoSQL ע"י ik_5 ב 01/01/2011 - 21:36
Re: HandlerSocket: מ-MySQL ל-NoSQL ע"י mksoft ב 01/01/2011 - 21:54
Re: HandlerSocket: מ-MySQL ל-NoSQL (ניקוד: 1)
ע"י ארתיום ב 31/12/2010 - 16:38

(מידע על משתמש | שלח הודעה) http://art-blog.no-ip.info/wp
מספר נקודות:

צוואר בקבוק בביצוע הנ"ל בבסיסי הנתונים הרלציונים הוא הצורך בפענוח והרצת השאילתה גם עבור אחזור פשוט ע"י Primary Key‏.


קודם כל זה לא נכון, בדיוק בשביל זה יש prepared-statement כך שלא תצטרך לבצע פיענוח בכל פעם מחדש. זה יכול לתת תוספת של מאות אחוזים.

עכשיו הם טוענים שהם יותר מהירים מ־memcached... זה קצת מוזר מכיוון שלכל מה ש־memcached עושים זה לשלוף נתונים מזיכרון - פחות או יותר הדבר הפשוט ביותר שניתן לעשות. מעניין אותי מאוד כיצד הם הגיעו לזה - דרוש הסבר מפורט.

בנוסף הייתי רוצה לראות השוואה ל־memcachedb המבוססת על Berkeley DB שנותן את ה־ACID.

כמו כן מתאפשרת במקביל העבודה הרגילה מול בסיס הנתונים.


וזאת באמת נקודה מעניינת - כי בד"כ זאת בעיה הגדולה של כל פתרונות key/value


[ השב לזאת ]

Re: HandlerSocket: מ-MySQL ל-NoSQL ע"י mksoft ב 01/01/2011 - 19:03
Re: HandlerSocket: מ-MySQL ל-NoSQL ע"י פינגווין אנונימי ב 02/01/2011 - 00:57
Re: HandlerSocket: מ-MySQL ל-NoSQL ע"י mksoft ב 02/01/2011 - 10:58