NoSql с моими собственными бинарными файлами? - PullRequest
4 голосов
/ 06 апреля 2011

Первоначально мне приходилось иметь дело только с 1,5 [ТБ] данных. Поскольку мне просто нужно было быстро писать / читать (без SQL), я разработал свой собственный плоский двоичный формат файла (реализованный с использованием python) и легко (и с радостью) сохранил свои данные и манипулировал ими на одной машине. Конечно, для целей резервного копирования я добавил 2 машины, которые будут использоваться в качестве точных зеркал (используется rsync).

В настоящее время мои потребности растут, и необходимо создать решение, которое бы успешно масштабировало до 20 [ТБ] (и даже больше) данных. Я был бы рад продолжить использование моего плоского формата файла для хранения . Это быстро, надежно и дает мне все, что мне нужно.

Меня беспокоит репликация, согласованность данных и т. Д. (Очевидно, что данные должны быть распределены, а не all data может храниться на one machine) по сети.

Существуют ли какие-либо решения ready-made (Linux / python based), которые позволили бы мне продолжать использовать мой формат файла для хранения, но обрабатывали бы другие компоненты, которые обычно предоставляют решения NoSql? (согласованность данных / доступность / простота репликации)?

По сути, все, что я хочу убедиться, это то, что мои двоичные файлы согласованы по всей моей сети. Я использую сеть из 60 компьютеров Core-Duo (каждая с 1GB RAM и 1.5TB disk)

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

Подход: Распределенная карта уменьшена в Python с диско-проектом

Похоже, хороший способ подойти к вашей проблеме. Я использовал диско-проект с похожими проблемами.

Вы можете распределять свои файлы по n количествам машин (процессов), реализовывать карту и сокращать функции, которые соответствуют вашей логике.

Учебное пособие по диско-проекту точно описывает, как реализовать решение ваших проблем. Вы будете поражены тем, как мало кода вам нужно написать, и определенно сможете сохранить формат вашего двоичного файла.

Другой похожий вариант - использовать Amazon Elastic MapReduce

1 голос
/ 06 апреля 2011

Возможно, некоторые комментарии к системе Kivaloo, разработанной для Tarsnap, помогут вам решить, что является наиболее подходящим: http://www.daemonology.net/blog/2011-03-28-kivaloo-data-store.html

Не зная больше о вашем приложении (размер / тип записей, частота чтения / записи) или пользовательском формате, трудно сказать больше.

...