The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"FIFO неограниченного размера"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"FIFO неограниченного размера"  
Сообщение от Heggi email on 25-Мрт-06, 14:49 
Надо связать два демона. Первый демон критичный, он передает данные другому демону. При этом при падении второго демона данные не должны пропадать, как и в случае перезагрузки машины (в т.ч. резетом).
Как вариант: FIFO-файл, но ряд ограничений (в первую очередь ограничение размера 4 Кб) заставляет отказаться от этого способа.
Альтернатива - программная реализация FIFO на базе обычного файла...
КАК !?
Или есть другой способ, позволяющий не потерять данные в любой критической ситуации?!
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "FIFO неограниченного размера"  
Сообщение от chip email(ok) on 25-Мрт-06, 19:26 
>Надо связать два демона. Первый демон критичный, он передает данные другому демону.
>При этом при падении второго демона данные не должны пропадать, как
>и в случае перезагрузки машины (в т.ч. резетом).

Можно поинтересоваться, что за задача?! Биллинг?

>Как вариант: FIFO-файл, но ряд ограничений (в первую очередь ограничение размера 4
>Кб) заставляет отказаться от этого способа.
>Альтернатива - программная реализация FIFO на базе обычного файла...
>КАК !?
>Или есть другой способ, позволяющий не потерять данные в любой критической ситуации?!

Может быть стоит обратить внимание на реализации MTA?! В которых сохранность корреспонденции является наиболее критичной задачей. Например, оглянуться на реализацию queue в postfix. У которого очень понятный и лаконичный код. В простейшем случае это могло бы выглядеть так: 1-вый демон, пытается через unix-pipe/tcp отдать данные 2-ому, если от него нет ответа. Он складывает их в очереде, для перманентного хранения на жестком диске, сделав на них fsync. Через некоторое время он пытается обратиться к 2-ому и передать ему данные. В итоге получаем, что даже "при смерти" обоих демонов данные останутся в сохранности и при следующим запуске они смогут совершить корректную транзакцию. Вариаций на тему много...поэтому будет зависеть от Вашей специфики.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "FIFO неограниченного размера"  
Сообщение от Heggi email on 25-Мрт-06, 21:47 
>
>Можно поинтересоваться, что за задача?! Биллинг?
>
Так точно!
Хотел использовать что-нить стандартное, но понял, что это все чушь. либо не надежно, либо еще что...
к тому же диплом пишу...

>Может быть стоит обратить внимание на реализации MTA?! В которых сохранность корреспонденции
>является наиболее критичной задачей. Например, оглянуться на реализацию queue в postfix.
>У которого очень понятный и лаконичный код. В простейшем случае это
>могло бы выглядеть так: 1-вый демон, пытается через unix-pipe/tcp отдать данные
>2-ому, если от него нет ответа. Он складывает их в очереде,
>для перманентного хранения на жестком диске, сделав на них fsync. Через
>некоторое время он пытается обратиться к 2-ому и передать ему данные.
>В итоге получаем, что даже "при смерти" обоих демонов данные останутся
>в сохранности и при следующим запуске они смогут совершить корректную транзакцию.
>Вариаций на тему много...поэтому будет зависеть от Вашей специфики.
М... хотелось бы подробности, ссылки на инфу.

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "FIFO неограниченного размера"  
Сообщение от chip email(ok) on 26-Мрт-06, 13:22 
>>
>>Можно поинтересоваться, что за задача?! Биллинг?
>>
>Так точно!
>Хотел использовать что-нить стандартное, но понял, что это все чушь. либо не
>надежно, либо еще что...
>к тому же диплом пишу...
>
>>Может быть стоит обратить внимание на реализации MTA?! В которых сохранность корреспонденции
>>является наиболее критичной задачей. Например, оглянуться на реализацию queue в postfix.
>>У которого очень понятный и лаконичный код. В простейшем случае это
>>могло бы выглядеть так: 1-вый демон, пытается через unix-pipe/tcp отдать данные
>>2-ому, если от него нет ответа. Он складывает их в очереде,
>>для перманентного хранения на жестком диске, сделав на них fsync. Через
>>некоторое время он пытается обратиться к 2-ому и передать ему данные.
>>В итоге получаем, что даже "при смерти" обоих демонов данные останутся
>>в сохранности и при следующим запуске они смогут совершить корректную транзакцию.
>>Вариаций на тему много...поэтому будет зависеть от Вашей специфики.
>М... хотелось бы подробности, ссылки на инфу.

www.postfix.org

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру