Применение технологий транзакции для сохранения данных
Итак, что есть: программа, с которой по сети одновременно работает 200-500 клиентов, работает активно, то есть информация меняется постойнно. Раз в 30 минут - сохранение данных (рабочих) - происходит "заморозка" всего, все объекты сереализируются и пишутся в файл, работаем дальше. Так вот, оная "заморозка" всех очень напрягает, так как занимает достаточно большое время (относительно ессно - на 2ГБ ОЗУ + 2x3Ггц Пень4, 2xHDD SATA 8Mb buf - около 60 сек, размер получаещегося файла ~1Гб(пока)), которое всех ну оччень напрягает, собственно поэтому так редко и происходит, хотелось-бы раз в 10 минут делать, или хотя-бы в 20, но тогда совсем съедят.
Посему хочется сделать следущее: всю систему сохранения информации построить по транзакционному принципу (знакомо по базам данных). То есть инициализируется начало сохранения, все как-бы заморозилось (читаем инфу по транзакциям в MySQL), идет дамп на диск, при этом, паралельно, продолжается работа, и где-то в отдельном месте накапливаются изменения от "момента начала сохранения", потом запись заканчивается, измененияприменяются, работает дальше, пауза прозрачна...
Воот такое, что написал я сверху - хочу. Как уже говорилось писать все самому - имхо долго, и тяжело, так может есть у кого некие наработки, или, быть может, советы по данному поводу.
З.Ы.: для заинтересовавшихся: http://www.innodb.com/ - база юзаемая в MySQL и поддерживающая транзакции, OpenSource.