![]() | |
#71
| |||
| |||
|
|
On Aug 21, 12:08 am, David BL <davi... (AT) iinet (DOT) net.au> wrote: On Aug 21, 8:36 am, Darren <anon5... (AT) yahoo (DOT) com> wrote: I am learning about database systems, and I am reading a book called "Physical Database Design". It gets to a bit about a large sequential access (e.g. for a full table scan), and does the following: It says "Since most disk systems use prefetch buffers to speed up table scans, we assume a 64 KB prefetch block" So to calculate the time for a full table scan, it multiples the number of 64KB blocks by the time it takes to seek and read (2.02ms). In other words, it is seeking each 64KB block. Why can a disk only read 64KB at a time? Is this a valid assumption? Is this a disk limitation or a file system limitation? A high end modern HD with 4ms average seek will on average take about 7ms to access and an additional 0.5ms to read a randomly located 64k buffer. This mismatch shows that 64k blocks are too small for optimal read performance. 512k or 1Mb blocks would be more suitable But what dictates the block size? Is this defined by the physical disk, the file system, or the database code? |
#72
| |||
| |||
|
|
On Aug 21, 12:08 am, David BL <davi... (AT) iinet (DOT) net.au> wrote: On Aug 21, 8:36 am, Darren <anon5... (AT) yahoo (DOT) com> wrote: I am learning about database systems, and I am reading a book called "Physical Database Design". It gets to a bit about a large sequential access (e.g. for a full table scan), and does the following: It says "Since most disk systems use prefetch buffers to speed up table scans, we assume a 64 KB prefetch block" So to calculate the time for a full table scan, it multiples the number of 64KB blocks by the time it takes to seek and read (2.02ms). In other words, it is seeking each 64KB block. Why can a disk only read 64KB at a time? Is this a valid assumption? Is this a disk limitation or a file system limitation? A high end modern HD with 4ms average seek will on average take about 7ms to access and an additional 0.5ms to read a randomly located 64k buffer. This mismatch shows that 64k blocks are too small for optimal read performance. 512k or 1Mb blocks would be more suitable But what dictates the block size? Is this defined by the physical disk, the file system, or the database code? |
#73
| |||
| |||
|
|
On Aug 21, 12:08 am, David BL <davi... (AT) iinet (DOT) net.au> wrote: On Aug 21, 8:36 am, Darren <anon5... (AT) yahoo (DOT) com> wrote: I am learning about database systems, and I am reading a book called "Physical Database Design". It gets to a bit about a large sequential access (e.g. for a full table scan), and does the following: It says "Since most disk systems use prefetch buffers to speed up table scans, we assume a 64 KB prefetch block" So to calculate the time for a full table scan, it multiples the number of 64KB blocks by the time it takes to seek and read (2.02ms). In other words, it is seeking each 64KB block. Why can a disk only read 64KB at a time? Is this a valid assumption? Is this a disk limitation or a file system limitation? A high end modern HD with 4ms average seek will on average take about 7ms to access and an additional 0.5ms to read a randomly located 64k buffer. This mismatch shows that 64k blocks are too small for optimal read performance. 512k or 1Mb blocks would be more suitable But what dictates the block size? Is this defined by the physical disk, the file system, or the database code? |
#74
| |||
| |||
|
|
If you have a 100GB database and you put it on single 100GB disk drive, your best average seek time is the average seek time of the disk drive, but if you put the database on four 100GB disk drives, the the best average seek time will only be a fraction of the seek time of the single disk. Suppose that the full-stroke seek time on the 100GB disk is 7ms and the track-to-track seek time is 1ms. Well, with four disks, instead of an average 4ms seek time, the individual seek time of each disk is reduced to roughly 2.5ms |
|
, and since there are four disks, the average seek time for the disk subsystem is reduced to a quarter of that or roughly .625ms. |
#75
| |||
| |||
|
|
If you have a 100GB database and you put it on single 100GB disk drive, your best average seek time is the average seek time of the disk drive, but if you put the database on four 100GB disk drives, the the best average seek time will only be a fraction of the seek time of the single disk. Suppose that the full-stroke seek time on the 100GB disk is 7ms and the track-to-track seek time is 1ms. Well, with four disks, instead of an average 4ms seek time, the individual seek time of each disk is reduced to roughly 2.5ms |
|
, and since there are four disks, the average seek time for the disk subsystem is reduced to a quarter of that or roughly .625ms. |
#76
| |||
| |||
|
|
If you have a 100GB database and you put it on single 100GB disk drive, your best average seek time is the average seek time of the disk drive, but if you put the database on four 100GB disk drives, the the best average seek time will only be a fraction of the seek time of the single disk. Suppose that the full-stroke seek time on the 100GB disk is 7ms and the track-to-track seek time is 1ms. Well, with four disks, instead of an average 4ms seek time, the individual seek time of each disk is reduced to roughly 2.5ms |
|
, and since there are four disks, the average seek time for the disk subsystem is reduced to a quarter of that or roughly .625ms. |
#77
| |||
| |||
|
|
If you have a 100GB database and you put it on single 100GB disk drive, your best average seek time is the average seek time of the disk drive, but if you put the database on four 100GB disk drives, the the best average seek time will only be a fraction of the seek time of the single disk. Suppose that the full-stroke seek time on the 100GB disk is 7ms and the track-to-track seek time is 1ms. Well, with four disks, instead of an average 4ms seek time, the individual seek time of each disk is reduced to roughly 2.5ms |
|
, and since there are four disks, the average seek time for the disk subsystem is reduced to a quarter of that or roughly .625ms. |
#78
| |||
| |||
|
|
If you have a 100GB database and you put it on single 100GB disk drive, your best average seek time is the average seek time of the disk drive, but if you put the database on four 100GB disk drives, the the best average seek time will only be a fraction of the seek time of the single disk. Suppose that the full-stroke seek time on the 100GB disk is 7ms and the track-to-track seek time is 1ms. Well, with four disks, instead of an average 4ms seek time, the individual seek time of each disk is reduced to roughly 2.5ms |
|
, and since there are four disks, the average seek time for the disk subsystem is reduced to a quarter of that or roughly .625ms. |
#79
| |||
| |||
|
|
If you have a 100GB database and you put it on single 100GB disk drive, your best average seek time is the average seek time of the disk drive, but if you put the database on four 100GB disk drives, the the best average seek time will only be a fraction of the seek time of the single disk. Suppose that the full-stroke seek time on the 100GB disk is 7ms and the track-to-track seek time is 1ms. Well, with four disks, instead of an average 4ms seek time, the individual seek time of each disk is reduced to roughly 2.5ms |
|
, and since there are four disks, the average seek time for the disk subsystem is reduced to a quarter of that or roughly .625ms. |
#80
| |||
| |||
|
|
If you have a 100GB database and you put it on single 100GB disk drive, your best average seek time is the average seek time of the disk drive, but if you put the database on four 100GB disk drives, the the best average seek time will only be a fraction of the seek time of the single disk. Suppose that the full-stroke seek time on the 100GB disk is 7ms and the track-to-track seek time is 1ms. Well, with four disks, instead of an average 4ms seek time, the individual seek time of each disk is reduced to roughly 2.5ms |
|
, and since there are four disks, the average seek time for the disk subsystem is reduced to a quarter of that or roughly .625ms. |
![]() |
| Thread Tools | |
| Display Modes | |
| |