Welcome! Log In Create A New Profile

Advanced

memcachedb из разных процессов - разные значения

Posted by LeoK 
Доброго времени суток...
Появилась следующая проблема.
Имеем: основной скрипт (mod_php) и демон (cli) на php (реализует
асинхронную обработку всего долгоиграющего), использующие одну и ту же
php-обёртку, пул серверов, конфиги и тд к memcachedb (memcached.so).
Идея была сделать обмен данными через memcachedb.
Проблема: делаю $mdb->set('is_process_run',1) в основном скрипте, а
$mdb->get('is_process_run') из демона не возвращает установленное
значение. В чем могут быть грабли? так же пробовал мониторить
telnet'ом ( telnet 127.0.0.1 21201; get is_process_run ) - все
одно...
Может я что-нибудь упустил?
У меня была похожая проблема, после долгих мучений выяснилось, что в
Memcached нельзя класть запись более 1 Мб.
При этом set возвращает true, то есть как будто всё прекрасно сетится,
а на самом деле нет.
Ну и стоит убедиться, что пул серверов в одинаковом порядке
добавляется и в cli и в web.

On Jun 18, 7:43 pm, LeoK <leo....@gmail.com> wrote:
> Доброго времени суток...
> Появилась следующая проблема.
> ...
> Идея была сделать обмен данными через memcachedb.
> Проблема: делаю $mdb->set('is_process_run',1) в основном скрипте, а
> $mdb->get('is_process_run') из демона не возвращает установленное
> значение.
> ...
> Может я что-нибудь упустил?
У меня несколько другая ситуация. Как уже написал выше, обертка и
конфиги пула для обоих скриптов одни и те же. Объём данных, помещаемых
в mdb минимален. Промониторил все возвращающие методами Memcached
класса значения - все ровно. Но вот никак не пойму, почему я в mod_php
скрипте записываю значение в бд (при этом значение сохраняется -
проверял из того же скрипта get'ом), так же, как будто в другую бд
записывается и возвращается значение из cli скрипта, НО С ТАКИМ ЖЕ
КЛЮЧОМ. Куда копать, ума не приложу. memcachedb в процессах один, база
данных по дефолту:

root@leok:/home/leok/www/.....ru# ps aux | grep memcached
nobody 1984 0.0 0.0 55140 2196 ? Sl 10:01 0:00 /usr/
bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1
125 1992 0.0 0.4 167204 16240 ? Sl 10:01 0:00 /usr/
bin/memcachedb -m 64 -p 21201 -A 4096 -u memcachedb -l 127.0.0.1 -H /
var/lib/memcachedb -f /var/lib/memcachedb/default.db -U off

root@leok:/home/leok/www/.....ru# uname -a
Linux leok 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 22:02:19 UTC
2010 i686 GNU/Linux

On 19 июн, 00:45, "Pixus.ru" <pixus...@gmail.com> wrote:
> У меня была похожая проблема, после долгих мучений выяснилось, что в
> Memcached нельзя класть запись более 1 Мб.
> При этом set возвращает true, то есть как будто всё прекрасно сетится,
> а на самом деле нет.
> Ну и стоит убедиться, что пул серверов в одинаковом порядке
> добавляется и в cli и в web.
>
> On Jun 18, 7:43 pm, LeoK <leo....@gmail.com> wrote:
>
> > Доброго времени суток...
> > Появилась следующая проблема.
> > ...
> > Идея была сделать обмен данными через memcachedb.
> > Проблема: делаю $mdb->set('is_process_run',1) в основном скрипте, а
> > $mdb->get('is_process_run') из демона не возвращает установленное
> > значение.
> > ...
> > Может я что-нибудь упустил?
>
>
Добрый день.
Кусок кода можете показать, из обоих приложений, который вычитывает у вас
данное значение?
Если логирование включить и снять tcpdump трафик между приложениями в момент
записи и чтения, с указанием времени выполнения запросов, то что в них
будет?

19 июня 2010 г. 10:27 пользователь LeoK <leo.062@gmail.com> написал:

> У меня несколько другая ситуация. Как уже написал выше, обертка и
> конфиги пула для обоих скриптов одни и те же. Объём данных, помещаемых
> в mdb минимален. Промониторил все возвращающие методами Memcached
> класса значения - все ровно. Но вот никак не пойму, почему я в mod_php
> скрипте записываю значение в бд (при этом значение сохраняется -
> проверял из того же скрипта get'ом), так же, как будто в другую бд
> записывается и возвращается значение из cli скрипта, НО С ТАКИМ ЖЕ
> КЛЮЧОМ. Куда копать, ума не приложу. memcachedb в процессах один, база
> данных по дефолту:
>
> root@leok:/home/leok/www/.....ru# ps aux | grep memcached
> nobody 1984 0.0 0.0 55140 2196 ? Sl 10:01 0:00 /usr/
> bin/memcached -m 64 -p 11211 -u nobody -l 127.0.0.1
> 125 1992 0.0 0.4 167204 16240 ? Sl 10:01 0:00 /usr/
> bin/memcachedb -m 64 -p 21201 -A 4096 -u memcachedb -l 127.0.0.1 -H /
> var/lib/memcachedb -f /var/lib/memcachedb/default.db -U off
>
> root@leok:/home/leok/www/.....ru# uname -a
> Linux leok 2.6.32-22-generic #36-Ubuntu SMP Thu Jun 3 22:02:19 UTC
> 2010 i686 GNU/Linux
>
> On 19 июн, 00:45, "Pixus.ru" <pixus...@gmail.com> wrote:
> > У меня была похожая проблема, после долгих мучений выяснилось, что в
> > Memcached нельзя класть запись более 1 Мб.
> > При этом set возвращает true, то есть как будто всё прекрасно сетится,
> > а на самом деле нет.
> > Ну и стоит убедиться, что пул серверов в одинаковом порядке
> > добавляется и в cli и в web.
> >
> > On Jun 18, 7:43 pm, LeoK <leo....@gmail.com> wrote:
> >
> > > Доброго времени суток...
> > > Появилась следующая проблема.
> > > ...
> > > Идея была сделать обмен данными через memcachedb.
> > > Проблема: делаю $mdb->set('is_process_run',1) в основном скрипте, а
> > > $mdb->get('is_process_run') из демона не возвращает установленное
> > > значение.
> > > ...
> > > Может я что-нибудь упустил?
> >
> >
>
Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 139
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready