অনেক নোডের মধ্যে ডেটা শেডিং না করে পোস্টগ্রিসএসকিউএলে 100 টিবি ডাটাবেস (প্রায় 90 টিবি আসলে) সেটআপ করা কি বাস্তবসম্মত ? অনুরূপ সেটআপগুলি সম্পর্কে কোনও সাফল্যের গল্প / উদাহরণ আছে?
অনেক নোডের মধ্যে ডেটা শেডিং না করে পোস্টগ্রিসএসকিউএলে 100 টিবি ডাটাবেস (প্রায় 90 টিবি আসলে) সেটআপ করা কি বাস্তবসম্মত ? অনুরূপ সেটআপগুলি সম্পর্কে কোনও সাফল্যের গল্প / উদাহরণ আছে?
উত্তর:
50 কে প্রতি সেকেন্ডে লেখেন যে শোষিত হওয়া প্রয়োজন সাধারণত চ্যালেঞ্জের চেয়ে বেশি। এমনকি বেশ সাধারণ সন্নিবেশ সহ সিন্থেটিক বেঞ্চমার্কগুলিতে পোস্টগ্র্রেএসকিউএল এর সীমাগুলি প্রায় 10 কে / সেকেন্ডের দিকে সর্বাধিক প্রবণতা অর্জন করে - এবং সেখানে ডাটাবেসের আকারের ক্ষেত্রে আপনার কাছে এত বড় জন্তুও নেই।
এছাড়াও সেই একক পোস্টগ্রাইএসকিউএল নোডের জন্য আই / ও সিস্টেমটিও রাইড 10 এর মতোই আকর্ষণীয় হবে এবং ধরে নেওয়া যে 50K সন্নিবেশগুলি কেবল 50K আইওপিএসের সমান হতে চলেছে (যা সম্ভবত ভুল, তবে এটি আপনার ডাটাবেস স্কিম এবং সূচকগুলির উপর নির্ভর করে ), আপনার একটি খুব ভাল অ্যারের সাথে জুটিবদ্ধ প্রায় একশো ডিস্কের প্রয়োজন হবে যা আপনাকে সময় মতো লেখালেখি করার জন্য কয়েকশ ডিস্ক কেনা থেকে বাঁচায়।
যদি শার্পিং সহজ হয় এবং আপনি এত বিশাল লেখার লোড আশা করেন তবে শার্পিংয়ের জন্য যান। লেখাগুলি স্কেল করা খুব কঠিন হতে পারে।
এটি বাস্তবসম্মত এবং কাজ করবে। পারফরম্যান্স আপনার কতটা র্যাম রয়েছে তার উপর নির্ভর করে depends যত বড় র্যাম, তত বড় ক্যাশে এবং লম্বা পোস্টগ্রিএসকিউএল ডিস্কে অফলোড করার আগে ডেটা ক্যাশে করতে পারে।
PostgreSQL ক্যাশে ডেটা লিখবে এবং সময়ে সময়ে ক্যাশে অফলোড করে। সুতরাং প্রতি সেকেন্ডে 50k INSERTs 50k IOPS এ অনুবাদ করা হবে না। এটি উপায় কম হবে, কারণ এটি একসাথে রেকর্ডগুলি ক্লাস্টার করবে এবং একই সাথে সমস্ত লিখবে।
বেশিরভাগ কাজ INSERT হলে একটি ডাটাবেস যা বড় হয় তা সমস্যা নয়। পোস্টগ্রেএসকিউএলকে এখানে এবং সেখানে সূচকগুলি পরিবর্তন করতে হবে তবে এটি সত্যিই একটি সহজ কাজ। আপনার যদি এই আকারের একটি ডাটাবেসে প্রচুর নির্বাচন করা থাকে, তবে আপনাকে সত্যই তীক্ষ্ণ করতে হবে।
আমি একবার কেবলমাত্র একটি উদাহরণ, একটি 16 গিগাবাইট সার্ভারে 400TB সহ একটি ওরাকল ডিবি (ওরাকল 10 জি) তে কাজ করেছি। ডাটাবেস কাজের চাপও প্রাথমিক INSERT গুলি ছিল, তাই প্রতিদিন কয়েকটা SELECT এবং প্রতিদিন কয়েক মিলিয়ন INSERTs ছিল। পারফরম্যান্স একটি সমস্যা থেকে দূরে ছিল।
100TB এ আপনার কাছে কয়েকটি গুরুত্বপূর্ণ চ্যালেঞ্জ রয়েছে। এটি আপনার পক্ষে কার্যকর হবে কিনা আপনি কীভাবে এগুলিকে সম্বোধন করতে চান তার উপর নির্ভর করে।
লেখার বোঝা শোষণ করার জন্য আপনার পর্যাপ্ত উপায় প্রয়োজন। এটি লেখার বোঝার উপর নির্ভর করে। তবে পর্যাপ্ত দুর্দান্ত স্টোরেজ সহ এটি সমাধান করা যেতে পারে। বেগ এখানে বড় সমস্যা। একইভাবে পড়ার অ্যাক্সেসটি মনোযোগ সহকারে দেখতে হবে।
বেশিরভাগ ডাটাবেসে একগুচ্ছ ছোট ছোট টেবিল থাকে না তবে প্রায়শই একটি বা দুটি সত্যিই বড় থাকে যা ডিবি আকারের অর্ধেক পর্যন্ত হতে পারে। PostgreSQL এর টেবিল প্রতি 32TB এর হার্ড সীমা রয়েছে। এরপরে জোয়ার টাইপ পৃষ্ঠা কাউন্টারগুলির বাইরে চলে যায়। এটি পোস্টগ্র্রেএসকিউএল এর একটি কাস্টম বিল্ড বা টেবিল বিভাজন দ্বারা পরিচালনা করা যেতে পারে তবে এটি প্রথমে একটি গুরুতর চ্যালেঞ্জ যার সমাধান করা দরকার।
PostgreSQL এর বিভিন্ন কাজের জন্য কতটা র্যাম ব্যবহার করতে পারে তার বাস্তব সীমাবদ্ধতা রয়েছে। সুতরাং বেশি র্যাম থাকা আপনাকে একটি নির্দিষ্ট বিন্দু ছাড়িয়ে যেতে পারে বা নাও করতে পারে।
ব্যাকআপস .... ব্যাকআপগুলি এই স্কেলটিতে আকর্ষণীয়। আমি যে 60 টিবি ডিবি জানি তা এফএস স্ন্যাপশট ব্যাকআপগুলি ব্যবহার করতে হবে এবং তারপরে ওয়াল সংরক্ষণাগারের জন্য বারম্যানের জন্য জাল ব্যাকআপগুলি নকল হয়েছিল। এই জাল ব্যাকআপগুলি fs স্ন্যাপশট ব্যাকআপের জন্য প্রক্সি ছিল। যেমন আমি বলেছিলাম "এগুলি নকল ব্যাকআপ নয়। তারা বিকল্প ব্যাকআপ!"
এই ব্যাপ্তিতে ডেটাবেসযুক্ত লোক রয়েছে। আমি নেদারল্যান্ডসের এমন একটি ব্যাংকের পক্ষে কাজ করেছি এমন একজনের সাথে কমপক্ষে একজনের সাথে দেখা হয়েছে যার একটি 60 টিবি পোস্টগ্রিসএসকিউএল ডাটাবেস ছিল। তবে এটি সত্যই, আপনার কাজের চাপের উপর নির্ভর করে এবং আকার নিজেই সমস্যা নয়।