Oszacowanie zakresu migracji bazy danych
Jak oszacować czas migracji bazy danych: uzupełnianie danych, czas trwania blokady, wdrażanie i przywracanie stanu poprzedniego. Polecenie „Dodaj kolumnę” to jedna linijka kodu SQL; szacunkowy czas to mniej więcej jedna sekunda.
„Dodaj kolumnę” to migracja składająca się z jednej linii kodu. Szacowana wartość nie odnosi się do tej kolumny.
Migracje schematów przebiegają według dwóch harmonogramów. Pierwszy to SQL: zazwyczaj szybki, zazwyczaj mechaniczny. Drugi to zegar operacyjny: jak długo blokuje tabelę, jak zachowuje się w przypadku równoczesnych operacji zapisu, w jaki sposób można cofnąć zmiany, jeśli coś pójdzie nie tak, oraz jakie są procedury awaryjne, jeśli operacja potrwa dłużej niż przewiduje to okno wdrożeniowe. Zespół podejmuje decyzję w sprawie zapisu SQL, ponieważ to właśnie jest przedmiotem zgłoszenia. Prace dotyczą natomiast drugiego zegara.
Na małym stoliku oba zegary są takie same, a sprawa ma naprawdę niewielkie znaczenie. Na każdym stole, który ma znaczenie, tak nie jest. W kosztorysie należy uwzględnić wypełnienie luki, strategię wdrażania oraz procedurę cofania zmian, które ktoś musi przećwiczyć, zanim wdrożenie zbliży się choćby w najmniejszym stopniu do środowiska produkcyjnego.
O czym się mówi w tym pomieszczeniu
Backend: „To tylko polecenie ALTER, migracja potrwa zaledwie sekundę”.
SRE: „W tabeli zamówień? Z zablokowanymi pozycjami? O godz. 15:00?”
DBA: „W jaki sposób uzupełniamy istniejące wiersze?”
SRE: „Jak wygląda proces przywracania stanu poprzedniego, jeśli wdrożenie nie powiedzie się w połowie?”
Wprowadzenie: „Czy ścieżka odczytu dopuszcza, aby wartość w kolumnie pozostawała null przez godzinę?”
Pytania, które warto zadać przed głosowaniem
- Jak duża jest ta tabela: czy zawiera tysiące, miliony, a może setki milionów wierszy?
- Narzędzie do migracji online czy zmiana w miejscu za pomocą polecenia ALTER?
- Strategia uzupełniania: synchroniczna, przetwarzanie partiami, podwójny zapis?
- Jakie działania podejmuje ścieżka odczytu w trakcie okna wdrażania?
- Cofnięcie zmian: tylko w przyszłość, czy też możliwe jest przywrócenie schematu?
- Czy ktoś zastosował się do procedury dyżurnej w związku z tą migracją?
Jeśli połowa zgromadzonych opowiada się za „SQL”, a druga połowa za „wdrożeniem”, nie jest to problem związany z liczbą; mamy tu do czynienia z dwiema historiami udającymi jedną. Należy to rozdzielić: zmiana schematu to jedno zgłoszenie, a uzupełnienie danych i plan wdrożenia to kolejne.
Proszę oszacować czas wdrożenia i cofnięcia zmian, a nie czas operacji ALTER. To właśnie w tym drugim etapie tkwi ryzyko.
Wersję dotyczącą migracji między systemami można znaleźć w artykule szacowanie migracji danych, a inne przykłady praktycznych szacunków. Po nakreśleniu planu wdrożenia prosimy o zorganizowanie bezpłatnej sesji planowania pokerowego.