数据库,RAM和重组

时间:2019-02-19 20:27:49

标签: database mongodb performance ram

我有5GB的字典,其中键是单词,值是300d数字矢量,但我只有1GB RAM(减去200MB服务器)和50GB ssd。我的目标是针对输入句子中的每个单词,相对快速地(1-3秒)检索向量。

哪种存储系统最适合这种任务?像Mongo这样的非SQL数据库是一个不错的选择吗?

如果是这样,是否有一种方法可以计算出mongo所需的最小缓存内存,并且这种解决方案在给定的硬件上是否可行?

谢谢。

1 个答案:

答案 0 :(得分:0)

假设每个具有32位和32word键的单精度浮点数,5GB大约总计多达4.1个向量。

您可以在<word, word>中存储4.1词典,其中包含这RAM百万个条目。字典的值部分指向文件和文件存储在SSD上的偏移量的组合。如果您的假设不同,则计算应保持相似。

将整个向量存储在单个文件中可能不切实际。只要表空间位于SSD上,将向量存储在数据库中就足够了。

示例:您可能有32个文件,每个文件有130.000个向量。然后,单词值的最高5位表示文件,最低27位是文件内的偏移量或向量数。