تیز رفتار فیل محفوظ کمپریشن (جاری ہے)

یہ مضمون پہلے سے ہی تیز رفتار ڈیٹا کمپریشن کے موضوع میں دوسرا ہے۔ پہلے مضمون میں 10 جی بی فی سیکنڈ کی رفتار سے کام کرنے والے کمپریسر کی وضاحت کی گئی تھی۔ فی پروسیسر کور (کم سے کم کمپریشن، RTT-Min)۔

یہ کمپریسر پہلے ہی فرانزک ڈپلیکیٹرز کے آلات میں سٹوریج میڈیا ڈمپ کے تیز رفتار کمپریشن اور کرپٹوگرافی کی طاقت کو بڑھانے کے لیے لاگو کیا جا چکا ہے؛ اسے ورچوئل مشینوں اور ریم سویپ فائلوں کی تصاویر کو تیز رفتار پر محفوظ کرتے وقت کمپریس کرنے کے لیے بھی استعمال کیا جا سکتا ہے۔ ایس ایس ڈی ڈرائیوز۔

پہلے آرٹیکل میں HDD اور SSD ڈسک ڈرائیوز (میڈیم کمپریشن، RTT-Mid) کی بیک اپ کاپیوں کو نمایاں طور پر بہتر ڈیٹا کمپریشن پیرامیٹرز کے ساتھ کمپریس کرنے کے لیے ایک کمپریشن الگورتھم کی ترقی کا بھی اعلان کیا گیا ہے۔ اب تک، یہ کمپریسر مکمل طور پر تیار ہے اور یہ مضمون اس کے بارے میں ہے۔

ایک کمپریسر جو RTT-Mid الگورتھم کو لاگو کرتا ہے ایک کمپریشن تناسب فراہم کرتا ہے جو معیاری آرکائیورز جیسے WinRar، 7-Zip، تیز رفتار موڈ میں کام کرتا ہے۔ ایک ہی وقت میں، اس کی آپریٹنگ اسپیڈ کم از کم ایک آرڈر کی شدت سے زیادہ ہے۔

ڈیٹا پیکنگ/ان پیکنگ کی رفتار ایک اہم پیرامیٹر ہے جو کمپریشن ٹیکنالوجیز کے اطلاق کے دائرہ کار کا تعین کرتا ہے۔ اس بات کا امکان نہیں ہے کہ کوئی بھی ٹیرا بائٹ ڈیٹا کو 10-15 میگا بائٹس فی سیکنڈ کی رفتار سے کمپریس کرنے کے بارے میں سوچے گا (یہ بالکل معیاری کمپریشن موڈ میں آرکائیورز کی رفتار ہے)، کیونکہ مکمل پروسیسر لوڈ کے ساتھ اس میں تقریباً بیس گھنٹے لگیں گے۔ .

دوسری طرف، اسی ٹیرا بائٹ کو تقریباً دس منٹ میں 2-3 گیگا بائٹس فی سیکنڈ کی رفتار سے کاپی کیا جا سکتا ہے۔

لہذا، بڑے حجم کی معلومات کا کمپریشن اہم ہے اگر اسے اس رفتار سے انجام دیا جائے جو حقیقی ان پٹ/آؤٹ پٹ کی رفتار سے کم نہ ہو۔ جدید نظاموں کے لیے یہ کم از کم 100 میگا بائٹس فی سیکنڈ ہے۔

جدید کمپریسرز ایسی رفتار صرف "تیز" موڈ میں پیدا کر سکتے ہیں۔ یہ اس موجودہ موڈ میں ہے کہ ہم روایتی کمپریسرز کے ساتھ RTT-Mid الگورتھم کا موازنہ کریں گے۔

ایک نئے کمپریشن الگورتھم کی تقابلی جانچ

RTT-Mid کمپریسر نے ٹیسٹ پروگرام کے حصے کے طور پر کام کیا۔ ایک حقیقی "کام کرنے والی" ایپلی کیشن میں یہ بہت تیزی سے کام کرتا ہے، یہ ملٹی تھریڈنگ کو سمجھداری سے استعمال کرتا ہے اور "نارمل" کمپائلر استعمال کرتا ہے، C# نہیں۔

چونکہ تقابلی ٹیسٹ میں استعمال ہونے والے کمپریسرز مختلف اصولوں پر بنائے گئے ہیں اور مختلف قسم کے ڈیٹا کو مختلف طریقے سے کمپریس کیا جاتا ہے، اس لیے ٹیسٹ کی معروضیت کے لیے "ہسپتال میں اوسط درجہ حرارت" کی پیمائش کا طریقہ استعمال کیا گیا...

ونڈوز 10 آپریٹنگ سسٹم کے ساتھ منطقی ڈسک کی ایک سیکٹر بہ سیکٹر ڈمپ فائل بنائی گئی، یہ مختلف ڈیٹا ڈھانچے کا قدرتی مرکب ہے جو درحقیقت ہر کمپیوٹر پر دستیاب ہے۔ اس فائل کو کمپریس کرنے سے آپ نئے الگورتھم کی رفتار اور کمپریشن کی ڈگری کا موازنہ جدید آرکائیورز میں استعمال ہونے والے جدید ترین کمپریسرز سے کر سکیں گے۔

یہاں ڈمپ فائل ہے:

تیز رفتار فیل محفوظ کمپریشن (جاری ہے)

ڈمپ فائل کو PTT-Mid، 7-zip، اور WinRar کمپریسرز کا استعمال کرتے ہوئے کمپریس کیا گیا تھا۔ WinRar اور 7-zip کمپریسر کو زیادہ سے زیادہ رفتار پر سیٹ کیا گیا تھا۔

کمپریسر چل رہا ہے۔ 7-زپ:

تیز رفتار فیل محفوظ کمپریشن (جاری ہے)

یہ پروسیسر کو 100% لوڈ کرتا ہے، جبکہ اصل ڈمپ کو پڑھنے کی اوسط رفتار تقریباً 60 میگا بائٹس/سیکنڈ ہے۔

کمپریسر چل رہا ہے۔ ونرار:

تیز رفتار فیل محفوظ کمپریشن (جاری ہے)

صورتحال بھی ایسی ہی ہے، پروسیسر کا بوجھ تقریباً 100% ہے، ڈمپ پڑھنے کی اوسط رفتار تقریباً 125 میگا بائٹس/سیکنڈ ہے۔

جیسا کہ پچھلے کیس میں، آرکائیور کی رفتار پروسیسر کی صلاحیتوں سے محدود ہے۔

کمپریسر ٹیسٹ پروگرام اب چل رہا ہے۔ RTT- وسط:

تیز رفتار فیل محفوظ کمپریشن (جاری ہے)

اسکرین شاٹ سے پتہ چلتا ہے کہ پروسیسر 50% پر لوڈ ہوتا ہے اور باقی وقت میں بیکار رہتا ہے، کیونکہ کمپریسڈ ڈیٹا کو اپ لوڈ کرنے کے لیے کوئی جگہ نہیں ہے۔ ڈیٹا اپ لوڈ ڈسک (ڈسک 0) تقریباً مکمل طور پر لوڈ ہو چکی ہے۔ ڈیٹا پڑھنے کی رفتار (ڈسک 1) بہت مختلف ہوتی ہے، لیکن اوسطاً 200 میگا بائٹس/سیکنڈ سے زیادہ۔

کمپریسر کی رفتار اس معاملے میں ڈسک 0 پر کمپریسڈ ڈیٹا لکھنے کی صلاحیت سے محدود ہے۔

اب نتیجے میں آرکائیوز کا کمپریشن تناسب:

تیز رفتار فیل محفوظ کمپریشن (جاری ہے)

تیز رفتار فیل محفوظ کمپریشن (جاری ہے)

تیز رفتار فیل محفوظ کمپریشن (جاری ہے)

یہ دیکھا جا سکتا ہے کہ RTT-Mid کمپریسر نے کمپریشن کا بہترین کام کیا؛ اس نے جو آرکائیو بنایا وہ WinRar آرکائیو سے 1,3 گیگا بائٹس چھوٹا اور 2,1z آرکائیو سے 7 گیگا بائٹس چھوٹا تھا۔

آرکائیو بنانے میں صرف کیا گیا وقت:

  • 7-زپ - 26 منٹ 10 سیکنڈ؛
  • WinRar - 17 منٹ 40 سیکنڈ؛
  • RTT-Mid – 7 منٹ 30 سیکنڈ۔

اس طرح، RTT-Mid الگورتھم کا استعمال کرتے ہوئے ایک ٹیسٹ، غیر اصلاحی پروگرام بھی ڈھائی گنا زیادہ تیزی سے آرکائیو بنانے میں کامیاب رہا، جب کہ آرکائیو اپنے حریفوں کے مقابلے میں نمایاں طور پر چھوٹا نکلا...

جو اسکرین شاٹس پر یقین نہیں رکھتے وہ خود ان کی صداقت چیک کر سکتے ہیں۔ ٹیسٹ پروگرام دستیاب ہے۔ لنک، ڈاؤن لوڈ کریں اور چیک کریں۔

لیکن صرف AVX-2 سپورٹ والے پروسیسرز پر، ان ہدایات کی حمایت کے بغیر کمپریسر کام نہیں کرتا، اور پرانے AMD پروسیسرز پر الگورتھم کی جانچ نہ کریں، وہ AVX ہدایات پر عمل کرنے کے معاملے میں سست ہیں...

کمپریشن کا طریقہ استعمال کیا جاتا ہے۔

الگورتھم بائٹ گرینولریٹی میں بار بار متن کے ٹکڑوں کو انڈیکس کرنے کا طریقہ استعمال کرتا ہے۔ کمپریشن کا یہ طریقہ ایک طویل عرصے سے جانا جاتا ہے، لیکن استعمال نہیں کیا گیا تھا کیونکہ میچنگ آپریشن ضروری وسائل کے لحاظ سے بہت مہنگا تھا اور لغت بنانے سے کہیں زیادہ وقت درکار تھا۔ لہذا RTT-Mid الگورتھم "مستقبل کی طرف واپس" جانے کی ایک بہترین مثال ہے...

PTT کمپریسر ایک منفرد تیز رفتار میچ سرچ سکینر استعمال کرتا ہے، جو ہمیں کمپریشن کے عمل کو تیز کرنے کی اجازت دیتا ہے۔ ایک خود ساختہ سکینر، یہ "میرا دلکش..." ہے، "یہ کافی مہنگا ہے، کیونکہ یہ مکمل طور پر ہاتھ سے بنایا گیا ہے" (اسمبلر میں لکھا گیا)۔

میچ سرچ اسکینر کو دو سطحی امکانی اسکیم کے مطابق بنایا گیا ہے: سب سے پہلے، میچ کے "نشان" کی موجودگی کو اسکین کیا جاتا ہے، اور اس جگہ پر "نشان" کی شناخت کے بعد ہی حقیقی میچ کا پتہ لگانے کا طریقہ کار شروع کیا جاتا ہے.

پروسیس شدہ ڈیٹا بلاک میں اینٹروپی کی ڈگری پر منحصر ہے، میچ سرچ ونڈو کا سائز غیر متوقع ہے۔ مکمل طور پر بے ترتیب (ناقابل تسخیر) ڈیٹا کے لیے اس کا سائز میگا بائٹ ہوتا ہے، تکرار والے ڈیٹا کے لیے یہ ہمیشہ میگا بائٹ سے بڑا ہوتا ہے۔

لیکن بہت سے جدید ڈیٹا فارمیٹس ناقابل تسخیر ہیں اور ان کے ذریعے وسائل سے متعلق اسکینر چلانا بیکار اور فضول ہے، اس لیے اسکینر دو آپریٹنگ طریقوں کا استعمال کرتا ہے۔ سب سے پہلے، ممکنہ تکرار کے ساتھ سورس ٹیکسٹ کے حصوں کو تلاش کیا جاتا ہے؛ یہ آپریشن بھی امکانی طریقہ استعمال کرتے ہوئے کیا جاتا ہے اور بہت تیزی سے انجام دیا جاتا ہے (4-6 گیگا بائٹس/سیکنڈ کی رفتار سے)۔ ممکنہ مماثلت والے علاقوں کو پھر مین سکینر کے ذریعے پروسیس کیا جاتا ہے۔

انڈیکس کمپریشن زیادہ موثر نہیں ہے، آپ کو ڈپلیکیٹ ٹکڑوں کو انڈیکس سے تبدیل کرنا ہوگا، اور انڈیکس کی صف کمپریشن تناسب کو نمایاں طور پر کم کرتی ہے۔

کمپریشن ریشو کو بڑھانے کے لیے، بائٹ سٹرنگز کے نہ صرف مکمل میچز کو انڈیکس کیا جاتا ہے، بلکہ جزوی بھی، جب سٹرنگ میں مماثل اور بے مثال بائٹس ہوتے ہیں۔ ایسا کرنے کے لیے، انڈیکس فارمیٹ میں ایک میچ ماسک فیلڈ شامل ہے جو دو بلاکس کے مماثل بائٹس کی نشاندہی کرتا ہے۔ اس سے بھی زیادہ کمپریشن کے لیے، اشاریہ سازی کا استعمال کئی جزوی طور پر مماثل بلاکس کو موجودہ بلاک پر کرنے کے لیے کیا جاتا ہے۔

اس سب نے PTT-Mid کمپریسر میں ایک کمپریشن تناسب حاصل کرنا ممکن بنایا جو لغت کے طریقہ کار کا استعمال کرتے ہوئے بنائے گئے کمپریسرز سے موازنہ کیا جا سکتا ہے، لیکن بہت تیزی سے کام کر رہا ہے۔

نئے کمپریشن الگورتھم کی رفتار

اگر کمپریسر کیش میموری کے خصوصی استعمال کے ساتھ کام کرتا ہے (فی تھریڈ میں 4 میگا بائٹس درکار ہیں)، تو آپریٹنگ اسپیڈ 700-2000 میگا بائٹس/سیکنڈ تک ہوتی ہے۔ فی پروسیسر کور، ڈیٹا کے کمپریس ہونے کی قسم پر منحصر ہے اور پروسیسر کی آپریٹنگ فریکوئنسی پر بہت کم انحصار کرتا ہے۔

کمپریسر کے ملٹی تھریڈڈ نفاذ کے ساتھ، موثر اسکیل ایبلٹی کا تعین تیسرے درجے کے کیشے کے سائز سے کیا جاتا ہے۔ مثال کے طور پر، 9 میگا بائٹس کی کیش میموری "آن بورڈ" ہونے پر، دو سے زیادہ کمپریشن تھریڈز شروع کرنے کا کوئی فائدہ نہیں؛ اس سے رفتار نہیں بڑھے گی۔ لیکن 20 میگا بائٹس کے کیشے کے ساتھ، آپ پہلے ہی پانچ کمپریشن تھریڈ چلا سکتے ہیں۔

نیز، RAM کی تاخیر ایک اہم پیرامیٹر بن جاتی ہے جو کمپریسر کی رفتار کا تعین کرتی ہے۔ الگورتھم OP تک بے ترتیب رسائی کا استعمال کرتا ہے، جن میں سے کچھ کیش میموری میں نہیں آتے (تقریباً 10%) اور اسے OP سے ڈیٹا کا انتظار کرتے ہوئے بیکار رہنا پڑتا ہے، جس سے آپریشن کی رفتار کم ہوجاتی ہے۔

کمپریسر کی رفتار اور ڈیٹا ان پٹ/آؤٹ پٹ سسٹم کے آپریشن کو نمایاں طور پر متاثر کرتا ہے۔ I/O بلاک کی طرف سے OP سے درخواستیں CPU سے ڈیٹا کی درخواست کرتی ہیں، جس سے کمپریشن کی رفتار بھی کم ہوتی ہے۔ یہ مسئلہ لیپ ٹاپ اور ڈیسک ٹاپس کے لیے اہم ہے؛ سرورز کے لیے یہ زیادہ جدید سسٹم بس ایکسیس کنٹرول یونٹ اور ملٹی چینل ریم کی وجہ سے کم اہم ہے۔

مضمون کے پورے متن میں ہم کمپریشن کے بارے میں بات کرتے ہیں؛ ڈیکمپریشن اس مضمون کے دائرہ کار سے باہر رہتا ہے کیونکہ "ہر چیز چاکلیٹ میں ڈھکی ہوئی ہے"۔ ڈیکمپریشن بہت تیز ہے اور I/O رفتار سے محدود ہے۔ ایک دھاگے میں ایک فزیکل کور آسانی سے 3-4 GB/sec کی پیک کھولنے کی رفتار فراہم کرتا ہے۔

یہ ڈیکمپریشن کے عمل کے دوران میچ سرچ آپریشن کی عدم موجودگی کی وجہ سے ہے، جو پروسیسر کے اہم وسائل اور کمپریشن کے دوران کیش میموری کو "کھا جاتا ہے"۔

کمپریسڈ ڈیٹا اسٹوریج کی وشوسنییتا

جیسا کہ سافٹ ویئر کی پوری کلاس کے نام سے پتہ چلتا ہے جو ڈیٹا کمپریشن (آرکائیورز) کا استعمال کرتا ہے، وہ معلومات کے طویل مدتی ذخیرہ کرنے کے لیے ڈیزائن کیے گئے ہیں، سالوں کے لیے نہیں، بلکہ صدیوں اور ہزار سال کے لیے...

اسٹوریج کے دوران، اسٹوریج میڈیا کچھ ڈیٹا کھو دیتا ہے، یہاں ایک مثال ہے:

تیز رفتار فیل محفوظ کمپریشن (جاری ہے)

یہ "اینالاگ" انفارمیشن کیریئر ایک ہزار سال پرانا ہے، کچھ ٹکڑوں کو کھو دیا گیا ہے، لیکن عام طور پر معلومات "پڑھنے کے قابل" ہیں...

ان کے لیے جدید ڈیجیٹل ڈیٹا اسٹوریج سسٹم اور ڈیجیٹل میڈیا کے ذمہ دار مینوفیکچررز میں سے کوئی بھی 75 سال سے زائد عرصے تک مکمل ڈیٹا کی حفاظت کی ضمانت فراہم نہیں کرتا ہے۔
اور یہ ایک مسئلہ ہے، لیکن ایک التوا کا مسئلہ، ہماری اولاد اسے حل کرے گی۔

ڈیجیٹل ڈیٹا سٹوریج سسٹم نہ صرف 75 سال کے بعد ڈیٹا کھو سکتے ہیں، ڈیٹا میں غلطیاں کسی بھی وقت ظاہر ہو سکتی ہیں، حتیٰ کہ ان کی ریکارڈنگ کے دوران بھی، وہ فالتو پن کا استعمال کرتے ہوئے اور غلطیوں کو درست کرنے کے نظام کے ذریعے ان کو درست کرنے کی کوشش کرتے ہیں۔ فالتو پن اور اصلاحی نظام ہمیشہ کھوئی ہوئی معلومات کو بحال نہیں کر سکتے، اور اگر ایسا کرتے ہیں، تو اس بات کی کوئی ضمانت نہیں ہے کہ بحالی کا عمل صحیح طریقے سے مکمل ہوا تھا۔

اور یہ بھی ایک بہت بڑا مسئلہ ہے لیکن التوا کا نہیں بلکہ موجودہ مسئلہ ہے۔

ڈیجیٹل ڈیٹا کو آرکائیو کرنے کے لیے استعمال ہونے والے جدید کمپریسرز لغت کے طریقہ کار کی مختلف ترمیمات پر بنائے گئے ہیں، اور اس طرح کے آرکائیوز کے لیے معلومات کے کسی ٹکڑے کا ضائع ہونا ایک مہلک واقعہ ہو گا؛ ایسی صورت حال کے لیے ایک قائم شدہ اصطلاح بھی ہے - ایک "ٹوٹا ہوا" محفوظ شدہ دستاویزات ...

لغت کے کمپریشن کے ساتھ آرکائیوز میں معلومات کو ذخیرہ کرنے کی کم وشوسنییتا کمپریسڈ ڈیٹا کی ساخت سے وابستہ ہے۔ اس طرح کے آرکائیو میں موجود معلومات میں ماخذ کا متن نہیں ہوتا ہے، لغت میں اندراجات کی تعداد وہاں محفوظ ہوتی ہے، اور لغت خود موجودہ کمپریسڈ ٹیکسٹ کے ذریعے متحرک طور پر تبدیل ہوتی ہے۔ اگر آرکائیو کا کوئی ٹکڑا گم ہو جاتا ہے یا خراب ہو جاتا ہے، تو اس کے بعد کے تمام آرکائیو اندراجات کو مواد یا لغت میں اندراج کی لمبائی سے شناخت نہیں کیا جا سکتا، کیونکہ یہ واضح نہیں ہے کہ لغت کا اندراج نمبر کس سے مطابقت رکھتا ہے۔

اس طرح کے "ٹوٹے ہوئے" محفوظ شدہ دستاویزات سے معلومات کو بحال کرنا ناممکن ہے۔

RTT الگورتھم کمپریسڈ ڈیٹا کو ذخیرہ کرنے کے زیادہ قابل اعتماد طریقہ پر مبنی ہے۔ یہ ٹکڑوں کو دہرانے کے لیے اکاؤنٹنگ کا انڈیکس طریقہ استعمال کرتا ہے۔ کمپریشن کا یہ نقطہ نظر آپ کو اسٹوریج میڈیم پر معلومات کی تحریف کے نتائج کو کم کرنے کی اجازت دیتا ہے، اور بہت سے معاملات میں خود بخود ان تحریفات کو درست کر دیتا ہے جو معلومات کے ذخیرہ کے دوران پیدا ہوتی ہیں۔
یہ اس حقیقت کی وجہ سے ہے کہ انڈیکس کمپریشن کے معاملے میں آرکائیو فائل میں دو فیلڈز ہوتے ہیں:

  • ایک سورس ٹیکسٹ فیلڈ جس میں دہرانے والے حصے اس سے ہٹائے گئے ہیں۔
  • انڈیکس فیلڈ.

انڈیکس فیلڈ، جو کہ معلومات کی بازیافت کے لیے اہم ہے، سائز میں بڑا نہیں ہے اور اسے قابل اعتماد ڈیٹا اسٹوریج کے لیے نقل کیا جا سکتا ہے۔ اس لیے، یہاں تک کہ اگر سورس ٹیکسٹ یا انڈیکس سرنی کا ایک ٹکڑا ضائع ہو جائے، باقی تمام معلومات بغیر کسی پریشانی کے بحال ہو جائیں گی، جیسا کہ تصویر میں "اینالاگ" اسٹوریج میڈیم کے ساتھ ہے۔

الگورتھم کے نقصانات

نقصانات کے بغیر کوئی فائدہ نہیں ہے۔ انڈیکس کمپریشن کا طریقہ مختصر دہرائے جانے والے سلسلوں کو کمپریس نہیں کرتا ہے۔ یہ انڈیکس کے طریقہ کار کی حدود کی وجہ سے ہے۔ اشاریہ جات کم از کم 3 بائٹس سائز کے ہوتے ہیں اور سائز میں 12 بائٹس تک ہو سکتے ہیں۔ اگر کسی تکرار کا سامنا اس کی وضاحت کرنے والے اشاریہ سے چھوٹے سائز کے ساتھ ہوتا ہے، تو اس کو مدنظر نہیں رکھا جاتا ہے، اس سے کوئی فرق نہیں پڑتا ہے کہ کمپریسڈ فائل میں اس طرح کی تکرار کا پتہ کتنی ہی بار کیوں نہ ہو۔

روایتی لغت کمپریشن کا طریقہ مختصر لمبائی کی متعدد تکرار کو مؤثر طریقے سے کمپریس کرتا ہے اور اس وجہ سے انڈیکس کمپریشن سے زیادہ کمپریشن تناسب حاصل کرتا ہے۔ یہ درست ہے کہ یہ مرکزی پروسیسر پر زیادہ بوجھ کی وجہ سے حاصل ہوا ہے؛ لغت کے طریقہ کار کو انڈیکس کے طریقہ کار سے زیادہ مؤثر طریقے سے ڈیٹا کو کمپریس کرنا شروع کرنے کے لیے، اسے ڈیٹا پروسیسنگ کی رفتار کو 10-20 میگا بائٹس فی سیکنڈ تک کم کرنا ہوگا۔ مکمل سی پی یو لوڈ کے ساتھ کمپیوٹنگ تنصیبات۔

اس طرح کی کم رفتار جدید ڈیٹا سٹوریج سسٹمز کے لیے ناقابل قبول ہے اور عملی سے زیادہ "تعلیمی" دلچسپی رکھتی ہے۔

RTT الگورتھم (RTT-Max) کی اگلی ترمیم میں انفارمیشن کمپریشن کی ڈگری کو نمایاں طور پر بڑھایا جائے گا، جو پہلے ہی ترقی میں ہے۔

لہذا، ہمیشہ کی طرح، جاری رکھنے کے لئے ...

ماخذ: www.habr.com

نیا تبصرہ شامل کریں