Встроенное хранилище данных для смешанных двоичных данных - PullRequest
0 голосов
/ 30 октября 2018

У меня много объектов (1000 - 30 тыс.), Которые могут состоять из данных с плавающей вершиной, целочисленных индексов и т. Д. В среднем они могут составлять от 600 Кб до 6+ Гб. Также у меня есть bmp текстуры и другие данные. Я хочу сохранить их в одной базе данных или что-то в этом роде. Я пробовал различные базы данных NoSQL, такие как BerkeleyDB, RocksDB, они не могут хранить такие большие объекты 4 ГБ + и работают так медленно с моими данными. Я просмотрел различные форматы архивов, но ни один из них не соответствовал моим потребностям.

Что мне нужно из хранилища:

  • Быстрая запись и чтение (желательно параллельно)
  • Многоядерное сжатие / декомпрессия (ZSTD был бы идеальным)
  • Произвольный доступ (чтение, изменение, удаление и вставка)
  • Предпочтительнее, если он хранит все в одном файле
  • Удобное и простое использование
  • C / C ++ API

Я также пробовал TileDB, но в настоящее время он очень глючит, все было почти нормально, но производительность чтения ужасна, например, получение 1 Мб данных вершин занимает 3 секунды, что для меня неприемлемо, может быть, это ошибка или что-то такое, чего я не делаю. не знаю.

У меня закончились идеи, поэтому мне нужна помощь, может быть, есть что-то, что идеально соответствует потребностям, но я этого не заметил.

...