Выбор стратегии информационного поиска

Поиск начинается с проверяемого вопроса. «Почему всё медленно?» слишком широко; «какой этап увеличил p95 после релиза?» задаёт объект, показатель и период.

Стратегии

СитуацияСтратегия
неизвестно, где проблемаширокий обзор и последовательное сужение
есть конкретная гипотезапоиск опровергающего признака
нужен известный объектточный ключ, идентификатор, индекс
важна полнотанесколько независимых источников и варианты терминов
важна скоростьсначала дешёвые и высокосигнальные проверки
источник огроменвыборка, агрегация, ограничение периода

Рабочий цикл

  1. Записать вопрос и критерий остановки.
  2. Назвать возможные источники: код, документация, метрики, логи, трассировки, БД.
  3. Начать с источника, который быстрее всего разделит гипотезы.
  4. Фиксировать запрос, время и найденный факт.
  5. Уточнять запрос, не подменяя исходный вопрос.
  6. Остановиться, когда решение уже не меняется от дополнительной информации.

Выбор метода адресации данных

Адресация определяет, как найти нужную запись:

  • позиционная — смещение в массиве или файле; быстрая, но зависит от расположения;
  • по ключу — идентификатор в словаре или индексе;
  • составная — несколько полей образуют адрес;
  • контентная — адрес вычисляется из содержимого;
  • косвенная — запись хранит ссылку на другую запись;
  • ассоциативная — поиск по признакам, а не точному адресу.

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

Доступ к данным

Наличие адреса ещё не означает доступ:

  • физический уровень — доступен ли носитель;
  • логический — понимается ли формат и существует ли путь чтения;
  • авторизационный — разрешена ли операция субъекту;
  • временной — не устарели ли данные;
  • транзакционный — какую версию записи видит читатель.

Самопроверка

  • Какой запрос способен опровергнуть любимую гипотезу?
  • Чем поиск по ключу отличается от поиска по содержанию?
  • Как определить момент остановки расследования?