Za Btrfs je predstavljena asinkrona implementacija DISCARD-a

Za btrfs datotečni sustav predstavljeni asinkrona implementacija operacije DISCARD (označavanje otpuštenih blokova koje više nije potrebno fizički pohraniti), koju su implementirali inženjeri Facebooka.

Bit problema: u izvornoj implementaciji, DISCARD se izvodi sinkrono s drugim operacijama, što u nekim slučajevima dovodi do problema s performansama, budući da pogoni moraju čekati da se odgovarajuće naredbe završe, što zahtijeva dodatno vrijeme. To može biti problem ako je implementacija DISCARD pogona spora.

Uz asinkronu implementaciju, nema potrebe čekati da pogon dovrši DISCARD tijekom normalnog rada FS-a, što eliminira problem prijenosom ove operacije u pozadinu. Prikazana implementacija također izvodi neke optimizacije. Na primjer, čeka neko vrijeme zbog zabrinutosti da bi se blok uskoro mogao koristiti na takav način da uopće ne bi imalo smisla izvršavati proceduru DISCARD, a također pokušava spojiti regije prije stvarnog izvršenja procedure DISCARD kako bi smanjiti ukupan broj operacija.

Izvor: opennet.ru

Dodajte komentar