কম্পিউটার

সার্ভারহীন এবং প্রান্তের জন্য গ্লোবাল ডাটাবেস

সাম্প্রতিক বছরগুলিতে, সার্ভারহীন আর্কিটেকচার এবং প্রান্ত কম্পিউটিং অ্যাপ্লিকেশন স্থাপনার জন্য খুব জনপ্রিয় হয়ে উঠছে। কিন্তু সার্ভারহীন এবং/অথবা প্রান্ত ফাংশনের ভিতরে অ্যাপ্লিকেশন স্টেট এবং ডেটা সংরক্ষণ করা একটি ভিন্ন গল্প। অনেক অসুবিধা রয়েছে যেমন; ডাটাবেসের সাথে সংযোগগুলি পরিচালনা করা, একাধিক অবস্থান থেকে দ্রুত অ্যাক্সেসের জন্য ডেটা উপলব্ধ করা ইত্যাদি। সার্ভারহীন অ্যাক্সেস সমর্থন করে মাত্র কয়েকটি ডাটাবেস পরিষেবা রয়েছে এবং এর মধ্যে খুব কমই প্রান্ত ফাংশনের জন্য উপযুক্ত।(আপনি এখানে বিস্তারিত বিশ্লেষণ পড়তে পারেন। )

Upstash-এ, প্রথম দিন থেকে, আমরা কম লেটেন্সির জন্য একটি সার্ভারবিহীন Redis সামঞ্জস্যপূর্ণ ডাটাবেস প্রদান করছি এবং প্রতি-অনুরোধের মূল্যের মডেল সহ। উপরন্তু আমরা ডাটাবেসের উপর সরাসরি নির্মিত একটি প্রথম-শ্রেণীর REST API প্রকাশ করছি। REST API সংযোগ পরিচালনার ঝামেলা দূর করে, বিশেষ করে যখন সার্ভারহীন ফাংশনে ব্যবহার করা হয়, তবে প্রান্তের অবস্থান বা ওয়েব ব্রাউজারগুলির মতো সীমাবদ্ধ পরিবেশ থেকেও অ্যাক্সেসযোগ্য৷

আজ আমরা গ্লোবাল ডাটাবেস ঘোষণা করতে পেরে আনন্দিত, যা ডাটাবেসকে বিশ্বব্যাপী উপলব্ধ করার জন্য আরও এক ধাপ এগিয়ে, ক্লায়েন্টের কাছাকাছি এবং কম লেটেন্সি পড়ার জন্য প্রান্তের অবস্থানে। গ্লোবাল ডাটাবেস বিনামূল্যের স্তরে উপলব্ধ, আপনি এটি কোনো খরচ ছাড়াই চেষ্টা করতে পারেন .

কখন ব্যবহার করবেন?

একটি গ্লোবাল ডাটাবেস বিভিন্ন মহাদেশের একাধিক অঞ্চলে স্থাপন করা হয় এবং ক্লায়েন্টের অনুরোধগুলিকে নিকটতম অঞ্চলে পাঠানো হয় যখন ব্যবহারকারীরা বিশ্বজুড়ে বিতরণ করা হয় তখন বিলম্ব কমানোর জন্য। Upstash গ্লোবাল ডাটাবেস এর জন্য ব্যবহার করা যেতে পারে;

  • এজ ফাংশন (ক্লাউডফ্লেয়ার ওয়ার্কার, ফাস্টলি কম্পিউট):বিল্ট-ইন REST API এবং সমস্ত প্রান্তের অবস্থান থেকে কম লেটেন্সি অ্যাক্সেস এটিকে একটি নিখুঁত সমাধান করে তোলে৷

  • একাধিক অঞ্চল সার্ভারহীন স্থাপনা:AWS Lambda, Vercel এবং Netlify ফাংশন একাধিক অঞ্চলে স্থাপন করা যেতে পারে। একটি গ্লোবাল ডেটাবেস আপনার সার্ভারহীন ফাংশন যেখানেই থাকুক না কেন কম লেটেন্সি ডেটা সরবরাহ করে৷

  • ওয়েব/মোবাইল প্ল্যাটফর্ম:শুধুমাত্র রিড এপিআই ব্যবহার করে, আপনি সরাসরি রেডিস ডাটাবেস একটি ওয়েব/মোবাইল অ্যাপ্লিকেশন অ্যাক্সেস করতে পারেন। একটি গ্লোবাল ডাটাবেস আরও ভাল বিলম্ব প্রদান করবে কারণ আপনি যে কোনও জায়গা থেকে ব্যবহারকারীদের আশা করতে পারেন৷

গ্লোবাল ডাটাবেসের পিছনে আরেকটি লক্ষ্য হল ডাটাবেসকে অঞ্চলব্যাপী ব্যর্থতার জন্য স্থিতিস্থাপক করা। যখন একটি অঞ্চল উপলব্ধ না হয়, তখন আপনার অনুরোধগুলি নিকটতম উপলব্ধ অঞ্চলে পাঠানো হয়; তাই আপনার ডাটাবেস উপলব্ধ থাকে।

এটি কিভাবে কাজ করে?

সার্ভারহীন এবং প্রান্তের জন্য গ্লোবাল ডাটাবেস

গ্লোবাল ডাটাবেস মডেলে, একই ডাটাবেসের একাধিক প্রতিলিপি রয়েছে এবং তারা একসাথে একটি ক্লাস্টার গঠন করে। প্রতিটি রেপ্লিকা অন্যান্য ক্লাস্টার সদস্যদের সাথে সংযুক্ত থাকে এবং একটি ব্যর্থতা সনাক্তকারী ব্যবহার করে তাদের প্রত্যেকের সজীবতা ট্র্যাক করে। ক্লাস্টার সদস্যপদ এবং ব্যর্থতা সনাক্তকরণ উভয়ই একটি গসিপ ভিত্তিক যোগাযোগ প্রোটোকল ব্যবহার করে পরিচালিত হয়।

ডেটা প্রতিলিপি করার জন্য (আরো নির্দিষ্টভাবে, ব্যক্তি লেখে/আপডেট/মুছে দেয়), একক নেতা প্রতিলিপি মডেল ব্যবহার করা হয়। চাবিগুলির একটি গোষ্ঠী একটি নেতার প্রতিলিপিকে বরাদ্দ করা হয়, যা সদস্যপদ পরিবর্তনের পরে নেতা নির্বাচন পদ্ধতি ব্যবহার করে নির্বাচিত হয়। অবশিষ্ট প্রতিলিপিগুলি সেই দলের কীগুলির জন্য সেই নেতার ব্যাকআপ হয়ে ওঠে৷ যখন ব্যর্থতা সনাক্তকারীর দ্বারা নেতার প্রতিরূপ ব্যর্থ হিসাবে সনাক্ত করা হয়, তখন অবশিষ্ট প্রতিলিপিগুলি একটি নতুন নেতা নির্বাচনের রাউন্ড শুরু করে এবং একটি নতুন নেতা নির্বাচন করে৷ নির্বাচন প্রক্রিয়া চলাকালীন, ডাটাবেসটি অনুপলব্ধ হয়ে যায়৷ স্বল্প সময়ের জন্য এবং নির্বাচন সম্পন্ন না হওয়া পর্যন্ত সমস্ত অনুরোধ অবরুদ্ধ করা হবে৷

শুধুমাত্র লিডার রেপ্লিকা লেখার অনুরোধ গ্রহণ করে এবং প্রক্রিয়া করে, ব্যাকআপ রেপ্লিকা ক্লায়েন্টকে অবহিত না করেই অভ্যন্তরীণভাবে লিডারকে লেখে। তাই রেপ্লিকা প্রকার, লিডার বা ব্যাকআপ যাই হোক না কেন, একজন ক্লায়েন্ট একটি লেখার অনুরোধ পাঠাতে পারে। লেখার অনুরোধ প্রক্রিয়া করার পরে, লিডার রেপ্লিকা এটিকে ব্যাকআপ প্রতিলিপিতে প্রচার করে।

সংগতি সম্পর্কে আরও

বর্তমানে, গ্লোবাল ডেটাবেসগুলি দুর্বলভাবে সামঞ্জস্যপূর্ণ, তারা এখনও শক্তিশালী ধারাবাহিকতা সমর্থন করে না। বেশিরভাগ ব্যাকআপ থেকে ACK এর জন্য অপেক্ষা না করে লিডার রেপ্লিকা অপারেশনটি প্রক্রিয়া করার পরে একটি লেখার অনুরোধের প্রতিক্রিয়া ক্লায়েন্টকে ফেরত দেওয়া হয়। লেখার ফলাফল সমান্তরালভাবে ব্যাকআপ প্রতিলিপিতে সিনক্রোনাসভাবে প্রতিলিপি করা হয়।

রিড রিকোয়েস্ট যেকোন রেপ্লিকা দ্বারা প্রসেস করা হয়, যা আরও ভাল রিড স্কেলেবিলিটি দেয় কিন্তু এর মানে হল রিড রিকোয়েস্ট একটি অচল মান ফিরিয়ে দিতে পারে যতক্ষণ না একই কী-এর জন্য লেখা অপারেশনের ফলাফল ব্যাকআপ রেপ্লিকাতে পৌঁছায়।

বিরোধ ছাড়া সহজ হবে!

একটি নেটওয়ার্ক পার্টিশনের মতো ক্লাস্টার ওয়াইড ব্যর্থতার ক্ষেত্রে, একই কীর জন্য একাধিক নেতা নির্বাচিত হতে পারে। এর মানে হল একাধিক প্রতিলিপি বিভিন্ন প্রতিলিপিতে ভিন্নতা আনতে লেখা এবং ডেটা গ্রহণ করে। ক্যালভিন বা স্প্যানার (অথবা এমনকি প্যাক্সোস, রাফ্ট) এর মতো প্রোটোকল ব্যবহার করে একটি শক্তিশালী মডেলের সাথে শুরুতে সংঘাত প্রতিরোধ করা সম্ভব হবে, কিন্তু এটি একটি ভিন্ন পথ যা আমরা এই মুহূর্তে নিতে চাই না৷

পরিবর্তে, গ্লোবাল ডাটাবেস দ্বন্দ্ব ঘটতে দেয় এবং একটি LWW ব্যবহার করে তাদের সমাধান করে (শেষ-লেখা-জয় ) অ্যালগরিদম এবং প্রতিলিপিগুলিকে শেষ পর্যন্ত একই অবস্থায় একত্রিত করে। আপস্ট্যাশ ডাটাবেসের প্রতিটি লেখার একটি অনন্য, একঘেয়ে সিকোয়েন্স নম্বর রয়েছে। প্রতিবার একটি প্রতিলিপি নেতা হয়ে ওঠে, এটি প্রথম লিখিত প্রক্রিয়ার ক্রম চিহ্নিত করে। যখন দুই নেতার প্রতিলিপি একে অপরকে আবিষ্কার করে, তারা নেতা হওয়ার পর তাদের লেখা শেয়ার করে এবং তারা তাদের বিরোধ মিটিয়ে দেয়।

সব প্রতিলিপি সমান নয়

কিছু প্রতিলিপি অন্যদের চেয়ে বেশি সমান। কারণ তাদের মধ্য থেকে কয়েকজনকেই নেতা নির্বাচিত করা যায়। একটি বিশ্বব্যাপী ডাটাবেস ক্লাস্টারে, একটি প্রতিরূপ শিক্ষক হিসাবে চিহ্নিত করা যেতে পারে যা নেতা নির্বাচনের জন্য অনুপযুক্ত করে তোলে। শিক্ষানবিস প্রতিলিপিগুলি সর্বদা কেবল পাঠযোগ্য থাকে এবং নেতৃত্বের প্রার্থী হতে পারে না৷

লার্নার প্রতিলিপি যোগ করা ক্লাস্টারের স্থায়িত্বকে প্রভাবিত করে না এবং তারা বিভক্ত হয়ে গেলে লেখার দ্বন্দ্ব সৃষ্টি করতে পারে না। এমনকি যখন তারা নেতা থেকে বিভক্ত হয়ে যায়, তখনও তারা পড়ার অনুরোধের অনুমতি দেয় এবং বিভক্তি সেরে যাওয়ার পরে অবশিষ্ট লেখাগুলি সিঙ্ক করে। তাই লার্নারের প্রতিলিপিগুলি আমাদের জন্য আরও প্রান্তের অবস্থানগুলি প্রসারিত করার জন্য একটি খুব ভাল উপযোগিতা৷

আরো অঞ্চল, আরো প্রতিলিপি?

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

এখনও যেতে হবে

বর্তমানে গ্লোবাল ডেটাবেসগুলি শুধুমাত্র পঠিত ক্রিয়াকলাপের লেটেন্সি অপ্টিমাইজ/কম করার জন্য ডিজাইন করা হয়েছে। এগুলি লেখা-ভারী লোডের জন্য উপযুক্ত নয়৷ আমরা আরও ভাল ডিজাইনের সাথে লেখার ক্রিয়াকলাপের জন্য লেটেন্সি উন্নত করার জন্য কাজ করছি৷

প্রাথমিক পাঁচটি অঞ্চল সেটআপ ছাড়াও, আমরা আমাদের ব্যবহারকারীদের চাহিদা এবং প্রতিক্রিয়ার কারণে ভবিষ্যতে আরও অঞ্চল এবং/অথবা বিভিন্ন অঞ্চল গোষ্ঠী খোলার কথা বিবেচনা করছি৷

আপনি টুইটার এবং ডিসকর্ডে আপনার চিন্তা/ভাবনা এবং আপনার প্রশ্নের জন্য আমাদের সাথে যোগাযোগ করতে পারেন।


  1. স্ট্রাপির জন্য সার্ভারহীন রেডিস ক্যাশিং

  2. Nuxt 3 এবং সার্ভারলেস রেডিস দিয়ে শুরু করা

  3. এজ ক্যাশিং সহ 5 ms গ্লোবাল রেডিস লেটেন্সি

  4. কিভাবে মাইক্রোসফ্ট এজ এর জন্য এক্সটেনশনগুলি ইনস্টল এবং পরিচালনা করবেন