Механизм хранения рабочих мест, который не является MySQL?

Я делаю много заданий на сайте. Я использую mysql для хранения результатов этих заданий, а также всех промежуточных шагов. Задания могут выполняться с или без mysql. Проблема заключается в том, что если mysql отключается в любой момент времени, текущие состояния заданий портятся, и их результаты бесполезны (так как они кодируются в различных местах).

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

2 ответа

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

sqlite - это простой внутрипроцессный инструмент для реляционных баз данных.

Я полагаю, многое зависит от того, что вы используете для реализации своей логики - и с чем она будет говорить.

Я должен признать, что я немного удивлен, что у вас, похоже, проблемы с надежностью mysql - я использовал его для некоторых довольно серьезных / больших объемов материала и нашел его очень стабильным - единственные проблемы, с которыми я столкнулся, это:

1) когда я запускал старую версию поверх md-raid - иногда происходило повреждение после больших удалений

2) проблемы с блокировкой на уровне таблицы при обновлении больших наборов данных в myisam (можно избежать с помощью innodb)

Возможно, вы захотите продолжить работу с mysql, но используя репликацию master-master и добавив отказоустойчивый слой сверху - например, mysqlproxy

Если честно, это звучит как проблема всей вашей архитектуры, но если вы ищете альтернативные механизмы хранения, есть из чего выбирать. Вот краткий список вещей, которые могут подойти, в зависимости от того, какое именно приложение. Многие другие перечислены здесь.

CouchDb, Hadoop, MemcacheDB, Волдеморт

Другие вопросы по тегам