Выбор стратегии информационного поиска
Поиск начинается с проверяемого вопроса. «Почему всё медленно?» слишком широко; «какой этап увеличил p95 после релиза?» задаёт объект, показатель и период.
Стратегии
| Ситуация | Стратегия |
|---|---|
| неизвестно, где проблема | широкий обзор и последовательное сужение |
| есть конкретная гипотеза | поиск опровергающего признака |
| нужен известный объект | точный ключ, идентификатор, индекс |
| важна полнота | несколько независимых источников и варианты терминов |
| важна скорость | сначала дешёвые и высокосигнальные проверки |
| источник огромен | выборка, агрегация, ограничение периода |
Рабочий цикл
- Записать вопрос и критерий остановки.
- Назвать возможные источники: код, документация, метрики, логи, трассировки, БД.
- Начать с источника, который быстрее всего разделит гипотезы.
- Фиксировать запрос, время и найденный факт.
- Уточнять запрос, не подменяя исходный вопрос.
- Остановиться, когда решение уже не меняется от дополнительной информации.
Выбор метода адресации данных
Адресация определяет, как найти нужную запись:
- позиционная — смещение в массиве или файле; быстрая, но зависит от расположения;
- по ключу — идентификатор в словаре или индексе;
- составная — несколько полей образуют адрес;
- контентная — адрес вычисляется из содержимого;
- косвенная — запись хранит ссылку на другую запись;
- ассоциативная — поиск по признакам, а не точному адресу.
В процессоре эти идеи проявляются как непосредственная, регистровая, прямая и косвенная адресация. В прикладной системе чаще важнее выбрать ключ и индекс, чем помнить машинную форму инструкции.
Доступ к данным
Наличие адреса ещё не означает доступ:
- физический уровень — доступен ли носитель;
- логический — понимается ли формат и существует ли путь чтения;
- авторизационный — разрешена ли операция субъекту;
- временной — не устарели ли данные;
- транзакционный — какую версию записи видит читатель.
Самопроверка
- Какой запрос способен опровергнуть любимую гипотезу?
- Чем поиск по ключу отличается от поиска по содержанию?
- Как определить момент остановки расследования?