কীভাবে "ওয়ার্ম-আপ" সত্তা ফ্রেমওয়ার্ক? কখন এটি "ঠান্ডা" পাওয়া যায়?


118

না, আমার দ্বিতীয় প্রশ্নের উত্তর শীতকালীন নয়।

মুখবন্ধ:

আমি সম্প্রতি সত্ত্বা ফ্রেমওয়ার্ক নিয়ে প্রচুর গবেষণা করে চলেছি এবং কোয়েরিগুলি উষ্ণ হয় না, তথাকথিত কোল্ড কোয়েরি হয় না এমন কিছু যা আমাকে বিরক্ত করে।

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

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

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

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

আমি ইতিমধ্যে যা জানি তা করা মূল্যবান:

  • প্রস্তাবিত হিসাবে আমার ভিউ আগে থেকেই জেনারেট করুন।
  • অবশেষে আমার মডেলগুলি একটি পৃথক সমাবেশে সরিয়ে দিন।

আমি সাধারণ বিবেচনার সাথে গিয়ে সম্ভবত যা ভুল বিবেচনা করছি তা করাকে আমি কী বিবেচনা করি :

  • মডেলগুলিকে উত্তপ্ত করতে, উত্পন্ন করতে এবং বৈধ করার জন্য ডামি ডেটা অ্যাপ্লিকেশন স্টার্টে পড়ে reads

প্রশ্নাবলী:

  • আমার সত্তা ফ্রেমওয়ার্কে যে কোনও সময় উচ্চতর প্রাপ্যতা অর্জনের জন্য সেরা পন্থাটি কী হবে?
  • কোন ক্ষেত্রে সত্তা ফ্রেমওয়ার্ক আবার "ঠান্ডা" হয়ে যায়? (সংশোধন, পুনর্ব্যবহারযোগ্য, আইআইএস পুনঃসূচনা ইত্যাদি)

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

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

4
আপনি কী ভাবেন যে ডামি ডেটা পড়তে ভুল পন্থা?
জোশ হিটজম্যান

5
এটি ঠিক ঠিক মনে হচ্ছে না, আমি ভেবেছিলাম এমন আরও কিছু মার্জিত হতে পারে যা সম্পর্কে আমি অবগত নই। তবে যদি এটিই একমাত্র সমাধান এবং ভাল জ্ঞানের কেউ নিশ্চিত করতে পারেন যে অন্য কোনও উপায় নেই তবে আমি কেবল এটির সাথে যাব।
পিটার

1
অ-ক্রিয়াকলাপের সময়কালের (কম ট্র্যাফিকের কারণে) অ্যাপ্লিকেশন পুলটি বন্ধ হয়ে যাওয়ার সাথে আমি যে সমস্যার মুখোমুখি হয়েছি তা হ'ল এমন একটি পরিষেবা তৈরি করা যা আপনার পৃষ্ঠাগুলির একটিতে নির্দিষ্ট সময় অন্তর অনুরোধ করে। অ্যাপ্লিকেশন পুলটি প্রথম অনুরোধে পুনরায় শুরু করার আগে এটি দীর্ঘ বিলম্বকে আটকায়। অথবা আপনি আপনার ডোমেন / আইপি পিন করার জন্য www.pingalive.com এর মতো একটি নিখরচায় পরিষেবা ব্যবহার করতে পারেন। এটি আপনার ক্যাশেড অবজেক্টগুলির মেয়াদ শেষ হওয়ার আগেই সাফ হওয়া থেকে বাঁচতে সহায়তা করে।
হাটস্রুমন্ডকোড

উত্তর:


55
  • আমার সত্তা ফ্রেমওয়ার্কে যে কোনও সময় উচ্চতর প্রাপ্যতা অর্জনের জন্য সেরা পন্থাটি কী হবে?

আপনি জন্মগত দর্শন এবং স্থিতিশীল সংকলিত ক্যোয়ারির মিশ্রণের জন্য যেতে পারেন।

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

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

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

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

সব মিলিয়ে আপনার অবশ্যই কনটেক্সটগুলি ঘন ঘন বরাদ্দ করা এবং কেবলমাত্র অল্প সময়ের জন্য এগুলি ব্যবহার করা নিশ্চিত করা উচিত, আপনি দ্রুত আপনার অ্যাপ্লিকেশনটি শুরু করতে পারেন, আপনি খুব কমই ব্যবহৃত জিজ্ঞাসাগুলি সংকলন করেন এবং সমালোচনামূলক এবং প্রায়শই ব্যবহৃত হয় এমন প্রশ্নের জন্য পূর্বজন্মিত ভিউ সরবরাহ করেন।

  • কোন ক্ষেত্রে সত্তা ফ্রেমওয়ার্ক আবার "ঠান্ডা" হয়ে যায়? (সংশোধন, পুনর্ব্যবহারযোগ্য, আইআইএস পুনঃসূচনা ইত্যাদি)

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

আমি যখন ধরে নিই যে আপনি যখন আপনার কনফিগারেশন ফাইলটি পরিবর্তন করবেন বা অ্যাসেমব্লিগুলি পুনরায় চালু হবে তখন এটি পরিবর্তন করবেন।


থ্যাঙ্কস আন্দ্রে, আমার যা প্রয়োজন ছিল তা ছিল।
পিটার

@ আন্ড্রেয়াস আসলে স্থির সংকলিত প্রশ্নের সাথেও, প্রথম রান খুব দীর্ঘ। এগুলি থেকে আলাদা করার কোনও উপায় আছে: জিনিসগুলি উষ্ণ করতে, উত্স তৈরি করতে এবং মডেলগুলিকে বৈধতা দেওয়ার জন্য অ্যাপ্লিকেশন স্টার্টে ডামি ডেটা পড়ে।
মনীষকঙ্গওয়ানি

@ আন্ড্রেস সো এন্টি ফ্রেমওয়ার্ক 5 এর দরকার আছে নাকি? এটি ইএফ 5 এ ব্যবহার করলে কী আলাদা হবে (আমার অর্থ এখনও ধীর বা সামান্য
বাটা

"স্ট্যাটিক কমপাইলকুইয়েরি ভাল কারণ তারা দ্রুত এবং সহজেই লিখতে এবং পারফরম্যান্স হ্রাস করতে সহায়তা করে।" কর্মক্ষমতা হ্রাস?
গণিত

9

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

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


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

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

8

সাধারণ টিপস।

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

এখন কেন ডামি অনুরোধগুলি ভুল পদ্ধতির নয় তা ব্যাখ্যা করার জন্য

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

কোনও ক্যাশে কখন "ঠান্ডা" হয়ে যায় তা ব্যাখ্যা করার জন্য।

এটি আপনার ফ্রেমওয়ার্কের কোনও স্তরে ঘটে যা ক্যাশে প্রয়োগ করে, পারফরম্যান্স পৃষ্ঠার শীর্ষে একটি ভাল বর্ণনা রয়েছে ।

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

আপনি উল্লিখিত অন্যান্য বিষয়গুলি, বিশেষত পুনরায় সংকলন এবং আইআইএস পুনরায় আরম্ভের অংশ বা মেমরি ক্যাশের সমস্ত অংশ পরিষ্কার করে।


এটি অন্য একটি সহায়ক উত্তর, অনেক প্রশংসিত।
পিটার

3

যেমনটি আপনি বলেছেন, "প্রাক-উত্পন্ন উত্সগুলি" ব্যবহার করুন যা আপনার যা করতে হবে তা সত্যিই।

আপনার লিঙ্কটি থেকে উত্তোলন করা হয়েছে : "যখন প্রদর্শনগুলি উত্পন্ন হয়, সেগুলিও বৈধ হয় a কার্য সম্পাদনের দিক থেকে দেখা যায়, ব্যয় উত্পাদন ব্যয়ের সিংহভাগই আসলে দর্শনগুলির বৈধতা" "

এর অর্থ আপনি যখন আপনার মডেল অ্যাসেম্বলিটি তৈরি করবেন তখন পারফরম্যান্স নকটিটি ঘটবে। আপনার কনটেক্সট অবজেক্ট তারপরে "কোল্ড কোয়েরি" এড়িয়ে যাবে এবং প্রসঙ্গের অবজেক্ট লাইফ চক্রের পাশাপাশি পরবর্তী নতুন অবজেক্ট প্রসঙ্গের জন্য প্রতিক্রিয়াশীল থাকবে।

অপ্রাসঙ্গিক প্রশ্নগুলি সম্পাদন করা সিস্টেম সংস্থান গ্রহণ ব্যতীত অন্য কোনও উদ্দেশ্য করে না।

শর্টকাট ...

  1. প্রাক উত্পন্ন ভিউগুলির অতিরিক্ত সমস্ত কাজটি এড়িয়ে যান
  2. আপনার অবজেক্ট প্রসঙ্গ তৈরি করুন
  3. মিষ্টি অপ্রাসঙ্গিক ক্যোয়ারী বন্ধ করুন
  4. তারপরে আপনার প্রক্রিয়াটির সময়কালের জন্য কেবলমাত্র আপনার অবজেক্ট প্রসঙ্গে একটি রেফারেন্স রাখুন (প্রস্তাবিত নয়)।


2

এই কাঠামোটিতে আমার কোনও অভিজ্ঞতা নেই। তবে অন্যান্য প্রসঙ্গে যেমন, সোলার, সম্পূর্ণ ডামি রিডগুলি খুব বেশি কার্যকর হবে না যতক্ষণ না আপনি পুরো ডিবি (বা সূচক) কে ক্যাশে করতে পারেন।

কোয়েরিগুলিকে লগ করা, লগগুলি থেকে সর্বাধিক সাধারণ খুঁজে বের করা এবং উষ্ণতা বজায় রাখার জন্য আরও ভাল পন্থা হবে। কেবলমাত্র নিশ্চিত হয়ে নিন যে এগিয়ে যাওয়ার আগে উষ্ণতর প্রশ্নগুলি লগ না করা বা লগগুলি থেকে তাদের সরিয়ে না দেওয়া।

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