Я изучаю возможные варианты организации хранения данных для приложения Erlang. Данные, которые он должен использовать, представляют собой огромную коллекцию двоичных двоичных объектов, индексируемых с помощью коротких строковых идентификаторов. Каждый блоб меньше 10 Кб, но их много. Я ожидаю, что в общей сложности они будут иметь размер до 200 Гб, поэтому очевидно, что они не помещаются в память. Типичная операция с этими данными - либо чтение большого двоичного объекта по его идентификатору, либо обновление большого двоичного объекта по его идентификатору, либо добавление нового. В каждый данный период дня используется только подмножество идентификаторов, поэтому производительность доступа к хранилищу данных может выиграть от использования кэша в памяти. Говоря о производительности - это довольно критично. Цель - обеспечить около 500 операций чтения и 500 обновлений в секунду на обычном оборудовании (скажем, на виртуальной машине EC2).
Любые предложения, что использовать здесь? Как я понимаю, dets не может быть и речи, так как он ограничен 2G (или 4G?). Мнезия, вероятно, тоже не подлежит сомнению; У меня сложилось впечатление, что он был в основном предназначен для случаев, когда данные умещаются в памяти. Я подумываю попробовать драйвер EDTK Berkeley DB для этой задачи. Будет ли это работать в приведенном выше сценарии? У кого-нибудь есть опыт использования его на производстве в аналогичных условиях?