বিজনেস লেয়ারে বনাম বনাম ডেটা লেয়ারে ক্যাচিং


36

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

আমি সম্প্রতি ব্যবসায়ের স্তরে ক্যাশে করা সম্পর্কে পড়েছি, তাই মূলত পুরো ব্যবসায়ের সামগ্রীতে ক্যাশে করা। একটি সুবিধা আমি সরাসরি দেখতে পাচ্ছি এটির চেয়ে ভাল প্রতিক্রিয়ার সময়।

আপনি কখন অন্যের চেয়ে বেশি পছন্দ করবেন? এবং বিজনেস লেয়ারে ক্যাচ দেওয়া কি একটি সাধারণ অভ্যাস?


আপনার অ্যাপ্লিকেশনগুলির কার্য সম্পাদন কি এতটাই সমালোচিত যে কোনও ভাণ্ডার বা ড্যাল-লেয়ারে অতিরিক্ত কলের স্পষ্টতা এড়াতে ব্যবসায়ের স্তরটিতে ক্যাচিং পছন্দনীয়?
জেডিটি

1
না এটি নয় এবং উত্তরগুলি পড়ার পরে, আমি মনে করি আমি ডালের সাথে কেবল ক্যাশে থাকব। চিয়ার্স।
এমা 16

আপনার ব্যবসায়ের স্তর উপরে ক্যাশে বিবেচনা করা উচিত, এবং স্কেলিং সম্পর্কে চিন্তা করা উচিত।
একে_

উত্তর:


30

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

একটি ব্যবসায়ী স্তর কার্যকরী উচ্চতর জটিলতা অনেক অতিরিক্ত বিধি, তাই এটা ভাল যদি এটা না এছাড়াও একই শ্রেণীতে একাধিক-বস্তুর ঐক্য উদ্বেগ (অথবা এমনকি একই পদ্ধতি) ছাড়াও প্রতি-বস্তুর প্রাপ্যতা উদ্বেগ পরিচালনা আছে - যে would এসআরপি এর নির্মম লঙ্ঘন হতে।

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


কেন ক্যাচিং জটিল হতে হবে? এটি এওপি এবং কয়েকটি টিকা নিয়ে করা যেতে পারে। এটি কি এখনও এসআরপি লঙ্ঘন? ডালে করা হয় না কেন? এছাড়াও IMHE আমি পরিষেবা ক্লাসগুলি "খুব জটিল" ক্যাশে রাখতে দেখিনি; স্বাধীনভাবে তার জটিলতা থেকে, একটি পরিষেবা একটি কালো বাক্স হিসাবে দেখা যেতে পারে এবং এর ফলাফলটি ক্যাশে করা যায়
ব্যবহারকারী 1075613

25

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

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

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

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

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

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


জবাবের জন্য ধন্যবাদ. আপনার এবং অন্যের জবাবগুলি পড়ার পরে, আমি মনে করি আমার অবশ্যই ব্যবসায়ের স্তরে ক্যাশে দেওয়ার দরকার নেই। এটি কেবল পণ্যের সামগ্রিক জটিলতায় যুক্ত করবে।
এমা

1
"স্তরগুলি" মডেলটির একটি সমস্যা হ'ল দক্ষ ক্যাশেিং ব্যবস্থাগুলি প্রায়শই এমন তথ্য ব্যবহার করা প্রয়োজন যা কোনও একক স্তরে পাওয়া যায় না। আপনি কী ভাবেন, যদিও ব্যবসায়ের স্তরটির সামগ্রিক "পরিকল্পনা" সম্পর্কে ডেটা স্তরটিতে "ইঙ্গিত" দেয়? ডেটা স্তরটি প্রাথমিকভাবে এ জাতীয় বেশিরভাগ ইঙ্গিতগুলিকে উপেক্ষা করতে পারে, তবে যদি কোনও বাধা পাওয়া যায়, তবে কিছু যুক্তি যুক্ত করা যেতে পারে যা নির্দিষ্ট ইঙ্গিত দেওয়ার পরে, ব্যবসায়ের নির্দিষ্ট পদ্ধতিতে ক্যাচিংয়ের কৌশলগুলিকে পরিবর্তন করতে পারে।
সুপারক্যাট

1
দুর্দান্ত পয়েন্ট, @ সুপের্যাট। আমি একটি ইঙ্গিত / প্রগমা কৌশল উল্লেখ করতে যাচ্ছিলাম, তবে উত্তরটি ইতিমধ্যে দীর্ঘ ছিল। তবে আপনি ঠিক বলেছেন। ক্যাশে কীভাবে অগ্রাধিকার দেওয়া যায় বা "কী পিন করতে হবে" সে সম্পর্কে কী স্তরগুলিকে নিম্ন স্তরের দিকে ইঙ্গিত দেওয়া হয় তা হ'ল ব্যবসায়ের কোডটি সমস্ত না করেই উচ্চতর স্তরের ক্যাচিং পেতে একটি সাধারণ / দরকারী উপায়, বা নিজের স্টোরেজ পরিচালনায় খুব বেশি আকস্মিক হয়ে ওঠেন অনুক্রমের।
জোনাথন ইউনিস

@ জোনাথনউনিস: ইঙ্গিতগুলির একটি দুর্দান্ত বিষয় হ'ল প্রাথমিকভাবে কোডগুলি তাদের সাথে খুব বেশি কিছু করার দরকার নেই। অনেকগুলি সিস্টেমে কয়েকটি সুস্পষ্ট বাধা রয়েছে যা তাদের কর্মক্ষমতাকে প্রাধান্য দেয়, তবে কোনটি যথেষ্ট পরিমাণে খারাপ হবে তা নির্ধারণ করা খুব কঠিনই হতে পারে। কয়েকটি সংকটপূর্ণ স্থানে অল্প পরিমাণে কুৎসিত ক্যাচিং যুক্তি যুক্ত করা এমন জায়গাগুলিতে প্রচুর পরিমাণে ক্যাচিং যুক্তি যুক্ত করার চেয়ে ভাল হতে পারে যা সত্যই গুরুত্ব দেয় না।
সুপারক্যাট

1
যথাযথভাবে। বিশেষত যদি আপনার কাছে ইতিমধ্যে দৃ pretty়তা / অ্যাক্সেস স্তরে নিম্ন-স্তরের ক্যাচিং "বেশ ভাল" থাকে। "বেশ ভাল" থেকে "সত্যিই ভাল" যেতে আপনার কেবলমাত্র কিছু যুক্ত অগ্রাধিকার তথ্য প্রয়োজন হতে পারে।
জোনাথন ইউনিস

16

ডালের উপর ক্যাশিং সহজ এবং সরল straight

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

ব্যবসায় ক্যাচিং নমনীয়

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

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