זיכרון מטמון במקום בסיס נתונים

חברת Software AG מציעה פתרנות זיכרון מטמון של Terracotta לסביבת ג'אווה המאפשרים ליישומים לעבוד ישירות מול הזיכרון, ובכך לחסוך את הפנייה לבסיס הנתונים. האם מדובר על עידן חדש של עיבוד מידע?

חברת טרה קוטה (Terracotta) נרכשה על ידי Software AG לפני כשנה וחצי וכיום פועלת ממשרדי החברה באור יהודה. החברה פיתחה טכנולוגיה של זיכרון מטמון (caching) לסביבת ג'אווה המבוססת על מוצר הקוד פתוח Ehcache, כאשר הרעיון אחרי הטכנולוגיה הוא לגרום ליישום שפותח בג'אווה לעבוד מול המידע בזיכרון ה-RAM בתצורת InMemory , במקום לפנות לבסיס הנתונים. למה זה חשוב? מכיוון שעבודה ישירה מול הזיכרון מאפשרת ליישום להתמודד עם עשרות טרה בייט של מידע גולמי במהירות רבה.

"למעלה מ-70 אחוזים ממשתמשי הג'אווה של סאן עובדים עם Ehcache", מסביר ניר אטיאס, מנהל מכירות אזורי ב- Software AG שאחראי על קידום הטכנולוגיה בארץ. "הקוד הפתוח של Ehcache ממשיך להיות מפותח, ועל בסיסו בנינו מוצרי פרמיום. הפתרון שלנו נקרא Big Memory והוא נותן ללקוח אפשרות להגדיל את המידע שמנוהל בזיכרון עד למגבלות החומרה.

[פתרון BigMemory Go של חברת Terracotta]

"יישומי הג'אווה היום מוגבלים בעיקר בגלל ניהול הזיכרון (בעיות של Garbage Collection). גם בגרסה 7 לא מצליחים לנהל את הזיכרון מעל ל-6 גיגהבייט. אנחנו רואים אצל הלקוחות בעיות של בעיות בפעולת היישום אפילו ב-4 גיגהבייט. אצל אחד הלקוחות שלנו, 20 אחוזים מזמן השרת מוקדשים לניקיון הזיכרון. כלומר, אחת לחמש דקות הוא עוצר ולא נותן שירות ללקוחות. הטכנולוגיה של טרה קוטה באה לתת מענה לעבודה עם נפחי מידע גדולים בזיכרון. מדובר על גישה למידע במהירות שמגיעה למילי ומיקרו-שניות. בנוסף, מכיוון שהמידע אינו קשור לבסיס נתונים אלא קיים בזיכרון, הטכנולוגיה מאפשרת ליישום לפעול במגוון ערוצי מידע כמו למשל שרת אפליקציות, מובייל ופלטפורמות אינטרנטיות.

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

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

שתי גדות לנהר הנתונים

טרה קוטה מציעה שתי פתרונות, אחד מקומי בשרת תחת השם BigMemory Go והשני BigMemory Max המשמש כמערך זיכרון מבוזר על פני מספר שרתים בצורה שמזכירה 'ענן' של מידע. "פתרון ה- BigMemory Go נותן הרחבה של מרחב הזיכרון של ג'אווה (heap)", אומר אטיאס. "היום מדובר על מרחב של בין 2 ל-4 ואולי בעתיד 6 גיגהבייט של זיכרון ומעל לזה היישום מתחיל לקרטע ולעבוד לאט.

"הפתרון שלנו מאפשר לג'אווה להמשיך לנהל מרחב זיכרון קטן, כאשר ה- BigMemory במקביל מנהל אזור שנקרא off heap שבו אין Garbage Collection כי הוא לא מנוהל על ידי ג'אווה. בצורה כזו ניתן לנצל את כל מרחב הזיכרון של החומרה בלי לפגוע בביצועי היישום. אפשר להוריד את ה-BigMemory Go עבור JVM יחיד עד נפח זיכרון של 32 גיגה בייט בחינם, ומשלמים רק כאשר רוצים להרחיב מעבר לכך או כאשר רוצים לקבל מאתנו שירות ותמיכה. לרוב הלקוחות JVM יחיד בגודל 32 גיגה בייט מספיק.

[פתרון  BigMemory Max של חברת Terracotta]

"הפתרון השני נקרא BigMemory Max שהוא מערך זיכרון משותף, מעיין ענן זיכרון שמחזיק בתוכו חוליות של זיכרון (Stripes) מבוססי Big memory. זה פתרון שיכול להיות משותף לכמה יישומים במקביל עם יכולות של זמינות, יתירות ומנגנוני תורים. חשוב לציין כי הגישה לזיכרון במקרה של מערך שרתים תלויה גם בתקשורת. אם מדובר על TCP ההשהיה (latency) היא בערך 5 מילי-שניות, ובפתרון מבוסס InfiniBand מדובר על מיקרו-שניות.

"יחד עם זאת, ברוב התרחישים שאנו מכירים מלקוחות, פעולה מלאה של יישום (round trip) לוקחת הרבה יותר מ-100 מילי שניות. אם הטכנולוגיה שלנו, אותה פעולה תיקח בין 5-10 מילי שניות. יש לקוחות שמבחינתם זה חלום. צריך להבין כי מדובר בשינוי מרחיק לכת.

"עוד יתרון במוצר ה- BigMemory Max היא האפשרות לגדול ליניארית. בפתרונות אחרים של מערכי InMemory, מנגנוני השכפול גורמים להאטה. כלומר, כל גיגה של זיכרון שמוסיפים למערך מוריד מהמהירות שלו. הארכיטקטורה שלנו מאפשרת ללקוח להגדיל את החוליות הקיימות במערך או להוסיף חדשות בצורה שקופה ליישומים. יש לנו לקוח עם מערכת גילוי הונאות שעובדת מול מערך שמכיל 4 טרה בייט של מידע בזמן גישה מרבי לפעולה של 20 מילי-שניות. לפני כן אותה פעולה לקחה להם 45 שניות.

שינוי טכנולוגי-עסקי

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

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

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

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

איסוף וניתוח מידע מהיר יותר

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

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