একটি ডাটাবেস ব্যবহার করে আপনি একক কোর দিয়ে প্রতি সেকেন্ডে 1.000+ বৃদ্ধি পেতে পারেন। এটা বেশ সহজ। আপনি এই নম্বরটি তৈরি করতে ব্যাকএন্ড হিসাবে তার নিজস্ব ডাটাবেসটি ব্যবহার করতে পারেন (এটি ডিডিডির ক্ষেত্রে এটির নিজস্ব সমষ্টি হওয়া উচিত)।
আমি একই সমস্যা বলে মনে হচ্ছে। আমার বেশ কয়েকটি পার্টিশন ছিল এবং আমি প্রত্যেকটির জন্য একটি অফসেট কাউন্টার পেতে চাই। আমি এরকম কিছু বাস্তবায়ন করেছি:
CREATE DATABASE example;
USE example;
CREATE TABLE offsets (partition INTEGER, offset LONG, PRIMARY KEY (partition));
INSERT offsets VALUES (1,0);
তারপরে নিম্নলিখিত বিবৃতি কার্যকর করা:
SELECT @offset := offset from offsets WHERE partition=1 FOR UPDATE;
UPDATE offsets set offset=@offset+1 WHERE partition=1;
যদি আপনার অ্যাপ্লিকেশন আপনাকে অনুমতি দেয় তবে আপনি একবারে একটি ব্লক বরাদ্দ করতে পারেন (এটি আমার ক্ষেত্রে ছিল)।
SELECT @offset := offset from offsets WHERE partition=1 FOR UPDATE;
UPDATE offsets set offset=@offset+100 WHERE partition=1;
আপনার যদি আরও থ্রুপুট দরকার হয় তবে আগে থেকে অফসেট বরাদ্দ করতে পারবেন না রিয়েল টাইম প্রসেসিংয়ের জন্য ফ্লিংক ব্যবহার করে আপনি নিজের পরিষেবাটি প্রয়োগ করতে পারেন। আমি পার্টিশনটিতে প্রায় 100K ইনক্রিমেন্ট পেতে সক্ষম হয়েছি।
আশা করি এটা সাহায্য করবে!