By Felipe Cardeneti Mendes בשנת 2008, Apache Cassandra הציב סטנדרט חדש עבור גמישות מסד נתונים. נולד כדי לתמוך ב- Inbox Search של פייסבוק, מאז הוא נלקח על ידי ענקים טכנולוגיים כגון Uber, Netflix, ו- Apple - שם הוא מנוהל על ידי מומחים שעובדים גם בתור תורמים של Cassandra (ביחד עם DataStax / IBM). אבל מה לגבי ביצועים? הפשטות? היעילות? הגמישות? בשנת 2015, ScyllaDB לאחר יצירת KVM והתקפה של הלינוקס, המייסדים האמינו כי הזמן היה אידיאלי: רק שנה קודם לכן, נטפליקס פרסם את המספרים שלהם מראה איך לדחוף זה היה הישג מרשים, אבל אחד הדורש השקעות תעשייתיות משמעותיות ומאמצים של התאמה. נולד כדי ללכת מעבר לשימוש משאבים סובאופטימלי של קאסנדרה גישה להנדסה ברמה נמוכה Apache Cassandra ל 1 מיליון כתיבה RPS הרעיון היה פשוט למדי (בתיאוריה, לפחות): לקחת את האדריכלות המרווחת של אפאצ'ה קאסנדרה וליישם אותה מחדש ליד המתכת תוך שמירה על תאימות פרוטוקול חוט. כדי למנוע מחלוקות, הכל נעשה אסינכרוני, וכל האופטימיזציות האלה היו בשילוב עם לוח הזמנים הפנימי האוטונומי עבור תפעול מינימלי. ארכיטקטורה shard-per-core בעוד שאני לא יכול לדבר עם הכיוון הנוכחי של קאסנדרה, ScyllaDB התפתח באופן משמעותי מאז - לעבור מ " יישום מהיר יותר של Cassandra למסד נתונים עם זהות משלו ומערך תכונות ייחודי. רק ספויילר: בסרטון זה, אני הולך לך דרך כמה הבדלים מרכזיים בין ScyllaDB ואיך זה שונה מ- Apache Cassandra. אני מדבר על ההבדלים ביצועים, גמישות ויכולות כגון עדיפויות עומס עבודה. אתה יכול לראות איך ScyllaDB מפות נתונים על בסיס ליבה CPU, סולם במקביל, ו- de-סיכונים שינויים טופולוגיה - המאפשר לו להתמודד עם מיליוני OPS עם עיכובים נמוכים צפויים (ולא התאמה קבועה ועידוד תינוק). האבולוציה של ScyllaDB הדור הראשון של ScyllaDB היה הכל על ביצועים גלויים.זה היה כאשר הציגנו את ארכיטקטורת asynchronous shard-per-core, קישוריות מבוססות שורות, ותוכניות מתקדמות שמציעות עיכובים נמוכים צפויים. הדור השני של ScyllaDB נועד לשוויון תכונות עם Cassandra, אבל למעשה הלכנו מעבר לזה. (כל מה שקשור לקסנה) כמו כן, ScyllaDB הציגה גם באותה שנה, הם הוצגו רק ב-Cassandra 5 (לאחר יתר על כן, יישום Paxos שלנו עבור עסקאות קלות נמחק תרגום של Cassandra. תצפיות ממוחשבות ומדדים משניים גלובליים מוכנים לייצור דגלים כמו ניסוי תמיכה באינדקסים משניים מקומיים 3 יישומי אינדקס שונים הרבה מההגבלות וההגבלות הדור השלישי סימן את המעבר שלנו אל הענן, יחד עם חדשנות מתמשכת.זוהי הסיבה שהוצג ScyllaDB Alternator – התוכנה התואמת ל-DynamoDB שלנו. in 2020 (something במהלך תקופה זו, שיפרנו באופן דרמטי את מהירות התיקון עם תיקון ברמת השורה והציבנו עדיפות על עומס העבודה (עוד על זה בסעיף הבא). דחיסה ZSTD קאסנדרה אימצה את זה רק באיחור של 2021. הדור הרביעי של ScyllaDB הופיע בסביבות הזמן ש- AWS הכריזה על משפחת ההזדמנויות i3en שלה, עם ערוצי צפיפות גבוהה המחזיקים עד 60TB של נתונים ( במהלך תקופה זו, הציגנו את אסטרטגיית ההכפלה הגוברת (ICS), המאפשרת למשתמשים להשתמש עד ל-70% מהאחסון שלהם לפני הגדלה. משהו שקסנדרה עדיין נאבקת להתמודד ביעילות כמו כן הציגנו עם גישה שונה לגמרי מאשר של קאסנדרה. עם מושגים כגון , BYPASS CACHE, per-query configurable TIMEOUTs, ועוד הרבה יותר. שינוי קלטת נתונים (CDC) הרחבת פרוטוקול CQL Shard מודעות לבסוף, אנו מגיעים לדור החמישי של ScyllaDB, אשר עדיין מתפתח. שלב זה מייצג את הדרך שלנו לקראת עקביות חזקה וגמישות עם Raft ו טבליות. אפשרויות שמבדילות את ScyllaDB המהנדסים שלנו הציגו הרבה תכונות מעניינות במהלך העשור האחרון.בהתבסס על האינטראקציות שלי עם משתמשי Cassandra לשעבר, אני חושב שהם המעניינים ביותר לדון כאן. Tablets Data Distribution כל שולחן ScyllaDB מחולק לחתיכות קטנות יותר ("טבליות") כדי להפיץ באופן שווה את הנתונים ואת העומס ברחבי המערכת. הטבליות מביאות גמישות ל- ScyllaDB, ומאפשרות לך להכפיל באופן מיידי, לשלושה, או אפילו 10 פעמים את גודל הקבוצה שלך כדי להתמודד עם גדלים בלתי צפויים של תנועה. Raft-Based: עקביות חזקה עבור מטא-נתונים Raft מציג עקביות חזקה לנתוני המטא של ScyllaDB. עברו הימים שבהם שינוי תבנית עלול לדחוף את הקולסטר שלך להתנגדות או שאתה מאבד גישה כי אתה שוכח לעדכן את גורם העתקה של מרחב המפתחות האותנטיזציה שלך (בעיות שעדיין מטרידות Cassandra). Workload Prioritization מאפשר לך לשלב עומסי עבודה מרובים תחת קבוצה אחת, כל אחד עם הסכם SLA משלו. באופן בסיסי, הוא שולט כיצד עומסי עבודה שונים מתחרים עבור משאבי המערכת. צוותים משתמשים בו כדי להעדיף בקשות יישום דחופות הדורשות זמנים של תגובה מיידית לעומת אחרים שיכולים לסבול עיכובים קטנים יותר (לדוגמה, סריקות גדולות). מקרים של שימוש נפוצים כוללים איזון בזמן אמת לעומת עיבוד מנות, חלוקת כתיבות מהקריאה, וחיזוק עומס עבודה / תשתית. עדיפות עבודה Repair-based Operations פעולות המבוססות על תיקונים מבטיחות שהנתונים של הקבוצה שלך יישארו בסנכרון, גם במהלך שינויים בטופולוגיה. , שבו פעולות כגון החלפת כפתורים נכשלים יכולות ScyllaDB גם מסיר לחלוטין את הבעיה של חידוש נתונים, הודות . שגיאת עקביות נתונים בתוכנת Apache Cassandra result in data loss איסוף פסולת קברים מבוסס תיקון Incremental Compaction ICS מפחית באופן משמעותי את הרחבה זמנית של החלל, וכתוצאה מכך יש יותר שטח דיסק זמין לאחסון נתונים של משתמשים – וזה מסיר את הדרישה הרגילה של 50% של שטח פנוי בדיסק שלך. Row-based Cache הקאש המבוסס על שורות של ScyllaDB הוא גם ייחודי. הוא מופעל כברירת מחדל ואינו דורש התאמה ידנית. באפשרותך למנוע זיהום בקאש על-ידי שמירה על פריטים חשובים מפני שאינם זמינים. להפחית באופן משמעותי את זמן הגישה I/O בעת קבלת נתונים מהדיסק. Bypass קבצים תגית: index caching Per-shard Concurrency Limits and Rate Limiters ScyllaDB כולל מגבלות תואמות לכל מקטע ומגבלות קצב לכל מקטע כדי להגן מפני שיאים בלתי צפויים. בין אם מתמודדים עם לקוח מתנהג לא נכון או עם זרם של בקשות למפתח מסוים, ScyllaDB מבטיח גמישות שבה Cassandra נופלת לעיתים קרובות. DynamoDB Compatibility ScyllaDB מציעה גם שכבה תואמת ל-DynamoDB, ומרחיקה את עצמה עוד יותר ממקורותיה של Apache Cassandra. זה מאפשר לקבוצות להפעיל את עומסי העבודה שלהם של DynamoDB בכל ענן או מקומי – ללא שינויים בקוד, ועלות נמוכה ב-50%. מה יהיה הבא? בכנס Monster SCALE לאחרונה, מנכ"ל / מייסד משותף דור להור שיתף נקודת מבט על מה שעומד לקרות עבור ScyllaDB. מוכן עכשיו (ראה את זה) ו לפרטים נוספים : פוסט בלוג עמוד המוצר היכולת לפעול בבטחה ב- 90% מהשימוש באחסון תמיכה בקבוצות עם גרסאות מסוג מקרה מעורב דינמיות והלוואות גמישות חיפוש ויקטור לטווח קצר : שולחנות עקביים מאוד שירות הזרקת שגיאות תיקונים גלויים אחסון אובייקטים ודרגות טבלאות עבור שולחנות עקביים לטווח ארוך עסקאות מרובות מפתח Analytics וטרנספורמציות עם UDFs איזון חלקיקים גדולים אוטומטי תשתית בלתי משתנה עבור יציבות ואמינות גדולות יותר מצב רבייה לשינויים בתשתית גמישים ויעילים יותר לפרטים נוספים, צפו בשיחה המלאה כאן: תגית: ScyllaDB מהיר יותר מ-Cassandra (אני אשתף את התוצאות האחרונות שלי כאן בקרוב).אבל גם ScyllaDB וגם Cassandra התפתחו עד לנקודה שבה ScyllaDB כבר לא "רק" Cassandra מהירה יותר.אנו התפתחו מעבר ל-Cassandra.אם הפרויקט שלך צריך ביצועים צפויים יותר – ו/או יכול להרוויח מהאופטימיזציות של גמישות, יעילות ופשטות שאנחנו מתמקדים בהן כבר שנים – ייתכן שתרצו גם לשקול להתפתח מעבר ל-Cassandra. זה כדי ללמוד עוד על ScyllaDB, בקר https://www.scylladb.com/ באפשרותך לגשת לספרי מסד נתונים בחינם, לכיתות אדריכלות ועוד https://resources.scylladb.com/ https://www.scylladb.com/ https://resources.scylladb.com/