воскресенье, 6 марта 2011 г.

Налоги: иерархическое управление носителями

Это перевод Taxes: Hierarchical Storage Management. Автор: Реймонд Чен. Входит в книгу The Old New Thing.

Одним из налогов, о которых я говорил, когда представлял идею "налогов" в разработке программ, является Hierarchical Storage Management (иерархическое управление носителями). Краткое описание иерархического управления носителями заключается в том, что это способ прозрачного архивирования данных. Когда файл готов к архивации, он переносится на более медленный (но более дешёвый и ёмкий) накопитель, вроде магнитной ленты, оставляя после себя заглушку.

Заглушка хранит мета-данные оригинального файла, вроде даты последней модификации и размера, но не содержит ничего из содержания файла. Если программа пытается открыть файл, то он "вызывается" с ленты - процесс, который может занять минуты.

Программно вы можете определить, что вы встретили заглушку, проверкой файлового атрибута FILE_ATTRIBUTE_OFFLINE (заметьте, что это не то же самое, что Оффлайн файлы). Мы уже знаем, что Проводник отмечает такие файлы чёрными часами. Консоль выделяет такие файлы, окружая размер файла скобками. Если ваша программа встречает такой файл, то она не должа открывать его, если только её явно не просит об этом пользователь. Примеры операций, которые должны исключать такие файлы:
  • Авто-просмотр.
  • Индексирование содержимого.
  • Поиск.
  • Сканирование вирусов.
  • Анализ содержимого файла.
К примеру, обработчик контекстного меню не должен открывать такой файл только для того, чтобы узнать, какие команды нужно показывать. Правый щелчок по файлу - ещё недостаточная причина, чтобы мотать ленту.

Если вы не будете учитывать файловы атрибут FILE_ATTRIBUTE_OFFLINE во время поиска файлов, то во время поиска по диску, все файлы, проверяемые во время поиска, будут вызваны с ленты. Если это так оставить, то рано или поздно вы получите каждый файл с ленты - что полностью нейтрализует любой эффект от архивации этих файлов на ленту!

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку.

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.

Примечание. Отправлять комментарии могут только участники этого блога.