Valkey 9.0 DB-nin buraxılışı baş tutdu, keçən il Redis DB-dən ayrılmışdır. Fork, Redis 7.4-ün mülkiyyət lisenziyasına keçirilməsindən sonra yaranmışdır. Redis 8.0 buraxılışında kod AGPLv3 açıq lisenziyasına qaytarıldı, lakin bu, Valkey layihəsinin inkişafına təsir etməyib. Valkey, Amazon, Google, Oracle, Ericsson və Snap kimi şirkətlərin inkişafçılarının iştirakı ilə Linux Foundation təşkilatının himayəsi altında neytral bir platformada inkişaf edir. Layihənin kodu C dilində yazılıb və BSD lisenziyası altında yayılır. Linux, macOS, OpenBSD, NetBSD və FreeBSD-də işləməsi dəstəklənir.
Valkey və Redis DB-ləri açar/dəyər formatında məlumatların saxlanmasını təmin edir, eyni zamanda siyahılar, həştəq və çoxluqlarla bağlı strukturlaşdırılmış məlumat formatlarını dəstəkləyir, bununla yanaşı, tərəfdə icra etmə imkanı var server Lua dilində emal skriptləri. DB yaddaşda saxlanılır və diskdəki versiya ilə sinxronizasiya olunur və ya diskdəki dəyişikliklər qeydi ilə əks olunur, bu da axmaq bağlanma halında məlumatların itkisinin qarşısını alır. İtransaksiyalar, ‘nəşr/abunə’ rejimi, artırma/azaltma əmrləri, siyahılar və çoxluqlarla (birləşmə, kəsişmə) əməliyyatlar, açarların adlandırılması, ustad-kölə replikasiyası, bir neçə seçim və sıralama funksiyaları dəstəklənir.
Yeni versiyada:
- Küçə GUI arasında məlumatların daşınması üçün atomik slotların miqrasiya texnikası tətbiq edilir, burada məlumatlar ayrılmış açarlar (bir açar başqası) səviyyəsində deyil, 16384 baytlıq məlumat saxlanma slotlarının atomik hərəkəti səviyyəsində daşınır. Daşınma, AOF formatından istifadə edərək, açar ilə əlaqəli bütün məlumatları göndərmək əvəzinə fərdi kolleksiya elementlərini göndərməyi mümkün edir. Bu yanaşma, performansı artırır, yönləndirmələrdən qaçınmağa imkan verir və müştərinin daşınan açara giriş zamanı meydana gələn gecikmələri aradan qaldırır.
- Bir açara bağlı olan həştəqlərdə müxtəlif sahələr üçün ayrıca ömür müddətinin müəyyən edilməsi imkanı əlavə edildi (əvvəlcə ömür müddəti açara bağlanmışdı və bütün sahələri əhatə edirdi). Məlumatların ömrünü idarə etmək üçün yeni əmrlər əlavə edildi: HEXPIRE, HEXPIREAT, HEXPIRETIME, HGETEX, HPERSIST, HPEXPIRE, HPEXPIREAT, HPEXPIRETIME, HPTTL, HSETEX və HTTL.
- Küçə rejimində nömrələnmiş DB-lərin istifadəsi imkanı təqdim edilib, burada açar müdafiəsi bir neçə fərqli DB-yə bölünür (şəxsi 16-dır).
- Böyük küclərin iş qabiliyyətini artırıb - saniyədə bir milyard sorğu işləmək qabiliyyətinə malik 2000 düyünlü bir kücl nümayiş etdirilib.
- Bəzi hallarda proaktiv yükləmə yolu ilə gücləndirmə qabiliyyətini 40% artıran optimallaşdırma əlavə edilmişdir.
- Optimallaşdırma əlavə edildi ki, bu da bəzi hallarda yaddaşda məlumatların surətinin çıxarılması (zero copy) sayəsində ötürmə qabiliyyətini 20% artırmağı təmin edir.
- Çoxsaylı TCP texnologiyasının dəstəyi əlavə edildi ki, bu da fərqli IP ünvanlarına bağlanmış müxtəlif şəbəkə interfeysləri vasitəsilə paketlərin eyni anda bir neçə marşrut üzrə ötürülməsini təşkil etməyə imkan tanıyır. Çoxsaylı TCP-nin tətbiqi bəzi hallarda gecikməni 25% azaltmağa kömək edir.
- BITCOUNT və HyperLogLog-da SIMD prosessor təlimatlarını istifadə edən optimallaşdırmalar əlavə edildi ki, bəzi hallarda ötürmə qabiliyyətini 200% artırır.
- Coğrafi indekslərdə poliqon koordinatları üzrə məkan sorğularının dəstəyi əlavə edildi.
- Qeyd olunan dəyərə uyğun gəldikdə açarı silmək üçün "DELIFEQ" komandası əlavə edildi.
- "CLIENT LIST" komandasına ad, bayraqlar, aktivlik, DB və IP ünvanı səlahiyyətlər üzrə elementlərin süzgəclərini tətbiq etmək imkanları əlavə edildi.
- Əvvəlcə dəstəkdən çıxarılan 25 komandanın dəstəyi bərpa edildi.
Mənbə: opennet.ru
