Экспертиза баз данных и СУБД

Судебная экспертиза базы данных Apache Cassandra

Устанавливаем, что произошло с данными в кластере Cassandra, можно ли их восстановить и чем вызван сбой. Для первого обращения достаточно описания — без рабочего кластера и паролей.

Ориентир по стоимости экспертизы
от 100 000 ₽
Ориентир по сроку экспертизы
от 10 рабочих дней
  • Судебные экспертизы
  • Внесудебные исследования
  • Рецензирование заключений
01 Проверим компетенцию

До оплаты определим, относится ли задача к выбранному виду исследования.

02 Поможем подготовиться

Уточним вопросы и перечень материалов — готовый комплект не обязателен.

03 Работаем с регионами

Принимаем задачи из России, Казахстана и Беларуси; часть материалов можно передать электронно.

04 Сопровождаем результат

Разъясняем методику и выводы, отвечаем на вопросы суда в пределах компетенции эксперта.

О направлении

Подробно о задачах, объектах и методиках

Материал описывает типовые задачи и вопросы. Окончательные формулировки определяются с учётом компетенции эксперта, а правовую оценку обстоятельствам даёт суд.

Содержание страницы

    Экспертиза Apache Cassandra нужна, когда спор зависит от распределённых данных, файлов SSTable и журналов фиксации операций (commit logs), временных меток и маркеров удаления (tombstones), репликации, уровня согласованности (consistency level), сверки и восстановления согласованности реплик (repair), моментальных снимков, сбоя, производительности или миграции. Специалист устанавливает версии узлов, устройство кластера и центры обработки данных, средство распределения данных, диапазоны токенов (token ranges), схему, правила репликации и историю обслуживания. Ключ раздела (partition key) определяет размещение данных и поэтому должен быть указан для исследования конкретной записи. Это специализированное направление экспертизы баз данных и СУБД.

    Предварительно можно оценить, какие гипотезы проверяемы. Для первого обращения достаточно схемы кластера, версий, перечня файлов SSTable, журналов фиксации операций и снимков по узлам, истории сверки реплик и спорного ключа раздела или периода. Если уплотнение (compaction) уже удалило прежние значения и маркеры удаления, снимков нет, а аудит или CDC не были включены, точная история может быть недоступна. Это лучше установить до полной работы, чтобы вовремя сохранить оставшиеся источники и уточнить вопросы.

    Если кластер ваш или вы действуете с согласия его владельца, первое действие — nodetool snapshot на каждом относящемся к задаче узле; если спорный кластер принадлежит другой стороне, не запускайте ничего: фиксацию проводят по определению суда с участием эксперта. Снимок создаёт жёсткие ссылки на текущие SSTable: он не копирует данные и защищает файлы от удаления уплотнением. По умолчанию команда сначала сбрасывает на диск данные из памяти — на нагруженном узле это заметный ввод-вывод и новые SSTable, зато в снимок попадает всё подтверждённое. Режим --skip-flush выполняется мгновенно, но несброшенные данные в снимок не войдут. Режим выбирают заранее и записывают: происхождение SSTable, созданных самой командой, должно быть видно из заключения. Копировать каталоги данных работающей Cassandra без снимка бессмысленно: уплотнение непрерывно создаёт и удаляет SSTable, и набор получится рваным. Место, занятое снимком, освобождают после вывоза копии.

    Отдельно о том, что будет, если ответить не удастся. Задачу, по которой уже из присланных материалов видно, что вывода не получится, мы просто не берём в работу и говорим об этом сразу. Это не обещание положительного вывода: отказ на входе означает лишь, что невозможность видна уже из перечня материалов. Если же невозможность выясняется по итогам полноценного исследования, это результат, а не пустой счёт: заключение объясняет, почему ответа нет и чего именно не хватило. В споре такой вывод часто закрывает вопрос: обоснованный ответ, что маркеры удаления пережили свой срок и записи уже уплотнены, показывает суду границы имеющихся источников. Назначать ли после этого дополнительную или повторную экспертизу, решает назначивший её орган. Бывает и частичная невозможность: тогда указывают, на какие вопросы ответ получен, а на какие нет и по какой причине.

    Кто снимает копию, решают по объекту. Иногда это делает сам заказчик или его администратор по согласованному плану; иногда — наш специалист, удалённо или с выездом, как отдельная консультация; иногда фиксация входит в саму экспертизу. Выбор зависит от сложности системы, доступности и трудоёмкости: моментальные снимки узлов снимают по-разному на одиночном сервере и на нагруженном кластере. Если инфраструктурой управляет другая сторона, порядок доступа определяет суд, и фиксацию проводят с участием эксперта.

    До снятия снимка не запускайте сверку реплик, cleanup, upgradesstables, scrub или загрузку резервной копии поверх единственного состояния: эти операции переписывают SSTable, распространяют выбранную версию данных и удаляют маркеры удаления. Уплотнение идёт само; на время копирования его можно приостановить штатной командой для нужных таблиц, но надолго оставлять кластер без уплотнения нельзя — число SSTable растёт, чтения замедляются, диск заполняется. Поэтому снимок делают в первые часы, а не откладывают. Зафиксируйте результаты nodetool status и nodetool describering, схему, принадлежность диапазонов токенов, время и часовой пояс каждого узла, очередь ожидающих уплотнений и историю сверки реплик. Выполняет это владелец системы или уполномоченный им администратор; если кластер принадлежит другой стороне, доказательство сохраняют через суд.

    Сверку реплик надолго откладывать нельзя. Её укладывают в интервал gc_grace_seconds — по умолчанию это десять суток, а срок экспертизы больше. Если реплика пропустила удаление и была недоступна дольше этого интервала, маркер удаления на остальных репликах успевает исчезнуть — тогда прежнее значение может вернуться на боевом кластере. На здоровом кластере, где удаление дошло до всех реплик, отсрочка сверки ничего не воскрешает; проверяют это по журналам узлов, состоянию кластера и истории сверок. Поэтому снимок снимают сразу и сверку возобновляют, а не ждут окончания исследования. Если снять копию за это время нельзя, увеличить gc_grace_seconds может владелец кластера — заранее, с записью даты, исполнителя и причины: маркеров удаления станет больше, чтения замедлятся, а само изменение раскрывают в заключении.

    Если Cassandra предоставлена как управляемый сервис, ни cassandra.yaml, ни nodetool, ни каталога журналов фиксации, ни доступа к файлам SSTable у заказчика нет, а фоновыми операциями управляет провайдер. Тогда состав материалов другой: штатные снимки и точки восстановления провайдера с идентификаторами, выгрузки через клиентское подключение, журналы операций, метрики и события обслуживания.

    Почему Cassandra исследуют как распределённую систему

    Один узел хранит только принадлежащие ему диапазоны токенов и реплики; его локальное состояние может отличаться из-за выбранного уровня согласованности, недоступности других узлов, подсказок отложенной доставки, потоковой передачи и сверки реплик. Значение строки собирается по временным меткам из нескольких неизменяемых SSTable и таблицы в памяти (memtable). Поэтому копия одного файла Data.db или результат одного запроса не описывают кластер без сведений о его устройстве и применённом уровне согласованности.

    На первом этапе:

    • устанавливают версии и их совместимость, имя кластера, средство распределения данных (partitioner), определитель сетевого расположения (snitch), центры обработки данных и стойки;
    • фиксируют узлы, их host ID, токены, принадлежность диапазонов, а также события ввода узлов в кластер, вывода из кластера и замены;
    • описывают пространства ключей, правила и коэффициенты репликации, таблицы, ключи разделов и кластеризации;
    • инвентаризируют все компоненты SSTable, журналы фиксации операций, сохранённые кэши, подсказки отложенной доставки, снимки и добавочные резервные копии;
    • собирают системные и отладочные журналы, журналы сборщика мусора, показатели работы, историю уплотнения и сверки реплик;
    • проверяют аудит, полное журналирование запросов и CDC только в пределах фактической конфигурации;
    • сопоставляют клиентский уровень согласованности, временные метки, правила повторных и опережающих запросов и журналы приложений.

    Что может и чего не может установить эксперт

    При достаточном комплекте можно определить версии ячеек и маркеры удаления в SSTable, операции записи и изменения данных в журналах фиксации, распределение реплик, состояние снимков, сверки реплик и уплотнения, расхождения между узлами, причины потери или восстановления ранее удалённых данных и полноту миграции. Вывод привязывают к ключу раздела, временной метке, исходному узлу и компоненту файла.

    При достаточных материалах эксперт может установить:

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

    Временная метка ячейки может задаваться клиентом и не является автоматически временем, когда конкретный человек выполнил действие. Правило «побеждает последняя запись» (last-write-wins) выбирает значение по временной метке, а рассинхронизация часов или ошибочная клиентская метка могут сделать старое логическое действие «новее». Журнал фиксации обеспечивает сохранность ещё не сброшенной таблицы в памяти, но не является бессрочным аудитом всех чтений и пользователей. Для атрибуции нужны журналы приложения, проверки подлинности, аудита и сетевой инфраструктуры.

    Материалы для исследования

    Сбор планируют по каждому относящемуся к задаче узлу. Для каждого каталога, файла и выгрузки указывают источник — узел и его host ID, путь и носитель, — исполнителя, средство сбора и его версию, точные команды и параметры, время начала и окончания с часовым поясом, размер и SHA-256. Неизменяемую мастер-копию отделяют от рабочей. Для каждой передачи регистрируют отправителя, получателя, время и носитель; при получении SHA-256 вычисляют повторно и сверяют. Компоненты одной SSTable имеют общий дескриптор и исследуются комплектом; файл Data.db нельзя отделять от индексов, статистики, TOC и контекста схемы.

    В комплект обычно включают:

    • cassandra.yaml, конфигурации rackdc, logback и среды, версии Java и Cassandra;
    • схема CQL, выгрузки system_schema, правила репликации пространств ключей и параметры таблиц;
    • все компоненты SSTable относящихся к задаче таблиц, снимки и добавочные резервные копии;
    • каталог commitlog, исходные сегменты и индексы CDC, подсказки отложенной доставки и при необходимости сохранённые кэши;
    • результаты nodetool status, describering, gossipinfo, netstats, compactionstats, tpstats и перечень снимков за спорный период;
    • system.log, debug.log, gc.log, журналы аудита и полного журналирования запросов, данные внешнего наблюдения;
    • история сверки реплик и уплотнения, события потоковой передачи, ввода и замены узлов, cleanup и scrub;
    • журналы приложений и драйверов, уровни согласованности, правила повторных и опережающих запросов, клиентские временные метки и сведения о синхронизации времени;
    • техническое задание, соглашение об уровне обслуживания (SLA), правила резервного копирования и сверки реплик, таблица соответствия при миграции и контрольные ключи разделов.

    Шифрованные тома, данные доступа клиента к узлам и ключи передают отдельно. Команды nodetool и запросы CQL в работающей системе могут влиять на нагрузку и журналы, поэтому протоколируют команду, средство и его версию, узел, время, результат и наблюдаемое влияние.

    Передача копии, в которой есть сведения о людях или охраняемая законом тайна, требует законного основания. По назначенной экспертизе объекты поступают от назначившего органа; вне процесса — от обладателя сведений и в объёме, необходимом для ответа на поставленные вопросы. Обезличивание при этом обсуждают не как уступку, а как способ передать меньше, чем есть. Эксперт не разглашает сведения, ставшие известными ему в связи с исследованием, а рабочие копии удаляет по окончании работы.

    Журнал фиксации операций, таблица в памяти и SSTable

    При записи Cassandra добавляет операцию изменения в журнал фиксации и изменяет таблицу в памяти. После достижения условий сброса таблица в памяти становится неизменяемой SSTable, а сегменты журнала, которые больше не нужны для несброшенных данных, могут быть переиспользованы. После сбоя Cassandra воспроизводит фактически сохранившиеся пригодные записи журнала. Попадание подтверждённой клиенту записи в восстановленное состояние зависит от commitlog_sync, его периода или окна, уровня согласованности, состояния реплик и сохранности файлов. Журнал фиксации обеспечивает устойчивость записи, но не является постоянным архивом.

    SSTable состоит из согласованного набора компонентов. Data.db содержит строки, индекс и сводка помогают поиску, фильтр Блума ускоряет проверку наличия, статистика содержит временные метки, маркеры удаления, сведения о сверке реплик и другие метаданные, а TOC перечисляет состав. Форматы зависят от версии; совместимые автономные средства запускают только на копии.

    Обновления не переписывают прежнюю SSTable на месте. Новая версия попадает в новую таблицу в памяти, а затем в SSTable; при чтении результат собирается по временным меткам. Уплотнение объединяет SSTable и при выполнении условий удаляет устаревшие версии и маркеры удаления. Поэтому физическое наличие нескольких значений нормально, а их исчезновение после уплотнения не доказывает ручного удаления файла.

    Временные метки, TTL и маркеры удаления

    Cassandra разрешает клиенту задавать временную метку записи. При конфликте на уровне ячеек действует правило «побеждает последняя запись», поэтому решающей становится наибольшая временная метка независимо от фактического порядка доставки. Рассинхронизация часов, неверная клиентская метка или повторный запрос могут изменить видимый результат. Эксперт проверяет настройки драйвера, часы узлов и приложения и не отождествляет микросекундную метку с доказанным временем действия человека.

    Команда DELETE создаёт маркер удаления; истечение TTL также переводит данные в удалённое состояние. Маркеры должны достаточно долго распространяться между репликами и участвовать в сверке, после чего уплотнение может их удалить. Если одна реплика пропустила удаление, а маркер на других уже исчез, старое значение способно восстановиться. Для установления причины исследуют gc_grace_seconds, интервалы и историю сверки реплик, периоды недоступности, подсказки отложенной доставки, уплотнение и значения на всех репликах.

    Моментальные снимки, резервные копии и восстановление

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

    Поведение nodetool snapshot зависит от версии: команда может сначала выполнить сброс и тем самым создать новые SSTable и изменить потребность в сегментах журнала фиксации. Вариант --skip-flush снижает это воздействие, но не включает данные несброшенных таблиц в памяти. Выбор режима и его последствия фиксируют до запуска. Добавочные резервные копии сохраняют ссылки на новые SSTable после сброса, но без базового снимка и настроенного архивирования журнала фиксации сами по себе не позволяют восстановить произвольный момент.

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

    Восстановление может выполняться копированием в кластер с подходящим устройством, с помощью sstableloader или nodetool import в зависимости от задачи. Оно меняет состояние кластера и может распространить данные, поэтому его проверяют на отдельной среде. Устанавливают совместимость схемы, средство распределения данных, токены, временные метки, метаданные о выполненной сверке реплик (repairedAt) и полноту компонентов SSTable.

    Удалённые значения иногда остаются в старых SSTable или снимках до уплотнения и окончательной очистки. Если они удалены из всех доступных копий, журналы фиксации переиспользованы, а резервной копии нет, восстановление невозможно. Вторая реплика не гарантирует наличия архива: сверка реплик, а при подходящем уровне согласованности и настройке — сверка во время чтения, могут согласовать затронутые данные. Если спор целиком о том, что и когда изменилось в записях, его разбирает экспертиза изменений и удаления данных.

    Репликация, согласованность и сверка реплик

    Правило репликации определяет реплики для диапазона токенов, а уровень согласованности — сколько ответов координатор требует от операции. Для оценки конкретной записи нужны уровни согласованности чтения и записи, коэффициент репликации, доступность узлов, отложенная доставка по подсказкам, повторные запросы и временные метки. Формула кворума применима только к фактической конфигурации и с учётом иных нарушений.

    Сверка реплик сравнивает их данные и передаёт различия, выбирая версии по правилам Cassandra. Она необходима для согласованности, но изменяет данные и способна распространить нежелательное значение. Проверяют полную или добавочную сверку, метаданные repairedAt, незавершённые сеансы, историю, диапазоны и факт завершения. Запуск сверки после инцидента до копирования может изменить исходное состояние и удалить технические признаки первоначального расхождения.

    Аудит, полное журналирование запросов и CDC

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

    CDC действует только для таблиц с cdc=true, когда эта функция включена на узле. Cassandra создаёт жёсткую ссылку на сегмент журнала фиксации в cdc_raw и индекс с устойчивым смещением; обработчик должен читать только подтверждённую часть. Пространство CDC может заполниться, после чего новые записи в такие таблицы отклоняются. CDC даёт материал для реконструкции операций изменения, но не является готовым аудитом действий конкретного человека.

    Сбои и производительность

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

    Один медленный запрос не объясняет причину без сведений о распределении ключей разделов, модели данных, уровне согласованности, репликах, количестве SSTable, маркерах удаления и нагрузке. Испытания проводят на копии или контролируемом стенде. Риск крупных разделов и чтения множества маркеров удаления оценивают по фактическим показателям и метаданным SSTable, а не только по общим рекомендациям. Замедления и отказы сами по себе исследует экспертиза производительности и сбоев СУБД.

    Как проверить миграцию Cassandra

    Сопоставляют пространства ключей, репликацию и durable_writes, таблицы, ключи разделов, ключи и порядок кластеризации, столбцы и типы CQL, статические столбцы, счётчики, коллекции, кортежи, UDT, значения по умолчанию, индексы, материализованные представления, идентификаторы таблиц и все значимые параметры, включая сжатие, уплотнение, кэширование, CDC, TTL и gc_grace_seconds. Отдельно проверяют UDF/UDA, роли и права, содержимое и репликацию системного пространства ключей авторизации, настройки проверки подлинности и разрешений. Изменение первичного ключа означает изменение распределения и модели запросов.

    Для технической проверки полноты по воспроизводимому алгоритму сверяют все предусмотренные диапазоны токенов, ключи разделов и ячейки либо равнозначные агрегаты и контрольные значения, учитывая временные метки, маркеры удаления и TTL. Покрытие всех диапазонов токенов не подтверждает единый момент времени: фиксируют время каждого узла и снимка, синхронизацию часов и неопределённость. Устойчивую выборку ключей применяют только как выборочный контроль с явно оговорённым уровнем уверенности. Фиксируют снимки, sstableloader или импорт, момент переключения, параллельную запись в обе системы, отклонённые изменения, повторные запросы и поздно поступившие события. Равное число разделов не подтверждает равенство ячеек и временных меток. После загрузки проверяют сверку реплик и фактическую доступность при предусмотренных уровнях согласованности. Когда предметом спора становится сам перенос, а не устройство базы, задачу закрывает экспертиза миграции баз данных.

    Примеры вопросов на экспертизу

    При судебной экспертизе окончательный круг вопросов определяет суд, а в иных предусмотренных законом процедурах — орган или лицо, назначившие экспертизу. Вопросы о виновности, умысле, правовой квалификации события, нарушении договора и ответственности разрешает суд или иной уполномоченный орган. Эксперт отвечает на поставленные вопросы в пределах специальных знаний и представленных материалов; о неясности вопроса, выходе за пределы компетенции или недостаточности материалов он в установленном порядке сообщает суду, органу или лицу, назначившим экспертизу.

    До назначения стороны могут использовать приведённые ниже формулировки как предложения о технических вопросах. Для Cassandra полезно указать кластер, пространство ключей и таблицу, ключ раздела или диапазон токенов, период, часовой пояс и применённый уровень согласованности. Например, можно предложить исследовать временные метки и маркеры удаления для раздела X и связанные технические идентификаторы либо сопоставить актуальные значения раздела X на репликах A, B и C. Дополнительные примеры:

    1. Какие значения, временные метки, сроки жизни (TTL) и маркеры удаления представлены для раздела X на доступных репликах?
    2. Какие операции записи и изменения данных для заданной таблицы сохранились в журналах фиксации?
    3. Охватывают ли снимки и добавочные резервные копии необходимые диапазоны токенов и к какому времени относится снимок каждого узла?
    4. Имеются ли расхождения реплик и чем подтверждается их происхождение?
    5. Могли ли сверка реплик, уплотнение и настройка gc_grace_seconds привести к восстановлению удалённых данных?
    6. Какие изменения устройства кластера, потоковая передача и замена узлов происходили?
    7. Какие действия отражены в журналах аудита, полном журнале запросов или CDC?
    8. Каковы технические причины превышения времени ожидания или снижения производительности?
    9. Соответствуют ли правила резервного копирования и сверки реплик заданным требованиям?
    10. Полностью ли перенесены схема и данные по указанным диапазонам токенов?

    Результат и стоимость

    Специалист фиксирует устройство кластера и исходные объекты, проверяет контрольные суммы, анализирует SSTable и журналы фиксации на отключённой копии, восстанавливает копию на изолированном кластере, сопоставляет журналы и проверяет альтернативные объяснения. Результатом может быть консультация, внесудебное исследование, судебная экспертиза или рецензия. Ориентир по стоимости — от 100 000 ₽, срок — от 10 рабочих дней; на них влияют число узлов и диапазонов, объём, версия, шифрование, состояние сверки реплик и поставленные вопросы. Если судебная экспертиза уже назначена, назначенный по делу эксперт не принимает от одной стороны напрямую дополнительные снимки узлов, выгрузки и системные журналы и не даёт ей частную оценку по существу поручения: вопросы, доступ и новые материалы идут через назначивший орган. Это не исключает обращения стороны к другому, не назначенному по делу специалисту — за консультацией или рецензией по законно полученным материалам. Готовое чужое заключение проверяет рецензия на заключение экспертизы баз данных и СУБД.

    Проведение экспертизы по уголовному делу

    Судебная экспертиза по уголовному делу производится государственными судебными экспертами и иными экспертами из числа лиц, обладающих специальными знаниями.

    Негосударственными судебно-экспертными учреждениями постановление Пленума Верховного Суда Российской Федерации от 21 декабря 2010 г. № 28 «О судебной экспертизе по уголовным делам» признаёт некоммерческие организации, созданные в соответствии с Гражданским кодексом Российской Федерации и Федеральным законом «О некоммерческих организациях» и осуществляющие судебно-экспертную деятельность в соответствии с принятыми ими уставами.

    По сведениям организации, проведение судебных экспертиз предусмотрено её уставом (см. действующую редакцию в разделе «Документы организации»). Это само по себе не означает автоматического поручения любой экспертизы. Возможность поручить конкретное исследование определяет назначающий орган с учётом предмета дела, квалификации эксперта, оснований для отвода и действующего перечня экспертиз, выполняемых только государственными судебно-экспертными организациями.

    Актуализировано
    Форматы работы

    Стоимость и сроки

    Указан предварительный ориентир. Точный расчёт зависит от вопросов, объёма материалов, количества объектов и необходимости выезда. Начало отсчёта фиксируем после проверки необходимого комплекта.

    По договору

    Внесудебное исследование

    от 100 000 ₽
    от 10 рабочих дней
    точная стоимость будет определена после ознакомления с объектом исследования

    Итог — внесудебное исследование или документ специалиста по договору. Его наименование, представление и доказательственное значение зависят от вида процесса и оцениваются судом.

    Заказать исследование
    Проверка готового заключения

    Рецензирование

    от 50 000 ₽
    10 рабочих дней
    точная стоимость будет определена после ознакомления с заключением и приложениями

    Итог — письменная рецензия на готовое заключение. Она проверяет исходные данные, методы и выводы, но не отменяет заключение и не заменяет новое исследование объекта.

    Передать заключение на проверку
    Письменный ответ эксперта

    Консультация и справка

    от 20 000 ₽
    2-3 рабочих дня
    точная стоимость будет определена после ознакомления с объектом исследования

    Поможет предварительно оценить вопрос, определить перспективу исследования и подготовить дальнейшие действия.

    Описать вопрос
    Разбор задачи — без оплаты

    Проверим вид исследования, комплектность материалов и возможность работы. Если по присланным материалам видно, что ответить нельзя, скажем сразу и работу не возьмём. Когда материалы структурированы, предварительный прогноз тоже бесплатный; если разбор требует долгой работы эксперта, предупредим об этом до начала — тогда это платная консультация.

    Получить предварительную оценку
    Организация исследования

    Как строится работа над экспертизой

    До начала исследования уточним предмет задачи, состав материалов и формат итогового документа.

    1. 01 Предварительный разбор

      Проверяем компетенцию и сообщаем, можно ли провести исследование по поставленной задаче.

    2. 02 Вопросы и материалы

      Уточняем вопросы и сообщаем, каких документов или объектов не хватает.

    3. 03 Экспертное исследование

      Эксперт применяет профильные методики, фиксирует ход работы и обосновывает выводы.

    4. 04 Заключение и пояснения

      Передаём результат и при необходимости разъясняем суду применённую методику и выводы.

    Документы организации

    Ответы специалистов

    Частые вопросы

    Практические пояснения о назначении, материалах и использовании экспертного заключения.

    Все вопросы по направлению
    Когда нужна экспертиза Apache Cassandra?

    Экспертиза Cassandra нужна, когда спор зависит от распределённых значений, SSTable, журналов фиксации операций, временных меток, маркеров удаления (tombstones), репликации, уровня согласованности или сверки реплик (repair), снимка либо миграции. Она помогает исследовать расхождения реплик, возможную потерю или восстановление ранее удалённых данных, охват резервной копии, изменения устройства кластера, сбой и производительность.

    Одна выгрузка CQL иногда достаточна для узкой сверки, но не показывает временные метки ячеек, маркеры удаления и состояние всех реплик. Специализация необходима, если ответ зависит от диапазонов токенов, правила «побеждает последняя запись», gc_grace_seconds, уплотнения, отложенной доставки или сверки реплик. Сначала устанавливают версии узлов, устройство и схему кластера, средство распределения данных, правила репликации и уровни согласованности приложения. Порядок работы, состав материалов и сроки собраны на странице экспертизы Apache Cassandra.

    Отдельная страница: Когда нужна экспертиза Apache Cassandra?
    Можно ли заранее оценить перспективу экспертизы Cassandra?

    По устройству и схеме кластера, перечню SSTable, журналам фиксации операций, снимкам, истории сверки реплик и журналам событий можно оценить проверяемость вопросов и необходимость отдельного стенда. Для первого обращения достаточно назвать пространство ключей и таблицу, ключ раздела (partition key) или диапазон токенов, период, версии, узлы и известные действия после инцидента.

    Прежние значения и маркеры удаления (tombstones) могли исчезнуть после уплотнения, сегменты журнала — быть переиспользованы, а аудит и CDC — не включены. Снимок одного узла не подтверждает охват кластера; даже снимки всех диапазонов токенов не доказывают единый момент. Поэтому проверяют устройство кластера, состав снимков, время каждого узла, синхронизацию часов и неопределённость. Предварительная оценка помогает остановить изменяющие операции и понять, можно ли восстановить данные или установить время события с требуемой точностью.

    Отдельная страница: Можно ли заранее оценить перспективу экспертизы Cassandra?
    Какие материалы нужны для экспертизы Cassandra?

    Нужны конфигурация, версии, схема и устройство кластера, host ID, токены и правила репликации. На относящихся к задаче узлах собирают все компоненты SSTable, снимки, добавочные резервные копии, журналы фиксации операций, сегменты CDC, подсказки отложенной доставки, системные и отладочные журналы, журналы сборщика мусора, аудита и запросов, историю сверки реплик и уплотнения. nodetool snapshot может вызвать сброс; --skip-flush не включает несброшенные данные, поэтому режим фиксируют заранее.

    Для каждого объекта протоколируют источник — узел, host ID, путь и носитель, — средство сбора и его версию, начало и окончание с часовым поясом, размер и SHA-256. Неизменяемую мастер-копию отделяют от рабочей; после передачи SHA-256 сверяют повторно. Для каждого узла отмечают синхронизацию часов и неопределённость: охват диапазонов токенов не доказывает единого момента. До копирования не запускают repair, scrub, cleanup и уплотнение: они переписывают SSTable.

    Отдельная страница: Какие материалы нужны для экспертизы Cassandra?
    От чего зависят стоимость и срок экспертизы Cassandra?

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

    После инвентаризации специалист определяет минимальный достаточный набор узлов и диапазонов. Ориентиры направления: стоимость от 100 000 ₽, срок от 10 рабочих дней. Анализ одного раздела и реконструкция состояния всего кластера требуют разного объёма. Срочность согласуют после оценки времени копирования, совместимости программных средств и риска, что уплотнение (compaction) или сверка реплик (repair) уничтожит исходное расхождение. Общие для всех платформ правила — на странице экспертизы баз данных и СУБД.

    Отдельная страница: От чего зависят стоимость и срок экспертизы Cassandra?
    Можно ли восстановить удалённые или утраченные данные Cassandra?

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

    DELETE и TTL создают маркеры удаления (tombstones), которые после срока gc_grace_seconds и уплотнения могут исчезнуть. Если удаление не дошло до реплики, прежнее значение способно восстановиться; необдуманная сверка реплик может его распространить. Если старые SSTable удалены, журналы переиспользованы, а снимков нет, восстановление невозможно. Эксперт указывает значение и временную метку, подтверждаемые конкретным источником. Охват всех диапазонов токенов не подтверждает единый момент снимков разных узлов. Когда спор целиком о том, что и когда изменилось в записях, его разбирает экспертиза изменений и удаления данных.

    Отдельная страница: Можно ли восстановить удалённые или утраченные данные Cassandra?
    Что можно установить по журналам фиксации и SSTable Cassandra?

    Запись добавляется в журнал фиксации операций (commit log) и таблицу в памяти (memtable). После сброса создаётся неизменяемая SSTable, а ненужные сегменты журнала могут переиспользоваться. После сбоя воспроизводятся только фактически сохранившиеся пригодные записи. Сохранность подтверждённой клиенту записи зависит от commitlog_sync, его периода или окна, уровня согласованности, состояния реплик и файлов. Журнал обеспечивает устойчивость записи, но не является бессрочным аудитом.

    SSTable состоит из набора компонентов: файла данных, индекса и сводки, фильтра, статистики, TOC и других файлов в зависимости от формата. Их исследуют вместе со схемой и совместимой версией средства. Статистика содержит временные метки, маркеры удаления, сведения о сверке реплик и позиции воспроизведения. Один Data.db без остальных компонентов и сведений об устройстве кластера недостаточен для вывода о всей таблице или кластере.

    Отдельная страница: Что можно установить по журналам фиксации и SSTable Cassandra?
    Что показывают временные метки и маркеры удаления Cassandra?

    Каждая версия ячейки имеет временную метку, которую может задать клиент. При конфликте Cassandra применяет правило «побеждает последняя запись» (last-write-wins): решающей становится наибольшая метка независимо от порядка доставки. Ошибка часов или клиентской метки способна представить старое логическое действие как более новое. Временная метка ячейки не доказывает время действия конкретного человека.

    Команда DELETE и истечение TTL создают маркеры удаления (tombstones). После достаточного срока и уплотнения они могут быть окончательно удалены. Если реплика пропустила удаление, а маркер на других репликах уже исчез, прежнее значение может восстановиться. Проверяют gc_grace_seconds, интервалы и историю сверки реплик, недоступность узлов, подсказки отложенной доставки, уплотнение и SSTable всех реплик; причины нельзя выводить только из текущего результата CQL.

    Отдельная страница: Что показывают временные метки и маркеры удаления Cassandra?
    Как исследуют репликацию, согласованность и repair Cassandra?

    Правило и коэффициент репликации определяют реплики для диапазона токенов (token range). Уровень согласованности (consistency level) задаёт число ответов, которые координатор требует от операции. Для конкретной записи проверяют уровни чтения и записи, доступность узлов, подсказки отложенной доставки, повторные и опережающие запросы, временные метки. Один узел или уровень ONE не обязательно отражает состояние всех реплик.

    Сверка и восстановление согласованности реплик (repair) сравнивает диапазоны и передаёт различия по правилам Cassandra. Процедура нужна для согласованности, но изменяет данные и может распространить нежелательное значение. Исследуют полную или добавочную сверку, метаданные repairedAt, незавершённые сеансы, историю, диапазоны и факт завершения. До запуска фиксируют каждую реплику: сверка выравнивает данные, и после неё прежнее расхождение видно уже только по снимкам, снятым заранее.

    Отдельная страница: Как исследуют репликацию, согласованность и repair Cassandra?
    Какие вопросы ставят эксперту по Cassandra?

    Вопрос должен называть кластер, пространство ключей и таблицу, ключ раздела (partition key) или диапазон токенов (token range), период, часовой пояс и уровень согласованности. Можно спросить о значениях, временных метках и маркерах удаления на репликах, операциях в журналах фиксации, охвате снимков, расхождениях, сверке реплик, изменениях устройства кластера, записях аудита или CDC, причине превышения времени ожидания либо полноте миграции.

    Вместо «кто удалил строку?» корректнее спросить: «Какие временные метки и маркеры удаления представлены в SSTable, журналах фиксации операций и материалах аудита или CDC; с какими идентификаторами клиентов они связаны?» Временная метка ячейки сама по себе не идентифицирует человека. Эксперт не решает вопросы умысла и виновности. До назначения проверяют наличие данных по всем нужным диапазонам токенов и сохранность журналов.

    Отдельная страница: Какие вопросы ставят эксперту по Cassandra?
    Как проверить полноту миграции Cassandra?

    При миграции Cassandra сопоставляют пространства ключей, репликацию и durable_writes, таблицы, ключи и порядок кластеризации, столбцы, типы CQL, UDT, индексы, материализованные представления, идентификаторы и параметры таблиц, включая сжатие, уплотнение, кэширование, CDC, TTL и gc_grace_seconds. Отдельно проверяют UDF/UDA, роли, права, system_auth, проверку подлинности и разрешения. Изменение первичного ключа меняет распределение и модель запросов.

    Данные сверяют по диапазонам токенов и ключам разделов с учётом временных меток, маркеров удаления и TTL. Покрытие диапазонов не доказывает единого момента: фиксируют время снимка каждого узла, синхронизацию часов и неопределённость. Документируют снимок, средство импорта, момент переключения, параллельную запись, отклонённые изменения, повторные запросы и поздние события. Равное число разделов не подтверждает равенство ячеек. После загрузки проверяют сверку реплик и доступность при предусмотренных уровнях согласованности. Если перенос и есть предмет спора, задачу закрывает экспертиза миграции баз данных.

    Отдельная страница: Как проверить полноту миграции Cassandra?
    Можно ли использовать заключение по кластеру Cassandra в суде?

    Судебное заключение готовят после назначения экспертизы уполномоченным субъектом — в пределах поставленных вопросов и переданных объектов. Внесудебное исследование сторона представляет сама; заранее установленной доказательственной силы у него нет.

    Суд оценивает, можно ли выводы повторить. Для Cassandra в заключении называют версии узлов, правила репликации, с каких именно узлов взяты снимки и за какой период, а также состояние сверки реплик: локальное состояние одного узла не равно состоянию кластера, и заключение должно это учитывать явно.

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

    Отдельная страница: Можно ли использовать заключение по кластеру Cassandra в суде?
    Чем экспертиза Cassandra отличается от работы администратора кластера?

    Администратор поддерживает кластер: следит за уплотнением, сверкой реплик, распределением токенов и резервным копированием. Многие его операции переписывают файлы данных — так и задумано.

    Экспертиза сохраняет состояние до вмешательства: снимает моментальные снимки, фиксирует принадлежность диапазонов токенов и время на каждом узле, а исследование ведёт на копиях. Отдельно учитывают, что запись с более поздней клиентской меткой побеждает независимо от того, когда она физически попала на узел.

    Порядок работ: сначала снимки, потом обслуживание. Останавливать сверку реплик ради экспертизы нельзя — это портит данные на боевом кластере, поэтому копию снимают быстро.

    Отдельная страница: Чем экспертиза Cassandra отличается от работы администратора кластера?
    Можно ли исследовать работающий кластер Cassandra, не изменяя данные?

    Читать можно, а вот сохранить состояние обычным копированием нельзя: уплотнение непрерывно создаёт и удаляет файлы данных, и копия каталога получится рваной. Задачу решает штатный моментальный снимок. Но сначала проверяют полномочия и согласуют допустимые действия с владельцем системы или с назначившим экспертизу органом; если кластер принадлежит другой стороне, копию получают через суд.

    Снимок по умолчанию сбрасывает данные из памяти на диск, то есть сам создаёт новые файлы; режим выбирают заранее и записывают. Делают его на каждом относящемся к задаче узле. Одновременно фиксируют время и часовой пояс каждого узла, распределение диапазонов токенов и состояние сверки реплик: без этого сопоставить локальные состояния между собой не выйдет.

    Обслуживание после снятия снимков возобновляют. Если сверку реплик не проводить дольше положенного интервала, удалённые записи способны вернуться там, где на какой-то реплике осталась их прежняя копия, — поэтому паузу согласуют с владельцем и не затягивают.

    Отдельная страница: Можно ли исследовать работающий кластер Cassandra, не изменяя данные?
    Обращение в организацию

    Отправьте материалы на предварительную оценку

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

    Отправить материалы