FerretDB 0.1 کی ریلیز، PostgreSQL DBMS پر مبنی MongoDB کا نفاذ

FerretDB 0.1 پروجیکٹ (سابقہ ​​MangoDB) کا اجراء شائع ہو چکا ہے، جس سے آپ درخواست کوڈ میں تبدیلی کیے بغیر دستاویز پر مبنی DBMS MongoDB کو PostgreSQL سے تبدیل کر سکتے ہیں۔ FerretDB کو ایک پراکسی سرور کے طور پر لاگو کیا گیا ہے جو MangoDB کو کالوں کو SQL سوالات میں PostgreSQL میں ترجمہ کرتا ہے، جس سے PostgreSQL کو اصل اسٹوریج کے طور پر استعمال کیا جا سکتا ہے۔ کوڈ گو میں لکھا گیا ہے اور اپاچی 2.0 لائسنس کے تحت تقسیم کیا گیا ہے۔

ہجرت کی ضرورت MongoDB کی ملکیتی SSPL لائسنس میں منتقلی کی وجہ سے پیدا ہو سکتی ہے، جو AGPLv3 لائسنس پر مبنی ہے، لیکن کھلا نہیں ہے، کیونکہ اس میں SSPL لائسنس کے تحت ڈیلیور کرنے کے لیے نہ صرف درخواست کوڈ، بلکہ پروویژن کلاؤڈ سروس میں شامل تمام اجزاء کا سورس کوڈ۔

فیریٹ ڈی بی کے ٹارگٹ سامعین وہ صارفین ہیں جو اپنی ایپلی کیشنز میں MongoDB کی جدید صلاحیتوں کا استعمال نہیں کرتے ہیں، لیکن مکمل طور پر کھلا سافٹ ویئر اسٹیک استعمال کرنا چاہتے ہیں۔ ترقی کے موجودہ مرحلے پر، FerretDB اب بھی MongoDB صلاحیتوں کے صرف اس حصے کی حمایت کرتا ہے جو اکثر عام ایپلی کیشنز میں استعمال ہوتے ہیں۔ مستقبل میں، وہ MongoDB کے ڈرائیوروں کے ساتھ مکمل مطابقت حاصل کرنے اور MongoDB کے شفاف متبادل کے طور پر FerretDB کو استعمال کرنے کی صلاحیت فراہم کرنے کا ارادہ رکھتے ہیں۔

ہمیں یاد کرنا چاہیے کہ MongoDB تیز اور توسیع پذیر نظاموں کے درمیان ایک جگہ رکھتا ہے جو ڈیٹا کو کلیدی/قدر کی شکل میں چلاتے ہیں، اور متعلقہ DBMSs جو فعال اور سوالات کو ترتیب دینے میں آسان ہیں۔ MongoDB دستاویزات کو JSON جیسے فارمیٹ میں ذخیرہ کرنے کی حمایت کرتا ہے، سوالات پیدا کرنے کے لیے کافی لچکدار زبان رکھتا ہے، مختلف ذخیرہ شدہ صفات کے لیے اشاریہ جات بنا سکتا ہے، بڑی بائنری اشیاء کو مؤثر طریقے سے اسٹوریج فراہم کرتا ہے، ڈیٹا بیس میں ڈیٹا کو تبدیل کرنے اور شامل کرنے کے لیے آپریشنز کی لاگنگ کو سپورٹ کرتا ہے۔ پیراڈیم میپ/ریڈوس کے مطابق کام کریں، غلطی برداشت کرنے والی کنفیگریشنز کی نقل اور تعمیر کی حمایت کرتا ہے۔

FerretDB 0.1.0 کی ریلیز نے PostgreSQL سے ڈیٹا کی بازیافت کے طریقہ کار کو مکمل طور پر دوبارہ ڈیزائن کیا۔ پہلے، ہر آنے والی MongoDB درخواست کے لیے، ایک SQL استفسار PostgreSQL میں تیار کیا گیا تھا، JSON فارمیٹ کے ساتھ کام کرنے اور PostgreSQL سائیڈ پر نتائج کو فلٹر کرنے کے لیے فنکشنز کا استعمال کرتے ہوئے۔ PostgreSQL اور MongoDB json فنکشنز کے سیمنٹکس میں فرق کی وجہ سے، مختلف اقسام کا موازنہ اور ترتیب دیتے وقت رویے میں تضاد تھا۔ اس مسئلے کو حل کرنے کے لیے، ڈیٹا اب بے کار طریقے سے PostgreSQL سے حاصل کیا جاتا ہے، اور نتیجہ FerretDB سائیڈ پر فلٹر کیا جاتا ہے، جس نے زیادہ تر حالات میں MongoDB کے رویے کو نقل کرنا ممکن بنایا۔

بڑھتی ہوئی مطابقت کی قیمت کارکردگی میں کمی تھی، جس کی مستقبل میں ریلیزز میں وہ فیریٹ ڈی بی کی طرف سے صرف ان سوالات کو فلٹر کر کے معاوضہ دینے کی توقع رکھتے ہیں جن کے رویے میں تضاد ہے۔ مثال کے طور پر، استفسار "db.collection.find({_id: 'some-id-value'})" مکمل طور پر PostgreSQL میں پروسیس کیا جا سکتا ہے۔ ترقی کے اس مرحلے پر پراجیکٹ کا بنیادی ہدف MongoDB کے ساتھ مطابقت حاصل کرنا ہے، اور کارکردگی کو فی الحال پس منظر میں منتقل کر دیا گیا ہے۔ نئے ورژن میں فنکشنل تبدیلیوں میں، تمام بٹ آپریٹرز کے لیے تعاون، "$eq" موازنہ آپریٹر کے ساتھ ساتھ "$elemMatch" اور "$bitsAllClear" آپریٹرز کو نوٹ کیا گیا ہے۔

ماخذ: opennet.ru

نیا تبصرہ شامل کریں