הפעם הקלטנו לבד ללא אורחים
- קצת רקע היסטורי, על בסיסי נתונים רלציונים ושווקים שחייבים אותם
- מה בסיסי נתונים רלציונים יודעים לתת ומה לא, ומה זה ACID
- כאשר ה- data גדל - צריך לפצל, על מה אפשר לוותר?
- פתרון ביניים: sharding עד מתי? סיפור מקרה של eBay
- התיאוריה של Brewer : CAP (Consistency, Availability, Partition tolerance)
- כמה עולה להתפשר על consistency, רמות שונות וסוגי אפליקציות שבהן זה מתאפשר
- זה בסדר קצת לשחרר את הלחץ של consistency, מה מרוויחים?
- מוצרים נפוצים BigTable, HBase, Dynamo, Cassandra והפתרונות של MySQL
- רמות שונות של eventual consistency: causal consistency, read-your-writes , monotonic read/write
- למה בחרנו ב- Cassandra?
הקובץ נמצא כאן
האזנה נעימה ותודה לגיא על התקציר
לא מעט מפתרונות ה-noSQL מאפשרים גידול של הנתונים על ידי חלוקת הנתונים על פני מספר שרתים באופן דומה ל-sharding עם hash function כפי שציינתם שניתן לעשות עם מסדי נתונים רלצניוניים קלאסיים.
השבמחקהיתרון המשמעותי של פתרונות ה-noSQL הוא בעובדה שהם נכתבו לצורך עבודה זו - כלומר התכנון הפנימי שלהם נועד לעבודה על פני שרתים רבים. הליבה של מסדי הנתונים הרלציוניים הקלאסיים נכתבה לפני 20 שנה, והם לא תוכננו לסוג כזה של עבודה.
היתרון השני הוא שמרבית הפתרונות הפופולריים היום נתמכים על קוד פתוח, כך שעלות השימוש בהם נמוכה.
מצד שני, הם דורשים כתיבת קוד נוסף כיוון שהפתרונות הללו מספקים פונקציונאליות בסיסית יותר. אם אתם מנוסים בשימוש עם מסדי נתונים רלציוניים, אתם יכולים להשיג תוצאות משמעותיות עם הפתרונות הקיימים. אתם יכולים לראות את ההרצאה של youtube:
http://www.youtube.com/watch?v=ZW5_eEKEC28
עומר, מה שאתה אומר הוא נכון מאוד. הקלטנו היום פרק המשך באותו נושא.
השבמחקתודה על הוידאו של קון מיוטיוב - עבדתי איתו אבל לא ידעתי על הוידאו שלו
היה מאוד מעניין. מתוכנן המשך?
השבמחקשימי
כן, בתנור...
השבמחקמעניין אותי מה היתרונות והחסרונות של Voldemort מול cassandra ?
השבמחקהי איל, מהיכרותי המועטה עם לורד וולדמורט, זהו דאטביים מבוסס key-value בזמן שקסנדרה נותן מודל יותר עשיר הקרוי column oriented שזה משהו כמו key-multiple-values עם עוד כל מיני צ'יכלולים.
השבמחקאני משתמש בוולדמורט (עכשיו ובחברה הקודמת בה עבדתי) אך לא יצא לי להשתמש בקסנדרה עדיין (מקווה להתקין בקרוב). סיכום קצר ממה שאני יודע:
השבמחק* Cassandra supports range queries under certain conditions, so if you need that then cassandra is better.
* Voldemort versioning seems to be more capable; cassandra appears to do "last update wins" based purely on a timestamp to resolve inconsistency, which is OK for some applications, but lacks the flexibility to do client-side inconsistency resolution and updating values based on bad reads (sort of transactional). So what Voldemort is doing is more sophisticated, but for some applications the difference is probably not all that important.
* Voldemort supports client and server routing . Cassandra does only server routing. This would mean slightly better theoretical latency for
Voldemort just from that.
* Voldemort uses pluggable back-ends (BDB, MySQL, in memory readonly and more), many of them mature, so it offloads some of the risk whereas Cassandra implements everything. Each approach has advantages and disadvantages.
* Cassandra only supports String keys while Voldemort support anything with a Serializer. I use Google's Protobuf for heavy numeric datastractures which speeds up things a lot and simple strings or JSON for others.
* Voldemort has a very simple API (no need for thrift etc)
Forgot to mention another nice feature coming to Voldemort which is the views. It enables the server to return a transformation of the data to the client. For example, if you already have large values on the server and one day you want only a small subset (Foo) of the value (Bar) to be return you can add a view which returns Foo which is a transformation of Bar.
השבמחקYou can see it as a stored procedures you can write in Java which may reduce the network bandwidth, usually more expensive then CPU, of moving too much data on the wire.
Thanks Eishay, we've also answered the question in podcast 60, on its way although not as knowledgeable as your answer...
השבמחקמצאתי כלי מדליק שמאפשר לסרוק רשתות שלמות ולאתר שרתי SQL
השבמחקוגם מאפשר לנסות לפצח את הסיסמא שלהם במהירות
(עובד גם ברשתות מקומיות וגם באינטרנט:-)
זה הלינק:
http://www.softpedia.com/get/Internet/Servers/Database-Utils/SQL-Locator.shtml
מכירים כלים נוספים לסוגי SQL אחרים? (להשלמת ארגז הכלים - בעיקר לאבטחת מידע)