Bzip2 প্রতিস্থাপনের জন্য কেন আর্কাইভ ফর্ম্যাটগুলি xz সংক্ষেপণে স্যুইচ করছে এবং জিজিপ সম্পর্কে কী?


202

আরও এবং আরও অনেকগুলি tarসংরক্ষণাগারগুলি xzচিরাচরিত bzip2(bz2)সংকোচনের পরিবর্তে সংক্ষেপণের জন্য LZMA2 এর ভিত্তিতে ফর্ম্যাটটি ব্যবহার করে । প্রকৃতপক্ষে কার্নেল.আর.জি 27 ই ডিসেম্বর ২০১৩ , " বিদায় বিজিপি 2 " দেরী করে ঘোষণা করেছে, কার্নেল উত্সগুলি ইঙ্গিত দেয় যে এদিক থেকে টার.gz এবং টার.এক্সজেড উভয় বিন্যাসে প্রকাশ করা হবে - এবং ওয়েবসাইটের মূল পৃষ্ঠায় কি সরাসরি প্রদত্ত হচ্ছে হয় tar.xz

এটি কেন ঘটছে এবং gzipএই প্রসঙ্গে প্রাসঙ্গিকতার ব্যাখ্যা দেওয়ার কোনও নির্দিষ্ট কারণ রয়েছে ?

history  gzip  bzip2  xz 

উত্তর:


198

ইন্টারনেটে সংরক্ষণাগার বিতরণের জন্য, নিম্নলিখিত বিষয়গুলি সাধারণত অগ্রাধিকার হয়:

  1. সংকোচনের অনুপাত (যেমন, সংক্ষেপক সংক্ষিপ্ত বিবরণটি কতটা ছোট করে তোলে);
  2. ডিকম্প্রেশন সময় (সিপিইউ প্রয়োজনীয়তা);
  3. ডিকম্প্রেশন মেমরি প্রয়োজনীয়তা; এবং
  4. সামঞ্জস্যতা (ডিকম্প্রেশন প্রোগ্রামটি কত বিস্তৃত)

সংক্ষেপণ মেমরি এবং সিপিইউ প্রয়োজনীয়তাগুলি খুব গুরুত্বপূর্ণ নয়, কারণ আপনি এটির জন্য একটি বৃহত ফাস্ট মেশিন ব্যবহার করতে পারেন এবং আপনাকে কেবল একবার এটি করতে হবে।

Bzip2 এর তুলনায়, xz এর একটি আরও ভাল সংকোচনের অনুপাত এবং কম (আরও ভাল) ডিকম্প্রেশন সময় রয়েছে। এটি - তবে typically সাধারণত ব্যবহৃত সংক্ষেপণ সেটিংসে - ডেকপ্রেস করার জন্য আরও মেমরির প্রয়োজন [1] এবং এটি কিছুটা কম বিস্তৃত হয়। জিজিপ উভয়ের তুলনায় কম স্মৃতি ব্যবহার করে।

সুতরাং, উভয় gzip এবং xz বিন্যাস সংরক্ষণাগার পোস্ট করা হয়েছে, আপনাকে বাছাই করার অনুমতি দেয়:

  • খুব সীমাবদ্ধ মেমরি (<32 এমবি) সহ একটি মেশিনে ডিসক্রप्रेस করা দরকার : জিজিপ। প্রদত্ত, কার্নেল উত্স সম্পর্কে কথা বলার সময় খুব সম্ভবত না।
  • ন্যূনতম সরঞ্জামগুলি উপলভ্য করতে হবে: gzip
  • ডাউনলোডের সময় এবং / অথবা ব্যান্ডউইথ: xz সংরক্ষণ করতে চান

বাস্তবে এমন একটি বাস্তবসম্মত সমন্বয় নেই যা আপনাকে bzip2 বাছাই করতে চাইবে। সুতরাং এটি পর্যায়ক্রমে হচ্ছে।

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

(কিছু নির্দিষ্ট পরিস্থিতি রয়েছে যেখানে একটি ভাল bzip2 বাস্তবায়ন xz এর চেয়ে ভাল হতে পারে: bzip2 xz এর চেয়ে অনেকগুলি জিরো এবং জিনোম ডিএনএ সিকোয়েন্স সহ একটি ফাইল সংকোচন করতে পারে x দুর্নীতির বিন্দু এবং সমান্তরাল সংক্ষেপণের পরে এবং [তত্ত্বে] ডেকম্প্রেশন পরে। কেবলমাত্র bzip2 এগুলি সরবরাহ করে [[২] তবে এগুলির কোনও কিছুই কার্নেল বিতরণের জন্য প্রাসঙ্গিক নয়)


1: সংরক্ষণাগার আকারে, xz -3প্রায় কাছাকাছি bzip -9। তারপরে xz সংক্ষেপণ করতে কম মেমরি ব্যবহার করে। তবে xz -9(যেমন, লিনাক্স কার্নেল টার্বলগুলির জন্য ব্যবহৃত) এর চেয়ে অনেক বেশি ব্যবহার করে bzip -9। (এবং এমনকি xz -0আরও বেশি প্রয়োজন gzip -9)।

2: F21 সিস্টেমের প্রশস্ত পরিবর্তন: lbzip2 ডিফল্ট হিসাবে bzip2 বাস্তবায়ন


দোষ সহনশীলতা সম্পর্কিত কোনও মন্তব্য বা হ'ল এটি সর্বদা সংক্ষেপণ অ্যালগরিদমের বাইরে সম্পূর্ণরূপে বাস্তবায়িত হয়?

1
@ ইলুমিনÉ রিসিলেন্সি সংক্ষেপণ অনুপাতের ত্যাগ ছাড়াই সরবরাহ করা যায় না। এটি একটি অরথোগোনাল সমস্যা, এবং কার্নেল টিসিপি'র ত্রুটি পরিচালনার বিতরণ করার জন্য পারচাইভের মতো সরঞ্জাম উপস্থিত থাকলে কাজটি ঠিক তেমনি করে।
তোবু

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

xz সংক্ষেপিত করতে কম স্মৃতি ব্যবহার করে।
মিশাল এইচ

@ মাইক এটি লেখার পর থেকে কি এটি পরিবর্তন হয়েছে? বিশেষত, পাদটীকা এক মেমরির ব্যবহার ব্যাখ্যা করে।
ডারোবার্ট

45

প্রথমত, এই প্রশ্নটি সরাসরি সম্পর্কিত নয় tar। টার কেবল একটি সঙ্কুচিত সংরক্ষণাগার তৈরি করে, সংক্ষেপণটি পরে প্রয়োগ করা হবে।

LZMA2 এবং bzip2 এর তুলনায় Gzip তুলনামূলকভাবে দ্রুত হিসাবে পরিচিত। গতির বিষয়টি যদি হয় gzip(বিশেষত মাল্টিথ্রেডেড বাস্তবায়ন pigz) প্রায়শই সংক্ষেপণের গতি এবং সংক্ষেপণের অনুপাতের মধ্যে একটি ভাল সমঝোতা হয়। যদিও গতি একটি সমস্যা হলে বিকল্প রয়েছে (যেমন এলজেড 4)।

যাইহোক, যদি উচ্চ সংকোচনের অনুপাতটি bzip2প্রায় প্রতিটি ক্ষেত্রেই LZMA2 বীট পছন্দ করে। সংক্ষেপণের গতিটি প্রায়শই ধীর হয় তবে এটি দ্রুত গতিবেগ ঘন করে এবং উচ্চতর মেমরির ব্যবহারের ব্যয়ে একটি আরও ভাল সংক্ষেপণ অনুপাত সরবরাহ করে।

bzip2পিছনের সামঞ্জস্যতা বাদে আর কোনও ব্যবহারের খুব বেশি কারণ নেই। তদ্ব্যতীত, এলজেডএমএ 2 মাল্টিথ্রেডিংয়ের কথা মাথায় রেখে ডিজিটালভাবে বহু বাস্তবায়ন মাল্টিকোর সিপিইউ ব্যবহার করে (দুর্ভাগ্যক্রমে xzলিনাক্স এ এটি করে না)। এটি বোঝায় যেহেতু ঘড়ির গতি আর বাড়বে না তবে কোরগুলির সংখ্যা হবে।

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


4
ভাল কিছু টার একটি zবিকল্প ছাঁটাই ।
tchrist

"গতি" একটি জঞ্জাল উত্তরের জন্য তোলে, আপনার সংক্ষেপণ গতি বা ডিকম্প্রেশন গতি উল্লেখ করা উচিত। পিক্স, পিবিজিপ 2 বা পিগজ দুটিই ডিফল্টরূপে ইনস্টল করা হয় না (বা -আই পতাকা ছাড়া টার দ্বারা ব্যবহৃত হয়), তবে পিক্স এবং পিবিজিপ 2 গতি বাড়িয়ে সংকোচনের এবং ডিকম্প্রেশন এবং পিগজ কেবল সংক্ষেপণের জন্য।
টুবু

@ তোবু xzডিফল্টরূপে মাল্ট্রিথ্রেড হবে তাই pixzভবিষ্যতে কোনও ইনস্টলেশন প্রয়োজন হবে না। কিছু প্ল্যাটফর্মের xzথ্রেডিং ইতিমধ্যে সমর্থিত। যেখানে bzip2অসম্ভাব্য বরাবর বিন্যাস মনে multithreading সঙ্গে বানানো হয়নি মাল্টি করা হবে না। তদুপরি, pbzip2কেবল ফাইলটি ব্যবহার করে সংকুচিত করা হয়েছে, pbzip2যা প্রায়শই ক্ষেত্রে হয় না শুধুমাত্র সংক্ষেপণের গতি বাড়ায় ।
মার্কো

1
@ মার্কো আমার বিশ্বাস lbzip2 ফাইলগুলিকে সমান্তরাল ক্ষয় করার অনুমতি দেয় এমনকি যদি তারা একটি সমান্তরাল বাস্তবায়ন (যেমন স্টক বিজিপ 2) দিয়ে সংকুচিত হয়। এজন্য আমি pbzip2 ওপরে lbzip2 ব্যবহার করি। (এটি আপনার মন্তব্যের পর থেকেই এটি বিকশিত হতে পারে))
র্যাভ দ্য ট্যাডপোল

19

সংক্ষিপ্ত উত্তর : এক্সজেড কম্প্রেশন অনুপাতের ক্ষেত্রে আরও দক্ষ। সুতরাং এটি ডিস্কের স্থান সাশ্রয় করে এবং নেটওয়ার্কের মাধ্যমে স্থানান্তরকে অনুকূল করে তোলে। ব্যবহারিক পরীক্ষার মাধ্যমে পার্থক্যটি আবিষ্কার
করতে আপনি এই দ্রুত বেঞ্চমার্কটি দেখতে পারেন ।


লিঙ্কটি নষ্ট হয়ে গেছে।
flarn2006

18

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


2
এটি সত্যিই একটি খুব দরকারী এবং গুরুত্বপূর্ণ পার্থক্য!
leden
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.