bhanu choudhary cs257 section 1 id: 101. introduction addresses in client-server systems logical...

14
Bhanu Choudhary CS257 Section 1 ID: 101

Upload: rosanna-jones

Post on 28-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Bhanu ChoudharyCS257 Section 1

ID: 101

Introduction Addresses in Client-Server Systems Logical and Structured Addresses Pointer Swizzling Programmer Control of Swizzling Pinned Records and Blocks

Address of a block and Record◦ In Main Memory

Address of the block is the virtual memory address of the first byte

Address of the record within the block is the virtual memory address of the first byte of the record

◦ In Secondary Memory: sequence of bytes describe the location of the block in the overall system

Sequence of Bytes describe the location of the block : the device Id for the disk, Cylinder number, etc.

The addresses in address space are represented in two ways◦ Physical Addresses: byte strings that determine the

place within the secondary storage system where the record can be found.

◦ Logical Addresses: arbitrary string of bytes of some fixed length

Physical Address bits are used to indicate:◦ Host to which the storage is attached◦ Identifier for the disk◦ Number of the cylinder ◦ Number of the track◦ Offset of the beginning of the record

Map Table relates logical addresses to physical addresses.

Logical Physical

Logical Address

Physical Address

ADDRESSES IN CLIENT-SERVER SYSTEMS (CONTD..)

Purpose of logical address? Gives more flexibility, when we

◦ Move the record around within the block◦ Move the record to another block

Gives us an option of deciding what to do when a record is deleted.

Record 4

Record 3

Record 2

Record 1

HeaderOffset table

Unused

Having pointers is common in an object-relational database systems

Important to learn about the management of pointers

Every data item (block, record, etc.) has two addresses:◦ database address: address on the disk◦ memory address, if the item is in virtual

memory

Translation Table: Maps database address to memory address

All addressable items in the database have entries in the map table, while only those items currently in memory are mentioned in the translation table

Dbaddr Mem-addr

Database address

Memory Address

Pointer consists of the following two fields◦ Bit indicating the type of address◦ Database or memory address◦ Example 13.17

Disk

Block 2

Block 1

Memory

Swizzled

Unswizzled

Block 1

Block 1 has a record with pointers to a second record on the same block and to a record on another block

If Block 1 is copied to the memory◦ The first pointer which points within Block 1 can

be swizzled so it points directly to the memory address of the target record

◦ Since Block 2 is not in memory, we cannot swizzle the second pointer

Three types of swizzling◦ Automatic Swizzling

As soon as block is brought into memory, swizzle all relevant pointers.

◦ Swizzling on Demand Only swizzle a pointer if and when it is actually

followed.◦ No Swizzling

Pointers are not swizzled they are accesses using the database address.

Unswizzling◦ When a block is moved from memory back to

disk, all pointers must go back to database (disk) addresses

◦ Use translation table again◦ Important to have an efficient data structure for

the translation table

A block in memory is said to be pinned if it cannot be written back to disk safely.

If block B1 has swizzled pointer to an item in block B2, then B2 is pinned◦ Unpin a block, we must unswizzle any pointers to

it◦ Keep in the translation table the places in

memory holding swizzled pointers to that item◦ Unswizzle those pointers (use translation table to

replace the memory addresses with database (disk) addresses