Dragonfly, פרויקט שמתיימר להיות התחליף המהיר יותר של Redis ו-Memcached

הידיעה פורסמה כי הגרסה הראשונה כבר זמינה מערכת אחסון נתונים בזיכרון Dragonfly, המספקת תמיכה לפרוטוקולי Memcached ו-Redis, אבל הוא מאפשר לשאילתות לפעול עם ביצועים גבוהים בהרבה וצריכת זיכרון פחותה.

המערכת מטפלת בנתונים בפורמט מפתח/ערך ויכולה לשמש כפתרון קל משקל להאצת אתרים בעמוסים כבדים, מטמון שאילתות איטיות ב-DBMS ושמירה של נתוני ביניים במטמון ב-RAM.

ה-BSL הוצע על ידי המייסדים השותפים של MySQL כחלופה למודל Open Core. המהות של BSL היא שקוד הפונקציונליות המורחבת זמין בתחילה לשינוי, אך למשך זמן מה ניתן להשתמש בו בחינם רק בכפוף לתנאים נוספים, המחייבים רכישת רישיון מסחרי לעקוף.

תנאי הרישיון הנוספים של פרויקט Dragonfly מחייבים את המרת הקוד לרישיון Apache 2.0 רק ב-1 ביוני 2027. עד לאותו מועד, הרישיון מאפשר שימוש בקוד רק כדי להבטיח את פעולת השירותים והמוצרים שלו, אך אוסר על שימוש ליצירת שירותי ענן בתשלום המשמשים כתוספת ל- Dragonfly.

שפיר מתיימרת להיות מערכת אחסון הזיכרון המהירה בעולם, לפי מפתחים ואמות מידה. בהשוואה לרדיס, Dragonfly השיגה עלייה של פי 25 בביצועים והפחתה פי 3 בצריכת הזיכרון בעומסי עבודה טיפוסיים. שרת Dragonfly יחיד יכול לעבד מיליוני בקשות בשנייה, לדוגמה, בסביבת Amazon EC2 c6gn.16xlarge, הושגה תפוקה של 3,8 מיליון בקשות בשנייה.

במבחני אחסון של 5GB, Dragonfly דרש 30% פחות זיכרון מאשר Redis. במהלך יצירת תצלומים באמצעות הפקודה "bgsave" צריכת הזיכרון עולה, אך בזמני שיא היא נשמרת כמעט פי שלושה פחות מאשר ברדיס, ופעולת כתיבת ה-Snapshot עצמה מהירה הרבה יותר (בבדיקה כתבה תמונת מצב ב- שפירית תוך 30 שניות, ו- Redis - תוך 42 שניות).

ביצועים גבוהים מושגים הודות לארכיטקטורה מרובת חוטים אין משאבים משותפים (shared-nothing), מה שמרמז שבקר נפרד ועצמאי עם פיסת נתונים משלו מצורף לכל פתיל, שעובד ללא מוטקסים או ספינים. מנעולי VLL קלים משמשים כדי להבטיח אטומיות בעת התמודדות עם מפתחות מרובים. כדי לאחסן מידע ביעילות בזיכרון, נעשה שימוש במבנה טבלת ה-dashtable, המיישמת מעין טבלאות hash מחולקות.

מהפונקציות הזמינות ב הגרסה הראשונה מדגישה תמיכה בפרוטוקול RESP2 ו-130 פקודות Redis, שמתאים בערך לפונקציונליות של מהדורת Redis 2.8.

בנוסף, Dragonfly תומך בכל הפקודות Memcached מלבד CAS (אמת והגדר), מספק תמיכה בפעולות א-סינכרוניות ליצירת צילומי מצב, מספק צריכת זיכרון צפויה, מספק מתורגמן מובנה Lua 5.4 ותומך בסוגי נתונים מורכבים כגון גיבוב, סטים ורשימות (ZSET, HSET, LIST, SETS , ו-STRING).

בנפרד, מצב מטמון זמין, שבו נתונים ישנים מוחלפים אוטומטית בנתונים חדשים לאחר מיצוי הזיכרון הפנוי. ניתן לקשר לנתונים לכל החיים שבמהלכם הנתונים נחשבים רלוונטיים.

ניתן לשטוף את מצב האחסון לדיסק ברקע לשחזור מאוחר יותר לאחר אתחול מחדש. לניהול המערכת, מסופקים מסוף HTTP (מתחבר ליציאת TCP 6379) וממשק API להחזרת מדדים תואמי Prometheus. במהדורות עתידיות, אנו מתכננים להרחיב את התמיכה בפקודות Redis וליישם את היכולת לשכפל אחסון עבור כשל ואיזון עומסים.

לבסוף, אם אתה מעוניין ללמוד עוד על זה, עליך לדעת שקוד Dragonfly כתוב ב-C/C++ ומופץ תחת רישיון BSL (רישיון מקור עסקי).

ניתן להתייעץ לגבי הפרויקט בקישור הבא.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי על הנתונים: AB Internet Networks 2008 SL
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.