ড্রপবক্স এফটিপির তুলনায় সুপার দ্রুত হতে পারে কেন?


36

আমি জানতে চাইছি কেন প্রযুক্তিগতভাবে ড্রপবক্সটি এফটিপি-র চেয়ে দ্রুততর? এটি কোন ধরণের প্রযুক্তি ব্যবহার করে?

আমি ভিন্ন ফাইলগুলির কথা বলছি না, আমি উভয় ক্ষেত্রেই নতুন ফাইল স্থানান্তর করার বিষয়ে কথা বলছি, ড্রপবক্স আরও দ্রুত।

আমি এটি বোঝাতে চাইছি, খুব দ্রুত, আমি আপলোড করা ফাইলগুলির জন্য এফটিপি এর চেয়ে 10 গুণ বেশি দ্রুত। আমি পরে বড় ফাইলগুলির জন্য আবার পরীক্ষা করব।


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

2
যদি তাদের কাছে এটি ইতিমধ্যে থাকে তবে তা পুনরায় আপলোড করতে হবে না; পি
জার্নম্যান গেক

4
আপনি "নতুন ফাইল" বলছেন, তবে এই ফাইলগুলি তাজা, এলোমেলো ডেটা না হলে আপনি সম্ভবত ব্লক-স্তরীয় সিঙ্কিংয়ের সুবিধা দেখছেন ( আরএসআইএনসি এবং অন্যান্য সরঞ্জামগুলির মতো)।
ক্রিস জনসন

1
এটি একটি হোস্টিং তুলনা ইমো বেশি, আমি ড্রপবক্সের চেয়ে দ্রুততর এফটিপি সার্ভারগুলি জানি এবং আমি ফাইলজিলার সাথে একাধিক সংযোগও ব্যবহার করি যাতে এই উত্তরগুলিতে তালিকাভুক্ত বিবৃতিগুলি ধরে রাখে না।
তমারা উইজসম্যান

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

উত্তর:


31

এর বেশ কয়েকটি কারণ থাকতে পারে।
এফটিপি প্রোটোকল দক্ষ থেকে অনেক দূরে।

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

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

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

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

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


বিস্তারিত উত্তরের জন্য +1। আমিও ভাবলাম কীভাবে ড্রপবক্স এত তাড়াতাড়ি ছিল।
অনুদান পালিন

1
আমি কোথাও পড়েছি যে ট্রান্সফার করার আগে ড্রপবক্স ডেটা এনক্রিপ্ট করা আছে - সুতরাং এটি বোধগম্য হবে যে এটিও (কমপক্ষে কিছুটা) সঙ্কুচিত।
ডিন রথ

একটি এনক্রিপ্ট করা ফাইলটি সংকোচনযোগ্য হওয়া উচিত নয় - আমি যাইহোক ট্রান্সফার করার সময় বাক্স এনক্রিপ্ট ফাইলগুলি ছাড়ি না
মার্টিন Beckett

@ এমজিবি: আপনি সঠিক যে ফাইল সংকোচনের কৌশলগুলি এনক্রিপ্ট করা ডেটাগুলিতে দরকারী হতে পর্যাপ্ত পরিমাণে রিডানডেন্সি খুঁজে পাওয়া উচিত নয়, তাই প্রাথমিকভাবে কোনও ফাইল প্রেরণে সংকোচন থেকে কোনও ফল পাওয়া যাবে না। তবে ড্রপবক্সে যদি ইতিমধ্যে ফাইল থাকে এবং আপনি সবেমাত্র এটি আপডেট করেছেন (এবং কীটি এখনও একইরকম) তবে সম্ভাবনা রয়েছে যে রিমোট অনুলিপিটি আপডেট করার জন্য পুরো ফাইলটি স্থানান্তর করার প্রয়োজন হবে না। ডেটাটি সংকুচিত করা যায় না, তবে এটি আপডোডেট রাখতে আপনার যে পরিমাণ প্রেরণ করতে হবে তা এখনও হ্রাস করা যেতে পারে (বড় আকারের ফাইলগুলি যা ছোট ছোট আপডেট দেখে see
ডেভিড স্পিলিট

1
আমি নিশ্চিত যে তারা সরল আকারে ডেটা প্রেরণের পরিবর্তে স্থানান্তরের জন্য HTTPS ব্যবহার করে (SSL এর মাধ্যমে HTTP)। প্রকৃত স্টোরেজটির জন্য কী (যদি থাকে) এনক্রিপশন ব্যবহৃত হয় তা আমি জানি না, তবে যদি আপনার ডেটা সংবেদনশীল হয় তবে আপনার এটিকে যে কোনও উপায়ে এনক্রিপ্ট করা উচিত যাতে কেবল আপনার কাছে প্রাসঙ্গিক কীগুলির একটি অনুলিপি থাকে।
ডেভিড স্পিলিট

15

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

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

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


11

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

ল্যান সিঙ্ক সমন্বিত বৈশিষ্ট্যটিও সম্ভাব্যভাবে সিঙ্কগুলিকে গতি বাড়িয়ে দিতে পারে এবং প্রয়োজনীয় নেটওয়ার্ক ট্র্যাফিক হ্রাস করতে পারে।


সত্যই আমি উভয় ক্ষেত্রে নতুন ফাইল সম্পর্কে কথা বলছি।

0

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


0

আমার ধারণা তারা এমডি 5 / শ এর মতো সাধারণ হ্যাশিং কৌশল ব্যবহার করে

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

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

এইভাবে আপনি কেবল যুক্তিযুক্তভাবে "আপলোড" ফাইলটি শেষ করেন। কোনও আসল ফাইল-সামগ্রী স্থানান্তর না থাকায় এটি অন্য যে কোনও কিছুর চেয়ে দ্রুত হওয়া উচিত।

আমি নিশ্চিত না যে হ্যাশিংয়ের অ্যালগরিদম ড্রপবক্সটি ব্যবহার করে তবে আমি 100% নিশ্চিত যে তাদের কাজের নীতিটি আমি উপরে বর্ণিত একটির মতোই।


0

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

আপনি যদি রিসোর্স মনিটর (রেজমন) চালান , এবং নেটওয়ার্ক ট্যাবে যান, আপনি নেটওয়ার্ক ব্যান্ডউইথ ব্যবহার করে বিভিন্ন প্রক্রিয়া লক্ষ্য করবেন।

  • নেটওয়ার্ক ক্রিয়াকলাপ সহ প্রক্রিয়াগুলির অধীনে এর জন্য কলামটি নির্বাচন করুন Total (B/sec)
  • টিসিপি সংযোগের অধীনে এর জন্য কলামটি নির্বাচন করুন Total (B/sec)

আমার জন্য, যখন আমি ড্রপবক্সে একটি ফাইল আপলোড করছি, এটি 4 টি বিভিন্ন আইপি ঠিকানা প্রেরণের জন্য 4 সংযোগ ব্যবহার করছে।

এখানে চিত্র বর্ণনা লিখুন

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