小编nic*_*ick的帖子

如何使用CanCan与宝石控制器?

我花了一些时间试图找出一个授权控制器的最佳方法,该控制器来自CanCan的宝石.我特意使用舒适的墨西哥沙发.我已经使用Devise和CanCan进行了全部设置,但在Comfy中授权特定控制器时遇到了问题.我能找到的最接近的东西就是我在Fortress CMS的宝石中.

我已经尝试使用初始化器和引擎来扩展before_action和编写一个简单的auth方法.我能找到CanCan和Comfy的唯一东西就在这里,但它只针对网站登录而不是特定的控制器,如页面,博客等.

基本上,它来了 - 我如何能够扩展gem控制器,以便我可以专门为该控制器的用户进行身份验证?

ruby-on-rails devise cancan ruby-on-rails-4 comfortable-mexican-sofa

10
推荐指数
1
解决办法
198
查看次数

Mongo磁盘大数据集读取瓶颈和IOPS限制

我无法理解与从 Mongo 数据库集合中的磁盘读取数据相关的瓶颈所在。我知道索引是优化查询的重要因素,但假设我们有一个没有索引的集合,并且我正在一个包含 2500 万条记录、大小约为 50Gb 的集合中运行一个简单的查询:

db.customers.find({ first_name: "xyz" })
Run Code Online (Sandbox Code Playgroud)

当然,这必须运行 a COLLSCAN,所以它非常慢(除非它缓存在内存中)。但在我们的例子中,有多慢是很重要的。运行一些测试表明,我运行此查询的计算机并未与我的可用 IOPS 挂钩。在最大读取 IOPS 约为10K 的计算机上,这个简单的查询被限制在1.2K左右。注意CPUiowait 磁盘使用情况

查询显然受到磁盘的限制,但它没有充分利用机器上可用的潜力。有趣的是,当我创建另一个数据库连接并异步运行两个查询时,IOPS 负载增加了 2 倍。似乎每个查询一次只能扫描磁盘上的这么多数据。运行这些没有索引的查询时,是什么阻碍了它?

从长远来看,我认为在尝试对大量不同数据进行复杂搜索时,将 Elasticsearch 引擎耦合起来会有所帮助,但我真的很好奇为什么在这种情况下我们不能垂直扩展。

mongodb mongoid mongodb-query mongodb-atlas

3
推荐指数
1
解决办法
2974
查看次数