কীভাবে বেশিরভাগ সিঙ্ক প্রোগ্রামগুলি ফাইলের পরিবর্তনগুলি পর্যবেক্ষণ করে?


9

ড্রপবক্সের মতো সিঙ্ক প্রোগ্রামগুলি সাধারণত বাইট তুলনা করে বা হ্যাশ ব্যবহার করে বা diffসংস্করণ নিয়ন্ত্রণের মতো স্থানীয় কমিট লগগুলি ব্যবহার করে / ফাইলের পরিবর্তনগুলি ট্র্যাক করে ?

উত্তর:


8

উইন্ডোজে কোনও 'দেখেছে' ডিরেক্টরি কাঠামো - ফাইন্ডফারস্টেঞ্জেনটিফিকেশন () - এ পরিবর্তন আসে যখন ওএস আপনাকে সতর্ক করার একটি ব্যবস্থা আছে। যখন এটি নির্দেশ করে যে কোনও ফাইল পরিবর্তিত হয়েছে, তখন কোনও অ্যাপ্লিকেশন তারপরে পরিবর্তিত ডিরেক্টরিতে ফাইলগুলির তুলনা করতে পারে যা প্রকৃত ফাইলগুলি আকার, পরিবর্তিত তারিখ, হ্যাশ ইত্যাদি দেখে পরিবর্তিত হয়েছে find

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


1
এবং লিনাক্স এ inotify আছে ।
মাইকেল 20

তবে ফাইল পরিবর্তনের সময় যদি সিঙ্ক প্রোগ্রামটি চলছিল না? এটি কি হুক দ্বারা অবহিত হওয়ার সুযোগটি মিস করবে না?
mcandre

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

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

2

শেষ পর্যন্ত আপনার প্রতিটি বাইটের তুলনা করতে হবে এমন ফাইলগুলির তুলনা করার জন্য - আপনি কীভাবে একটি একক বাইট পরিবর্তন লক্ষ্য করবেন?

বাস্তবে আপনি বাইটগুলির ব্লকগুলি পড়েন এবং একটি হ্যাশ মান গণনা করেন, তারপরে আপনি হ্যাশগুলির একটি তালিকা পরীক্ষা করে দেখুন। একটি ভাল উদাহরণ " rsync "

যতদূর আমি জানি ড্রপবক্স কেবলমাত্র পুরো ফাইলগুলি কেটে নিয়ে যায় তাই একই ফাইলটিকে আবার পরীক্ষা করতে পুরো ফাইলটির একটি হ্যাশ গণনা করা হবে


1
কিছু ফাইল সিস্টেমে pst আছে একটি তারিখ সংশোধন করা হয়েছে
ratchet freak

1
হ্যাশিং সংঘর্ষের জন্য একটি ছোট কিন্তু বাস্তব ঝুঁকি তৈরি করবে না, যার ফলে কোনও ফাইল সিঙ্ক হচ্ছে না? ড্রপবক্স স্পষ্টতই একটি ভিন্ন মত বাস্তবায়ন ব্যবহার করে। dropbox.com/help/8/en
mcandre

1
@ এমসিএন্ড্রে মনে হচ্ছে এটি নিজের প্রশ্ন হিসাবে ভাল হবে।
গ্র্যান্ডমাস্টারবি

@ratchetfreak: কিছু সিস্টেমে তারিখ সংশোধিত, এই ধরণের সমস্যার জন্য নির্ভরযোগ্যভাবে নির্ভরযোগ্য নয়। একটি সাধারণ স্পর্শের কারণে তারিখটি পরিবর্তিত হওয়ার তারিখটি আলাদা হয়ে যায়, যেখানে আসলে কোনও সিঙ্কের প্রয়োজন হয় না।
স্টিভেন ইভার্স 22

1
@ এসএনআরফাস তারপরে পরিবর্তিত তারিখটি পরিবর্তিত হওয়ার পরে ডাবল পরিবর্তনগুলি পরীক্ষা করে দেখুন
রাচেট ফ্রিক

1

.NET- র উদাহরণস্বরূপ একটি ফাইলসিস্টেমওয়াটার ক্লাস রয়েছে। আমি নিশ্চিত যে অন্যান্য নিম্ন-স্তরের ভাষা এবং রানটাইমগুলি একই রকম ক্ষমতা প্রদান করতে পারে।

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