منصوبے کے بارے میں
LevelDB ایک ایمبیڈڈ کلیدی-ویلیو اسٹوریج لائبریری ہے جسے گوگل میں سنجے گھیموات اور جیف ڈین نے تیار کیا۔ یہ سٹرنگ کلیدوں سے سٹرنگ ویلیوز تک ایک ترتیب شدہ نقشہ فراہم کرتی ہے اور اسے کسی علیحدہ سروس کے طور پر چلانے کے بجائے براہ راست ایپلیکیشن سے منسلک کرنے کے لیے بنایا گیا ہے۔
README میں بیان کردہ اہم صلاحیتیں:
- کلیدیں اور ویلیوز صوابدیدی بائٹ اری ہوتی ہیں، اور ڈیٹا کلید کے لحاظ سے ترتیب شدہ محفوظ ہوتا ہے۔
- کال کرنے والے حسب ضرورت موازنہ فنکشن فراہم کر سکتے ہیں تاکہ ڈیفالٹ ترتیب کو تبدیل کیا جا سکے۔
- بنیادی آپریشنز Put(key,value)، Get(key) اور Delete(key) ہیں۔
- ایک ایٹمک بیچ میں متعدد تبدیلیاں لاگو کی جا سکتی ہیں۔
- صارفین ڈیٹا کا مستقل نظارہ حاصل کرنے کے لیے ایک عارضی سنیپ شاٹ بنا سکتے ہیں۔
- ڈیٹا پر آگے اور پیچھے تکرار کی حمایت حاصل ہے۔
- ڈیٹا خود بخود Snappy سے کمپریس ہوتا ہے، Zstd کی بھی حمایت ہے۔
- فائل سسٹم آپریشنز جیسی بیرونی سرگرمیاں ایک ورچوئل انٹرفیس کے ذریعے منتقل ہوتی ہیں تاکہ OS تعاملات کو حسب ضرورت بنایا جا سکے۔
پروجیکٹ کی بیان کردہ اہم حدود:
- یہ SQL ڈیٹا بیس نہیں ہے، اس میں کوئی رشتہ دار ماڈل، SQL سوالات یا انڈیکس سپورٹ نہیں ہے۔
- صرف ایک پروسیس (ممکنہ طور پر ملٹی تھریڈڈ) ایک وقت میں ڈیٹا بیس تک رسائی حاصل کر سکتی ہے۔
- اور کوئی بلٹ ان کلائنٹ-سرور سپورٹ نہیں ہے، لہذا ایسی ایپلیکیشنز جنہیں اس کی ضرورت ہو، انہیں لائبریری کے گرد اپنا سرور لپیٹنا چاہیے۔
ریپوزٹری بہت محدود دیکھ بھال میں ہے۔ مینٹینرز کہتے ہیں کہ وہ صرف اہم کیڑوں کے لیے اصلاحات کا جائزہ لیں گے جیسے ڈیٹا ضائع ہونا یا میموری خرابی، اور وہ تبدیلیاں جو اندرونی طور پر تعاون یافتہ LevelDB کلائنٹس کے لیے سختی سے ضروری ہیں، عام طور پر زبان، معیاری لائبریری یا OS اپ ڈیٹس سے ہونے والے نقصان کو ٹھیک کرنے کے لیے۔ توقع کی جاتی ہے کہ تعاون آزمودہ پلیٹ فارمز (POSIX برائے Linux اور macOS، یا Windows) کو نشانہ بنائے، مستحکم API برقرار رکھے، ٹیسٹ شامل کرے، اور گوگل C++ اسٹائل گائیڈ پر عمل کرے؛ بلڈ کنفیگریشن تبدیلیاں قبول کیے جانے کا امکان نہیں ہے۔ پل ریکویسٹس کے لیے گوگل کنٹریبیوٹر لائسنس معاہدے پر دستخط اور main پر squash/rebase ضروری ہے۔
تعمیر کے لیے CMake استعمال ہوتا ہے۔ POSIX پر، عام فوری شروع کے لیے بلڈ ڈائریکٹری بنائیں، Release بلڈ ٹائپ کے ساتھ cmake چلائیں، اور پھر build کریں۔ Windows پر، CMake Visual Studio 2017 پروجیکٹ/سلوشن فائلیں تیار کر سکتا ہے، جس میں 64-بٹ اہداف کا اختیار ہوتا ہے، اور سلوشن کمانڈ لائن یا Visual Studio کے اندر سے بنایا جا سکتا ہے۔
README میں شامل db_bench پروگرام سے کارکردگی کی رپورٹ دی گئی ہے جس میں 16-بائٹ کلیدوں اور 100-بائٹ ویلیوز کے ساتھ دس لاکھ اندراجات کا ڈیٹا بیس استعمال ہوا۔ اس میں رائٹ بینچ مارکس (fillseq، fillsync، fillrandom، overwrite) اور ریڈ بینچ مارکس (readrandom، readseq، readreverse) رپورٹ کیے گئے ہیں، اور نوٹ کیا گیا ہے کہ نتائج شور سے متاثر ہوتے ہیں اور پس منظر میں کمپیکشن ریڈ کارکردگی کو بہتر بناتا ہے۔ عوامی انٹرفیس include/leveldb/*.h میں موجود ہے، جس میں db.h مرکزی انٹری پوائنٹ ہے، options.h ڈیٹا بیس اور فی آپریشن رویے کے لیے، comparator.h حسب ضرورت ترتیب کے لیے، iterator.h تکرار کے لیے، write_batch.h ایٹمک اپ ڈیٹس کے لیے، slice.h اور status.h مددگار کے طور پر، env.h OS تجرید کے لیے، اور table.h/table_builder.h نچلی سطح کے ماڈیولز ہیں جنہیں زیادہ تر کلائنٹ براہ راست استعمال نہیں کریں گے۔ دستاویزات سورس ٹری میں doc/ کے تحت موجود ہیں۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.