|
אחסון ושליפת ערכים בצורה מהירה ע"י מפתחות (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 ועבור אובונטו. | |
|
HandlerSocket: מ-MySQL ל-NoSQL | כניסה / יצירת מנוי חדש | 9 תגובות |
| ההערות הינן מטעם כותביהן. אין צוות האתר לוקח אחריות על תוכנן |
|
|