首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >oplog上的TTL索引还是减小oplog的大小?

oplog上的TTL索引还是减小oplog的大小?
EN

Stack Overflow用户
提问于 2013-07-15 17:38:45
回答 2查看 569关注 0票数 0

我在我的应用程序中使用mongodb和elasticsearch。Elasticsearch通过监控oplog集合来创建索引。当两个应用程序都在持续运行时,mongodb中对集合的任何更改都会立即被索引。我面临的唯一问题是,如果由于某种原因,我不得不删除并重新创建索引,那么完成索引需要很长时间(2天)。

当我查看我的oplog的大小时,默认情况下它的容量是40 my,它容纳了大约6000万个事务,因此创建一个新的索引需要很长时间。优化fresh索引创建的最佳方式是什么?

它是为了减小oplog的大小,以便它容纳的事务数量更少,并且仍然不会影响我的复制,还是可以在oplog上创建一个ttl索引(我多次尝试都失败了)。

我使用的是mongodb的elasticsearch和mongodb river https://github.com/richardwilly98/elasticsearch-river-mongodb/

任何帮助克服上述问题的人都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-15 18:50:31

我不是Elastic Search Pro,而是你的问题:

优化fresh索引创建的最佳方法是什么?

确实适用于所有使用第三方FTS技术与MongoDB的人。

首先要注意的是,如果你有很多记录,除非你准备好丢失其中的一些记录,否则没有简单的方法可以绕过这一点。

oplog确实不是一个好主意,你可能应该尝试使用一个自定义脚本,使用主集合中的计时器来亲自做这件事,或者是一个变更表,让你在一个地方快速查询新的或更新的记录。

除非您正在过滤oplog以获得特定的记录,即插入,否则您可能会拉出所有oplog记录,包括删除、收集操作甚至数据库操作。因此,您可以尝试从oplog搜索中剥离不需要的记录,但是,这会产生一个新问题;oplog没有索引或索引更新。

这意味着,如果你开始以一种更恰当的方式阅读,你实际上将在这6000万条记录上使用一个无索引查询。这将导致较慢的性能。

没有索引更新的oplog回答了您的另一个问题:

是否可以在oplog上创建一个ttl索引(我多次尝试都失败了)。

不是的。

至于你的另一个问题:

是不是要减小oplog的大小,以便它能容纳更少的事务

是的,但你将有一个较小的复制恢复窗口,不仅如此,你还会丢失“新”索引中的记录,因此实际上只有一部分数据被索引。从你的问题看,我不确定这是不是一个问题。

票数 0
EN

Stack Overflow用户

发布于 2016-08-03 23:11:09

您可以减少没有复制副本从其同步的单个辅助成员的oplog。在mongodb文档中查找rs.syncFrom并"Change the Size of the Oplog“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17651085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档