Mysql MySQL HTTP Plugin

grigori

( ͡° ͜ʖ ͡°)
Команда форума
@Long запостил классную ссылку: http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/

Прикольная штука, особенно если сделать какой-то автогенератор JS-кода.
Основных ограничений в использовании я вижу два: каждый запрос выполняется в транзакции и без кеша, т.е. скорость большой не будет, и второе - сессий нет и не предвидится, т.е. проблема с авторизацией доступа.

Получается, средство пока с ограниченным применением, но все-равно любопытно выкинуть cgi-слой :)
 

Yoskaldyr

"Спамер"
Партнер клуба
Так уже давно был nginx plugin для прямой работы с mysql и другими базами. Проверен в жестоком китайском хайлоаде.
С другой стороны теперь можно без nginx плагинов mysql использовать в качестве бекэнда.
 

hell0w0rd

Продвинутый новичок
прямо из под nginx, на мой взгляд, можно использовать для быстрого прототипа API... только я так и не смог заставить этот плагин работать под os x, может что-то не так делал(
 

fixxxer

К.О.
Партнер клуба
каждый запрос выполняется в транзакции и без кеша
решается reverse proxy

сессий нет и не предвидится, т.е. проблема с авторизацией доступа
решается reverse proxy

Но вообще это что-то из разряда "потому что я могу". Интереснее было бы некоторое подобие pgbouncer с REST API.
 

fixxxer

К.О.
Партнер клуба
grigori, ты про что? ;) Если про авторизацию, то ngx_http_auth_request_module.

А в смысле сессий и транзакций как раз бы аналог pgbouncer прорулил (а REST api поверх навесить дело несложное). Были зачатки чего-то такого в mysql-proxy, но он вроде сдох не родившись.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
http_auth_request_module или x-accel-redirect - одно и то же: php-скрипт, который отработает запрос, он же может и запрос в mysql сделать, и смысл реализации без php теряется

>>каждый запрос выполняется в транзакции и без кеша
>решается reverse proxy
proxy_cache в nginx - отлично, но что с инвалидацией при изменении данных в базе?
nginx-memcached - да, но за логикой инвалидации кеша при обновлении через приложение не видно экономии, обычный query cache был бы простым и удобным
 
Последнее редактирование:

fixxxer

К.О.
Партнер клуба
а инвалидация при изменении данных в таблице?
Это всегда сложно. :)
Но в принципе, раз все запросы идут через прокси, можно их анализировать.

Я, кстати, не говорил слово "nginx" =)
 

fixxxer

К.О.
Партнер клуба
BTW, разработчики PostgreSQL тоже о подобном думали. До кода, правда, руки у них, похоже, не дошли.
 

fixxxer

К.О.
Партнер клуба
я это заметил, но какие варианты?
Мне вообще кажется странным встраивать httpd в mysql daemon. Мне кажется более логичным внешний демон, сделанный по аналогии с pgbouncer, и поддерживающий REST API, и с каким-нибудь встроенным скриптингом на том же lua. Все эти вопросы он мог бы брать на себя, плюс - балансировка, write to master/read from slave, шардинг и тп.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
в роли демона на пред- и пост-обработке запроса хорошо становится, например, нода, питон, и любой fcgi, и снова вышли на Дерибасовскую

как я понимаю, смысл в том, чтобы избавиться от этого слоя, и в одном mysql реализовать простые операции,
 

fixxxer

К.О.
Партнер клуба
Нода с ее непредсказуемым garbage collection плохо подходит для сервиса, где критично время ответа на каждый запрос. В некоторой степени это касается и новомодного go, но там хотя бы можно аккуратно писать, не нарываясь на gc.

Для простых операций - в смысле, той ниши, для которой есть всякие саасики типа "я клиент/мобайл-разработчик, я не хочу сервер-сайд, я хочу фыр-фыр-фыр"? Ну может быть, хотя тут наверное уместнее nosql.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
так mysql прямым ткстом и пишет, что пытается этой фичей побороться с nosql

в принципе, и nginx с lua подошел бы как прокси с авторизацией
 
Сверху