ذخیره داده های شبکه های حسگر بی سیم

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


۱) ذخیره متمرکز: ذخیره متمرکز یکی از ساده ترین استراتژیهای ذخیره داده ها می باشد. هر گره داده های ادراکی جمع شده را جهت ذخیره سازی به ایستگاه پایه(گره چاهک) منتقل کرده و بخش دسترسی به داده ، داده ها را مستقیماً از ایستگاه دریافت می کند. در نتیجه انرژی نامحدود و فضای ذخیره ایستگاه پایه، داده ها را برای مدت زمان طولانی می توان حفظ نمود و دسترسی به داده ها، انرژی گره ها در شبکه را مصرف نخواهد کرد. شبکه حسگر تنها به عنوان وسیله ای برای جمع آوری داده ها نه پردازش داده ها عمل می کند، زیرا کاربر تنها از طریق ایستگاه پایه می تواند داده ها را در شبکه دریافت کند. به علاوه، زمانی که مقیاس شبکه بسیار بزرگ و توزیع گره متراکم است، مقدار بزرگی از داده ها می بایست در شبکه انتقال داده شوند، سپس گره های نزدیک به ایستگاه پایه با انتقال داده ها، به سرعت انرژی مصرف می کنند. در انتها، می تواند تنگنایی برای شبکه تشکیل دهد، بنابراین این روش برای شبکه هایی در مقیاس بزرگ مناسب نمی باشد.


۲) ذخیره محلی: ذخیره محلی به داده های ادراکی گره ذخیره شده اشاره می کند که برای دستیابی به داده های مربوطه، درخواست دسترسی به داده ها برای کلیه گره ها مسیریابی می شود. این استراتژی درخواست پرس و جو را برای کل شبکه ارسال کرده و هر گره مطابق با شرایط پرس و جو بازخورد حاصل می کند. مزایای این استراتژی به شرح ذیل می باشد: ذخیره داده ها ساده و روش ذخیره سازی فاقد هر گونه سربار ارتباطی است و دسترسی به داده ها نوعی پرس و جوی مورد تقاضا به شمار می رود. اشکالات این استراتژی به شرح ذیل می باشد: اول از همه، ظرفیت ذخیره گره محدود می باشد، به همین خاطر قادر به ذخیره داده های تاریخی برای مدت طولانی نمی باشد. به محض خراب شدن گره، داده ها از بین می روند. ثانیاً، با استفاده از مسیریابی سیلابی، درخواست پرس و جو کورکورانه در شبکه منتقل می شود، بنابراین زندگی شبکه به خاطر مصرف زیاد انرژی کوتاه تر می شود، در نتیجه، در شبکه هایی که درخواست های پرس و جو اغلب صورت می گیرد، کاربرد ندارد. بالاخره، هزینه انتقال داده ها بالا و پردازش پرس و جو پیچیده تر می باشد.


۳) ذخیره توزیع شده: ذخیره توزیع شده یک استراتژی ذخیره سازی داده محور می باشد. ایده اصلی اش آن است که داده های حسی از گره همیشه به صورت محلی ذخیره نمی شوند بلکه در گره های دیگر با تکنولوژی توزیع شده نیز ذخیره و از مکانیسم وساطت و میانجی گری اطلاعات برای هماهنگی ارتباط بین ذخیره داده ها و دسترسی به داده ها استفاده می کند، بنابراین درخواست های دسترسی به داده ها را می توان تامین نمود.بر طبق این استراتژی، داده ها مطابق با مکانیسم ذخیره سازی خاصی ذخیره و درخواست پرس و جو داده ها را طبق مکانیسم دسترسی خاص بدست می آورد. این مکانیسم ها عبارتنداز: نقشه هش، شاخص گذاری، مسیریابی درخواست پرس و جو و داده ها طبق قواعد خاص و غیره. مزایای این استراتژی عبارتنداز: ذخیره داده های توزیع شده با توزیع شبکه حسگر سازگاری دارد و مکانیسم وساطت و میانجی گری اطلاعات می تواند اطمینان حاصل کند که درخواست های دسترسی به داده ها تامین شده اند. اشکال این استراتژی آن است که وساطت اطلاعات به هزینه زیادی نیاز دارد.


۴) پایگاه داده شبکه های حسگر: پایگاه داده شبکه های حسگر سه استراتژی فوق را باهم یکی می کند. این پایگاه فناوری پایگاه داده سنتی، تکنولوژی توزیع شده و تکنولوژی شبکه را به شکلی نزدیک باهم ادغام می کند. گره حسگر به عنوان جریان داده ادراکی یا منبع داده در نظر گرفته می شود. شبکه های حسگر بی سیم (WSN) به عنوان پایگاه داده توزیع شده در نظر گرفته می شود. آن با استفاده از مفهوم منطق و تکنولوژی سخت افزاری و نرم افزاری، می تواند به سیستم پایگاه داده شبکه حسگر دست یابد که داده محور بوده و دارای عملکردبالایی می باشد. پایگاه داده شبکه حسگر مکمل مسیریابی داده محور می باشد. در مورد ذخیره و دسترسی به داده ها، مسیریابی از پائین به بالا صورت می گیرد، اما در مورد مدلسازی داده ها و دسترسی به پایگاه داده، پایگاه داده از بالا به پائین می باشد.

روشهای ذخیره داده ها در شبکه های حسگر به طور کلی به سه نوع تقسیم می شوند: ۱) ذخیره خارجی: داده ها در تجهیزات عملیاتی مرکز خارج از شبکه حسگر ذخیره می شوند. (ایستگاه پایه یا دروازه)۲) ذخیره محلی: داده های ادراکی پس از تولید در گره حسگر ذخیره می شوند. ۳) ذخیره داده محور: داده های ادراکی نام برده شده و در موقعیت مقرر شده در شبکه حسگر طبق نام داده های ادراکی ذخیره می شوند[۴]. ذخیره خارجی ساختاری متمرکز دارد، کلیه داده های ادراکی درکدهای همگرای شبکه حسگر خارجی ذخیره می شوند، یعنی پس از اینکه گره های حسگر داده های نظارتی را بدست می آورند، علاقه گره های همگرا به داده ها مهم نیست، مهم این است که فعالانه برای گره های همگرا ارسال می شوند. زمانی که از روشهای ذخیره محلی استفاده می شود، کلیه داده های ادراکی در گره های حسگر تولید کننده داده ها ذخیره می شوند، به عبارتی، ابتدا، گره حسگر داده های نظارتی را در انبار محلی ذخیره می کند، سپس بعد از دریافت دستورات پرس و جو، داده های مربوطه برای کدهای همگرا فرستاده می شوند.


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




ارائه شده توسط تیم digigoez
Whoops! There was an error.
UnexpectedValueException
The stream or file "/home/rezabehr/storage/logs/laravel-2022-01-25.log" could not be opened: failed to open stream: Disk quota exceeded UnexpectedValueException thrown with message "The stream or file "/home/rezabehr/storage/logs/laravel-2022-01-25.log" could not be opened: failed to open stream: Disk quota exceeded" Stacktrace: #11 UnexpectedValueException in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107 #10 Monolog\Handler\StreamHandler:write in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php:119 #9 Monolog\Handler\RotatingFileHandler:write in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:39 #8 Monolog\Handler\AbstractProcessingHandler:handle in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Logger.php:344 #7 Monolog\Logger:addRecord in /home/rezabehr/vendor/monolog/monolog/src/Monolog/Logger.php:707 #6 Monolog\Logger:error in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/Logger.php:176 #5 Illuminate\Log\Logger:writeLog in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/Logger.php:87 #4 Illuminate\Log\Logger:error in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:498 #3 Illuminate\Log\LogManager:error in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php:114 #2 Illuminate\Foundation\Exceptions\Handler:report in /home/rezabehr/app/Exceptions/Handler.php:37 #1 App\Exceptions\Handler:report in /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:81 #0 Illuminate\Foundation\Bootstrap\HandleExceptions:handleException in [internal]:0
11
UnexpectedValueException
/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php107
10
Monolog\Handler\StreamHandler write
/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php119
9
Monolog\Handler\RotatingFileHandler write
/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php39
8
Monolog\Handler\AbstractProcessingHandler handle
/vendor/monolog/monolog/src/Monolog/Logger.php344
7
Monolog\Logger addRecord
/vendor/monolog/monolog/src/Monolog/Logger.php707
6
Monolog\Logger error
/vendor/laravel/framework/src/Illuminate/Log/Logger.php176
5
Illuminate\Log\Logger writeLog
/vendor/laravel/framework/src/Illuminate/Log/Logger.php87
4
Illuminate\Log\Logger error
/vendor/laravel/framework/src/Illuminate/Log/LogManager.php498
3
Illuminate\Log\LogManager error
/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php114
2
Illuminate\Foundation\Exceptions\Handler report
/app/Exceptions/Handler.php37
1
App\Exceptions\Handler report
/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php81
0
Illuminate\Foundation\Bootstrap\HandleExceptions handleException
[internal]0
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
    /**
     * {@inheritdoc}
     */
    protected function write(array $record)
    {
        if (!is_resource($this->stream)) {
            if (null === $this->url || '' === $this->url) {
                throw new \LogicException('Missing stream url, the stream can not be opened. This may be caused by a premature call to close().');
            }
            $this->createDir();
            $this->errorMessage = null;
            set_error_handler(array($this, 'customErrorHandler'));
            $this->stream = fopen($this->url, 'a');
            if ($this->filePermission !== null) {
                @chmod($this->url, $this->filePermission);
            }
            restore_error_handler();
            if (!is_resource($this->stream)) {
                $this->stream = null;
                throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened: '.$this->errorMessage, $this->url));
            }
        }
 
        if ($this->useLocking) {
            // ignoring errors here, there's not much we can do about them
            flock($this->stream, LOCK_EX);
        }
 
        $this->streamWrite($this->stream, $record);
 
        if ($this->useLocking) {
            flock($this->stream, LOCK_UN);
        }
    }
 
    /**
     * Write to stream
     * @param resource $stream
     * @param array $record
     */
Arguments
  1. "The stream or file "/home/rezabehr/storage/logs/laravel-2022-01-25.log" could not be opened: failed to open stream: Disk quota exceeded"
    
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/RotatingFileHandler.php
        $this->url = $this->getTimedFilename();
        $this->close();
    }
 
    /**
     * {@inheritdoc}
     */
    protected function write(array $record)
    {
        // on the first record written, if the log is new, we should rotate (once per day)
        if (null === $this->mustRotate) {
            $this->mustRotate = !file_exists($this->url);
        }
 
        if ($this->nextRotation < $record['datetime']) {
            $this->mustRotate = true;
            $this->close();
        }
 
        parent::write($record);
    }
 
    /**
     * Rotates the files.
     */
    protected function rotate()
    {
        // update filename
        $this->url = $this->getTimedFilename();
        $this->nextRotation = new \DateTime('tomorrow');
 
        // skip GC of old logs if files are unlimited
        if (0 === $this->maxFiles) {
            return;
        }
 
        $logFiles = glob($this->getGlobPattern());
        if ($this->maxFiles >= count($logFiles)) {
            // no files to remove
            return;
Arguments
  1. array:8 [
      "message" => "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {#146
          #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
          #code: 0
          #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
          #line: 122
          #severity: E_WARNING
        }
      ]
      "level" => 400
      "level_name" => "ERROR"
      "channel" => "local"
      "datetime" => DateTime @1643094415 {#363
        date: 2022-01-25 10:36:55.323542 Asia/Tehran (+03:30)
      }
      "extra" => []
      "formatted" => """
        [2022-01-25 10:36:55] local.ERROR: file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded at /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
        [stacktrace]\n
        #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'file_put_conten...', '/home/rezabehr/...', 122, Array)\n
        #1 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', 2)\n
        #2 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', true)\n
        #3 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\\Session\\FileSessionHandler->write('pQyisgI4mBSDkea...', 'a:3:{s:6:\"_toke...')\n
        #4 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
        #5 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #6 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #7 /home/rezabehr/public_html/index.php(63): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #8 {main}\n
        "} \n
        """
    ]
    
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php
 *
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author Christophe Coevoet <stof@notk.org>
 */
abstract class AbstractProcessingHandler extends AbstractHandler
{
    /**
     * {@inheritdoc}
     */
    public function handle(array $record)
    {
        if (!$this->isHandling($record)) {
            return false;
        }
 
        $record = $this->processRecord($record);
 
        $record['formatted'] = $this->getFormatter()->format($record);
 
        $this->write($record);
 
        return false === $this->bubble;
    }
 
    /**
     * Writes the record down to the log of the implementing handler
     *
     * @param  array $record
     * @return void
     */
    abstract protected function write(array $record);
 
    /**
     * Processes a record.
     *
     * @param  array $record
     * @return array
     */
    protected function processRecord(array $record)
    {
Arguments
  1. array:8 [
      "message" => "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {#146
          #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
          #code: 0
          #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
          #line: 122
          #severity: E_WARNING
        }
      ]
      "level" => 400
      "level_name" => "ERROR"
      "channel" => "local"
      "datetime" => DateTime @1643094415 {#363
        date: 2022-01-25 10:36:55.323542 Asia/Tehran (+03:30)
      }
      "extra" => []
      "formatted" => """
        [2022-01-25 10:36:55] local.ERROR: file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded at /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
        [stacktrace]\n
        #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'file_put_conten...', '/home/rezabehr/...', 122, Array)\n
        #1 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', 2)\n
        #2 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', true)\n
        #3 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\\Session\\FileSessionHandler->write('pQyisgI4mBSDkea...', 'a:3:{s:6:\"_toke...')\n
        #4 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
        #5 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #6 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #7 /home/rezabehr/public_html/index.php(63): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #8 {main}\n
        "} \n
        """
    ]
    
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Logger.php
        }
        $ts->setTimezone(static::$timezone);
 
        $record = array(
            'message' => (string) $message,
            'context' => $context,
            'level' => $level,
            'level_name' => $levelName,
            'channel' => $this->name,
            'datetime' => $ts,
            'extra' => array(),
        );
 
        try {
            foreach ($this->processors as $processor) {
                $record = call_user_func($processor, $record);
            }
 
            while ($handler = current($this->handlers)) {
                if (true === $handler->handle($record)) {
                    break;
                }
 
                next($this->handlers);
            }
        } catch (Exception $e) {
            $this->handleException($e, $record);
        }
 
        return true;
    }
 
    /**
     * Ends a log cycle and frees all resources used by handlers.
     *
     * Closing a Handler means flushing all buffers and freeing any open resources/handles.
     * Handlers that have been closed should be able to accept log records again and re-open
     * themselves on demand, but this may not always be possible depending on implementation.
     *
     * This is useful at the end of a request and will be called automatically on every handler
Arguments
  1. array:8 [
      "message" => "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
      "context" => array:1 [
        "exception" => ErrorException {#146
          #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
          #code: 0
          #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
          #line: 122
          #severity: E_WARNING
        }
      ]
      "level" => 400
      "level_name" => "ERROR"
      "channel" => "local"
      "datetime" => DateTime @1643094415 {#363
        date: 2022-01-25 10:36:55.323542 Asia/Tehran (+03:30)
      }
      "extra" => []
      "formatted" => """
        [2022-01-25 10:36:55] local.ERROR: file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded {"exception":"[object] (ErrorException(code: 0): file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded at /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:122)\n
        [stacktrace]\n
        #0 [internal function]: Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(2, 'file_put_conten...', '/home/rezabehr/...', 122, Array)\n
        #1 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php(122): file_put_contents('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', 2)\n
        #2 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/FileSessionHandler.php(83): Illuminate\\Filesystem\\Filesystem->put('/home/rezabehr/...', 'a:3:{s:6:\"_toke...', true)\n
        #3 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Store.php(129): Illuminate\\Session\\FileSessionHandler->write('pQyisgI4mBSDkea...', 'a:3:{s:6:\"_toke...')\n
        #4 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(87): Illuminate\\Session\\Store->save()\n
        #5 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(218): Illuminate\\Session\\Middleware\\StartSession->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #6 /home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(189): Illuminate\\Foundation\\Http\\Kernel->terminateMiddleware(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #7 /home/rezabehr/public_html/index.php(63): Illuminate\\Foundation\\Http\\Kernel->terminate(Object(Illuminate\\Http\\Request), Object(Illuminate\\Http\\Response))\n
        #8 {main}\n
        "} \n
        """
    ]
    
/home/rezabehr/vendor/monolog/monolog/src/Monolog/Logger.php
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function err($message, array $context = array())
    {
        return $this->addRecord(static::ERROR, $message, $context);
    }
 
    /**
     * Adds a log record at the ERROR level.
     *
     * This method allows for compatibility with common interfaces.
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function error($message, array $context = array())
    {
        return $this->addRecord(static::ERROR, $message, $context);
    }
 
    /**
     * Adds a log record at the CRITICAL level.
     *
     * This method allows for compatibility with common interfaces.
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function crit($message, array $context = array())
    {
        return $this->addRecord(static::CRITICAL, $message, $context);
    }
 
    /**
     * Adds a log record at the CRITICAL level.
     *
     * This method allows for compatibility with common interfaces.
Arguments
  1. 400
    
  2. "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/Logger.php
     * @return void
     */
    public function write($level, $message, array $context = [])
    {
        $this->writeLog($level, $message, $context);
    }
 
    /**
     * Write a message to the log.
     *
     * @param  string  $level
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    protected function writeLog($level, $message, $context)
    {
        $this->fireLogEvent($level, $message = $this->formatMessage($message), $context);
 
        $this->logger->{$level}($message, $context);
    }
 
    /**
     * Register a new callback handler for when a log event is triggered.
     *
     * @param  \Closure  $callback
     * @return void
     *
     * @throws \RuntimeException
     */
    public function listen(Closure $callback)
    {
        if (! isset($this->dispatcher)) {
            throw new RuntimeException('Events dispatcher has not been set.');
        }
 
        $this->dispatcher->listen(MessageLogged::class, $callback);
    }
 
    /**
Arguments
  1. "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/Logger.php
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function critical($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log an error message to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function error($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log a warning message to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
     */
    public function warning($message, array $context = [])
    {
        $this->writeLog(__FUNCTION__, $message, $context);
    }
 
    /**
     * Log a notice to the logs.
     *
     * @param  string  $message
     * @param  array  $context
     * @return void
Arguments
  1. "error"
    
  2. "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
    
  3. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Log/LogManager.php
     *
     * @return void
     */
    public function critical($message, array $context = [])
    {
        $this->driver()->critical($message, $context);
    }
 
    /**
     * Runtime errors that do not require immediate action but should typically
     * be logged and monitored.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function error($message, array $context = [])
    {
        $this->driver()->error($message, $context);
    }
 
    /**
     * Exceptional occurrences that are not errors.
     *
     * Example: Use of deprecated APIs, poor use of an API, undesirable things
     * that are not necessarily wrong.
     *
     * @param string $message
     * @param array  $context
     *
     * @return void
     */
    public function warning($message, array $context = [])
    {
        $this->driver()->warning($message, $context);
    }
 
    /**
     * Normal but significant events.
Arguments
  1. "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/Handler.php
     */
    public function report(Exception $e)
    {
        if ($this->shouldntReport($e)) {
            return;
        }
 
        if (method_exists($e, 'report')) {
            return $e->report();
        }
 
        try {
            $logger = $this->container->make(LoggerInterface::class);
        } catch (Exception $ex) {
            throw $e;
        }
 
        $logger->error(
            $e->getMessage(),
            array_merge($this->context(), ['exception' => $e]
        ));
    }
 
    /**
     * Determine if the exception should be reported.
     *
     * @param  \Exception  $e
     * @return bool
     */
    public function shouldReport(Exception $e)
    {
        return ! $this->shouldntReport($e);
    }
 
    /**
     * Determine if the exception is in the "do not report" list.
     *
     * @param  \Exception  $e
     * @return bool
     */
Arguments
  1. "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
    
  2. array:1 [
      "exception" => ErrorException {#146
        #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
        #code: 0
        #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
        #line: 122
        #severity: E_WARNING
      }
    ]
    
/home/rezabehr/app/Exceptions/Handler.php
 
    /**
     * A list of the inputs that are never flashed for validation exceptions.
     *
     * @var array
     */
    protected $dontFlash = [
        'password',
        'password_confirmation',
    ];
 
    /**
     * Report or log an exception.
     *
     * @param  \Exception  $exception
     * @return void
     */
    public function report(Exception $exception)
    {
        parent::report($exception);
    }
 
    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $exception
     * @return \Illuminate\Http\Response
     */
    public function render($request, Exception $exception)
    {
        return parent::render($request, $exception);
    }
}
 
Arguments
  1. ErrorException {#146
      #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
      #code: 0
      #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
      #line: 122
      #severity: E_WARNING
    }
    
/home/rezabehr/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php
    }
 
    /**
     * Handle an uncaught exception from the application.
     *
     * Note: Most exceptions can be handled via the try / catch block in
     * the HTTP and Console kernels. But, fatal error exceptions must
     * be handled differently since they are not normal exceptions.
     *
     * @param  \Throwable  $e
     * @return void
     */
    public function handleException($e)
    {
        if (! $e instanceof Exception) {
            $e = new FatalThrowableError($e);
        }
 
        try {
            $this->getExceptionHandler()->report($e);
        } catch (Exception $e) {
            //
        }
 
        if ($this->app->runningInConsole()) {
            $this->renderForConsole($e);
        } else {
            $this->renderHttpResponse($e);
        }
    }
 
    /**
     * Render an exception to the console.
     *
     * @param  \Exception  $e
     * @return void
     */
    protected function renderForConsole(Exception $e)
    {
        $this->getExceptionHandler()->renderForConsole(new ConsoleOutput, $e);
Arguments
  1. ErrorException {#146
      #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
      #code: 0
      #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
      #line: 122
      #severity: E_WARNING
    }
    
[internal]
Arguments
  1. ErrorException {#146
      #message: "file_put_contents(/home/rezabehr/storage/framework/sessions/pQyisgI4mBSDkeajnzLiXgeo0rZSaLblVD2I5Yw5): failed to open stream: Disk quota exceeded"
      #code: 0
      #file: "/home/rezabehr/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
      #line: 122
      #severity: E_WARNING
    }
    

Environment & details:

Key Value
id
"21"
title
"ذخیره داده های شبکه های حسگر بی سیم"
empty
empty
empty
empty
Key Value
PATH
"/usr/local/bin:/bin:/usr/bin"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
HTTP_ACCEPT_ENCODING
"br,gzip"
HTTP_ACCEPT_LANGUAGE
"en-US,en;q=0.5"
HTTP_CONNECTION
"Keep-Alive"
HTTP_HOST
"rezabehrouzi.com"
HTTP_USER_AGENT
"CCBot/2.0 (https://commoncrawl.org/faq/)"
HTTP_IF_MODIFIED_SINCE
"Sat, 16 Oct 2021 01:38:49 GMT"
DOCUMENT_ROOT
"/home/rezabehr/public_html"
REMOTE_ADDR
"52.203.18.65"
REMOTE_PORT
"40582"
SERVER_ADDR
"46.4.45.211"
SERVER_NAME
"rezabehrouzi.com"
SERVER_ADMIN
"webmaster@rezabehrouzi.com"
SERVER_PORT
"443"
REQUEST_SCHEME
"https"
REQUEST_URI
"/article?id=21&title=%D8%B0%D8%AE%DB%8C%D8%B1%D9%87%20%D8%AF%D8%A7%D8%AF%D9%87%20%D9%87%D8%A7%DB%8C%20%D8%B4%D8%A8%DA%A9%D9%87%20%D9%87%D8%A7%DB%8C%20%D8%AD%D8%B3%DA%AF%D8%B1%20%D8%A8%DB%8C%20%D8%B3%DB%8C%D9%85"
REDIRECT_URL
"/article"
REDIRECT_QUERY_STRING
"id=21&title=%D8%B0%D8%AE%DB%8C%D8%B1%D9%87%20%D8%AF%D8%A7%D8%AF%D9%87%20%D9%87%D8%A7%DB%8C%20%D8%B4%D8%A8%DA%A9%D9%87%20%D9%87%D8%A7%DB%8C%20%D8%AD%D8%B3%DA%AF%D8%B1%20%D8%A8%DB%8C%20%D8%B3%DB%8C%D9%85"
HTTPS
"on"
REDIRECT_STATUS
"200"
SSL_PROTOCOL
"TLSv1.3"
SSL_CIPHER
"TLS_AES_256_GCM_SHA384"
SSL_CIPHER_USEKEYSIZE
"256"
SSL_CIPHER_ALGKEYSIZE
"256"
SCRIPT_FILENAME
"/home/rezabehr/public_html/index.php"
QUERY_STRING
"id=21&title=%D8%B0%D8%AE%DB%8C%D8%B1%D9%87%20%D8%AF%D8%A7%D8%AF%D9%87%20%D9%87%D8%A7%DB%8C%20%D8%B4%D8%A8%DA%A9%D9%87%20%D9%87%D8%A7%DB%8C%20%D8%AD%D8%B3%DA%AF%D8%B1%20%D8%A8%DB%8C%20%D8%B3%DB%8C%D9%85"
SCRIPT_URI
"https://rezabehrouzi.com/article"
SCRIPT_URL
"/article"
SCRIPT_NAME
"/index.php"
SERVER_PROTOCOL
"HTTP/1.1"
SERVER_SOFTWARE
"LiteSpeed"
REQUEST_METHOD
"GET"
X-LSCACHE
"on"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1643094415.2609
REQUEST_TIME
1643094415
argv
array:1 [
  0 => "id=21&title=%D8%B0%D8%AE%DB%8C%D8%B1%D9%87%20%D8%AF%D8%A7%D8%AF%D9%87%20%D9%87%D8%A7%DB%8C%20%D8%B4%D8%A8%DA%A9%D9%87%20%D9%87%D8%A7%DB%8C%20%D8%AD%D8%B3%DA%AF%D8%B1%20%D8%A8%DB%8C%20%D8%B3%DB%8C%D9%85"
]
argc
1
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:rb9vf2b1y2CyDO7rL6noyDaiALdVJOKYNOJ9FCMGmQQ="
APP_DEBUG
"true"
APP_URL
"http://localhost"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"localhost"
DB_PORT
"3306"
DB_DATABASE
"rezabehr_main"
DB_USERNAME
"rezabehr_milad"
DB_PASSWORD
"@passwordlx1"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"sync"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.mailtrap.io"
MAIL_PORT
"2525"
MAIL_USERNAME
"null"
MAIL_PASSWORD
"null"
MAIL_ENCRYPTION
"null"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
Key Value
APP_NAME
"Laravel"
APP_ENV
"local"
APP_KEY
"base64:rb9vf2b1y2CyDO7rL6noyDaiALdVJOKYNOJ9FCMGmQQ="
APP_DEBUG
"true"
APP_URL
"http://localhost"
LOG_CHANNEL
"stack"
DB_CONNECTION
"mysql"
DB_HOST
"localhost"
DB_PORT
"3306"
DB_DATABASE
"rezabehr_main"
DB_USERNAME
"rezabehr_milad"
DB_PASSWORD
"@passwordlx1"
BROADCAST_DRIVER
"log"
CACHE_DRIVER
"file"
QUEUE_CONNECTION
"sync"
SESSION_DRIVER
"file"
SESSION_LIFETIME
"120"
REDIS_HOST
"127.0.0.1"
REDIS_PASSWORD
"null"
REDIS_PORT
"6379"
MAIL_DRIVER
"smtp"
MAIL_HOST
"smtp.mailtrap.io"
MAIL_PORT
"2525"
MAIL_USERNAME
"null"
MAIL_PASSWORD
"null"
MAIL_ENCRYPTION
"null"
PUSHER_APP_ID
""
PUSHER_APP_KEY
""
PUSHER_APP_SECRET
""
PUSHER_APP_CLUSTER
"mt1"
MIX_PUSHER_APP_KEY
""
MIX_PUSHER_APP_CLUSTER
"mt1"
0. Whoops\Handler\PrettyPageHandler