Как рассчитать среднее время поиска?

Как рассчитать среднее время поиска?

Я читаю пример Megatron 747 из книги "Database System Complete Book 2nd edition" (Пример 13.2 стр. 565-566). Они дают следующую информацию:

  • 8 пластин = 16 поверхностей
  • 2^16 = 65536 дорожек на поверхность
  • 256 секторов на дорожку
  • 4096 байт на сектор

При расчете среднего времени поиска они делают следующий расчет:

1 + (65536/3)/4000 = 6.46 millisecond.

Я понимаю, что 65536 — это указанное количество треков, а 1/3 — для усреднения расстояния, но я не могу понять, зачем они добавили 1 и откуда взяли 4000.

Может ли кто-нибудь мне помочь?

решение1

Вам даже не нужно ничего знать по этой теме (на самом деле, то, что вы, как вам кажется, знаете, просто сбивает вас с толку, речь идет овремя поискатолько). Просто найдите все вхождения 4000в описание (там только одно) и связанное с ним вхождение 1 millisecondв том же абзаце.

ЦитатаСистема баз данных - Полная книга (2-е издание), выделено мной:

Для перемещения головки блока между цилиндрами требуетсяодна миллисекунда для запуска и остановки, плюсодна дополнительная миллисекунда на каждые 4000 пройденных цилиндровТаким образом, головки перемещаются на одну дорожку за 1,00025 миллисекунды и перемещаются от самой внутренней до самой внешней дорожки, на расстояние в 65 536 дорожек, примерно за 17,38 миллисекунды.

Перефразируя расчет: требуется 17,38 мс, чтобы переместиться от самого внутреннего к самому внешнему цилиндру. Убирая 1 мс на старт/стоп, получаем 16,38 мс для фактического перемещения. Треть этого (перемещение на среднее расстояние по данным автора) составляет 5,46. Добавьте 1 мс на старт/стоп обратно, и вы получите ответ.

Связанный контент