PostgreSQL 14.4 թարմացում՝ ինդեքսի կոռուպցիայի շտկմամբ

Ստեղծվել է PostgreSQL DBMS 14.4-ի ուղղիչ թողարկում, որը վերացնում է լուրջ խնդիր, որը որոշակի հանգամանքներում հանգեցնում է ինդեքսների տվյալների անտեսանելի խաթարման՝ «ՍՏԵՂԾԵԼ ԻԴԵՔՍ ՄԻԱԺԱՄԱՆԱԿԻՆ» և «REINDEX CONCURRENTLY» հրամանները: Նշված հրամանների միջոցով ստեղծված ինդեքսներում որոշ գրառումներ կարող են հաշվի չառնվել, ինչը կհանգեցնի խնդրահարույց ինդեքսների պարունակող SELECT հարցումների կատարման ժամանակ բացակայող տողերի:

Որոշելու համար, թե արդյոք B-tree ինդեքսները վնասվել են, կարող եք օգտագործել «pg_amcheck –heapallindexed db_name» հրամանը: Եթե ​​հայտնաբերվել են սխալներ կամ «ՍՏԵՂԾԵԼ ԻԴԵՔՍ ՄԻՆՉԵՎ» և «REINDEX CONCURRENTLY» հրամանները օգտագործվել են նախորդ թողարկումներում այլ տեսակի ինդեքսների հետ (GiST, GIN և այլն), ապա 14.4 տարբերակին թարմացնելուց հետո խորհուրդ է տրվում կատարել վերաինդեքսավորում՝ օգտագործելով «reindexdb — all» կոմունալ կամ «REINDEX CONCURRENTLY index_name» հրամանը։

Խնդիրն ազդում է միայն 14.x ճյուղի վրա, որն իր մեջ ներառում էր օպտիմալացումներ, որոնք բացառում են որոշ գործարքներ, որոնք կապված են «ՍՏԵՂԾԵԼ ԻԴԵՔՍ ՀԱՄԱԺՈՂՈՎ» և «REINDEX CONCURRENTLY» VACUUM գործողությունն իրականացնելիս: Այս օպտիմալացումների արդյունքում, CONCURRENTLY ռեժիմում ստեղծված ինդեքսները չեն ներառել կույտային հիշողության մեջ մի քանի tuples, որոնք թարմացվել կամ կրճատվել են ինդեքսի ստեղծման ժամանակ:

Source: opennet.ru

Добавить комментарий