Bola vydaná verzia Valkey 9.0, fork Redisu z minulého roka. Fork vznikol po tom, čo bol Redis 7.4 prevedený na proprietárnu licenciu. S vydaním Redisu 8.0 bol kód vrátený na open source licenciu AGPLv3, ale to nemalo vplyv na vývoj projektu Valkey. Valkey sa vyvíja na neutrálnej platforme pod záštitou... Linux Nadácia, s príspevkami od vývojárov zo spoločností ako Amazon, Google, Oracle, Ericsson a Snap. Kód projektu je napísaný v jazyku C a distribuovaný pod licenciou BSD. Práca je podporovaná v Linux, macOS, OpenBSD, NetBSD a FreeBSD.
Valkey a Redis poskytujú funkcie na ukladanie údajov vo formáte kľúč/hodnota, rozšírené o podporu štruktúrovaných dátových formátov, ako sú zoznamy, haše a množiny, a možnosť vykonávania na strane. server Skripty obslužných programov založené na jazyku Lua. Databáza je uložená v pamäti a synchronizovaná s verziou na disku alebo sa zobrazuje v protokole zmien na disku, čím sa zabezpečuje integrita údajov v prípade zlyhania. Podporované sú transakcie, režim publikovania/odoberania, príkazy na zvýšenie/zníženie, operácie zoznamu a množiny (zjednotenie, prienik), premenovanie kľúčov, replikácia master-slave, viacnásobné výbery a funkcie triedenia.
V novej verzii:
- Na prenos dát medzi uzlami v klastri používame atomickú migráciu slotov. Táto technika neprenáša dáta na úrovni jednotlivých kľúčov (jeden kľúč za druhým), ale atomickým presúvaním 16 384-bajtových dátových slotov. Prenos sa vykonáva pomocou formátu AOF, ktorý umožňuje odosielať jednotlivé prvky kolekcie namiesto všetkých dát spojených s kľúčom. Tento prístup výrazne zlepšuje výkon, zabraňuje presmerovaniam a eliminuje oneskorenia, ku ktorým dochádza pri prístupe klienta k prenášanému kľúču.
- Bola pridaná možnosť definovať samostatné doby životnosti pre rôzne polia v hašoch spojených s jedným kľúčom (predtým boli doby životnosti viazané na kľúč a aplikované na všetky polia). Boli pridané nové príkazy na správu doby životnosti údajov: HEXPIRE, HEXPIREAT, HEXPIRETIME, HGETEX, HPERSIST, HPEXPIRE, HPEXPIREAT, HPEXPIRETIME, HPTTL, HSETEX a HTTL.
- Bola poskytnutá možnosť používať číslované databázy v klastrovom režime, v ktorom je kľúčový priestor rozdelený do niekoľkých rôznych databáz (štandardne 16).
- Zlepšila sa efektivita veľkých klastrov – klaster s 2 000 uzlami je preukázateľne schopný spracovať miliardu požiadaviek za sekundu.
- Pridaná optimalizácia, ktorá môže v niektorých situáciách zvýšiť priepustnosť až o 40 % preventívnym načítaním zoskupených (pipelinových) príkazov do pamäte.
- Bola pridaná optimalizácia, ktorá môže v niektorých situáciách zvýšiť priepustnosť až o 20 % tým, že eliminuje potrebu kopírovania údajov do pamäte (nulová kópia) pri spracovaní veľkých dotazov.
- Pridaná podpora pre technológiu Multipath TCP na súčasné doručovanie paketov pozdĺž viacerých trás cez rôzne sieťové rozhrania viazané na rôzne IP adresy. Použitie Multipath TCP môže v niektorých situáciách znížiť latenciu o 25 %.
- Funkcie BITCOUNT a HyperLogLog boli aktualizované s optimalizáciami, ktoré využívajú inštrukcie procesora SIMD, čím sa v niektorých situáciách zvyšuje priepustnosť až o 200 %.
- Geopriestorové indexy teraz podporujú vyhľadávanie polohy na základe súradníc polygónu.
- Pridaný príkaz „DELIFEQ“ na odstránenie kľúča, ak sa jeho priradená hodnota zhoduje so zadanou hodnotou.
- Príkaz „ZOZNAM KLIENTOV“ teraz umožňuje nastaviť filtre, ktoré filtrujú prvky podľa názvu, príznakov, aktivity, databázy, IP adresa a právomoci.
- Podpora pre 25 predtým zastaraných príkazov bola obnovená.
Zdroj: opennet.ru
