חלוקת עומסים

justme5

New member
חלוקת עומסים

(במידה והשאלה לא מתאימה לפורום זה, אנא כוונו אותי למקום מתאים יותר) שלום לכולם, כחלק מהאפליקציה שאנו מפתחים, אני מעוניין ליצור מיפויים בין X ל Y (מה שידוע כ hashtable). מכיון שמס' המפתחות הולך להיות גדול (מס' מליונים) חשבתי לאכסן את המידע ב DB רלציוני. שאלותי הן: 1. כמה רשומות לטבלה (נניח של 2 עמודות) MySQL יכול להחזיק ועדיין לתת זמני תגובה נורמליים? 2. בהנחה שהתשובה ל 1 נמדדת בעשרות או מאות אלפים, האם יש פתרון מוכר שמחלק את המידע לכמה שרתי DB שונים ומאפשר לסנכרן ביניהם לאיזשהו מאגר מרכזי?
 

arnonrgo

New member
תשובה

1. לא יודע - על מה אתה מתכוון להריץ את זה על מחשב כף יד או על Unicenter עם 32 מעבדים? כמה משתמשים בו זמנית ? האם כל השאילתות פשוטות ( החזרת שורה אחת)? ועוד ועוד לכל הדברים האלו יש השפעה מאד כדולה על הביצועים תראה למשל את הwhitepaper של Dell: http://www.dell.com/downloads/global/solutions/mysql_network_2800.pdf יש שם דוגמא של טבלאות של מאות מיליונים עם חומרה שמתאימה למשימה וזמנח תגובה של כ300 מילי
 

justme5

New member
צודק, לא הייתי מדויק

חשבתי על הדבר הבא: N שרתי לינוקס (מעבד יחיד), כל שרת יחזיק אינסטנס של MySQL. בהגיע בקשה לשליפה של מפתח X לאיזשהו שרת מרכזי, הוא יחשב על איזו מכונת לינוקס נמצא ה DB שאמור להחזיק את X, יפנה לשרת הזה וישלוף ממנו את התשובה. כמובן שיש עוד בעיות, כמו מה לעשות אם שרת מסוים נופל (מכיון שבתצורה שתיארתי, כל שרת מחזיק רק חלק מכלל הנתונים, ואין להם גיבוי על מכונה אחרת). האם אתה מציע ללכת על פיתרון של חומרה יקרה כמו (כמו בלינק שהבאת), או שבכל זאת יש אפשרויות לפתור את הבעיה באמצעים תוכנתיים?
 

arnonrgo

New member
Partitioning

MySQL תומך בpartitioning http://dev.mysql.com/doc/refman/5.1/en/partitioning.html גם הנושא של availability הוא ניתן לפתרון ע"י Clustering http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster.html כך שניתן לבצע את מה שאתה רוצה ארכיטקטורת הפריסה )deployment) שאתה תבחר (שרתים, אכסון, רשת) צריכה לבוא מאיזון של שיקולי מחיר, זמינות נדרשת , מתארי ביצועים צפויים וכו מה שאתה יכול לעשות זה להתחיל בלהקים שרת פשוט על החומרת קצה שאתה מתכנן ולבצע benchmark על המתאר שימוש השכיח שלך (מבחינת כמות בקשות לשניה, כמות בקשות בו זמנית, גודל DB (מקסימלי או גודל partition מתוכנן) וכו) לאחר שיהיו לך הנתונים תוכל לחשוב הלאה על המשמעויות של הוספת מספר מחשבים כאלו ארנון
 
למעלה