zstd - একটি দ্রুত ডেটা সংক্ষেপণ অ্যালগরিদম ফেসবুক দ্বারা ব্যবহৃত


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

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

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

এটি সক্রিয়ভাবে একাধিক ফর্ম্যাটে বড় আকারের ডেটা সংকুচিত করতে এবং ফেসবুকে কেস ব্যবহার করতে ব্যবহৃত হয়; অ্যামাজন রেডশিফ্ট ডেটা গুদামজাতের মতো পরিষেবাগুলি; হ্যাডোপ এবং রেডিসের মতো ডেটাবেস; টোর নেটওয়ার্ক এবং গেমস সহ আরও অনেক অ্যাপ্লিকেশন।

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

লিনাক্সে কীভাবে জাস্ট্যান্ডার্ড সংকোচনের সরঞ্জাম ইনস্টল করবেন

লিনাক্স ডিস্ট্রিবিউশনে জাস্ট্যান্ডার্ড ইনস্টল করার জন্য আপনাকে এটি উত্স থেকে সংকলন করতে হবে, তবে তার আগে আপনাকে আপনার ডিস্ট্রিবিউশন প্যাকেজ ম্যানেজারটি দেখানো হিসাবে প্রয়োজনীয় সিস্টেমে প্রয়োজনীয় বিকাশ সরঞ্জাম ইনস্টল করতে হবে।

$ sudo apt update && sudo apt install build-essential		#Ubuntu/Debian
# yum group install "Development Tools" 			#CentOS/REHL
# dnf groupinstall "C Development Tools and Libraries"		#Fedora 22+

সমস্ত প্রয়োজনীয় বিকাশ সরঞ্জাম ইনস্টল হয়ে গেলে, এখন আপনি উত্স প্যাকেজটি ডাউনলোড করতে পারেন, স্থানীয় রেপো ডিরেক্টরিতে স্থানান্তর করতে পারেন, বাইনারিটি তৈরি করতে পারেন এবং এটি প্রদর্শিত হিসাবে ইনস্টল করতে পারেন।

$ cd ~/Downloads
$ git clone https://github.com/facebook/zstd.git
$ cd zstd
$ make
$ sudo make install 

একবার Zstandard ইনস্টল করা, এখন আমরা নিম্নলিখিত বিভাগে Zstd কমান্ড উদাহরণের কিছু বেসিক ব্যবহার শিখতে আরও এগিয়ে যেতে পারি।

লিনাক্সে 10 জেডটিডি কমান্ড ব্যবহারের উদাহরণ শিখুন

জেডএসটিডি-র কমান্ড লাইন সিনট্যাক্সটি সাধারণত কয়েকটি পার্থক্য সহ জিজিপ এবং এক্স জেড সরঞ্জামগুলির সাথে সমান।

১. একটি .zst সংক্ষেপণ ফাইল তৈরি করতে, এটি সঙ্কুচিত করার জন্য কেবল একটি ফাইলের নাম সরবরাহ করুন বা -z পতাকা ব্যবহারের অর্থ কমপ্রেসও রয়েছে, এটি ডিফল্ট ক্রিয়া।

$ zstd etcher-1.3.1-x86_64.AppImage 
OR
$ zstd -z etcher-1.3.1-x86_64.AppImage 

২. একটি .zst সংক্ষেপণ ফাইলটি সংক্ষেপিত করতে, -d পতাকাটি বা প্রদর্শিত হিসাবে unzstd ইউটিলিটি ব্যবহার করুন।

$ zstd -d etcher-1.3.1-x86_64.AppImage.zst 
OR
$ unzstd etcher-1.3.1-x86_64.AppImage.zst 

৩. কোনও অপারেশনের পরে উত্স ফাইলটি সরাতে, ডিফল্টরূপে, উত্স ফাইলটি সফল সংক্ষেপণ বা ডিকম্প্রেশন পরে মুছে ফেলা হয় না, মুছে ফেলার জন্য --rm বিকল্পটি ব্যবহার করুন।

$ ls etcher-1.3.1-x86_64.AppImage
$ zstd --rm  etcher-1.3.1-x86_64.AppImage
$ ls etcher-1.3.1-x86_64.AppImage

৪. একটি সংকোচনের স্তর নির্ধারণ করতে, zstd- তে বেশ কয়েকটি অপারেশন সংশোধক রয়েছে, উদাহরণস্বরূপ আপনি দেখানো হিসাবে -6 (একটি সংখ্যা 1-19, ডিফল্ট 3) হিসাবে একটি সংক্ষেপণ স্তর নির্দিষ্ট করতে পারেন।

$ zstd -6 --rm etcher-1.3.1-x86_64.AppImage

৫. একটি সংক্ষেপণের গতি সেট করতে, zstd এর একটি সংকোচনের গতি অনুপাত 1-10 রয়েছে, ডিফল্ট সংকোচনের গতি হয় 1. আপনি --رفਸਟ বিকল্পের সাথে সংক্ষেপণের গতির জন্য সংক্ষেপণ অনুপাত ট্রেড করতে পারেন, উচ্চতর সংকোচনের গতি দ্রুততর করুন।

$ zstd --fast=10 etcher-1.3.1-x86_64.AppImage

A. একটি সংকোচিত ফাইল সম্পর্কিত তথ্য প্রদর্শনের জন্য, -l পতাকাটি ব্যবহার করুন, উদাহরণস্বরূপ, একটি সংকোচিত ফাইল সম্পর্কিত তথ্য প্রদর্শন করতে ব্যবহৃত হয়।

$ zstd -l etcher-1.3.1-x86_64.AppImage.zst

A. সংক্ষেপিত ফাইলগুলির অখণ্ডতা পরীক্ষা করতে, প্রদর্শিত হিসাবে -টি পতাকাটি ব্যবহার করুন।

$ zstd -t etcher-1.3.1-x86_64.AppImage.zst

৮. ভার্বোজ মোড সক্ষম করতে -v বিকল্পটি ব্যবহার করুন।

$ zstd -v -5 etcher-1.3.1-x86_64.AppImage

9. দেখানো হিসাবে - formatt = FORMAT ব্যবহার করে gzip, xz, lzma, এবং lz4 এর মতো অন্যান্য ফাইল সংক্ষেপণ বা ডিকম্প্রেশন ফর্ম্যাটগুলি ব্যবহার করতে।

$ zstd -v --format=gzip etcher-1.3.1-x86_64.AppImage
$ zstd -v --format=xz  etcher-1.3.1-x86_64.AppImage

১০. রিয়েল-টাইমে কোনও জেএসডিডি প্রক্রিয়া অগ্রাধিকার সেট করতে, আপনি asপ্রিয়রিটি = rt বিকল্পটি ব্যবহার হিসাবে ব্যবহার করতে পারেন।

$zstd --priority=rt etcher-1.3.1-x86_64.AppImage

-r পতাকাটি zstd অভিধানগুলিতে পুনরাবৃত্তভাবে পরিচালনার নির্দেশ দেয়। Zstd ম্যান পেজের সাথে পরামর্শ করে অভিধানগুলি কীভাবে পড়তে বা তৈরি করতে হয় আপনি প্রচুর দরকারী এবং উন্নত বিকল্পগুলি সন্ধান করতে পারেন।

$ man zstd

জাস্টস্টার্ড গিথুব সংগ্রহশালা: https://github.com/facebook/zstd

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