Я работаю над приложением, в котором мы пишем много-много пар ключ-значение. В рабочей среде размер базы данных будет исчисляться сотнями терабайт и даже несколькими петабайтами. Ключи имеют размер 20 байт, а значение не превышает 128 КБ и очень редко меньше 4 КБ. Сейчас мы используем MongoDB. Производительность не очень хорошая, потому что, очевидно, здесь происходит много накладных расходов. MongoDB записывает в файловую систему, которая пишет в LVM, которая далее записывает в массив RAID 6.
Поскольку наше требование очень простое, я думаю, что использование системы базы данных общего назначения снижает производительность. Я думал о реализации простой системы базы данных, в которой мы могли бы помещать документы (или «значения») непосредственно на необработанный диск (на самом деле массив RAID) и хранить ключи (и указатель на то, где находится значение на необработанном диске). диск) в быстрой базе данных в памяти, поддерживаемой SSD. Это также ускорит чтение, так как не будет никакой фрагментации (в отличие от использования файловой системы).
Хотя документ редко удаляется, нам все равно придется поддерживать пул свободного места, доступного на устройстве (что-то, что предоставила бы файловая система).
Мой вопрос в том, действительно ли это даст какие-либо существенные улучшения? Кроме того, существуют ли какие-либо системы хранения документов, которые делают что-то подобное? Или что-то подобное, что мы можем использовать в качестве отправной точки?
/dev/sdb
). Предположим, что в вашем домашнем каталоге есть файлtest.txt
с содержимымhello world
. Дайте следующие команды:dd if=~/test.txt of=/dev/sdb bs=11 count=1
dd if=/dev/sdb of=output.txt bs=11 count=1
. Эти команды запишут файл на необработанный диск, а затем прочитают его обратно в другой файлoutput.txt
. Если вы прочитаете выходной файл, его содержимое будетhello world
. Обратите внимание, это уничтожит файловую систему диска, если таковая была. - person Tarandeep Gill   schedule 20.03.2013dd
не дает понять, как именно он пишет, однако упоминает, что его цель:convert and copy a file
и этоOn Unix, device drivers for hardware (such as hard disks) and special device files (such as /dev/zero and /dev/random) appear in the file system just like normal files
, поэтому я не уверен в вашем утверждении, но я расследую ( en.wikipedia.org/wiki/Dd_%28Unix%29 ). - person Sammaye   schedule 20.03.2013/dev
. Вы можете читать/писать в него напрямую без монтирования. - person Tarandeep Gill   schedule 20.03.2013