Presentation is loading. Please wait.

Presentation is loading. Please wait.

A. Frank File Organization Indexed-Sequential File Measurements Thanks to Tamar Barnes.

Similar presentations


Presentation on theme: "A. Frank File Organization Indexed-Sequential File Measurements Thanks to Tamar Barnes."— Presentation transcript:

1 A. Frank File Organization Indexed-Sequential File Measurements Thanks to Tamar Barnes

2 2 A. Frank Measure R (1) מדד R V - אורך ממוצע של ערך. a - מספר המאפיינים ( שדות ) ברשומה. P - מספר הבתים בשביל מצביע. R = aV + P בשטח ראשי / גלישה. אבל מה לגבי התחשבות בשטח האינדקס ? נניח אינדקס גושים סלקטיבי רב - רמות. ברמה הראשונה ( התחתונה ) יש כניסות, הנמצאות ב - גושים. הכניסות ברמה השנייה נמצאות ב - גושים וכך הלאה, עד שמגיעים לאינדקס אב. סה " כ גושים. x הוא מספר רמות האינדקס. אם אינדקס אב נמצא בגוש אחד, אזי.... מספר הכניסות פה הוא b, כניסה לכל גוש בקובץ האב

3 3 A. Frank Measure R (2) SI ( (Size of Index גודל האינדקס בבתים : ולכן : ( אם, אזי ההפרש בין שני הסכומים לעיל חסום על ידי x, מספר רמות האינדקס ). דוגמא : בקובץ ראשי 2,718,282 גושים, גודל גוש 2448 בתים, וכניסה באינדקס 17 בתים.

4 4 A. Frank Measure R (3) לכן התקורה של האינדקס יחסית לשטח הראשי של הקובץ היא. ולכן כאן O מציין את מספר המקומות הגלישה שהוקצו מראש. O’ מציין את מספר מקומות הגלישה שהתמלאו. ( מפה והלאה לא נקפיד כאן על השמת מציין - על IS).

5 5 A. Frank Time to fetch any record (1) מדד _____ אם הרשומה המבוקשת נמצאת בשטח הראשי, אינדקס אב נמצא בזיכרון וחלק האינדקס השייך לגליל נתונים מסוים נמצא באותו גליל, אזי הצטרפו o ’ רשומות גלישה ל - n הרשומות של השטח הראשי.

6 6 A. Frank Time to fetch any record (2) - (Probability of overflow) - הסתברות שהרשומה המבוקשת היא רשומת גלישה היא - ( (Length of chain- אורך הממוצע של שרשרת רשומות גלישה היוצאת מכל גוש (Push-Through). אם Bfr > 1 ניתן לאמוד דוגמא : ישנם 9 גושים ובכל גוש יש 100 רשומות. סה " כ על 900 הרשומות הללו גלשו 100 רשומות, ולכן אורך שרשרת הגלישה צריך להיות באורך של בערך 10-9 רשומות כל אחת.

7 7 A. Frank Time to fetch any record (3) - הזמן הדרוש להגיע לשרשרת s’ מסמן חיפוש (seek) במקרה שהשרשרת מוחזקת בגליל אחר. הסריקה בשרשרת דורשת בממוצע ביקור בכמחצית הרשומות בשרשרת. אם כל השרשרת נמצאת באותו גליל אם כל השרשרת כולה נמצאת באותו גליל של הגוש שממנו יצאה, אזי אין s’. אם גם זניח, מקבלים

8 8 A. Frank Time to fetch next logical record (1) מדד - הנחות : שרשור ברמת הגוש, אינדקס גושים סלקטיבי. אפשרויות למיקום הרשומה הבאה : מקרה א ': הרשומה הנוכחית נמצאת בתוך גוש השייך לשטח הראשי, והרשומה העוקבת נמצאת באותו גוש, ולכן היא נמצאת במכלא בזיכרון. מקרה ב ': הרשומה הנוכחית נמצאת במקום האחרון בגוש השייך לשטח הראשי, לא היו הוספות לאותו גוש, והרשומה העוקבת נמצאת בגוש אחר של אותו גליל. מקרה ג ': הרשומה הנוכחית במקום האחרון בגוש השייך לשטח הראשי, לא היו הוספות לאותו גוש, הרשומה העוקבת נמצאת בגוש של גליל אחר. מקרה ד ': הרשומה הנוכחית נמצאת במקום האחרון בגוש השייך לשטח הראשי, היו הוספות לאותו גוש, ולכן הרשומה העוקבת היא רשימת גלישה, באותו גליל או בגליל אחר. מקרה ה ': הרשומה הנוכחית היא רשומה גלישה, והרשומה העוקבת גם רשומת גלישה, הנמצאת באותו גוש, בגוש אחר באותו גליל, או בגליל אחר. מקרה ו ': הרשומה הנוכחית היא רשומת גלישה, והרשומה העוקבת נמצאת בגוש של הקובץ הסדרתי, הנמצא באותו גליל, או בגליל אחר.

9 9 A. Frank Time to fetch next logical record (2) - ההסתברות שהרשומה הנוכחית נמצאת בקובץ הסדרתי - הסתברות שהרשומה הנוכחית נמצאת בקובץ הסדרתי והרשומה העוקבת נמצאת באותו גוש - ההסתברות שלא הייתה תוספת לגוש דוגמא : Lc=0.2. זאת אומרת, שבערך שרשרת באורך 1 יוצאת מחמישית מהגושים בקובץ הסדרתי ולכן יש הסתברות של 0.8 שלא הייתה תוספת לגוש הנוכחי. - ההסתברות שהגוש הבא של הקובץ הסדרתי נמצאת באותו גליל. - ההסתברות שהרשומה הנוכחית היא רשומת גלישה, והיא איננה האחרונה בשרשרת הגדרות של הסתברויות :

10 10 A. Frank Time to fetch next logical record (3) מקרה א' מקרה ב' מקרה ג' מקרה ד' מקרה ה' מקרה ו' הנחות למען הפשטות : במקרה ה ', אין התייחסות לאפשרות שהרשומה העוקבת נמצאת באותו גוש. להתעלם מהביטויים s', c, לקבוע ולהניח שכל שרשרת שיוצאת מגוש נמצאת באותו גליל : אין מקרה ג '. הזמן במקרה א ' זניח. מקרים ב ', ד ' מתלכדים ומקרים ה ', ו ' מתלכדים, לכן :

11 11 A. Frank Time to insert any record (1) מדד ____ - זמן הוספת רשומה כלשהי. הנחות : שרשור ברמת הגוש, רשומות הגלישה נמצאות באותו גליל. עלינו לקחת בחשבון שני מקרים ( בדיעבד מסתבר שהעלות זהה לגבי שני המקרים ): 1. הרשומה החדשה תכנס לגוש של השטח הראשי : יש להגיע אל הגוש - יש לכתוב את הגוש מחדש -, עם מצביע לגוש האחרון בשימוש של שטח הגלישה בגליל, שיכיל את הרשומה שנדחפה החוצה.

12 12 A. Frank 181920242729 30 34 37 40 p Time to insert any record (2) דוגמא : נניח שרוצים להוסיף את k=25. ייקח לנו לאתר את מקום ההכנסה של k=25. נדחוק את 25 פנימה וכתוצאה מכך רשומה 29 תדחק החוצה. היא תכנס למקום הפנוי בשטח הגלישה ונעדכן את המצביעים כך ששרשרת הגלישה תהיה ממוינת. שטח גלישה שטח ראשי

13 13 A. Frank 181920242527 30 34 37 40 p 29 Time to insert any record (3) שטח גלישה שטח ראשי בשטח הראשי : עושים גיווש מחדש כדי להכניס את 25 ולדחוק החוצה את 29 ולעדכן את המצביע אל שטח הגלישה ( שיצביע על 29). העלות : בשטח הגלישה : צריכים לקרוא את הגוש הפנוי בשטח הגלישה כדי לקרוא את 29. העלות : r+btt לאחר מכן יש כתיבה חזרה ועדכון המצביעים בתוך שטח הגלישה -

14 14 A. Frank Time to insert any record (4) 2. הרשומה החדשה תכנס לגוש של שטח הגלישה : יש להגיע אל הרשומה הקודמת -. יש לכתוב את הגוש שלה מחדש עם מצביע לגוש הפנוי של שטח הגלישה בגליל, ששם תושם הרשומה המתווספת -. הבאת הגוש הפנוי של שטח הגלישה בגליל דורשת r+btt וכתיבתו מחדש -.

15 15 A. Frank 181920242527 31 37 40 p 35 34 Time to insert any record (5) דוגמא : נניח שרוצים להוסיף את k=35. - מחפשים את הרשומה בשטח הראשי ולא מוצאים אותה, לכן מתחילים לחפש על שרשרת הגלישה. כך קוראים עד שמוצאים את מקום ההכנסה. - קוראים את גוש 34 כדי לעדכן את המצביע שלו שיצביע על 35. r + btt - קוראים את רשומה 35 - כותבים אותו עם מצביע ל – 37 שטח גלישה שטח ראשי לכן גם כאן סה " כ מתקבלים : ניתן לדייק שיש הסתברות שהגוש האחרון של שטח הגלישה היה מלא, אז נקבל : כי אין טעם לקרוא את הגוש המלא הזה.

16 16 A. Frank Time to update/delete any record מדד ____ - זמן עדכון רשומה כלשהי. מכיוון שכל הרשומות הן באותו גודל, מבצעים עדכון במקום : אחרת זה בטול והכנסה ( אם מפתח ראשי חדש ): הערה : ניתן להכניס רשומה חדשה במקום של רשומה שבוטלה לוגית על ידי מצבה. יש גם אפשרות, לאחר בטול רשומה בגוש של השטח הראשי, לכווץ את הרשומות הנשארות יחד ולהשאיר מקום ריק בסוף הגוש. פעולה זו לא תחייב שינוי באינדקס, אפילו אם הרשומה הראשונה או האחרונה בוטלה.

17 17 A. Frank Time for exhaustive read of file מדד ____ - עלות קריאה ממצה. עוברים על גוש וגולשים, הגוש הבא – וגולשים. מחיר יקר יחסית. זהו זרז לביצוע ארגון מחדש. מציאת מיקום הגוש וקריאת הרשומה הראשונה הבאת הרשומות הנותרות בשטח הראשי ובשטח הגלישה

18 18 A. Frank Time for reorganization of file מדד ____ - עלות ארגון מחדש של הקובץ. קריאה ממצה של הקובץ כתיבת קובץ בן חדש שיש בו רשומות, במחיר כתיבת רשומה עלות בניית / כתיבת שטח אינדקס חדש

19 19 A. Frank Conclusions הקובץ האינדקס - סדרתי רצה להיות גם סדרתי וגם ישיר ע " י שימוש באינדקס, אך התוצאה מסובכת למדי. בסופו של דבר נשארים עם " שתי ציפורים על העץ ": אין גישה סדרתית יעילה כי יש הפסקות לגלישות ואין גישה ישירה כי צריכים לעבור x רמות עד שמגיעים אל הנתונים עצמם. אפשר לדאוג ששטח הגלישה יהיה קטן וששרשראות הגלישה תהיינה קצרות, אבל אז צריכים לעשות ארגון מחדש בתדירות גבוהה יותר.

20 20 A. Frank Summary הקובץ אינדקס – סדרתי ניסה להיות גם סדרתי וגם ישיר – ונכשל ! אין גישה סדרתית יעילה ואין גישה ישירה יעילה ! הקובץ הישיר יפתור את הבעיה – שם הגישה הישירה תבוא על חשבון הסדרתיות.


Download ppt "A. Frank File Organization Indexed-Sequential File Measurements Thanks to Tamar Barnes."

Similar presentations


Ads by Google