আমরা একটি লিনাক্স ফাইল সিস্টেমে কয়েক মিলিয়ন পাঠ্য ফাইলগুলি সংরক্ষণ করতে চাই, একটি পরিষেবা হিসাবে একটি স্বেচ্ছাসেবী সংগ্রহকে জিপ আপ করতে এবং সেবার উদ্দেশ্যে। আমরা কী / মান ডাটাবেসের মতো অন্যান্য সমাধানগুলি চেষ্টা করেছি, তবে একত্রে এবং সমান্তরালতার জন্য আমাদের প্রয়োজনীয়তা দেশী ফাইল সিস্টেমকে সেরা পছন্দ হিসাবে ব্যবহার করে।
সর্বাধিক সোজা উপায় হ'ল ফোল্ডারে সমস্ত ফাইল সঞ্চয় করা:
$ ls text_files/
1.txt
2.txt
3.txt
যা কোনও EXT4 ফাইল সিস্টেমে সম্ভব হওয়া উচিত , যার কোনও ফোল্ডারে ফাইল সংখ্যার সীমা নেই।
দুটি এফএস প্রক্রিয়া হবে:
- ওয়েব স্ক্র্যাপ থেকে পাঠ্য ফাইলটি লিখুন (ফোল্ডারে ফাইল সংখ্যার দ্বারা প্রভাবিত হওয়া উচিত নয়)।
- ফাইলের নামের তালিকা দ্বারা প্রদত্ত ফাইলগুলি জিপ করুন।
আমার প্রশ্ন হ'ল, কোনও ফোল্ডারে দশ মিলিয়ন ফাইল সংরক্ষণের ফলে ফাইলগুলি বাস করার জন্য সাবফোল্ডার গাছ তৈরির পরিবর্তে উপরের ক্রিয়াকলাপ বা সাধারণ সিস্টেমের পারফরম্যান্সকে প্রভাব ফেলবে?
ls -l
বা stat
ডিরেক্টরিতে প্রতিটি bash
ইনোডের (যেমন গ্লোব্বিং / ট্যাব সমাপ্তি) অন্য যে কোনও কিছু কৃত্রিমভাবে দ্রুত হবে কিছু পরার পরে টিয়ার (কিছু ফাইল মুছুন, কিছু নতুন লিখুন)। এক্সএফএস এক্সএফএসের চেয়ে এটি আরও ভাল করতে পারে, কারণ এক্সএফএস ডায়নামিকভাবে আইওনড বনাম ডেটার জন্য স্থান বরাদ্দ করে, যাতে আপনি আরও ছড়িয়ে ছিটিয়ে থাকা ইনডগুলি দিয়ে শেষ করতে পারেন I (তবে এটি খুব কম বিশদ জ্ঞানের উপর ভিত্তি করে একটি খাঁটি অনুমান; আমি সবেমাত্র ext4 ব্যবহার করেছি)। abc/def/
সাবদারদের সাথে যান ।
ZipOutputStream
তৈরি করতে চাইলে যে কোনও ফ্রি লিনাক্স নেটিভ ফাইল সিস্টেমকে মারতে পারে - আমি সন্দেহ করি আপনি আইবিএমের জিপিএফএসের জন্য অর্থ দিতে চান doubt কোনও জেডিবিসি ফলাফল সেট প্রক্রিয়া করতে এবং সেই জিপ স্ট্রিমটি তৈরি করতে লুপটি সম্ভবত জাভা কোডের কেবল 6-8 লাইন।
dir_index
, যা প্রায়শই ডিফল্টরূপে সক্ষম হয়, তা অনুসন্ধানের গতি বাড়িয়ে দেবে তবে প্রতি ডিরেক্টরি ফাইলের সংখ্যা সীমিত করতে পারে।