vespa - NO_SPACE - enumStoreLimitReached - 使用的枚举存储地址空间
问题描述
我正在尝试提供 Vespa 索引,但遇到 NO_SPACE 错误:
Detail resultType=FATAL_ERRORexception='ReturnCode(NO_SPACE, Put operation rejected for document 'id:site-search:site::<urn:uuid:033689d2-5f23-4afb-815d-d6f5d6ecbcbd>' of type 'site': 'enumStoreLimitReached: { action: "add more content nodes", reason: "enum store address space used (0.92813) > limit (0.9)", enumStore: { used: 31890298144, dead: 0, limit: 34359738368}, attributeName: "text", subdb: "ready"}')' endpoint=vespa1:8080 ssl=false resultTimeLocally=1532685239428
我的 Vespa 节点通过 Docker 运行,机器上有卷。以下是使用的卷:
-v /data/1/bench/vespa/sample-apps:/vespa-sample-apps -v /data/1/bench/vespa/logs:/opt/vespa/logs --volume /data/1/bench/vespa/var:/opt/vespa/var
所以,如果我是对的,数据应该存储在/data/1目录中,并根据df
:
$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 65802860 0 65802860 0% /dev
tmpfs 13162916 108488 13054428 1% /run
/dev/mapper/VgRoot-root 78217900 3249540 70952028 5% /
/dev/mapper/VgRoot-boot 237861 36998 184275 17% /boot
/dev/mapper/VgRoot-srv 9775612 36888 9222424 1% /srv
/dev/mapper/VgData01-data 3688163424 48757376 3451987424 2% /data/1
那里还有很多空间。所以我想知道,如果 Vespa 没有查看正确的磁盘分区来检查它是否使用了超过 90% 的磁盘空间。
解决方案
每个节点的属性的唯一值数量有上限 - 请参阅https://docs.vespa.ai/documentation/performance/attribute-memory-usage.html#data
唯一的补救措施是向 Vespa 应用程序添加更多内容节点 - 这是在更多节点上自动重新分配文档,从而减少属性中唯一值的数量
推荐阅读
- node.js - 如何使用nodejs在redis缓存中实现hashset的分页
- c++ - 这是读取文件输入的正确方法吗?
- javascript - 如何使用 classList 切换显示/隐藏下拉列表内容?
- django - 从管理页面删除 Django 中的 ManyToManyField,然后单击按钮
- kubernetes - kubectl 创建部署命令使用模板示例
- mysqli - 如何在一个更新查询中使用多个集合?
- c# - 在 Insert 上手动设置 id 时出错 DuplicateKeyException
- flutter - 在颤动中使用自定义应用栏时如何使正文中的小部件可滚动?
- powershell - 检查用户是否是成员并删除
- javascript - 为什么 JS 不单独针对我的课程?