TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

9

Click here to load reader

description

An Approach to Verification of Correctness of Data Migration between DBMS Using Cryptographic Hash Functions

Transcript of TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Page 1: TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Подход к верификации корректностимиграции данных между СУБД с

использованием криптографическиххэш-функций

Санкт-Петербургский государственный университетКафедра системного программирования

ЗАО «Ланит-Терком»

Журавлев М. М. Полозов В. С[email protected]

[email protected]

Page 2: TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Контекст

Проект миграции промышленной ДБ кредитного подразделения одного из крупных банков РФ из СУБД MS SQL Server 2005 в Oracle 11gR2.

Page 3: TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Постановка задачи

Верифицировать корректность перегрузки данных из исходной БД в целевую с учетом совершённых преобразований.

Page 4: TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Подход к решению

1. Для таблиц исходной БД вычислить:– Количество записей.

– Набор хэшей.

2. Аналогично для целевой.

3. Сравнить.

Page 5: TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Вычисление хэшей

Требование: независимость от порядка записей.

Решение: 1. MD5 для каждой записи.

2. XOR MD5

Page 6: TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Использование в тестировании

1. В процессе ночной перегрузки.

2. В трассах. Совместно используются:● Инструмент записи и воспроизведения

действий пользователя.● Журналирующие триггеры.● Процедура вычисления набора хэшей по

таблице.

Page 7: TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Масштаб

● Размер данных в исходной базе составляет порядка 6 терабайт в 2410 таблицах.

● Размер кода - 2.5 миллиона строк кода в хранимых процедурах.

● Получившийся объем разработанного кода составил 1.5KLOC на F#, 0.3KLOC на cmd/shell, 0.4KLOC на Java.

● Объем сгенерированного кода – 144КLOC на PL/SQL (8,4Mb) и 215KLOC на T-SQL (18,3Mb).

Page 8: TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Производительность

Подмножество (4M записей) таблицы с 41 INT, 8 VARCHAR, 13 DATETIME столбцов

Page 9: TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Functions

Благодарю за внимание!