File Organization
-
Upload
drake-banks -
Category
Documents
-
view
38 -
download
4
description
Transcript of File Organization
![Page 1: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/1.jpg)
A. Frank
File Organization
Indexed-Sequential File Measurements
Thanks to Tamar Barnes
![Page 2: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/2.jpg)
A. Frank
2
Measure R (1)
R מדדV.אורך ממוצע של ערך - a .מספר המאפיינים )שדות( ברשומה - P. מספר הבתים בשביל מצביע -
R = aV + P ראשי/גלישה. בשטח
נניח אינדקס גושים סלקטיבי אבל מה לגבי התחשבות בשטח האינדקס? רב-רמות.
ברמה הראשונה )התחתונה( יש כניסות, הנמצאות ב -
גושים.
הכניסות ברמה השנייה נמצאות ב- גושים וכך הלאה, עד גושים. סה"כשמגיעים לאינדקס אב.
x ,הוא מספר רמות האינדקס. אם אינדקס אב נמצא בגוש אחד אזי .
bBfr
ni
1
y
ii 1
2
y
ii 23
x32 iii 1ix
...
מספר הכניסות , bפה הוא
כניסה לכל גוש 1iבקובץ האב
2i
xi
3i
![Page 3: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/3.jpg)
A. Frank
3
Measure R (2)SI ( (Size of Index:גודל האינדקס בבתים
לכן:ו
, מספר x)אם , אזי ההפרש בין שני הסכומים לעיל חסום על ידי רמות האינדקס(.
בתים, וכניסה 2448 גושים, גודל גוש 2,718,282: בקובץ ראשי דוגמא בתים.17באינדקס
BiiiSI x )( 32
yz
b
zyb
12
232
y
b
y
b
y
b
y
b
iy
b
y
bi
yy
biii
k
xxyb
x
yix
3.14417
2448 xy
965.190081144
2718282.19009113118877
144
2718282
144
2718282
144
271828232
![Page 4: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/4.jpg)
A. Frank
4
Measure R (3) לכן
התקורה של האינדקס יחסית לשטח הראשי של הקובץ היא.
ולכן
מציין את מספר המקומות הגלישה שהוקצו מראש. Oכאן O ’.מציין את מספר מקומות הגלישה שהתמלאו
(.IS)מפה והלאה לא נקפיד כאן על השמת מציין-על
1y
bBSI
1
1
y
'
))((
on
SIPaVonR IS
![Page 5: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/5.jpg)
A. Frank
5
Time to fetch any record (1)
מדד_____ , בשטח הראשיאם הרשומה המבוקשת נמצאת
אינדקס אב נמצא בזיכרון וחלק האינדקס השייך לגליל מסוים נמצא באותו גליל, אזי נתונים
השטח הרשומות של nרשומות גלישה ל- ’oהצטרפו .הראשי
FT
).(:);(:
)(
))(1(
0verflowooainmmTTT
cbttrxsc
cbttrcbttrxscT
FFF
F
m
m
![Page 6: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/6.jpg)
A. Frank
6
Time to fetch any record (2)( - Probability of overflow הסתברות שהרשומה - )
המבוקשת היא רשומת גלישה היא
( ( - Length of chain אורך הממוצע של שרשרת רשומות - ניתן Bfr > 1(. אם Push-Throughגלישה היוצאת מכל גוש )
לאמוד
:דוגמא
900 רשומות. סה"כ על 100 גושים ובכל גוש יש 9ישנם
רשומות, ולכן אורך שרשרת הגלישה 100הרשומות הללו גלשו
רשומות כל אחת. 10-9צריך להיות באורך של בערך
ovP
BfrPLc ov
10,1.0,100',100,9,900 LcPoBfrbn ov
Lc'
'
on
oPov
![Page 7: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/7.jpg)
A. Frank
7
Time to fetch any record (3)
- הזמן הדרוש להגיע לשרשרת s ’( מסמן חיפושseek .במקרה שהשרשרת מוחזקת בגליל אחר )
הסריקה בשרשרת דורשת בממוצע ביקור בכמחצית הרשומות בשרשרת. אם כל השרשרת נמצאת באותו גליל
שממנו הגוש של גליל באותו נמצאת כולה השרשרת כל אם אם גם זניח, מקבלים . ’sיצאה, אזי אין
0FT)'( cbttrsPT ovF
2
21
21
2
221
21
'
'
'
')(
'
'
)('
')'(
'
')(
)()(
0
on
oBfr
on
oxcbttrs
on
osc
cbttrBfron
ocbttrs
on
ocbttrxsc
cbttrPBfrcbttrLcPT
TTTT
vovF
FFFF
chain
chainm
n
Bfro')('
'cbttr
on
oxscTF
![Page 8: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/8.jpg)
A. Frank
8
Time to fetch next logical record (1)
מדד - הנחות : שרשור ברמת הגוש, אינדקס גושים סלקטיבי.אפשרויות למיקום הרשומה הבאה:
הרשומה הנוכחית נמצאת בתוך גוש השייך לשטח הראשי, והרשומה ':מקרה א נמצאת באותו גוש, ולכן היא נמצאת במכלא בזיכרון. העוקבת
הרשומה הנוכחית נמצאת במקום האחרון בגוש השייך לשטח הראשי, ':מקרה בהוספות לאותו גוש, והרשומה העוקבת נמצאת בגוש לא היו
אחר של אותו גליל.
הרשומה הנוכחית במקום האחרון בגוש השייך לשטח הראשי, לא היו ': מקרה גהוספות
לאותו גוש, הרשומה העוקבת נמצאת בגוש של גליל אחר.
הרשומה הנוכחית נמצאת במקום האחרון בגוש השייך לשטח הראשי, מקרה ד':לאותו גוש, ולכן הרשומה העוקבת היא רשימת גלישה, היו הוספות
באותו גליל או בגליל אחר.
הרשומה הנוכחית היא רשומה גלישה, והרשומה העוקבת גם רשומת מקרה ה': הנמצאת באותו גוש, בגוש אחר באותו גליל, או בגליל אחר.גלישה,
הרשומה הנוכחית היא רשומת גלישה, והרשומה העוקבת נמצאת בגוש מקרה ו': הסדרתי, הנמצא באותו גליל, או בגליל אחר.הקובץ של
NT
![Page 9: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/9.jpg)
A. Frank
9
Time to fetch next logical record (2)
ההסתברות שהרשומה הנוכחית נמצאת בקובץ הסדרתי -
הסתברות שהרשומה הנוכחית נמצאת בקובץ הסדרתי והרשומה העוקבת -נמצאת באותו גוש
ההסתברות שלא הייתה תוספת לגוש -
יוצאת מחמישית 1. זאת אומרת, שבערך שרשרת באורך Lc=0.2: דוגמא של הסתברות יש ולכן הסדרתי בקובץ תוספת 0.8מהגושים הייתה שלא
לגוש הנוכחי.
ההסתברות שהגוש הבא של הקובץ הסדרתי נמצאת באותו גליל. -
- ההסתברות שהרשומה הנוכחית היא רשומת גלישה, והיא איננה האחרונה בשרשרת
dP
bP
ovd PP 1
BfrPb
11
: הסתברויות של הגדרות
mP 0,1max0,1max LcPBfrP vm
cP
lP
0,
11maxLc
Pl
![Page 10: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/10.jpg)
A. Frank
10
Time to fetch next logical record (3)
מקרה א'
מקרה ב'
מקרה ג'
מקרה ד'
מקרה ה'
מקרה ו'
cPPT bdN
)()1( bttrPPPP cmbd
)()1()1( bttrsPPPP cmbd
)'()1()1( cbttrsPPP mbd
)'()1( cbttrsPP ld
)'()1()1( cbttrsPP ld הנחות למען הפשטות:
במקרה ה', אין התייחסות לאפשרות שהרשומה העוקבת נמצאת באותו גוש., לקבוע ולהניח שכל שרשרת שיוצאת מגוש s', cלהתעלם מהביטויים
נמצאת באותו גליל:אין מקרה ג'. הזמן במקרה א' זניח. מקרים ב', ד' מתלכדים ומקרים ה', ו'
מתלכדים, לכן:
1cP
)(1
)1()()1()()1( bttrPBfr
PbttrPbttrPPT ovovdbdN
)()'(
')(
''' bttr
Bfron
Bfronbttr
ono
Bfronn
![Page 11: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/11.jpg)
A. Frank
11
Time to insert any record (1)
כלשהי. - זמן הוספת רשומה מדד____הנחות: שרשור ברמת הגוש, רשומות הגלישה נמצאות באותו
גליל. עלינו לקחת בחשבון שני מקרים )בדיעבד מסתבר
לגבי שני המקרים(: שהעלות זהה
:הרשומה החדשה תכנס לגוש של השטח הראשי1.
יש להגיע אל הגוש - •יש לכתוב את הגוש מחדש - , עם מצביע לגוש האחרון •
בשימוש של שטח הגלישה בגליל, שיכיל את הרשומה שנדחפה החוצה.
IT
FT
RWT
![Page 12: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/12.jpg)
A. Frank
12
18 19 20 24 27 29
30
3437
40
p
Time to insert any record (2)
:דוגמא
. ייקח לנו k=25נניח שרוצים להוסיף את . k=25 לאתר את מקום ההכנסה של
פנימה וכתוצאה מכך רשומה 25נדחוק את החוצה. היא תכנס למקום הפנוי דחק ת29
בשטח הגלישה ונעדכן את המצביעים כך ששרשרת הגלישה תהיה ממוינת.
FTשטח גלישה
שטח ראשי
![Page 13: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/13.jpg)
A. Frank
13
18 19 20 24 25 27
30
3437
40
p
29
Time to insert any record (3)
שטח גלישה
שטח ראשי
הראשי כדי: בשטח מחדש גיווש עושיםאת את 25להכניס החוצה 29ולדחוק
הגלישה שטח אל המצביע את ולעדכןעל) (. 29שיצביע
העלות: RWT
בשטח הגלישה הפנוי: צריכים לקרוא את הגוש בשטח הגלישה r+btt. העלות: 29כדי לקרוא את
לאחר מכן יש כתיבה חזרה ועדכון המצביעים בתוך שטח הגלישה -
RWT
bttrTTrwbttrTrwTT FFI 5
![Page 14: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/14.jpg)
A. Frank
14
Time to insert any record (4)
: הגלישהשטח. הרשומה החדשה תכנס לגוש של 2
יש להגיע אל הרשומה הקודמת - .•יש לכתוב את הגוש שלה מחדש עם מצביע לגוש •
של שטח הגלישה בגליל, ששם תושם הרשומה פנויההמתווספת - .
של שטח הגלישה בגליל דורשת פנויהבאת הגוש ה•r+btt - וכתיבתו מחדש .
RWT
FT
RWT
![Page 15: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/15.jpg)
A. Frank
15
18 19 20 24 25 27
3137
40
p
35
34
Time to insert any record (5)
:דוגמא
. k=35 נניח שרוצים להוסיף את - מחפשים את הרשומה בשטח הראשי ולא מוצאים אותה,
לכן מתחילים לחפש על שרשרת הגלישה. כך קוראים עד
שמוצאים את מקום ההכנסה. כדי לעדכן את המצביע שלו שיצביע 34 - קוראים את גוש
.35על r + btt 35 רשומה - קוראים את
37 - כותבים אותו עם מצביע ל –
שטח גלישה
שטח ראשי
bttrTTrwbttrTrwTT FFI 5
FT
RWT
RWT
לכן גם כאן סה"כ מתקבלים:
ניתן לדייק שיש הסתברות שהגוש האחרון של שטח הגלישה היה מלא, אז נקבל:
כי אין טעם לקרוא את הגוש המלא הזה.
Bfr
1
)1
1()(4Bfr
bttrrTT FI
![Page 16: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/16.jpg)
A. Frank
16
Time to update/delete any record. מדד____ כלשהי- רשומה עדכון זמן
: , במקום עדכון מבצעים גודל באותו הן הרשומות שכל מכיוון
:) חדש ) ראשי מפתח אם והכנסה בטול זה אחרת
שבוטלה: הערה רשומה של במקום חדשה רשומה להכניס ניתן , . בגוש רשומה בטול לאחר אפשרות גם יש מצבה ידי על לוגית
, יחד הנשארות הרשומות את לכווץ הראשי השטח של . שינוי תחייב לא זו פעולה הגוש בסוף ריק מקום ולהשאיר
. בוטלה, האחרונה או הראשונה הרשומה אם אפילו באינדקס
UT
rTTTT FRWFU 2
bttrTTTTT FIRWFU 72
![Page 17: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/17.jpg)
A. Frank
17
Time for exhaustive read of file
- עלות קריאה ממצה. מדד____ עוברים על גוש וגולשים, הגוש הבא – וגולשים.
מחיר יקר יחסית. זהו זרז לביצוע ארגון מחדש.
XT
)('
)'()1'( bttrBfr
BfronTonTonTT NNFX
מציאת מיקום הגוש
וקריאת הרשומה הראשונה
הבאת הרשומות הנותרות בשטח הראשי
ובשטח הגלישה
![Page 18: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/18.jpg)
A. Frank
18
Time for reorganization of file
. מדד____ הקובץ- של מחדש ארגון עלות YT
'')( tSI
tR
xY donTT קריאה ממצה של
הקובץכתיבת קובץ בן חדש שיש בו רשומות, במחיר
כתיבת רשומה
don
'tR
עלות בניית/כתיבת שטח אינדקס
חדש
![Page 19: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/19.jpg)
A. Frank
19
Conclusionsהקובץ האינדקס-סדרתי רצה להיות גם סדרתי וגם •
ישיר ע"י שימוש באינדקס, אך התוצאה מסובכת למדי.
בסופו של דבר נשארים עם "שתי ציפורים על •העץ": אין גישה סדרתית יעילה כי יש הפסקות
רמות xלגלישות ואין גישה ישירה כי צריכים לעבור עד שמגיעים אל הנתונים עצמם.
אפשר לדאוג ששטח הגלישה יהיה קטן•וששרשראות הגלישה תהיינה קצרות,אבל אז צריכים לעשות ארגון מחדש
בתדירות גבוהה יותר.
![Page 20: File Organization](https://reader036.fdocument.pub/reader036/viewer/2022082818/568131a1550346895d981258/html5/thumbnails/20.jpg)
A. Frank
20
Summary
הקובץ אינדקס–סדרתי ניסה להיות גם סדרתי וגם ישיר – ונכשל!
אין גישה סדרתית יעילה ואין גישה ישירה יעילה!
הקובץ הישיר יפתור את הבעיה –שם הגישה הישירה תבוא על חשבון הסדרתיות.