File Organization

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

description

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

Transcript of File Organization

Page 1: File Organization

A. Frank

File Organization

Indexed-Sequential File Measurements

Thanks to Tamar Barnes

Page 2: File Organization

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

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

A. Frank

4

Measure R (3) לכן

התקורה של האינדקס יחסית לשטח הראשי של הקובץ היא.

ולכן

מציין את מספר המקומות הגלישה שהוקצו מראש. Oכאן O ’.מציין את מספר מקומות הגלישה שהתמלאו

(.IS)מפה והלאה לא נקפיד כאן על השמת מציין-על

1y

bBSI

1

1

y

'

))((

on

SIPaVonR IS

Page 5: File Organization

A. Frank

5

Time to fetch any record (1)

מדד_____ , בשטח הראשיאם הרשומה המבוקשת נמצאת

אינדקס אב נמצא בזיכרון וחלק האינדקס השייך לגליל מסוים נמצא באותו גליל, אזי נתונים

השטח הרשומות של nרשומות גלישה ל- ’oהצטרפו .הראשי

FT

).(:);(:

)(

))(1(

0verflowooainmmTTT

cbttrxsc

cbttrcbttrxscT

FFF

F

m

m

Page 6: File Organization

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

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

A. Frank

8

Time to fetch next logical record (1)

מדד - הנחות : שרשור ברמת הגוש, אינדקס גושים סלקטיבי.אפשרויות למיקום הרשומה הבאה:

הרשומה הנוכחית נמצאת בתוך גוש השייך לשטח הראשי, והרשומה ':מקרה א נמצאת באותו גוש, ולכן היא נמצאת במכלא בזיכרון. העוקבת

הרשומה הנוכחית נמצאת במקום האחרון בגוש השייך לשטח הראשי, ':מקרה בהוספות לאותו גוש, והרשומה העוקבת נמצאת בגוש לא היו

אחר של אותו גליל.

הרשומה הנוכחית במקום האחרון בגוש השייך לשטח הראשי, לא היו ': מקרה גהוספות

לאותו גוש, הרשומה העוקבת נמצאת בגוש של גליל אחר.

הרשומה הנוכחית נמצאת במקום האחרון בגוש השייך לשטח הראשי, מקרה ד':לאותו גוש, ולכן הרשומה העוקבת היא רשימת גלישה, היו הוספות

באותו גליל או בגליל אחר.

הרשומה הנוכחית היא רשומה גלישה, והרשומה העוקבת גם רשומת מקרה ה': הנמצאת באותו גוש, בגוש אחר באותו גליל, או בגליל אחר.גלישה,

הרשומה הנוכחית היא רשומת גלישה, והרשומה העוקבת נמצאת בגוש מקרה ו': הסדרתי, הנמצא באותו גליל, או בגליל אחר.הקובץ של

NT

Page 9: File Organization

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

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

A. Frank

11

Time to insert any record (1)

כלשהי. - זמן הוספת רשומה מדד____הנחות: שרשור ברמת הגוש, רשומות הגלישה נמצאות באותו

גליל. עלינו לקחת בחשבון שני מקרים )בדיעבד מסתבר

לגבי שני המקרים(: שהעלות זהה

:הרשומה החדשה תכנס לגוש של השטח הראשי1.

יש להגיע אל הגוש - •יש לכתוב את הגוש מחדש - , עם מצביע לגוש האחרון •

בשימוש של שטח הגלישה בגליל, שיכיל את הרשומה שנדחפה החוצה.

IT

FT

RWT

Page 12: File Organization

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

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

A. Frank

14

Time to insert any record (4)

: הגלישהשטח. הרשומה החדשה תכנס לגוש של 2

יש להגיע אל הרשומה הקודמת - .•יש לכתוב את הגוש שלה מחדש עם מצביע לגוש •

של שטח הגלישה בגליל, ששם תושם הרשומה פנויההמתווספת - .

של שטח הגלישה בגליל דורשת פנויהבאת הגוש ה•r+btt - וכתיבתו מחדש .

RWT

FT

RWT

Page 15: File Organization

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

A. Frank

16

Time to update/delete any record. מדד____ כלשהי- רשומה עדכון זמן

: , במקום עדכון מבצעים גודל באותו הן הרשומות שכל מכיוון

:) חדש ) ראשי מפתח אם והכנסה בטול זה אחרת

שבוטלה: הערה רשומה של במקום חדשה רשומה להכניס ניתן , . בגוש רשומה בטול לאחר אפשרות גם יש מצבה ידי על לוגית

, יחד הנשארות הרשומות את לכווץ הראשי השטח של . שינוי תחייב לא זו פעולה הגוש בסוף ריק מקום ולהשאיר

. בוטלה, האחרונה או הראשונה הרשומה אם אפילו באינדקס

UT

rTTTT FRWFU 2

bttrTTTTT FIRWFU 72

Page 17: File Organization

A. Frank

17

Time for exhaustive read of file

- עלות קריאה ממצה. מדד____ עוברים על גוש וגולשים, הגוש הבא – וגולשים.

מחיר יקר יחסית. זהו זרז לביצוע ארגון מחדש.

XT

)('

)'()1'( bttrBfr

BfronTonTonTT NNFX

מציאת מיקום הגוש

וקריאת הרשומה הראשונה

הבאת הרשומות הנותרות בשטח הראשי

ובשטח הגלישה

Page 18: File Organization

A. Frank

18

Time for reorganization of file

. מדד____ הקובץ- של מחדש ארגון עלות YT

'')( tSI

tR

xY donTT קריאה ממצה של

הקובץכתיבת קובץ בן חדש שיש בו רשומות, במחיר

כתיבת רשומה

don

'tR

עלות בניית/כתיבת שטח אינדקס

חדש

Page 19: File Organization

A. Frank

19

Conclusionsהקובץ האינדקס-סדרתי רצה להיות גם סדרתי וגם •

ישיר ע"י שימוש באינדקס, אך התוצאה מסובכת למדי.

בסופו של דבר נשארים עם "שתי ציפורים על •העץ": אין גישה סדרתית יעילה כי יש הפסקות

רמות xלגלישות ואין גישה ישירה כי צריכים לעבור עד שמגיעים אל הנתונים עצמם.

אפשר לדאוג ששטח הגלישה יהיה קטן•וששרשראות הגלישה תהיינה קצרות,אבל אז צריכים לעשות ארגון מחדש

בתדירות גבוהה יותר.

Page 20: File Organization

A. Frank

20

Summary

הקובץ אינדקס–סדרתי ניסה להיות גם סדרתי וגם ישיר – ונכשל!

אין גישה סדרתית יעילה ואין גישה ישירה יעילה!

הקובץ הישיר יפתור את הבעיה –שם הגישה הישירה תבוא על חשבון הסדרתיות.