بانک های اطلاعاتی بلادرنگ

بانک های اطلاعاتی بلادرنگ

مقدمه

امروزه در قسمت های مختلف صنعت، کاربردهای ویژه ای وجود دارد که در آن ها دسترسی به اطلاعات در محدوده زمانی خاص، اهمیت زیادی دارد. از جمله می توان به مراکز مخابرت، سیستم های کنترلی، برنامه های انبار و مدیریت شبکه ها اشاره کرد. بعنوان مثال عملیات یک رادار را در نظر بگیرید که باید ضمن تشخیص یک شیئ بتواند جواب مناسب را در مورد آن تعیین کند. در تمام این موارد سیستم باید در مرحله اول اطلاعات را کسب کرده و با استفاده از آن پردازش مربوطه را در زمان تعیین شده انجام دهد. در همه این سیستم ها نه تنها اطلاعات خاصی باید بایگانی ش

وند، بلکه یک سری داده های زمانی هم وجود دارند، که نسبت به زمان سپری شده از ورود آن ها، اعتبار و صحت آن ها از بین می رود.

مثلاً تصور کنید در محیط یک کارخانه تولیدات آن کارخانه توسط تسمه هایی به مکان خاصی حمل می شوند. هر شیء توسط دوربین هایی که تعبیه شده است مورد بررسی قرار می گیرد تا ویژگی های آن مشخص و مشکلات آن تعیین شود. بنابر اطلاعات به دست آمده، آن شیء به مکان خاصی انتقال داده می شود. در همین حال لازم است سیستم با استفاده از اطلاعات آن، بروز شود.برای این کار، اول از همه، لازم است اطلاعات کالا دریافت شود آن هم

تا زمانی که شیء مورد نظر روبروی دوربین قرار دارد. این اطلاعات تنها برای شیء مورد نظر اهمیت دارد. داده های مربوطه تا زمانی اعتبار دارند که شیء جدید وارد سیستم شود. اگر به هر دلیلی این کارها در محدوده زمانی مورد نظر انجام نشود، باید از فروش کالای مورد نظر صرف نظر شود. تا موقعی که دوباره آن محصول وارد سیستم شود و جلوی دوربین قرار بگیرد. در چنین سیستم هایی ما به بانک های اطلاعاتی بلادرنگ[1] نیاز پیدا می کنیم.

محققین بانک های اطلاعاتی در این زمینه بیشتر سع

ی دارند با اسنفاده از RTDB نیاز های سیستم های REALTIME را بر طرف کنند و توسعه دهندگان سیستم های بلادرنگ از جهت ایجاد الگوریتم های زمان بندی و اختصاص منابع به سمت این مبحث جذب شده اند.

توجه به این محدودیت های زمانی باعث شده است که

رویکردهای جدیدی در زمینه مدیریت تراکنش ها بوجود بیاید. راه حل های موسوم به Tailoring، Adapting و Extending نمونه های هستند که ضمن توضیح آن ها پیشرفت هایی که در این زمینه انجام شده است را شرح می دهیم.

بانک های اطلاعاتی رابطه ای[2] با داده های پایدار و ماندگار سروکار دارند و ملاک اصلی در توسعه آن ها بدست آوردن کارایی بالا و میانگین زمان پاسخ کوتاه است. در مقابل، سیستم های بلادرنگ با داده هایی سروکار دارند که گذرا و ناپایدار هستند و پس از گذشت زمان ویژه ای منسوخ می شوند. بواسطه

طبیعت داده های real time محدودیت های زمانی، دوره های تناوب و ضرب العجل هایی به بانک های اطلاعاتی تحمیل می شود. بنابراین هدف اصلی در این سیستم ها مرتفع ساختن این محدودیت ها می باشد و نه میانگین زمان پاسخ کوتاه.

Real-time ¹ FAST

Real-time ¹ nonosecs or msecs

Real-time means explicit or implicit time constraints

نکته اساسی آن است که بلادرنگ به معنی سرعت فوق العاده نیست، بلکه ما در سیستم های بلادرنگ به دنبال پروتکل های زمان مدار می گردیم. داستان خرگوش و لاک پشت را بیا آورید، خرگوش با این که سریع تر از لاک پشت بود ولی کار خود را در زمان مورد نظر به پاین نرساند.


همان طور که می دانید بانک های اطلاعاتی قراردادی به منظور ذخیره سازی داده ها با سرعت بازیابی بالا و بدون استباه ایجاد شده اند. این سیستم ها جلوی افزونگی داده ها را می گیرند و دسترسی به آن ها را برای ما میسر می کنند. اما بانک های اطلاعاتی بلادرنگ علاوه بر این ها لزوماً باید مسائل دیگری را هم پوشش دهندکه عبارتند از:

  1. تمام داده های این سیستم ها پایدار نیستند، بلکه فانی هستند و تا قبل از این که از بین بروند باید فکری به حال آن ها شود.
  2. زمان بندی هایی برای مدیریت این تراکنش ها باید ایجاد شود.
  3. در خیلی از موارد بجا بودن زمان پردازش از صحت داده مهم تر است و باید درستی آن را فدای بجا بودن زمان اجرای آن کرد.

علاوه بر این ها در سیستم های بلادرنگ معمولاً از همزمانی پردلزش ها و الگوریتم های آن ها استفاده می شود. از این رو سیستم باید جوابگوی مفاهیم و عملکردهای معماری های توزیع شده و پردازش های همزمان باشد.

مشخصات داده ها در بانک های اطلاعاتی بلادرنگ

بطور کلی یک سیستم real time از یک سیستم کنترل کننده و یک سیستم کنترل شونده تشکیل شده است. فرضاً در مثال کارخانه تمام تجهیزات، ربات ها و کالاهای تولیدی سیستم کنترل شونده را تشکیل می دهند و سیستم کنترل کننده شامل اپراتورها و دستگاه های کنترلی از قبیل کامپیوترها می باشند. سیستم کنترل کننده از طریق حسگرهای مختلف مثل فشارسنجها و یا دماسنج ها با محیط (سیستم کنترل شونده) در ارتباط است. لازم است که اطلاعات دریافتی از سیستم کاملاً معتبر باشند. از این رو مدیریت بلادرنگ سیستم هم الزامی است.

فرض کنید مشغول انجام یک آزمایش شیمیایی هستیم. در این جا مقدار دما یا فشار محیط با کامل شدن واکنش شیمیایی در حال تغییر است. تمام این تغییرات باید در database آرشیو بشود و در همین حال ممکن است از اطلاعات بدست آمده برای انجام تغییراتی در حالت آزمایش استفاده کنیم. ملاحظه می کنید که علاوه بر ردیابی تغییرات در محیط لازم است در زمان های خاصی دستوراتی هم به محیط داده شود.

نیاز به هماهنگی بین وضعیت واقعی محیط و اطلاعات منعکس شده در پایگاه داده، ضرورت بحث در مورد پایداری زمانی[3] را دوچندان می کند. Temporal Consistency دو جزء دارد که عبارتند از:

  1. استحکام ثابت[4]: بین وضعیت واقعی سیستم کنترل شونده و داده های سیستم کنترل کننده
  2. استحکام نسبی[5]: بین داده هایی که برای استنتاج داده های دیگر به کار می روند. این مسئله برخاسته از نیاز به نزدیک بودن منابع داده های اشتقاقی با یکدیگر است.

فرض کنید که d(value,avi[6],timestamp) یک فقره اطلاعاتی است. d(value) به معنی مقدار این داده می باشد و d(timestamp) نشان دهنده زمان ایجاد آن می باشد. d(avi) به معنی فاصله زمانی بعد از رصد کردن آن داده می باشد که در آن فاصله داده هنوز اعتبار خود را حفظ کرده است.

آن دسته از داده ها که برای تولید داده های دیگر به کار می روند تشکیل یک مجموعه پایدار نسبی می دهند. در این مجموعه از داده ها زمانی به نام فاصله اطمینان نسبی[7] تعریف می کنیم. فرض کنید R چنین مجموعی ای از داده ها است. باز فرض کنید d عضو این مجموعه است. آنگاه d در وضعیت درستی قرار دارد اگر دو شرط زیر را دارا باشد:

  1. d(value) منطقاً درست باشد
  2. d از نظر زمانی هم صحت داشته باشد. یعنی هر دو جزء مربوط به پایداری زمانی در مورد آن صدق کند. بنابراین:
    • اولاً پایداری قطعی برقرار باشد:

CurrentTime-d(timestamp) <= d(avi)

· دوماً پایداری نسبی هم برقرار باشد: به ازای هر ď عضو R رابطه زیر باید برقرار باشد

|d(timestamp)- ď(timestamp)| <= R(rvi)

مثال:

فرض کنید در سیستمی دو فاکتور دما و فشار با هم در مجموعه R قرار می گیرند. و باید در فاصله زمانی کمتر از 2 واحد زمان از یکدیگر باشند. اگر در زمان 100 قرار دشته باشیم و فاصله زمانی قابل اطمینان برای دما برابر با 5 و برای فشار برابر با 10 باشد آنگاه

الف) برای مقادیر temperature=(347,5,97) و pressure=(50,5,96) تعیین کنید داده ها از نظر زمانی پایدار هستند

ب) ) برای مقادیر temperature=(347,5,97) و pressure=(50,5,92) تعیین کنید داده ها از نظر زمانی پایدار هستند

راه حل الف)

معلومات مسئله:

temperature(value)=347 , temperature(avi)=5 , temperature(timestamp)=97

pressure(value)=50 , pressure(avi)=5 , pressure(timestamp)=96

currenttime=100

اثبات وجود Absolute Consistency

absolute consistency: yes

currenttime-temperature(timestamp)=100-97=3<=temperature(avi)=5

currenttime-pressure(timestamp)=100-96=4<=pressure(avi)=5

اثبات وجود Relative Consistency

relative consistency: yes

|temperature(97)-pressure(96)|=1<=R(rvi)=2

بنابراین Temporal Consistency برقرار است.

راه حل ب)

معلومات مسئله:

temperature(value)=347 , temperature(avi)=5 , temperature(timestamp)=97

pressure(value)=50 , pressure(avi)=5 , pressure(timestamp)=92

currenttime=100

اثبات عدم وجود Absolute Consistency

absolute consistency: no

currenttime-temperature(timestamp)=100-97=3<=temperature(avi)=5

currenttime-pressure(timestamp)=100-92=8>pressure(avi)=5

اثبات عدم وجود Relative Consistency

relative consistency: no

|temperature(97)-pressure(92)|=5>R(rvi)=2

بنابراین Temporal Consistency برقرار نیست.

بدست آوردن avi می تواند به راحتی با یک نمونه گیری ساده از محیط انجام شود اما بدست آوردن rvi به این سادگی ها نیست. به دلیل این که برای دست یابی به یک rvi صحیح تمام داده هایی که جزو مجموعه R هستند باید در فاصله زمانی مقرر که معمولاً خیلی هم کوتاه است از محیط دریافت شوند. و البته در مواردی هم rvi باعث می شود avi محدود شود. در مثال قبلی از آن جا که rvi برابر با 2 است بنابراین عملاً avi مربوط به فشار pressure(avi) به عدد 2 تقلیل یافته است. اما یک راه نجات از این مخمصه آن است که تنها آن دسته ازrvi ها را تعیین کنیم که برای ایجاد اطلاعات دیگر به کار می روند.

اگر یک مجموعه دیگر به نام Ŕ داشته باشیم که با R در رابطه باشد آن گاه rvi کوچکتر را باید در نظر بگیریم. مثلاً اگر (rvi)Ŕ برابر با 1 باشد آن گاه واضح است که فاصله زمانی بین timestamp دما و فشار هم باید کمتر از یک باشد.

مشخصات تراکنش ها در بانک های اطلاعاتی بلادرنگ

در سیستم های بلادرنگ نیز مانند بانک های اطلاعاتی رابطه ای تراکنش ها بر 3 نوع اصلی هستند:

  1. تراکنش های فقط نوشتنی[8]: این تراکنش ها اطلاعات را از سیستم می گیرند و ذخیره می کنند. یعنی اطلاعات ارسالی از سمت محیط به داخل سیستم کنترلی.
  2. تراکنش های بروز کننده[9]: تراکنش هایی که اطلاعات جدید را بوجود می آورند و ثبت می کنند
  3. تراکنش های فقط خواندنی[10]: این تراکنش ها اطلاعات را از سیستم کنترل کننده به سمت سیستم کنترل شونده می فرستند

این دسته بندی را برای ساخت یک مدل کنترل همزمانی[11] پردازش ها می توان به کار برد. بعضی از محدودیت های زمانی توسط temporal consistency به سیستم تحمیل می شوند و دسته دیگر هنگام عکس العمل سیستم باید مرتفع شوند. مثلاً ممکن است یک دستور به صورت متناوب در فواصل زمانی معین انجام شود. به عنوان مثال سیستمی در هر 10 ثانیه قدرت باد را اندازه گیری کند. یا در بعضی موارد دستوراتی هستند که بصورت غیر متناوب و در هنگام یک رویداد انجام شوند. مثلاً اگر دمای محیط بیشتر از مقدار خاصی شد سیستم خنک کننده باید در عرض چند ثانیه شروع به کار کند.

از جنبه دیگر تراکنش ها را می توان از لحاظ به اتمام رسیدن ضرب العجل[12] آن ها دسته بندی کرد. به این ترتیب که توابع زیادی برای تعیین ارزش آن ها در زمان های مختلف بعد ازورودشان تعریف می شود. در این جا ما تابع ساده ای را در نظر می گیریم که تراکنش ها را به دو دسته تقسیم می کند:

  1. تراکنش ها با deadline سخت[13]: این دسته از تراکنش ها اگر در زمان مقرر سرویس دهی نشوند سیستم را دچار مشکل اساسی کنند.
  2. تراکنش ها با deadline نرم[14]: این تراکنش ها حتی بعد از deadline هم ارزشمند هستند تا این که در زمان خاصی بعد از deadline ارزش آن ها به صفر میرسد. اگر آن زمان برابر با deadline باشد به تراکنش مربوطه [15]firm گفته می شود.

[1] Real Time Data Base

[2] Relational Data Base

[3] Temporal Consistency

[4] Absolute Consistency

[5] Relative Consistency

[6] Absolute Validity Interval

[7] Relative Validity Interval

[8] Write Only Transactions

[9] Update

[10] Read Only Transactions

[11] Concurrency Control

[12] Dead line

[13] Hard deadline

[14] Soft deadline

[15] Firm deadline

۲ نظر:

ناشناس گفت...

سلام آقای ترابی
لطفا یه سری به ایمیلتون بزنید یه سوال داشتم
با تشکر

ناشناس گفت...

Awesome post. Do you mind if I ask what your source is for this information?