কম্পিউটার টিউটোরিয়াল

PostgreSQL এবং CockroachDB-এ থেকে বেছে নেওয়া: একটি ব্যবহারিক গাইড

মূলত ১৫ আগস্ট, ২০১৯-এ ObjectRocket.com/blog-এ প্রকাশিত

CockroachDB® এবং PostgreSQL® যেহেতু রিলেশনাল ওয়ার্কলোডের ক্ষেত্রে মার্কেটে একটি জায়গা জমিয়েছে, অনেকের মনে প্রশ্ন উঠছে কোনটি বেছে নেয়া উচিত। CockroachDB আসল গ্লোবাল-স্কেল SQL অফার করে ডিস্ট্রিবিউটেড ট্রানজ্যাকশন এবং বিল্ট-ইন হরিজেন্টাল রিড/রাইট স্কেলিং-এর সাথে যা SQL ওয়ার্কলোডের জন্য অপ্রতیم স্কেল, রেজিলিয়েন্সি, এবং পারফরম্যান্স দেয়। যাইহোক, এখনও কিছু সিনেরিও আছে যেখানে PostgreSQL শুধু একটি बेटার ফিট হতে পারে।

PostgreSQL এবং CockroachDB-এ থেকে বেছে নেওয়া: একটি ব্যবহারিক গাইড

CockroachDB এবং PostgreSQL-এর সাদৃশ্য

এই দুটি প্রযুক্তি বেশ কিছু জায়গায় ওভারল্যাপ করে। সবচেয়ে প্রধান এবং ফরেমোস্ট, উভয়েই ধারণ করে:

  • SQL কমপ্লায়েন্স
  • ACID ট্রানজ্যাকশন
  • PostgreSQL ওয়ার প্রোটোকল কমপ্যাটিবিলিটি
  • ব্রড ক্লায়েন্ট ড্রাইভার এবং ORM সাপোর্ট

এই ফাংশনালিটি অধিকাংশ প্রধান পয়েন্ট কভার করে, মানে চয়সটি কিছু более нюয়ান্সড ডিসিশন পয়েন্টের ওপর নির্ভর করে। শুধু কিছু ব্যতিক্রম ছাড়া, আপনি একটি অ্যাপ যেকোনো একটি ডেটাবেসের ওপর ট্রাই করতে পারেন এবং পরে অন্যটিতে ট্রানজিশন করতে পারেন আপনার অ্যাপ রিরাইট করা ছাড়া।

CockroachDB চেক আউট করতে চান, কিন্তু ডিসাইড করেন PostgreSQL बेटার ফিট? সম্ভাবনা বেশ বেশি যে আপনি কোনো ট্রাবলে পড়বেন না। আপনার কাছে একটি অ্যাপ আছে PostgreSQL-এ রানিং, কিন্তু আপনি बेटার স্কেলিং এবং ফেইলওভার খুঁজছেন? CockroachDB একটি बेटার ফিট হতে পারে।

বিভেদকারী ফ্যাক্টরগুলো যা আপনাকে ডিসাইড করতে সাহায্য করবে

কমপ্যাটিবিলিটি, কমপ্লেক্স কোয়ারী, স্কেল, এবং ফ্লেক্সিবিলিটি আপনাকে এক অপশন অন্যটির চেয়ে বেছে নেওয়াতে সাহায্য করতে পারে।

স্কেল

সবচেয়ে বড় পার্থক্য হল প্রোডাক্টগুলো কীভাবে স্কেলিং, রেপ্লিকেশন, এবং হাই অভেইলেবিলিটি (HA) হ্যান্ডেল করে। CockroachDB শুরু থেকে বিল্ট আপ করা হয়েছে একটি গ্লোবাল SQL ডেটাস্টোর প্রদান করতে ডিস্ট্রিবিউটেড ট্রানজ্যাকশনের সাথে। আপনি আপনার ডেটা ক্লাউড এবং রিজনের জুড়ে ছড়িয়ে দিতে পারেন ফাইন-গ্রেইনড কন্ট্রোলের সাথে যে কোন ডেটা কোন রিজন বা ক্লাউডে থাকতে পারবে। যদিও PostgreSQL-এর সাথে একই ফাংশনালিটি প্রদানের সমাধান এবং এক্সটেনশন আছে, কিন্তু সেটি তত পুরোপুরি নন এবং তত সহজে কনফিগার ও ম্যানেজ করা যায় না।

CockroachDB-এর গ্লোবাল স্কেলের ওপর ফোকাস এটিকে খুব বেশি ক্লাউড-ফ্রেন্ডলি করে তোলে। CockroachDB অনেক ছোট, ডিসপোজেবল নোড আশা করে, তাই স্কেলিং এবং HA পর্দার পেছনে সহজে হ্যান্ডেল হয় আপনার জন্য।

PostgreSQL, অন্যদিকে, মাল্টি-মাস্টার, স্কেলিং, এবং HA-এর জন্য অনেক সমাধান প্রদান করে, কিন্তু সেই ফাংশনালিটির অধিকাংশ PostgreSQL-এ অন্তর্ভুক্ত নন এবং থার্ড-পার্টি এক্সটেনশন প্রয়োজন। এছাড়া, সেটআপ, কনফিগারেশন, এবং দিনে দিনের ম্যানেজমেন্ট এক HA PostgreSQL ডিপ্লয়মেন্টের জন্য কিছুটা আরও কমপ্লেক্স।

ফ্লেক্সিবিলিটি

PostgreSQL-এর একটি আসল সুবিধা হল এর অনেক বছরের ব্যাটল হার্ডেনিং এবং টিউনেবলস ও এক্সটেনশনের সুযোগ। শুধু PostgreSQL-এ সার্ভার কনফিগারেশনের ডকুমেন্টেশন তুলনা করুন, এবং আপনি আপনার ক্লাস্টারের জন্য একটি বিশাল সীমা অপশন এবং টিউনিং প্যারামিটার দেখতে পাবেন। আইসোলেশন লেভেল চান? আপনার চারটি অপশন আছে, যেখানে CockroachDB আপনাকে শুধু একটি দেয়। রেপ্লিকেশন চান? PostgreSQL আপনাকে আটটি অল্টারনেটিভ দেয়, যখন CockroachDB পর্দার পেছনে হ্যান্ডেল করে।

PostgreSQL এছাড়া এক্সটেনশনের একটি বিশাল ইকোসিস্টেম অফার করে প্রোডাক্ট প্রসারিত করতে। স্যাডস শতсот এক্সটেনশন পাবলিকলি উপলব্ধ, এবং আপনি আপনার নিজস্বও লিখতে পারেন। এগুলো ক্লাস্টারিং যোগ করার মত (Citus-এর মতো) থেকে নতুন অবজেক্ট (postGIS) পর্যন্ত, PostgreSQL কে একটি নির্দিষ্ট ইউজ কেসের জন্য অপ্টিমাইজ করার মত (Timescale) পর্যন্ত फैला। এই ফ্লেক্সিবিলিটি অবশ্যই একটি খরচের সাথে আসে। এটা কমপ্লেক্সিটি আনে এবং আপনার ইনস্ট্যান্সের পারফরম্যান্স এবং স্ট্যাবিলিটিকে প্রভাবিত করতে পারে। আপনি আপনার এনভায়রনমেন্ট মিসকনফিগারও করতে পারেন। CockroachDB আপ্রোচ জিনিসগুলো সরল করে যাতে একটি ক্লাস্টার বিল্ড এবং ম্যানেজ করা সহজ হয়।

কমপ্যাটিবিলিটি

আপনার যদি কমপ্লিট PostgreSQL বা ফুলার SQL কনফর্মেন্সের প্রয়োজন হয়, তবে PostgreSQL बेटার বেট। আপনার কাছে একটি লিগ্যাসি অ্যাপ থাকতে পারে বা একটি স্ট্যান্ডার্ড CMS বা ওয়েব ফ্রেমওয়ার্কের জন্য একটি ব্যাকএন্ড স্টোর দরকার থাকতে পারে, সেখানে PostgreSQL বা SQL-এর কোণাগুলোর ওপর ভারী নির্ভরশীলতা থাকতে পারে যা Cockroach এখনও সাপোর্ট করতে পারে না। যদিও Cockroach Labs συνεχে প্রোডাক্টে আরও ফিচার এবং ফাংশনালিটি যোগ করছে, এটি এখনও ১০০% PostgreSQL-র সাথে কমপ্যাটিবল নন। আরেকটি এরিয়া যেখানে আপনি পার্থক্য দেখতে পারেন সেটি হল CockroachDB কীভাবে রোল, ইউজার, গ্রুপ, এবং অথেন্টিকেশন হ্যান্ডেল করে। PostgreSQL অথেন্টিকেশন অপশনগুলো অত্যন্ত রোবাস্ট, এবং যদিও CockroachDB RBAC অফার করে, তবে দুটি প্রযুক্তির মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য আছে।

কমপ্যাটিবিলিটি চ্যালেঞ্জ অতিক্রম করা যায়, কিন্তু এটি চূড়ান্তভাবে আপনার অ্যাপ এবং আপনার ক্ষমতার ওপর নির্ভর করে পটেনশিয়াল ইনকমপ্যাটিবিলিটি আইডেন্টিফাই এবং এড্রেস করতে।

কমপ্লেক্স কোয়ারী

একটি এরিয়া যেখানে Cockroach Labs টনnage চেষ্টা سرمایه করেছে সেটি হল জয়েন পারফর্ম করার ক্ষমতা এবং তাদের কস্ট-ভিত্তিক SQL কোয়ারী অপ্টিমাইজারের সাথে পারফরম্যান্স উন্নত করা। যাইহোক, আপনার যদি একটি বিজনেস ইন্টেলিজেন্স বা অ্যানালিটিক্স ওয়ার্কলোড থাকে অত্যন্ত কমপ্লেক্স কোয়ারী এবং একাধিক জয়েন, ভিউ, অ্যাগ্রিগেশন, এবং এক্সপ্রেশন ইভ্যালুয়েশনের সাথে, তবে PostgreSQL হতে পারে बेटার অপশন।

এটি একটি এরিয়া যেখানে আপনি সহজে একটি ইভ্যালুয়েশন বা প্রুফ অফ কনসেপ্ট দিয়ে টেস্ট করতে পারেন। আপনার ইউজ কেস যতটুকু অ্যানালিটিক্স কোয়ারী এবং OLAP-এ ঝুকে থাকবে, PostgreSQL হতে পারে बेटার বেট। দ্রুত OLTP-স্টাইল ট্রানজ্যাকশনের জন্য, CockroachDB সবচেয়ে বেশি সাহায্য করতে পারে।

সারাংশ তুলনা

CockroachDB PostgreSQL
প্রাথমিক রিলিজের বছর 2015 1996
বর্তমান স্ট্যাবল ভার্সন 20.1.0 13
লাইসেন্সিং বিজনেস সোর্স লাইসেন্স BSL কোর কম্পোনেন্ট। Cockroach Community License CCLএন্টারপ্রাইজ ফিচার PostgreSQL লাইসেন্স PostgreSQL লাইসেন্স
SQL: কনফর্মেন্স* ফুল বা পার্শ্বাল কনফর্মেন্স ~২৪৪ SQL:2011 ফিচারের সাথে ~৩৮৫ SQL:2011 ফিচারের সাথে কনফর্মেন্স
বোনাস পয়েন্ট অনলাইন স্কিমা চেঞ্জ, ডিস্ট্রিবিউটেড ট্রানজ্যাকশন স্টোরড প্রোসিজার, কার্সর, ট্রিগার, ম্যাটেরিয়ালাইজড ভিউ
ওয়ার প্রোটোকল PostgreSQL ওয়ার প্রোটোকল PostgreSQL ওয়ার প্রোটোকল
ক্লায়েন্ট ড্রাইভার টেস্টেড অপশনস প্লাস বড় ইকোসিস্টেম PostgreSQL ওয়ার প্রোটোকলের কারণে অফিশিয়াল এবং কমিউনিটি প্রদত্ত ড্রাইভারের বড় ইকোসিস্টেম
CMS/ফ্রেমওয়ার্ক কমপ্যাটিবিলিটি আংশিক, PostgreSQL ওয়ার কমপ্যাটিবিলিটির মাধ্যমে মেজর ফ্রেমওয়ার্কের জন্য ব্রড সাপোর্ট এবং কমপ্যাটিবিলিটি
প্লাগইন/এক্সটেনশন এন্টারপ্রাইজ ফিচার প্যাক কমিউনিটি এক্সটেনশনের বড় ইকোসিস্টেম
রেপ্লিকেশন/HA হ্যাঁ, বিল্ট-ইন ওপেন সোর্স অডিশন/এক্সটেনশন এর মাধ্যমে
মাল্টি-মাস্টার/ক্লাস্টারিং হ্যাঁ, বিল্ট-ইন ওপেন সোর্স অডিশন/এক্সটেনশন এর মাধ্যমে
মাল্টি-ডেটাসেন্টার/জিও হ্যাঁ, বিল্ট-ইন কাস্টম বা ওপেন সোর্স অডিশন/এক্সটেনশন এর মাধ্যমে
অথেন্টিকেশন পাসওয়ার্ড, সার্টিফিকেট পাসওয়ার্ড, সার্টিফিকেট, GSSAPI, SSPI, Ident, LDAP, RADIUS, PAM, BSD
পারমিশন ইউজার-ভিত্তিক পারমিশন এবং RBAC RBAC সারি এবং কলাম লেভেল পারমিশন, ফুল SQL:2011 প্রিভিলেজ সাপোর্ট
শক্তি ক্লাউড-নেটিভ স্কেলিং, হাই অভেইলেবিলিটি, জিও-ডিস্ট্রিবিউশন, সহজ কনফিগারেশন এবং ডিপ্লয়মেন্ট ফ্লেক্সিবিলিটি, টিউনএবিলিটি, কমপ্যাটিবিলিটি, এবং ইকোসিস্টেম
দুর্বলতা লেটেন্সি এবং SQL সাপোর্ট/ফিচারের সমৃদ্ধতা স্কেলে কমপ্লেক্সিটি, রিড পারফরম্যান্স
বটম লাইন CockroachDB বেছে নিন যখন আপনি একটি হাইলি ট্রানজ্যাকশনাল, OLTP-স্টাইল ওয়ার্কলোড বিল্ড করছেন, বা স্কেল আউট করার ক্ষমতা (লোকালি বা গ্লোবালি) গুরুত্বপূর্ণ PostgreSQL বেছে নিন যদি আপনার ওয়ার্কলোডে ভারী অ্যানালিটিক্স কোয়ারী থাকে বা আপনাকে একটি বিশাল ফিচার সেট, ইকোসিস্টেম, এবং কমপ্যাটিবল অ্যাপের এক্সেস দরকার

* যেহেতু কোনো ডেটাস্টোর যা আমি জানি SQL:2011 স্পেকের সাথে ১০০% কনফর্ম করে না, আমি শুধু দেখেছি প্রতিটি প্রোডাক্ট স্পেকের কতটুকু সাপোর্ট করে।

আপনার সামনে দুটি চমৎকার অপশন আছে। উভয়ই কনসার্টে ব্যবহার করা যেতে পারে একটি চমৎকার ডেটাস্টোর পোর্টফোলিও তৈরি করতে। আপনি আজ থেকে স্ক্র্যাচ থেকে বিল্ড করছেন এবং আপনার অত্যন্ত ইউনিক বা PostgreSQL-নির্দিষ্ট প্রয়োজন নেই এবং স্কেলিং বিষয়টি ম্যাল, তবে CockroachDB-কে একটি চমৎকার সুযোগ হিসেবে সিরিয়াসলি দেখুন। যাইহোক, আপনি যদি ইতিমধ্যে জানেন আপনার কী দরকার এবং PostgreSQL-এর ব্রড ফ্লেক্সিবিলিটির ওপর ফোকাস করতে চান, তবে আমরা সেখানে ও সাহায্য করতে পারি।

PostgreSQL এবং CockroachDB উভয়ই এখন উপলব্ধ। আপনার জন্য কোনটি সঠিক ফিট সেটি খুঁজে বের করুন।

উপসংহার

ফিডব্যাক ট্যাব ব্যবহার করে মন্তব্য করুন বা প্রশ্ন জিজ্ঞাসা করুন। আপনি সেলস চ্যাট-এ ক্লিক করেও এখনই কথা বলার শুরু করতে পারেন।


  1. ভার্চুয়ালবক্সে হোস্ট এবং গেস্ট মেশিনের মধ্যে ফাইল শেয়ারিং: ধাপে ধাপে গাইড

  2. আইফোন ও অ্যান্ড্রয়েডের মধ্যে সিমলেস ফাইল শেয়ারিং: দ্রুত, সুরক্ষিত পদ্ধতি

  3. PC এবং অ্যান্ড্রয়েড ফোনের মধ্যে সহজে ফাইল ট্রান্সফার: ধাপে ধাপে গাইড

  4. ম্যাক এবং উইন্ডোজ পিসির মধ্যে সহজ ফাইল শেয়ারিং: ধাপে ধাপে গাইড