בסיס נתונים ליישומי זמן אמת

בחברת Redis Labs מפתחים יכולות להרחבה של בסיס הנתונים וביצועים מהירים. ראיון מיוחד

 

אילוסטרציה: Bigstock

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

"בסיסי הנתונים הרלציונים נבנו לפני עשרות שנים על מנת לאחסן נתונים בצורה טבלאית", מסבירים בחברה בראיון לישראל דיפנס. "עידן הביג דאטה דורש יכולות אחרות של מידע לא מובנה (וידאו, תמונות), טיפול בנפחים גדולים, יכולת הרחבה פשוטה של בסיס הנתונים וביצועים מהירים".

ראוי לציין כי  Redis Labs אינה פועלת בשוק חדש. בסיסי נתונים בקטגוריית NoSQL קיימים כבר שנים ביניהם מונגו, קסנדרה, neo4j, אלסטיק ועוד. "אם פעם ארגון היה רוכש בסיס נתונים אחד עבור כל השימושים שלו, היום העולם השתנה. לכל בסיס נתונים יש ערך מוסף, והלקוח בוחר את בסיס הנתונים הכי נכון לשימוש", מסביר טל שקולניק, מנהל צוות ארכיטקטים בכיר. "היתרון שלנו טמון בפשטות וביצועים".

הפתרון של Redis הוא קוד פתוח (BSD licensed) כאשר החברה מוכרת שירותי תמיכה ותוספות שאינן נמצאות בקוד הפתוח. בהיבט תצורה, בסיס הנתונים בנוי על פעולה בתצורת In Memory שמשמעותה עבודה על בסיס זיכרון ה-RAM המהיר. בנוסף, ישנה תצורה אפשרית של שילוב מערך כונני SSD לצורך נתונים שאינם נדרשים בזמן אמת. בצורה כזו, ישנו מעבר של נתונים בין הסביבות בהתאם לצורך בהם. נתונים שיש בהם צורך מאוחסנים בזיכרון הנדיף, אחרים בSSD. לאחרונה החברה עשתה שיתוף פעולה עם אינטל סביב טכנולוגיית Intel® Optane™ DC. מדובר על שכבת זיכרון בין ה-RAM לSSD- שמטרתה לשפר את הביצועים של הזיכרון.

"לקוח לא חייב להחליף את תשתית בסיסי הנתונים הקיימת שלו", מסבירה פרידה ברונפמן בנט, מנהלת מכירות ישראל. "ניתן להתקין את Redis כשכבה נוספת המתפקדת כחוליה מקשר בין בסיס הנתונים הקיים לבין היישום, כך שבקשות הכתיבה והקריאה עוברות דרכו. כך הוא מונע צווארי בקבוק שנוצרו כאשר הביקוש לבסיס הנתונים המסורתי גדל, ונוצרו צווארי בקבוק".

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

על מנת לאפשר את מהירות התגובה משתמשים ברדיוס במספר יכולות. אחת מהן היא השימוש בשפת C. "שאתה עובד בשפת C אין סוגיות של ניהול זיכרון, איסוף זבל או heap", מסביר שקולניק. "המשתמש יכול לכתוב באחת מתוך 48 שפות תכנות שאנו תומכים, אבל בסיס הנתונים עובד עם C. יכולת נוספת היא השימוש בסוגי נתונים (data type) המאפשרים למשתמש לעבוד חכם מול בסיס הנתונים. השימוש בסוגי נתונים מאפשר העברת נתונים בין הצדדים (שאלה - תשובה) בגרנולריות מדויקת וזה משפר את האפקטיביות משמעותית. עוד יכולת היא עבודה א-סינכרונית מול בסיס הנתונים. אתה יכול לחכות לתשובה לאחר ביצוע פעולה או שלא. הכול תלוי בצרכים של היישום".

רעיון הפשטות

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

האפשרות של Redis לגדול בכמות השרתים ללא פגיעה בשירות או בשיהוי מבוססת על רעיון הפשטות. ישנו שרת פרוקסי שפותח על ידי החברה שמנהל תהליכים. כל תהליך מטפל במספר ידוע של מפתחות (כל מפתח מייצג סט נתונים) בכל שרת. כל תהליך כזה עצמאי ואינו דורש סנכרון עם תהליכים אחרים. בצורה כזו ניתן להוסיף תהליכים מבלי לפגוע באלו הקיימים, כאשר היישום עצמו מודע לתהליכים הקשורים אליו או שהיישום פונה לשרת הפרוקסי שמפנה את הבקשות לתהליכים הרלוונטים. "אנו תומכים בתצורת ענן ותצורה מקומית. כמו גם ישנם תהליכי אוטומציה מרובים בבסיס הנתונים שמפשטים את הניהול עבור המשתמש", מסביר שקולניק.

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

img
פרשנות | כוח צבאי משמעותי של נאט״ו יכול להקטין הסתברות למלחמה גרעינית באירופה
דעה | אופציה צבאית ישראלית תוכל לרסן את איראן 
קבוצת SQLink רוכשת את ZIGIT הישראלית
קבוצת SQLink רוכשת את ZIGIT הישראלית