1 / 20

File Organization

File Organization. Indexed-Sequential File Measurements. Thanks to Tamar Barnes. Measure R (1). מדד R V - אורך ממוצע של ערך. a - מספר המאפיינים (שדות) ברשומה. P - מספר הבתים בשביל מצביע . R = aV + P בשטח ראשי/גלישה.

drake-banks
Download Presentation

File Organization

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

More Related