আমি ডেটা ক্যাশে বা ডাটাবেস হিট করা উচিত?


10

আমি কোনও ক্যাচিং প্রক্রিয়া নিয়ে কাজ করি নি এবং ভাবছিলাম যে নীচের দৃশ্যের জন্য। নেট ওয়ার্ল্ডে আমার বিকল্পগুলি কী।

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

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

ব্যবহারকারীর সংখ্যা টিএল এ বাড়তে পারে এবং সিস্টেমটি বাড়ার সাথে সাথে সাব বিভাগ এবং ভিডিওগুলি 10000 এর দশকে হতে পারে।

প্রশ্নটি হ'ল আমাদের বর্তমানে এটি যেভাবে কাজ করছে সেখানে চালিয়ে যাওয়া উচিত যেখানে প্রতিটি অনুরোধটি ডাটাবেসকে হিট করে বা আমাদের ডেটা ক্যাশে করার বিষয়ে চিন্তা করা উচিত?

আমরা আইআইএস 6/7 এবং Asp.net ব্যবহার করছি।


4
আপনি কি আপনার সিস্টেমকে বাস্তবের বোঝার অধীনে প্রোফাইল দিয়েছেন? পারি ডেটা ক্যাশে হবে? এটা বোঝা যাবে?

উত্তর:


13

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

পরবর্তী আপনাকে নীচের উত্তরটি জানতে হবে:

1) ডেটা ঘন ঘন পরিবর্তন হবে? ২) এই আপডেটগুলি পেতে অ্যাপ্লিকেশনটি আপনার REST পরিষেবাটি প্রায়শই পোল করে? 3) ডাটাবেস কি অন্য উদ্দেশ্যগুলির জন্য ব্যবহৃত হয়? 4) আপনি বর্তমান কোনও পারফরম্যান্স সমস্যা সম্পর্কে সচেতন? 5) ডেটা কি আপনার অ্যাপ্লিকেশন দ্বারা আপডেট হয়েছে এবং সেই আপডেটগুলিতে অ্যাপটিতে প্রতিবিম্বিত হওয়া দরকার?

মজার বিষয় হ'ল ডাটাবেস ব্যবহার করে আপনি প্রযুক্তিগতভাবে ডেটা ইতিমধ্যে ক্যাশে করছেন। এটি একটি ডাটাবেস কি করে। ডেটা পুনরুদ্ধার করতে প্রচুর পরিমাণে গবেষণা ও উন্নয়ন ডেটাবেস তৈরি করা যায়। উদাহরণস্বরূপ ঘন ঘন ব্যবহৃত ডেটার জন্য এটি নিজস্ব মেমরি ক্যাশে ব্যবহার করে।

সুতরাং নিজেকে জিজ্ঞাসা করুন ক্যাশে সরবরাহকারীদের অদলবদল করে আপনি কী লাভ করবেন? এবং বর্তমান সীমাবদ্ধতাগুলি যা সম্বোধনের প্রয়োজন?

আপনি যদি বর্তমানে কোনও ধীর গতি অনুভব না করে থাকেন তবে আমি কেবল "না, স্যুইচ করার দরকার নেই" বলব।

এটি সত্যিই একটি বড় বিষয়। যখন ভৌগলিকভাবে ডেটা বিতরণ করা দরকার তখন ক্যাশগুলি সত্যই ভাল করতে থাকে তবে পরিচালনার দিক থেকে একটি বিশাল ওভারহেড থাকে।

আমি এই মুহূর্তে একটি প্রকল্প করছি যেখানে আমি ঠিক একই ধরণের সিদ্ধান্ত নিচ্ছি।

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

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


ধন্যবাদ ইয়ান এই পর্যায়ে আমাদের কাছে একটি ডাটাবেস রয়েছে তবে এটি অনুসন্ধান করার বিষয়গুলিতে একটি শিক্ষামূলক প্রশ্ন ছিল।
JD01

18

থোরবজরনের মন্তব্য অনুসারে সত্যিকারের পর্যাপ্ত তথ্য নেই।

ক্যাচিং, যখন ভুল হয়ে যায়, আপনাকে এবং আপনার ব্যবহারকারীদের প্রচুর শোক করতে পারে। আপনার অ্যাপ্লিকেশনকে অতিরিক্ত জটিল করে তোলার আগে আপনার ক্যাশে নিয়ে চিন্তার দরকার রয়েছে তা নিশ্চিত করুন।

সুতরাং, তথ্যের অনুপস্থিতিতে যা নির্দেশ করে যে আপনাকে সত্যিকারের ক্যাশে করা দরকার, ক্যাশে করবেন না।

[অপ্টিমাইজেশনের সাধারণ নিয়ম: আমার যদি কিছু করা উচিত কিনা আপনার যদি জিজ্ঞাসার প্রয়োজন হয় তবে উত্তরটি নেই] *
* উত্তরটি হ্যাঁ, বেশিরভাগ জায়গায় এটি কোনও প্রশ্ন নয়, একটি প্রশ্ন হবে।


সাধারণ নিয়মকে ভালোবাসুন, ভাল বলেছেন :)
আয়ান

@ ড্যান-এমসিগ্রাথ যদি আমি প্রতিটি এন্ট্রি ঠিক 2 মিনিটের মধ্যে 5 মিনিটের মধ্যেই বলতে পারি এবং তার পরে আর কখনও হয় না তবে এন্ট্রিগুলি ক্যাশে করা কি ভাল ধারণা?
নিশান্তভারদ্বাজ ২০০২
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.