CouchDB Change Notifications এবং _changes API

Database Tutorials - কাউচডিবি (CouchDB) CouchDB এর অ্যাডভান্সড ফিচারস |
235
235

CouchDB_changes API একটি গুরুত্বপূর্ণ ফিচার যা ডেটাবেসে কোনো পরিবর্তন হলে তৎক্ষণাৎ ক্লায়েন্ট বা অ্যাপ্লিকেশনকে অবহিত (notified) করার সুবিধা প্রদান করে। এটি ডেটাবেসের পরিবর্তনগুলোর জন্য একটি রিয়েল-টাইম ফিড হিসেবে কাজ করে এবং পরিবর্তন ট্র্যাক করার জন্য খুবই কার্যকর। _changes API মূলত CouchDB ডেটাবেসের মধ্যে নতুন ডকুমেন্ট যোগ, ডকুমেন্ট আপডেট বা মুছে ফেলার মতো সব ধরনের পরিবর্তন সম্পর্কে তথ্য সরবরাহ করে।


1. _changes API এর মূল বৈশিষ্ট্য

_changes API ব্যবহার করে CouchDB-তে যে কোনও পরিবর্তন ঘটলে তা ট্র্যাক করা এবং সেই পরিবর্তনগুলির বিস্তারিত তথ্য সংগ্রহ করা সম্ভব। এটি Change Notifications প্রদান করে, যা বিভিন্ন অ্যাপ্লিকেশনে (যেমন ওয়েব বা মোবাইল অ্যাপ্লিকেশন) রিয়েল-টাইম আপডেট পরিচালনায় সহায়তা করে।

কী ধরনের পরিবর্তন রিপোর্ট করা হয়?

  • Document Create: নতুন ডকুমেন্ট তৈরি হলে
  • Document Update: বিদ্যমান ডকুমেন্ট আপডেট হলে
  • Document Delete: ডকুমেন্ট মুছে ফেলা হলে

এই পরিবর্তনগুলির বিস্তারিত তথ্য যেমন ডকুমেন্টের _id, _rev, _deleted (যদি ডকুমেন্ট মুছে ফেলা হয়), এবং সংশ্লিষ্ট changes প্রদর্শিত হয়।


2. _changes API ব্যবহার

_changes API একটি GET রিকুয়েস্ট দ্বারা ব্যবহার করা হয় এবং এটি ডেটাবেসে পরিবর্তনের ইতিহাস ফেচ (fetch) করে। এর মাধ্যমে আপনি ডেটাবেসের সব পরিবর্তন বা একটি নির্দিষ্ট টাইমস্ট্যাম্পের পরের পরিবর্তনগুলো পেতে পারেন।

URL এবং সেম্যানটিক্স:

http://<server_ip>:<port>/<db_name>/_changes

এটি ডেটাবেসের সব পরিবর্তনের একটি লিস্ট প্রদান করবে। আপনি বিভিন্ন প্যারামিটার যোগ করতে পারেন যেমন since, filter, এবং limit

অ্যাডভান্সড প্যারামিটার:

  1. since: এই প্যারামিটারটি ব্যবহার করে আপনি পরিবর্তনের স্ট্রিমের শুরুতে কোন পয়েন্ট থেকে পরিবর্তনগুলি দেখতে চান। উদাহরণস্বরূপ, পূর্ববর্তী রিভিশন বা টাইমস্ট্যাম্প থেকে পরিবর্তন শুরু করতে পারবেন।
  2. filter: আপনি একটি নির্দিষ্ট ফিল্টার ফাংশন ব্যবহার করতে পারেন যেটি নির্দিষ্ট ডকুমেন্ট বা কন্ডিশনের ভিত্তিতে পরিবর্তন দেখাবে।
  3. limit: আপনি কতটি পরিবর্তন দেখতে চান তা নির্ধারণ করতে পারেন।
  4. include_docs: এই প্যারামিটারটি ডকুমেন্টের বিস্তারিত তথ্যও অন্তর্ভুক্ত করবে, যা সাধারণত ডিফল্টরূপে অন্তর্ভুক্ত থাকে না।

3. _changes API এর একটি সাধারণ উদাহরণ

এখানে একটি সাধারণ উদাহরণ দেয়া হলো যেখানে _changes API ব্যবহার করা হয়েছে CouchDB ডেটাবেসের সব পরিবর্তন ট্র্যাক করতে।

curl -X GET http://127.0.0.1:5984/mydatabase/_changes

এই রিকুয়েস্টটি mydatabase ডেটাবেসে ঘটে যাওয়া সব ধরনের পরিবর্তন ফিরিয়ে দেবে। এর ফলস্বরূপ, একটি JSON আউটপুট আসবে যা পরিবর্তনের _id, _rev, এবং অন্যান্য গুরুত্বপূর্ণ তথ্য প্রদান করবে।

উদাহরণ আউটপুট:

{
   "results": [
      {
         "seq": "1-g1AAAAF0O4gBBy88FTYB9lZajk_jAglNN4qYJrx1gA2HkA",
         "id": "document_1",
         "changes": [
            {
               "rev": "1-xxxxxx"
            }
         ]
      },
      {
         "seq": "2-g1AAAAF0O4gBBy88FTYB9lZajk_jAglNN4qYJrx1gA2HkB",
         "id": "document_2",
         "changes": [
            {
               "rev": "2-xxxxxx"
            }
         ]
      }
   ],
   "last_seq": "2-g1AAAAF0O4gBBy88FTYB9lZajk_jAglNN4qYJrx1gA2HkB"
}

এখানে results একটি অ্যারে হিসাবে পরিবর্তনের ইতিহাস রাখে, যেখানে প্রতিটি id এবং rev সংশ্লিষ্ট ডকুমেন্টের রিভিশন পরিবর্তন তথ্য সহ থাকে। last_seq হল সর্বশেষ পরিবর্তনের সিকোয়েন্স নম্বর যা পরবর্তী পরিবর্তনের শুরু পয়েন্ট হিসেবে ব্যবহৃত হতে পারে।


4. Change Notifications (পরিবর্তন বিজ্ঞপ্তি)

CouchDB-তে Change Notifications তৈরি করার জন্য _changes API কে long-polling মোডে ব্যবহার করা যেতে পারে। Long-polling হল এমন একটি পদ্ধতি যেখানে ক্লায়েন্ট HTTP রিকুয়েস্ট পাঠায় এবং সার্ভার সেই রিকুয়েস্টে পরিবর্তন না আসা পর্যন্ত অপেক্ষা করে থাকে, তারপরে এক বা একাধিক পরিবর্তন ক্লায়েন্টকে পাঠানো হয়।

এটি কিভাবে করবেন:

curl -X GET http://127.0.0.1:5984/mydatabase/_changes?feed=longpoll

এটি একটি long-polling রিকুয়েস্ট তৈরি করবে এবং সার্ভার পরিবর্তনগুলির জন্য অপেক্ষা করবে। যখনই নতুন পরিবর্তন ঘটবে, তা ক্লায়েন্টকে পাঠানো হবে। এটি real-time change notifications প্রদান করে।

longpoll প্যারামিটার:

  • feed=longpoll: এটি পরিবর্তন স্ট্রিমে পোলিংয়ের জন্য নির্দিষ্ট করে এবং নতুন পরিবর্তন আসলে সেগুলি ক্লায়েন্টকে পাঠানো হয়।
  • timeout: আপনি একটি টাইমআউট প্যারামিটার নির্ধারণ করতে পারেন যাতে একটি নির্দিষ্ট সময় পর যদি কোনো পরিবর্তন না আসে, রিকুয়েস্টটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

5. _changes API এর ব্যবহার ক্ষেত্রে

  1. Real-Time Application Updates: অ্যাপ্লিকেশনের ডেটাতে যেকোনো পরিবর্তন হলে তা তৎক্ষণাৎ ব্যবহারকারীদের জানানো।
  2. Synchronization for Offline Applications: CouchDB-এর _changes API ব্যবহার করে অফলাইন অ্যাপ্লিকেশনগুলিতে নতুন ডেটা সিঙ্ক্রোনাইজ করা।
  3. Monitoring and Auditing: ডেটাবেসে ঘটে যাওয়া সব পরিবর্তন মনিটর করতে _changes API ব্যবহার করা হয়, যেমন লগিং এবং অডিটিং।

সারসংক্ষেপ

CouchDB-তে _changes API একটি শক্তিশালী টুল যা ডেটাবেসের পরিবর্তনগুলি ট্র্যাক করতে এবং রিয়েল-টাইম পরিবর্তন নোটিফিকেশন প্রদান করতে সহায়ক। আপনি long-polling ব্যবহারের মাধ্যমে ডেটাবেসের পরিবর্তনগুলি তৎক্ষণাৎ ক্লায়েন্টে পাঠাতে পারেন, যা রিয়েল-টাইম অ্যাপ্লিকেশনগুলির জন্য অত্যন্ত উপযোগী। _changes API CouchDB-এর অন্যতম কার্যকর ফিচার যা ডেটাবেসের সকল পরিবর্তন ফেচ এবং ট্র্যাকিং সহজ করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion