1 / 19

File Organization

File Organization. Introduction to Overflow. Thanks to Tamar Barnes. |. |. |. |. | | | | | | |. | | | | | | |. | | | | | | |. | | | | | | |. | | | | | | |. | | | | | | |. | | | | | | |. | | | | | | |. | | | | | | |.

sakura
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 Introduction to Overflow Thanks to Tamar Barnes A. Frank

  2. | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Idea of Index-Sequential (IS) File • אינדקס סדרתי Index-Sequential - מבנה קובץ מסודר פלוס אינדקס ל"גישה ישירה"? • מה הרעיון בגדול? • איך להימנע משינויים תכופים באינדקס? – יש צורך בשימוש בשטח גלישה! לכן דרוש מבוא לגלישה! V + P מפתח k k k קובץ/שטח אינדקס Index file קובץ/שטח גלישה Overflow file קובץ/שטח ראשי Main file A. Frank

  3. Overflow Issues • מבוא לגלישה (Overflow): • שטח גלישה – מטרות ושימוש. • ניהול שטחי גלישה – גלישה במסגרת שלגוש/מסילה/גליל/דיסק/משולב. • טיפול בשרשור רשומות – שרשור ברמת רשומה/גוש. A. Frank

  4. Idea of Overflow Area • שטח גלישה: מקום לאחסון רשומות, שאין להן מקום בגוש מסוים של הקובץ, אע"פ שהן שייכות לו בהתאם לסדר הלוגי. • יש שימוש במצביעים כדי לשמור על הסדר (הלוגי) בקובץ. • הכנסת רשומה חדשה דורשת: • מציאת הגוש הנכון בקובץ. • מציאת המקום הנכון בגוש המסוים. • הזזת חלק מהרשומות כדי לפנות לה מקום, ואם אין אז מקום בשביל הרשומה האחרונה בגוש, העברתה לשטח גלישה, או הכנסת הרשומה החדשה ישירות לשטח גלישה, תוך שימוש במצביעים. A. Frank

  5. 5 14 8 20 9 21 11 37 12 41 Logical Overflow Area המבנה הכללי: . . . . . . שטחי נתונים שטחי גלישה A. Frank

  6. Management of Overflow Area • שיטות לניהול שטחי גלישה: • גלישה במסגרת הגוש • גלישה במסגרת המסילה • גלישה במסגרת הגליל • גלישה במסגרת הדיסק • צירוף של שיטות 3 ו-4, כאשר מתחילים עם גלישה במסגרת הגליל, ורק אם צריך, אז גם במסגרת הדיסק. A. Frank

  7. 1. Overflow within the Block • גלישה במסגרת הגוש: - נשאיר מספר מקומות, ז.א., רשומות ריקות, בכל גוש. - לדוגמא, נמלא בכל פעם 2/3~ גוש, ה-1/3~ הנותר כשטח גלישה. - זו שיטה סבירה אם הגושים גדולים וההוספות מפולגות היטב. - אולם, כשגוש אחד מתמלא, השיטה "נשברת". . . . . . . 5 9 11 14 15 47 שטח נתונים שטח גלישה גוש . . . רוצה להיכנס: אין בעיה 5 9 11 12 14 15 47 12 . . . רוצה להיכנס: גם לא בעיה! 5 8 9 11 12 14 15 47 8 . . . רוצה להיכנס:אבל אין מקום! 5 8 9 11 12 14 15 47 7 A. Frank

  8. 2. Overflow within the Track (1) • גלישה במסגרת המסילה: - נשאיר מספר גושים ריקים לגמרי בסוף כל מסילה. - נמלא בכל פעם nbt*3/~2 גושים, ה-3/1~ הנותר ישמש כשטח גלישה. - כל רשומה גולשת תזדקק למצביע P ברשומה שתצביע עליה מהמקוםהמתאים בגוש אליו היא הייתה אמורה להיכנס. - כל רשומה למעשה יכולה להתחיל שרשרת גלישה בפני עצמה. - אולם, כשמסילה אחת מתמלאת, השיטה "נשברת". A. Frank

  9. 15 15 15 15 2. Overflow within the Track (2) רוצה להיכנס: 15 5 8 9 11 12 שטח גלישה שטח נתונים רוצה להיכנס: 13 5 8 9 11 12 13 שטח נתונים שטח גלישה רוצה להיכנס: 14 5 8 9 11 12 13 14 שטח נתונים שטח גלישה רוצה להיכנס: 7 13 14 7 5 8 9 11 12 שטח נתונים שטח גלישה A. Frank

  10. 3. Overflow within the Cylinder • גלישה במסגרת הגליל: - נשאיר מספר מסילות ריקות בכל גליל. - נמלא בכל פעם ntc*3/~2מסילות, ה-3/1~ הנותר כשטח גלישה. משרשרים כמו קודם, רק שהפעם לגושי גלישה במסילות הריקות. - יתרון: חוסכים הזזת זרוע (עלות s) כי נשארים באותו גליל. - חסרונות: בזבוז שטח - לעתים מקבלים פיזור לא אחיד של הרשומות בגלילים ולכן מסילות נותרות ריקות ברוב הגלילים. - אולם, כשגליל אחד מתמלא, השיטה "נשברת". מלאים ntc מסילות ריקים A. Frank

  11. 4. Overflow within the Disk • גלישה במסגרת הדיסק ( = הגולן ): - שטח גלישה נפרד המשותף לכל הקובץ. - שטח הגלישה יכול להכיל גם כמה גלילים. - הרשומות הנוספות גולשות לשטח זה, בעזרת מצביעים. - יתרון: השיטה גמישה, ואינה תלויה בהתפלגות הגעת הרשומות הנוספות. - חסרון: יש צורך בהזזת הזרוע (עלות s) לפחות פעם אחת. - אבל כאן השיטה לא "תשבר" באמצע, כמו בשיטות הקודמות, אלא אם כן כל שטח הגלישה התמלא, שזו כבר בעיית הקצאהראשונית לא מספקת. גליל נתונים מלא שטח גלישה נפרד A. Frank

  12. 5. Overflow within the Cylinder + Disk • גלישה גם במסגרת הגליל וגם במסגרת הדיסק: - נקצה שטחים הן לגלישה במסגרת הגליל (חסכון בעלות s) והן לגלישה במסגרת הדיסק (כדי שהשיטה לא "תשבר"). - מתחילים עם גלישה במסגרת הגליל ורק כשהוא מתמלא, רק לגבי הגליל הזה, נאלצים לשלם מחיר של גלישה לשטח גלישה בנפרד. נהנים מכל העולמות! A. Frank

  13. Record Chaining Management • שיטות טיפול בשרשור רשומות: • שרשור ברמת רשומה (Record-level Chaining) • שרשור ברמת גוש (Block-level Chaining, Push Through) A. Frank

  14. Record Level Chaining (1) • שרשור ברמת הרשומה: - לכל רשומה יש מצביע גלישה. כל רשומה, בשדה המצביע P שלה, יכולה להתחיל שרשרת גלישה. - יכולות להיות לכן עד bfr שרשראות גלישה לגוש – יקר מבחינת גישה סדרתית. - משתמשים בשרשור של רשומות גולשות כדי לשמור על הסדר הלוגי ולכן אין גם שינוי בטבלאות האינדקס (חוץ מחריג – נראה זאת בהמשך). A. Frank

  15. Record Level Chaining (2) Overflow area Social security more data overflow pointer block record no. 110.1 6317-17-075 ^ 11.1 013-47-1234 ^ 5301-14-129 110.2 ^ 028-18-2341 111.1 11.2 1701-43-676 ^ 110.3 11.3 3415-15-128 110.2 111.1 5340-76-063 110.1 12.1 ^ 134-01-5839 111.2 1901-73-151 ^ 12.2 143-09-0711 111.2 111.3 12.3 ^ 156-88-4321 … b-1.1 3177-00-616 ^ block number 9343-89-633 110.3 11 013-47-1234 1. 0314-43-704 ^ 5839-01-134 12 Index … Sequential File (Primary area) key pointer … 1 013-47-1234 b-1.1 3177-00-616 2 2. 3177-00-616 Master Index A. Frank end end

  16. Block-level Chaining (1) • שרשור ברמת הגוש (Push Through) - משתמשים בשדה מצביע אחד לכל גוש. את הרשומות הנוספות, בעלות מפתחות נמוכים יחסית, מגוושים מחדש בגוש עצמו ואת הרשומות הנוספות, בעלות מפתחות גבוהים יותר, שלא נכנסות לגוש, משרשרים למצביע בסוף הגוש. - הכנסת רשומה דורשת: 1. מציאת הגוש הנכון בקובץ הסדרתי. 2. מציאת המקום הנכון בגוש או בשרשרת היוצאת ממנו. יש שני מקרים: א. אם הרשומה החדשה תיקלט בגוש של השטח הראשי – תהיה הזזה של חלק מהרשומות קדימה כך שיווצר מקום. הרשומההאחרונה, שנדחפה מהגוש, תושם בשטח הגלישה עם מצביע גוש אליה. ב. אחרת, הרשומה החדשה תושם בשטח הגלישה ותיקלט במקוםהמתאים בשרשרת. A. Frank

  17. Block-level Chaining (2) 075 129 676 063 156 רשומות מתווספות: 013 028 128 013 028 075 013 028 075 013 028 075 013 028 063 013 028 063 גושי נתונים 128 128 129 128 129 676 128 129 676 128 129 676 גושי גלישה 075 075 156 מצב סופי מצב התחלתי A. Frank

  18. Index 11 12 … b Record vs. Block-level Chaining (1) 11.1 013-47-1234 028-18-2341 063-76-5340 111.1 12.1 134-01-5839 110.1 3415-15-128 110.2 143-09-0711 5301-14-129 110.2 ^ 151-73-1901 111.2 0314-43-704 ^ 110.3 13.1 173-21-1378 111.1 6317-17-075 110.1 ... ... 111.2 4321-88-156 ^ ... ... 111.3 ^ b-1.1 3177-00-616 Overflow area (displaced records) Record Level Chaining 9343-89-633 1701-43-676 110.3 שרשור ברמת הגוש: לכל גוש, אם צריך, יש את שרשרת הגלישה שלו. בשטח הגלישה יש שרשור ברמת רשומה, מפני שהרשומות מגיעות באופן אקראי לשטח זה. Sequential File (Primary area) Block Level Chaining A. Frank

  19. Record vs. Block-level Chaining (2) בשרשור ברמת הרשומה: • יש מצביע לכל רשומה. • עד Bfr שרשראות גלישה לכל גוש. • שרשרות גלישה קצרות יחסית. • בקריאת רשומות בסדר לוגי, רצים על הרבה שרשראות גלישה לגוש. • בהרבה פניות לגוש יש לעבור על שרשראות גלישה. • שולחים לשטח הגלישה את הרשומות המאחרות לבוא (late comers). • אפשרי בשטח הראשי ובשטח הגלישה. בשרשור ברמת הגוש: • יש מצביע לכל גוש. • עד שרשרת גלישה אחת לכל גוש. • שרשרות גלישה ארוכות יחסית. • בקריאת רשומות בסדר לוגי, רצים על השרשרת פעם אחת. • אין בעיה גם עם הרבה פניות לגוש. • שולחים לשטח הגלישה את הרשומות שנדחקו החוצה (displaced) מהגוש. • אפשרי רק בשטח הראשי. A. Frank

More Related