GoProject team
Kāpēc GoProject nav pārindeksēšanas pogas
Katram Jira administratoram ir savs stāsts par pārindeksēšanu. Mēs nolēmām, ka labākais veids, kā padarīt šo pogu uzticamu, ir padarīt to nevajadzīgu.
Poga un kara stāsti
Meklēšana Jira darbojas uz Lucene indeksa, kas stāv blakus datubāzei. Kad abi sāk nesakrist, un tas notiek, vienīgais risinājums ir pilna pārindeksēšana. Lielā instancē tās ir stundas, dažkārt nedēļas nogale, un vēl rinda, kas aiz tās sakrājas.
Cita likme
GoProject vaicā tieši PostgreSQL. Darba vienības, pielāgoto lauku vērtības JSONB formātā, komentāri un saites dzīvo vienuviet, un katra meklēšanas klauzula kļūst par indeksētu SQL nosacījumu. Otras datu kopijas, kas varētu atpalikt, vienkārši nav.
Ko tas maksā
Tas maksā disciplīnu shēmā. Skaitītājus, ko agrāk rēķināja lasīšanas brīdī, tagad tur denormalizētus un uztur rakstīšanas brīdī. Lapošana ir pēc atslēgas, nekad pēc nobīdes. Katram API izsaukumam ir 300 milisekunžu budžets 95. procentilē, un testu komplekts krīt, tiklīdz vaicājuma plāns pārstāj lietot savu indeksu.
Ko Jūs iegūstat
- Nekādas pārindeksēšanas, nekad, nevienā uzturēšanas aprakstā
- Meklēšanas rezultātus, kas atspoguļo tikko notikušo ierakstu
- Vienu datubāzi, ko rezervēt, atjaunot un saprast
Dēlis, kuru Jūs skatāties, ir pati datubāze. Tāda ir visa doma.