איך אורקל מצליחים לקרוא 2.5 מיליארד רשומות בשנייה?

הכל על התכונה החדשה והמשמעותית שחשפה אורקל וצפויה להפוך זמינה לקהל הרחב תוך פחות מחודש, ה-In Memory Option.

shutterstock servers

הפוסט נכתב על ידי זהר אלקיים, יועץ טכנולוגי בכיר, מומחה בטכנולוגיות Oracle ו-CTO בחברת בריליקס.

במסיבת עיתונאים שנערכה לפני כשבוע בדיוק בסן פרנסיסקו, הכריז לארי אליסון על התכונה החדשה ביותר שמתווספת לאורקל 12c: ה-In Memory Option. ההכרזה אומנם היתה לפני כשבוע אבל השחרור הרשמי של הפיצ’ר לקהל החדש יהיה רק בעוד כחודש.

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

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

אורקל הציבו לעצמם שלוש מטרות עיקריות:

  1. לבצע שליפות במהירות שעולה בסדר גודל (אחד, שניים או שלוש – בין פי 10 לפי 1000) בעולם של דו״חות אנליטיים.
  2. להמשיך ולתת ביצועים טובים למערכות OLTP (ניהול טרנזאקציות) ואפילו לשפר את הביצועים האלה באמצעות הטכנולוגיה החדשה.
  3. מרבית בסיסי הנתונים המוגדרים in memory דורשים שינויי קוד או ארכיטקטורה של האפליקציה כדי לתמוך ב-in memory analytics. אורקל שמו לעצמם מטרה שלא יהיה צורך לשנות את האפליקציה.

באופן מפתיע, אורקל מכירים בעובדה שכבר קיימים מתחרים בשוק שסיפקו פתרונות ל-in memory databases בשנים האחרונות. לדבריהם מטרות 2 ו-3 (ביצועים טובים בעולם הטרנזאקציות ומעבר “שקוף” לאפליקציה) היו דבר שלא ניתן היה להתפשר עלו והן אלו שהשהו את כניסתם לתחום עד כה.

לדברי אורקל, הם עמדו ביעדים שלהם מעל ומעבר:

  1. ביצוע שליפות בבדיקות של לקוחות הראו ביצועים שעומדים בקריטריונים שהוצבו
  2. ביצוע OLTP מתבצע מהר יותר באמצעות הטכנולוגיה החדשה.
  3. האופציה החדשה של אורקל אינה דורשת שום שינוי. למעשה, לוקח מספר דקות מועט כדי לממש אותה.

איך המידע נשמר?

במשך השנים התקבעו שתי גישות לארגון מידע בתוך בסיסי נתונים (מבחינה פיזית):

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

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

איך הטכנולוגיה עובדת?

ברגע שהמידע נקרא מהדיסק ועולה לזיכרון, עדיין נשאר לנו לעבד את המידע על ידי המעבד. אורקל מציגים תכונה נוספת של האופציה: מידע שנשמר בצורה של עמודה בזיכרון יכול להיות מעובד על ידי שימוש בפקודת SIMD – Single Instruction Multi Data, או vector instruction – פקודות שבדרך כלל משמשות לעיבוד מדעי או האצה של גרפיקה. באמצעות שימוש בפקודות מעבד אלה ניתן לסרוק כ-2.5 מיליארד רשומות בשנייה. הדבר מתבצע בכל core בנפרד כך שבמערכת שיש בה יותר מעבדים ויותר core-ים, המספר עולה בצורה לינארית וביצוע של Scale Up פשוט מעלה את ביצועי המערכת.

לעומת זאת, מבחינת Scale out הטכנולוגיה תומכת ב-RAC בצורה מלאה. אין צורך ב-Exadata או בפתרונות בנויים מראש אחרים. המידע שנשמר בזיכרון ישמר לכל רוחב ה-cluster ושליפות מול ה-in memory יתבצעו במקביל בכמה node-ים. ההודעות בין ה-node-ים (כאשר מדובר בהקסה-דטה) יעברו ישירות ל-infiniband – direct to wire protocol, כדי להאיץ את מעבר המידע מ-node ל-node.

שינוי נוסף שהוצג היה מבחינת ביצוע של שליפות – פעולות שבעבר דרשו join-ים הופכות עכשיו לפעולות של fast column scan של עמודות. הדבר משפר את ביצועי השליפות בלפחות פי 10.

שיפור ב-OLTP

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

איך מפעילים את המוצר?

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

אין צורך בבניה מחדש של בסיס הנתונים ואין צורך בשינוי קוד של האפליקציה. אורקל in memory db לא דורש שכל בסיס הנתונים יהיה בזיכרון. המערכת מאפשרת ניהול של שכבות שונות לסוגים של מידע: זיכרון, Flush או דיסקים. המערכת מעבירה מידע בין השכבות השונות בצורה שקופה למשתמשים.

מבחינת HA: מכוון שהצורה שבה נשמר המידע בדיסק לא השתנתה, המנגנונים הישנים (גיבויים, data guard ו-golden gate) לא השתנו ועדיין קיימים ואפשר להמשיך להשתמש בהם. מכוון שהמידע המסודר בעמודות נשמר בזיכרון של שני node-ים לפחות בכל זמן, זה אומר שאם אחד מהם נופל המידע קיים במקום נוסף בצורה אוטומטית והמעבר לקבל את הנתונים מהשרת השני היא שקופה למשתמש.

עבודה עם שאר מוצרי אורקל

ה-In Memory DB מאושר לעבודה עם כל האפליקציות של אורקל: E-Business Suite, Fusion Application, JD Edwards, PeopleSoft, Siebel ועוד. אין צורך בטעינה מחדש של הנתונים ואין צורך בשינויים אפליקטיביים. המערכת תומכת גם ב-Multitenant architecture.

בנוסף, אליסון הציג סוג חדש של שרת – SPARC M6-32Big Memory Machine – מדובר בשרת בודד בעל 32 מעבדים וכמעט 400 ליבות. בשרת כ-32 טרה של זיכרון DRAM והוא מהווה את השרת הגדול ביותר שיש לאורקל להציע. לדבריו, מערכת כזו מסוגלת לסרוק עד טריליון (אלף מיליארד) רשומות בשנייה.

בסיום ההרצאה התבצעו מספר הדגמות קצרות:

  1. הודגמה סריקה של 4 מיליארד רשומות, ללא אינדקסים, על מכונה בעלת 2 מעבדים (לא ברור כמה core-ים וכמה זיכרון) – השליפה הסתיימה בפחות משניה.
  2. לאחר מכן הורצה שליפה על full rack של exadata 8 מכונות, 2 מעבדים כל אחת, לא ברור כמה core וכמה זיכרון. השליפה הורצה על 32 מיליארד רשומות וגם היא הסתיימה בשנייה אחת.
  3. הודגמה היכולת לשמור את המידע בשכבות שונות: מידע בזיכרון, ב-flush ובדיסקים רגילים: השליפה התבצעה על טבלה בעלת טריליון רשומות והסתיימה בתוך 3-4 שניות.
  4. הרצה של אותה שליפה על מכונה עם 32 טרה זיכרון איפשרה להעלות את כל הרשומות לזיכרון ולסיים את הפעולה בשנייה אחת.

סיכום

מדובר באחד הפיצרים המעניינים והחשובים ביותר בגרסה 12c. בהנחה שבאמת מדובר במשהו שמגיע ואפשר להטמיע אותו כמעט out of the box אז זה ישנה את הדרך שבה אנחנו מתייחסים לבסיס הנתונים. זה ישנה את הצורה שבה אנחנו מעצבים בסיסי נתונים, עושים כוונון ביצועים וכותבים שליפות.

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

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

הקלטת המצגת לאלו מכם שמביעים קצת יותר עניין (Oracle Database In-Memory)

הפוסט פורסם לראשונה באתר הקהילה ilDBA.

קרדיט תמונה: servers via shutterstock.

 

כתב אורח

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

הגב

6 תגובות על "איך אורקל מצליחים לקרוא 2.5 מיליארד רשומות בשנייה?"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
אני
Guest

כל הכתבה הארוכה הזאת ושום מילה על SAP HANA …. פרסומת , מישהו?

זהר אלקיים
Member

אני לא מכיר מספיק SAP HANA כדי להגיד משהו בנושא. אם אני לא מבין, אני לא כותב.

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

גם אני
Guest

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

דוד
Guest

פריירים לא מתים

מרטין טרני
Guest

כפי שהכותב צ יין כבר קיימים לכל הדברים האלה פיתרונות דומים בשוק, שהם בגס פתירונות טובים גם, כולל לMS (דרך MSSQL2014 לOLTP ו PDW לOLAP) שכבר מוכר ע”י לא פחות מפתחים מאורקל וגם הוא לא דורש מהמפתח ללמוד משהו חדש. עדיין כשמדובר בפיטרונות לאנליטיקה בתחום הBIGDATA ה HADOOP שולט משיבה לא פונקציומאלית כלל – בגלל המחיר!! ואני חוויתי את זה באירגונים בעצמי.
מהסיבות האלה קשה לי ליראות בהכרזה הזו מהפכה 0בעיקר בהתחשב במחירי אורקל) , אם כי זה באמת נשמע מעניין והגיע הזמן שגם למי שרוצה להשאר בסביבת אורקל תהיינה אפשרויות כאלה.

ארי
Guest

הם חיים בעולם משלהם העולם מתרחק מהכיוון הזה של מיליוני ומיליוני דולרים לרשיונות או מכונות מפלצתיות, והולך לכיוון של אופן סורס ומבוזר, ע”ע SPARK

wpDiscuz

תגיות לכתבה: