
01-03-2009, 05:41
|
|
מנהל פורומי "תכנות ובניית אתרים" ו"חומרה ורשתות"
|
|
חבר מתאריך: 25.10.01
הודעות: 42,778
|
|
לא, אני עדיין לא מבין למה הכוונה.
היכן ש concurrency sessions זה משהו שפוגם בפעולה ככל שהוא גדל באופן מהותי ולא פרופורציונלי לעומס השאילתות עצמן (אקסס) - אני יכול להבין את זה
היכן שלא (RDBMS מכל סוג) - הקיבולת נמדדת במספר השאילתות/טראנזקציות שמבוצעות, ללא קשר לכמות הת'רדים שמבצעים אותן. לצורך העניין, בהנתן 1000 שאילתות המורצות בדקה אחת, ל MySQL לא משנה אם ת'רד אחד יבצע את 1000 השאילתות, או 100 ת'רדים יבצעו 10 שאילתות כל אחד מהם. זה די אותו דבר. נכון, יש overhead על ניהול connections (מבחינת ת'רדים ש MySQL עצמו מחזיק כדי להחזיק את החיבורים) - אבל זה מינורי - זה לא מה שגורם לעומס על ה DB. מה שגורם לעומס הוא השאילתות, נפח המידע, איכות השאילתות, והיכולת של ה"ברזלים" לסבול את העבודה. לא מספר ה"משתמשים" שמחוברים ל RDBMS...
וזה מבלי להיכנס לעובדה ש"בו זמנית" הוא בכלל קונספט שלא ממש קיים בעולם המחשוב. הרי המחשב יכול לבצע "בו זמנית", לכל היותר, number of cores * number of execution threads per core פעולות "בו זמנית". השאלה היא... כמה זמן תיקח כל פעולה, והשאלה היא מה קצב ההכנסה של הבקשות מול היכולת לקצב ההוצאה. אין באמת "בו זמנית" (חוץ ממערכות מרובות ליבות/מעבדים - וגם אז, לרוב לא מדובר על יותר מ 4/8/16/32 פעולות המבוצעות בו זמנית). בדיוק כמו שמערכת Storage, שמודדים את היכולת שלה "לנפק מידע" ב I/O Operations per second - מגדירים גם מה הפירוש I/O Operation - מה הגודל, מה הפיזור של המידע על המדיום שמאחסן אותו, וכו'.
|