Почему sqlite3 не может работать с NFS?

Я переключаюсь на использование sqlite3 вместо MySQL, потому что мне пришлось запускать много заданий в системе PBS, в которой нет mysql. Конечно, на моей машине у меня нет NFS, а на PBS есть. Потратив много времени на переключение на sqlite3, я запускаю много заданий и повреждаю свою базу данных.
Конечно, внизу в sqlite3 FAQ упоминается о NFS, но я даже не думал об этом, когда начинал.

Я могу скопировать базу данных в начале работы, но это превратится в объединяющийся кошмар!

Я бы никогда не рекомендовал sqlite никому из моих коллег по этой простой причине: «sqlite не работает (на машинах, которые имеют значение)»

Я читал суету о том, что NFS не на высоте, и это их вина.
Я попробовал несколько обходных путей, но как эта почта предполагает, что это невозможно.

Нет ли обходного пути, который жертвует производительностью?

Так что мне делать? Попробуйте другое программное обеспечение БД? Который из?

2

Решение

Вы используете не тот инструмент. Сказать «я бы никогда не порекомендовал sqlite …», основываясь на этом опыте, все равно, что сказать «я бы никогда не порекомендовал стеклянные бутылки» после того, как они продолжают ломаться, когда вы используете их для забивания гвоздя.

Вы должны указать свою проблему более точно. Моя попытка прочитать между строк вашего вопроса дает мне что-то вроде этого:

У вас есть много узлов, которые работают по некоторому неопределенному пути и выдают результат. Задания не взаимодействуют, потому что вы говорите, что можете скопировать базу данных. Вывод всех заданий может быть объединен после их завершения. Как вы эффективно производите объединенную продукцию?

Учитывая, что в качестве вопроса, это мой совет:

Пусть каждое задание выводит свои данные в структурированном файле, уникальном для каждого задания. После завершения работ напишите программу для анализа каждого файла и вставьте его в базу данных sqlite3. При этом NFS обрабатывается так, как он может обрабатывать (последовательная запись одного файла в файл), и использует sqlite3 также разумным образом (запись одного процесса в базу данных в локальной файловой системе). Это позволит избежать проблем с блокировкой NFS во время выполнения задания и должно повысить пропускную способность, поскольку у вас нет конфликтов в базе данных sqlite3.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]