[Moscow.pm] nosql сервер под очередь задач

Nick Knutov mail на knutov.com
Сб Янв 12 14:08:28 PST 2013


Да, тарантул - вторая база, на которую я смотрел, но там тоже в 
документации ничего подходящего не нашел, чтобы сразу, а не делать 
вручную циклов с опросом.

У нас убунту лтс, но мы умеем пересобирать пакеты под себя.

Про остальное понял лишь примерно, но думаю к релизу документация про 
эти моменты станет понятней :)

Заодним, а есть какая-нибудь статистика, пользуется ли тарантул сейчас 
популярностью где-то за пределами разработчиков с собственными 
серверами? Есть смысл добавлять его поддержку на шаред хостинге?



13.01.2013 3:38, Ivan Petrov пишет:
>> Подскажите, какие сейчас есть nosql серверы, вроде Redis, чтобы не
>> на яве и с биндингом для перла и можно было повесить хук на
>> появление данных?  И, наверное, все данные должны сохранятся при
>> потере питания, а скорость не очень критична - данных не много.
>
> http://tarantool.org
>
> мы сейчас тарантул допилили до того чтобы можно было сделать
> полноценную очередь, мало того мы ее в процессе делания на нем и
> соответственно в ближ недели она появится
>
> вкратце что будет
>
> 1. консюмер может сказать "дай задачу" с таймаутом. далее ему либо не
> вернется ничего либо выдастся задача.
> 2. если задач нет консюмер будет ее ожидать, получать будет по факту
> ее появления
> 3. очередей поддерживается множество
> 4. если консьюмер отваливается сервер сам выводит задачу из статуса
> taken (взята) в статус ready (готова ко взятию)
> ну и тому подобное.
>
> примерный API что мы делаем - компиляция бинстолка и наших размышлений
> будет такой:
>
> продюсер:
>
>      put - кладет задачу в очередь
>          можно указать:
>              - интервал задержки
>              - TTL
>              - TTR
>              - приоритет
>
>      push - то же что и put но в начало очереди
>          такие задания выполнятся в первую очередь
>
> консюмер:
>
>      take - берет задачу на выполнение (та помечается как taken), если за
>             время TTR задача не будет исполнена, задача перепометится как
>             ready
>
>      ack  - сообщает очереди что задача выполнена (задача удаляется из
>             очереди). проверяет некоторые условия вроде того что "этот
>             консюмер брал и только он может сообщить о выполнении)
>
>      touch - продлить ttr выполняемой задаче
>
>      release - вернуть задачу в очередь невыполненной (можно отложить
>             повторное выполнение, изменить TTL, TTRL при этом). тоже
>             проверяет некоторые условия
>
>      requeue - вернуть задачу в очередь (в статус ready), но поставить ее
>             не в начало очереди а в конец
>
>      done - перевести задачу в статус "выполнена"
>
>      bury - закопать задачу (например после N неудачных попыток)
>
>
> просто запросы:
>
>      delete - удаление таска
>      peek   - получить таск
>      meta   - получить метаинфу по таску (TTL, TTR, счетчики итп)
>      dig(unbury) - откопать задачу
>      kick   - откопать N задач
>
>      stats - получить статистику по вчем очередям (счетчики/размеры итп)
>
> для Perl у тарантула есть DR::Tarantool который на базе AnyEvent
> внутрях и так же Coro. есть синхронная версия (AE+condvars).
> DR сейчас отвязали от зависимостей на libtarantool, поэтому не
> страдает от обновления этих библиотек и сильно проще в сборке стал.
> есть в Debian (правда пока в unstable)
>
> еще Монс пилил свой драйвер для тарантула, но в Debian я пока его не
> добавил (собираюсь). бенчмаркать он будет скорее всего получше чем DR.
>
>
> ну и еще насчет тарантула:
>
> тарантул потихоньку из noSQL БД превращается в апликейшн сервер.
>
> например у него появились сокеты (пока не запушены в основную ветку,
> но очень скоро там будут). таким образом у него появляется возможность
> ваять свои серверы на борту у которых будет еще и noSQL БД (одна из
> самых быстрых). серверы со своими протоколами (вплоть до http) которые
> по прикидкам будут бенчмаркать на уровне nodejs и возможно nginx. но
> при этом на борту таки БД. но к этому пока двигаемся. как там
> говорится "оставайтесь с нами" :)
>

-- 
Best Regards,
Nick Knutov
http://knutov.com
ICQ: 272873706
Voice: +7-904-84-23-130


Подробная информация о списке рассылки Moscow-pm