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

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

12/06/2014 | פורסם על ידי

במסיבת עיתונאים שנערכה שלשום בערב (10 ביוני 2014) בסן פרנסיסקו, הכריז לארי אליסון על התכונה החדשה ביותר שמתווספת לאורקל 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. בסיסי נתונים אנליטיים מאחסנים את המידע בצורת עמודות: קודם המידע מכל העמודה הראשונה, לאחר מכן על המידע מהעמודה השנייה וכן הלאה. דבר זה עוזר מאוד בביצוע פעולות אנליטיות המתבצעת על כמות גדולה של רשומות או על מידע ממעט עמודות (לדוגמה ביצוע סכום או ממוצע).

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

2014-06-12 06_46_17-

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

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

2014-06-12 06_48_08-

לעומת זאת, מבחינת 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 או דיסקים. המערכת מעבירה מידע בין השכבות השונות בצורה שקופה למשתמשים.

2014-06-12 06_47_18-

מבחינת 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

The following two tabs change content below.
זהר אלקיים הוא Oracle DBA מאז 1998 ויועץ בכיר מאז 2007 ובעל תואר Oracle ACE Associate. הוא מתמחה בתשתיות בסיסי נתונים, ארכיטקטורה ושיפור ביצועים. זהר הוא גם מדריך, מרצה בכנסים ובלוגר באתר www.realdbamagic.com מאז 2010. כיום הוא משמש כיום כ-CTO בחברת בריליקס ומנהל את האתר ilDBA.

3 תגובות ל- “איך אורקל מצליחים לקרוא 2.5 מיליארד רשומות בשנייה”

[…] הזה פורסם לראשונה ב-ilDBA: איך אורקל מצליחים לקרוא 2.5 מיליארד רשומות בשנייה. אני מעתיק אותו גם לכאן לצורך התיעוד. אם הגעתם עד כאן, […]

[…] הזה פורסם לראשונה ב-ilDBA: איך אורקל מצליחים לקרוא 2.5 מיליארד רשומות בשנייה. אני מעתיק אותו גם לכאן לצורך התיעוד. אם הגעתם עד כאן, […]

השאר תגובה:

שם (חובה):
אימייל (לא יפורסם) (חובה):
תגובה (חובה):

*



מאמרים קשורים

שינויים והסברים על Oracle Patching

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

כיוונן של Oracle 12c הלכה למעשה – חלק ב

בסקירה זו נמשיך לעבור על פיצ'רים חדשים באופטימייזר של אורקל 12c (Oracle 12c - 12.1.0.1.0) בצורה מעשית יותר ופחות תיאורטית. נשדתל לתת דוגמאות מהסביבה שלנו. זהו מאמר שני בסדרת מאמרים [...]
כיוונן

כיוונן של Oracle 12c הלכה למעשה – חלק א

בסקירה זו נעבור על פיצ'רים חדשים באופטימייזר של אורקל 12c (Oracle 12c - 12.1.0.1.0) בצורה מעשית יותר ופחות תיאורטית. נשדתל לתת דוגמאות מהסביבה שלנו. זהו מאמר ראשון בסדרת מאמרים [...]

12 פיצ'רים חדשים באורקל 12c

היום ומחר יש כנס גדול של ilOUG בירושלים. במסגרת הכנס הייתה הרצאה של טום קייט לגבי 12 פיצ'רים חדשים באורקל 12c. זה סיכום של ההרצאה שהייתה היום והייתה מ-ר-ת-ק-ת! דבר ראשון, וזה לא ממש פיצ'ר אבל בכל זאת [...]
Copyright 2017 ilDBA Portal. Brought to you by Brillix - Israel Leading DBA company. Sponsored by: DBSnaps - Database Video Tutorialss
Website Security Test
%d בלוגרים אהבו את זה: