Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Распределенные транзакции на PHP+Mysql: с чего начать?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите пожалуйста доками или примерами реализации распределенной транзакции на PHP+Mysql
Artyom
Отправлено: 23 Февраля, 2014 - 18:09:37
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Добрый вечер уважаемые профессионалы и любители Веб-программирования! Помогите пожалуйста разобраться с распределенными транзакциями на PHP+Mysql. Собственно что хотелось бы, а хотелось следующее:
1)какой-то маленький пример реализации этого дела на PHP+Mysql
2)Какие-то статьи (для php пока не нашел если честно)
3)может какие-то доки и советы...
Важно чтобы было связано с PHP.
Заранее спасибо!

(Отредактировано автором: 23 Февраля, 2014 - 18:10:07)

 
 Top
KingStar
Отправлено: 23 Февраля, 2014 - 19:42:10
Post Id



Участник


Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011  
Откуда: Беларусь


Помог: 69 раз(а)




транзакций на PHP нет, можно на MySQL с вызовом через php и передачей параметров, поэтому ищи в сторону MySQL, а через php думаю не составит труда реализовать, если конечно есть знания языка


-----
То что программа работает, не означает что она написана правильно!
 
 Top
Мелкий Супермодератор
Отправлено: 23 Февраля, 2014 - 19:45:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Распределённые транзакции не зависят от PHP. От MySQL, кстати, тоже не зависят - так сказано в мануале к оному Подмигивание

Если коротко - если нет жизненной необходимости - не делайте этого.

Суть - синхронно сделать commit уже на двух серверах невозможно. Вообще.
Сервер А сказал commit ok, а сервер B - commit fail - как откатить транзакцию на первом сервере? Потому стараются уменьшить работу последнего, окончательного commit'а введением prepare commit.
Двухфазный коммит: стартует транзакция, делаете всё, что нужно, делаете prepare - если все сервера ответили ok, то делаете commit и надеетесь, что в этот промежуток времени, пока все сервера не закоммитятся, ничего не случится. А если хоть один сервер сказал fail на prepare - откатываете транзакцию на всех серверах.


-----
PostgreSQL DBA
 
 Top
caballero
Отправлено: 23 Февраля, 2014 - 21:29:57
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




проекты где нужны распределенные транзакции редко пишут на PHP


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Artyom
Отправлено: 24 Февраля, 2014 - 08:58:50
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Мелкий пишет:
Распределённые транзакции не зависят от PHP. От MySQL, кстати, тоже не зависят - так сказано в мануале к оному Подмигивание

Если коротко - если нет жизненной необходимости - не делайте этого.

Суть - синхронно сделать commit уже на двух серверах невозможно. Вообще.
Сервер А сказал commit ok, а сервер B - commit fail - как откатить транзакцию на первом сервере? Потому стараются уменьшить работу последнего, окончательного commit'а введением prepare commit.
Двухфазный коммит: стартует транзакция, делаете всё, что нужно, делаете prepare - если все сервера ответили ok, то делаете commit и надеетесь, что в этот промежуток времени, пока все сервера не закоммитятся, ничего не случится. А если хоть один сервер сказал fail на prepare - откатываете транзакцию на всех серверах.


Спасибо большое за краткое описание, ну я так понимаю должен быть какой-то координатор этих действий в двухфазном коммите? Вроде говорили, что по умолчанию есть в данной СУБД, так ли это?
(Добавление)
KingStar пишет:
транзакций на PHP нет, можно на MySQL с вызовом через php и передачей параметров, поэтому ищи в сторону MySQL, а через php думаю не составит труда реализовать, если конечно есть знания языка

Спасибо за ответ, я знаю что транзакции в MySQL, просто везде пишут про реализацию этого используя Java и .Net. Главное - это отправная точка, с чего нужно начинать.
Немножко разобрался. Теперь хочу связать эту всю кашу с PHP
 
 Top
caballero
Отправлено: 24 Февраля, 2014 - 10:36:47
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




в яве есть специальные драйвера для распределенных транзакций. Для тех СУБД которые это поддерживают, разумеется.


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Artyom
Отправлено: 24 Февраля, 2014 - 13:11:59
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Мелкий пишет:
prepare - если все сервера ответили ok, то делаете commit и надеетесь, что в этот промежуток времени, пока все сервера не закоммитятся, ничего не случится. А если хоть один сервер сказал fail на prepare - откатываете транзакцию на всех серверах.
может глупый вопрос,но, на php можно реализовать данный способ?
(Добавление)
caballero пишет:
в яве есть специальные драйвера для распределенных транзакций. Для тех СУБД которые это поддерживают, разумеется.
спасибо, учту
 
 Top
Мелкий Супермодератор
Отправлено: 24 Февраля, 2014 - 13:40:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Artyom пишет:
может глупый вопрос,но, на php можно реализовать данный способ?

Можно. Хоть на bash'е. Язык неважен, было бы чем SQL-запросы рассылать.
Прикладной язык программирования - и есть координатор транзакции. (Transaction Manager)
https://dev[dot]mysql[dot]com/doc/refman/5[dot]1/en/xa[dot]html


-----
PostgreSQL DBA
 
 Top
Artyom
Отправлено: 24 Февраля, 2014 - 14:44:06
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Янв. 2012  


Помог: 0 раз(а)




Цитата:
и есть
координатор транзакции
спасибо.как раз вчера ночью читал данную документацию. Какой посоветуете алгоритм действий реализации распределенной транзакци на мускуле?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB