লক্ষ লক্ষ ছোট ফাইলের জন্য আকারগুলি ব্লক করে


10

ডেবিয়ান হুইজিতে আমার কাছে হার্ডওয়্যার RAID1 (এটি একটি LSI মেগায়েড হতে পারে) এ 2x 4TB ডিস্ক রয়েছে। শারীরিক ব্লকের আকার 4 কেবি। আমি 150-200 মিলিয়ন ছোট ফাইল সংরক্ষণ করতে যাচ্ছি (3 থেকে 10 কেবি এর মধ্যে)। আমি পারফরম্যান্সের জন্য বলছি না, তবে স্টোরেজ সংরক্ষণের জন্য সেরা ফাইল সিস্টেম এবং ব্লক আকারের জন্য। আমি 00২০০ বাইটের একটি ফাইল 4kB ব্লকের আকারের একটি এক্সট 4 এ অনুলিপি করেছি। এটিতে 32 কেবি ডিস্ক লাগল !? জার্নালিং কি এর কারণ? তাহলে এই জাতীয় ছোট ফাইলগুলির জন্য বেশিরভাগ স্টোরেজ সংরক্ষণের বিকল্পগুলি কী কী?


উত্তর:


1

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

বিকল্পভাবে, আপনি ফাইল মাপের th০ তম - th০ তম পার্সেন্টাইল বলতে এবং ডিস্কের পৃথক ব্লকের পরিবর্তে ফাইলসাইম ট্রি নোডগুলিতে সরাসরি ফাইলাইজ করার চেষ্টা করতে পারেন। প্রতিটি নোডে 10 কে স্টোরেজ করা সম্ভবত একটি বড় জিজ্ঞাসা, তবে আপনি যদি সেখানে 60% -70% ফাইল পেতে পারেন তবে সম্ভবত এটি একটি বিশাল জয়।

কেবলমাত্র কিছু ফাইল সিস্টেমগুলি এগুলি করতে পারে (রিসফারগুলি একটি) এবং আমি অনুমান করি যে এটি সমস্ত নির্ভর করে যে আকারটি পার্সেন্টাইল কি তা গাছের সাথে উপযুক্ত হবে কিনা fit আপনি এটি টিউন করতে সক্ষম হতে পারে। আমি অনুমান করি বাকিটি একটি ব্লকের সাথে ফিট করার চেষ্টা করুন।

এবং জার্নাল সম্পর্কে চিন্তা করবেন না; তাদের যাই হোক না কেন উচ্চতর আকারের সীমা রয়েছে।


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

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

2
5 বছর আগে আমি একক ফোল্ডারে 1 মিলিয়ন ফাইল এবং প্রতিদিন 10,000 টি নতুন 1-4KB ফাইলের সাথে উত্তরাধিকার সূত্রে পেয়েছি। আমি তাদের সকলকে ইসমের টেবিলে ফেলে দেওয়ার সিদ্ধান্ত নিয়েছি কারণ "আরে, তারা বিশ্লেষণের জন্য কেবল সরল পাঠ্য!" এবং তারপরে এটি একটি বিশাল ভুল হিসাবে প্রমাণিত হয়েছিল কারণ আমার কাছে এখন একক 12 জিবি টেবিল ছিল যেখানে স্কিলিয়ন সারি রয়েছে যা প্রক্রিয়া করার পরে বেশিরভাগ কিছুই করেনি। সুতরাং আমি ফাইলের নামের জিইউইউডির উপর ভিত্তি করে হিরাচিয়াল ফোল্ডারগুলি দিয়ে একটি ফাইল সিস্টেমে ফিরিয়ে আনলাম।
মার্ক হেন্ডারসন

(স্ক্লোলিয়ন সারি সহ একটি একক জিবিবি টেবিল কেন একটি সমস্যা ছিল তা আমি আলাদা করব না)
মার্ক হেন্ডারসন

2
@ মারকহেন্ডারসন: এটি আলাদা সমস্যা নয়, এ কারণেই আপনি কেন বলেছেন যে এটিই ভুল সমাধান ("... বিশাল ভুল কারণ আমার এখন একক 12 জিবি টেবিল ছিল একটি স্কিলিয়ন সারি ....")। আপনি ভুল ডাটাবেস ইঞ্জিন / টেবিল বিন্যাস চয়ন করেন, তবে একটি আইএনডেক্সের সাহায্যে প্রচুর ছোট ছোট জিনিস একক ফাইলে রাখার ধারণাটি যথাযথ, যতক্ষণ আপনি এটি সঠিকভাবে করেন। আপনি যা চান তা হ'ল একটি ডাটাবেস যা কী / মান স্টোরগুলিতে কয়েক মিলিয়ন ছোট ছোট অবজেক্টের জন্য অটো-শার্টিংয়ের সাথে অতিক্রম করে। এছাড়াও নোট করুন যে তিনি বিশেষভাবে পারফরম্যান্স, কেবল স্থানের বিষয়েও যত্নবান নন।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.