উচ্চ-পারফরম্যান্স লেনদেন প্রক্রিয়াজাতকরণের জন্য সমস্ত ধরণের কৌশল রয়েছে এবং ফোলারের নিবন্ধটিতে রক্তপাতের প্রান্তে কেবল একটির মধ্যে একটি। গুচ্ছ কৌশলগুলির তালিকা তৈরির পরিবর্তে যা কারও পরিস্থিতিতে প্রযোজ্য বা নাও হতে পারে তার পরিবর্তে, আমি মনে করি যে মূল নীতিগুলি এবং এলএমএক্স কীভাবে তাদের একটি বিশাল সংখ্যাকে সম্বোধন করে তা নিয়ে আলোচনা করা ভাল।
উচ্চ-স্কেল লেনদেন প্রসেসিং সিস্টেমের জন্য আপনি নিম্নলিখিতটি যতটা সম্ভব করতে চান:
সবচেয়ে ধীর স্টোরেজ স্তরগুলিতে ব্যয় করা সময়কে কম করুন। একটি আধুনিক সার্ভারে আপনার থেকে দ্রুততম থেকে ধীরে ধীরে: সিপিইউ / এল 1 -> এল 2 -> এল 3 -> র্যাম -> ডিস্ক / ল্যান -> ডান। এমনকি দ্রুততম আধুনিক চৌম্বক ডিস্ক থেকে ধীরতম র্যাম তিড়িং লাফ জন্য 1000x শেষ হয়ে গেছে অনুক্রমিক অ্যাকসেস, এলোমেলো অ্যাক্সেস আরও খারাপ।
অপেক্ষায় থাকা সময়কে হ্রাস করুন বা নির্মূল করুন । এর অর্থ যথাসম্ভব অল্প রাজ্যে ভাগ করে নেওয়া, এবং, রাষ্ট্রকে অবশ্যই ভাগ করে নেওয়া উচিত , যখনই সম্ভব স্পষ্টত লকগুলি এড়ানো উচিত ।
কাজের চাপ ছড়িয়ে দিন। সিপিইউ অনেক দ্রুত গত কয়েক বছর অর্জিত হয়েছে না, কিন্তু তারা আছে ছোট অর্জিত এবং 8 কোর কোনো সার্ভারে প্রশংসনীয় সাধারণ। এর বাইরে, আপনি এমনকি একাধিক মেশিনে কাজটি ছড়িয়ে দিতে পারেন, এটি গুগলের মত; এই সম্পর্কে দুর্দান্ত বিষয়টি হ'ল এটি আই / ও সহ সমস্ত কিছুকে মাপ দেয় ।
ফাউলারের মতে, এলএমএক্স এইগুলির প্রতিটিটির জন্য নিম্নলিখিত পদ্ধতি গ্রহণ করে:
সব সময় স্মৃতিতে সমস্ত রাষ্ট্র রাখুন । পুরো ডাটাবেস ইঞ্জিনগুলি প্রকৃতপক্ষে যাইহোক এটি করতে পারে , যদি পুরো ডাটাবেস মেমরির সাথে ফিট করে তবে তারা কোনও সুযোগ ছাড়াই ছেড়ে দিতে চায় না, যা রিয়েল-টাইম ট্রেডিং প্ল্যাটফর্মে বোধগম্য। এক টন ঝুঁকি না রেখে এটিকে টানতে, তাদের বেশ কয়েকটি হালকা ব্যাকআপ এবং ব্যর্থ অবকাঠামো তৈরি করতে হয়েছিল।
ইনপুট ইভেন্টগুলির স্ট্রিমের জন্য একটি লক-ফ্রি ক্যু ("বিঘ্নকারী") ব্যবহার করুন। Traditional তিহ্যবাহী টেকসই বার্তা সারিগুলির বিপরীতে যা নিখরচায় লক মুক্ত হয় না এবং বাস্তবে সাধারণত বেদনাদায়ক-ধীর বিতরণ লেনদেন জড়িত ।
বেশি না. এলএমএক্স এটিকে বাসের নীচে ফেলে দেয় এই ভিত্তিতে যে কাজের চাপগুলি পরস্পর নির্ভরশীল; একটির ফলাফল অন্যের জন্য পরামিতি পরিবর্তন করে। এটি একটি সমালোচনামূলক সতর্কতামূলক বিষয় এবং ফোলার স্পষ্টভাবে ডাকে one ব্যর্থতা সক্ষমতার জন্য তারা সামঞ্জস্যের কিছুটা ব্যবহার করে তবে ব্যবসায়ের সমস্ত যুক্তি একক থ্রেডে প্রক্রিয়াজাত হয় ।
LMAX উচ্চ-স্কেল ওয়ালটিপিতে একমাত্র পন্থা নয় । আর যদিও এটি তার নিজের অধিকার বেশ মেধাবী, আপনি কি না অর্ডার কর্মক্ষমতা যে স্তর টেনে করার জন্য bleeding-edge কৌশল ব্যবহার করতে হবে।
উপরোক্ত সমস্ত নীতিগুলির মধ্যে, # 3 সম্ভবত সবচেয়ে গুরুত্বপূর্ণ এবং সবচেয়ে কার্যকর, কারণ সত্যই, হার্ডওয়্যার সস্তা। আপনি যদি অর্ধ ডজন কোর এবং কয়েক ডজন মেশিনের মধ্যে কাজের চাপটি সঠিকভাবে বিভাজন করতে পারেন তবে প্রচলিত সমান্তরাল কম্পিউটিং কৌশলগুলির জন্য আকাশ সীমাবদ্ধ । আপনি অবাক হবেন আপনি কতটা আউটপুট আপনি কিছুটা বার্তা সারি এবং একটি রাউন্ড-রবিন বিতরণকারী ছাড়া কিছুই ছাড়তে পারবেন না। এটি সম্ভবত LMAX এর মতো দক্ষ নয় - প্রকৃতপক্ষে এমনকি খুব কাছাকাছিও নয় - তবে থ্রুপুট, বিলম্বিতা এবং ব্যয় কার্যকারিতা পৃথক উদ্বেগ, এবং এখানে আমরা বিশেষভাবে থ্রুপুট সম্পর্কে কথা বলছি।
যদি আপনার একই ধরণের বিশেষ চাহিদা থাকে যা এলএমএএক্স করে - বিশেষত, একটি ভাগ করা রাষ্ট্র যা ব্যবসায়ের বাস্তবের সাথে সামঞ্জস্য করে তাড়াহুড়ো ডিজাইনের পছন্দের বিপরীতে - তবে আমি তাদের উপাদানগুলি চেষ্টা করে দেখার পরামর্শ দেব, কারণ আমি খুব বেশি কিছু দেখিনি have অন্যথায় যে এই প্রয়োজনীয়তা উপযুক্ত। তবে যদি আমরা কেবল উচ্চ স্কেলিবিলিটি সম্পর্কে কথা বলি তবে আমি আপনাকে বিতরণকারী সিস্টেমে আরও গবেষণা করার জন্য অনুরোধ করব, কারণ এগুলি আজ বেশিরভাগ সংস্থার দ্বারা ব্যবহৃত প্রচলিত পদ্ধতি (হ্যাডোপ এবং সম্পর্কিত প্রকল্পগুলি, ইএসবি এবং সম্পর্কিত আর্কিটেকচারস, সিকিউআরএস যা ফোলারও রয়েছে) উল্লেখ, এবং তাই)।
এসএসডিও গেম-চেঞ্জারে পরিণত হতে চলেছে; যুক্তিযুক্তভাবে, তারা ইতিমধ্যে আছে। আপনার কাছে এখন র্যামের মতো একই অ্যাক্সেসের সময় সহ স্থায়ী সঞ্চয়স্থান থাকতে পারে এবং সার্ভার-গ্রেড এসএসডিগুলি এখনও মারাত্মক ব্যয়বহুল হলেও অবদানের হার বাড়ার সাথে সাথে এগুলি অবশেষে দামে নেমে আসবে। এটি ব্যাপকভাবে গবেষণা করা হয়েছে এবং ফলাফলগুলি বেশ মনের-উদ্বেগজনক এবং সময়ের সাথে সাথে আরও ভাল হবে, সুতরাং পুরো "স্মৃতিতে সমস্ত কিছু রাখুন" ধারণাটি আগের তুলনায় অনেক কম গুরুত্বপূর্ণ। তাই আবারও, আমি যখনই সম্ভব সামনের দিকে মনোনিবেশ করার চেষ্টা করব।