שבוע שעבר Canonical הודיעה על שחרור גרסה מרכזית של פרויקט Dqlite 1.0, אתה מפתח מנוע SQL תואם SQLite מובנה התומך בשכפול נתונים, התאוששות אוטומטית מאסון וסובלנות תקלות על ידי התפרסות על מספר צמתים.
Dqlite היא ספריית C. הוא מיישם מנוע מסד נתונים משוכפל ו- SQL עם זמינות גבוהה וכשל אוטומטי. ראשי התיבות "dqlite" מייצגים "SQLite מבוזר", מה שאומר ש- dqlite מרחיב את SQLite עם פרוטוקול רשת שיכול לחבר מספר מופעים של היישום שלך ולגרום להם לפעול כאל אשכול זמין מאוד, ללא תלות במאגרי מידע חיצוניים.
כפי שהוזכר ה- DBMS מיושם בצורה של ספריית C המצורפת ליישומים ומופץ ברישיון Apache 2.0 (SQLite המקורי מסופק ברשות הרבים). הספרייה היא תוסף על בסיס קוד SQLite קיים, שמוסיף תמיכה בפרוטוקול רשת לקישור מספר מופעים של היישום הפועל על מארחים שונים.
יישום שנבנה עם Dqlite יכול לתפקד כאשכול כושל בטעות אוטונומית, בלתי תלוי ב- DBMS חיצוני.
בפועל, Canonical משתמשת ב- Dqlite במערכת ניהול המכולות LXD. בין אזורי היישומים של הספרייה מוזכר גם יצירת מכשירים ומעבדים Internet of Things סובלני לתקלות במערכות מחשוב אדג '.
כדי להבטיח עקביות בשכפול נתונים, משתמשים בשיטת קונצנזוס המבוססת על אלגוריתם הרפסודה, המשמשת בפרויקטים כגון etcd, RethinkDB, CockroachDB ו- OpenDaylight. Dqlite משתמש בהטמעת רפודת C רפסודה אסינכרונית משלה, שנכתבה ב- C.
כדי להכפל את עיבוד החיבורים ולארגן את ההשקה של קורוטינים, משתמשים בספריות מוכנות libuv ו- libco.
בהשוואה לפרויקט rqlite דומה, Dqlite מספק תמיכה מלאה בעסקאות, הוא יכול לתקשר עם כל פרויקט C, מאפשר לך להשתמש בפונקציה time () ומשתמש בשכפול מבוסס מסגרת במקום בשכפול מבוסס ביטוי SQL.
בין התכונות שניתן להדגיש ב- Dqlite הן:
- בצע את כל פעולות הדיסק והרשת במצב אסינכרוני
- נוכחות של קבוצת בדיקות לאישור דיוק הנתונים
- צריכת זיכרון נמוכה והחלפת נתונים יעילה ברשת
- אחסון קבוע וניהול עסקאות של מסד נתונים (עם יכולת זיכרון במטמון בזיכרון)
- התאוששות מהירה לאחר כשלים
- לקוח CLI יציב בשפת Go, שניתן להשתמש בו לאתחול מסד הנתונים, הגדרת שכפול וחיבור / ניתוק צמתים
- תמיכה בארכיטקטורות ARM, X86, POWER ו- IBM Z
- הטמעת האלגוריתם של רפסודה מותאמת כדי למזער את חביון העסקה.
- יישום הברגה יחידה אסינכרונית באמצעות libuv כלולאת אירועים.
- פרוטוקול חוטים מותאם אישית המותאם לראשוני SQLite וסוגי נתונים.
- שכפול נתונים המבוסס על אלגוריתם ה- Raft והטמעתו היעילה ב- C-raft.
כיצד להתקין את Dqlite באובונטו ובנגזרות?
Canonical מספקת מידע כיצד לבנות לקוח לאינטראקציה עם Dqlite, תוכלו להתייעץ עם זה בקישור הבא.
כעת באשר להתקנת הספרייה במערכת, ניתן להתקין זאת בשתי דרכים למי שמשתמש באובונטו או כל נגזרת אחרת שלו. Canonical מספקת PPA מהמקום בו ניתן להשיג אותו בצורה פשוטה למדי.
ניתן להוסיף PPA זה ממסוף ולבצע בו את הפקודות הבאות:
sudo add-apt-repository ppa:dqlite/v1 sudo apt-get update sudo apt-get install libdqlite-dev
השיטה האחרת להתקנת ספרייה זו היא על ידי קומפילציה זה על המערכת כך שזו שיטה כללית יותר הן עבור אובונטו והן עבור הפצות לינוקס אחרות.
לשם כך עליהם רק לפתוח מסוף ולבצע את הפקודות הבאות:
git clone --depth 100 https://github.com/canonical/sqlite.git cd sqlite ./configure --enable-replication make sudo make install cd .. git clone https://github.com/canonical/libco.git cd libco make sudo make install cd .. git clone https://github.com/canonical/raft.git cd raft autoreconf -i ./configure make sudo make install cd ..
לאחר התקנת כל הספריות הדרושות, על מנת לבנות את הספרייה המשותפת dqlite, תוכל להפעיל:
autoreconf -i ./configure make sudo make install