小编ALo*_*LoR的帖子

在MongoDB上对GridFS进行分片

我正在记录GridFS以及在不同机器之间对其进行分片的可能性.

这里阅读文档,建议的分片键是chunks.files_id.此键将链接到文件集合的_id,因此此_id是增量的.我保存在网格中的每个新文件都将有一个新的增量_id.

在O'Reilly"Scaling MongoDB"一书中,不鼓励使用增量分片键来避免HotSpots(最后一个分片将接收所有的写入和读取).

您对分割GridFS集合的建议是什么?
有没有人遇到HotSpot问题?

谢谢.

sharding mongodb gridfs

20
推荐指数
2
解决办法
5992
查看次数

MongoDB是否有一个全局读/写锁?

我正在阅读这篇文章 - http://wiki.postgresql.org/images/7/7f/Adam-lowry-postgresopen2011.pdf,我注意到mongoDB的丑陋部分是全局锁定.
MongoDB是否具有读/写操作的全局锁定?最新版本怎么样?有改变的计划吗?

locking mongodb

17
推荐指数
1
解决办法
1万
查看次数

调用Ruby Singleton的方法而不引用'instance'

我想调用Singleton对象的方法而不引用它的实例

SingletonKlass.my_method
Run Code Online (Sandbox Code Playgroud)

代替

SingletonKlass.instance.my_method
Run Code Online (Sandbox Code Playgroud)

我想出了这个解决方案(在课堂上使用method_missing):

require 'singleton'    

class SingletonKlass
  include Singleton

  def self.method_missing(method, *args, &block)
    self.instance.send(method, *args)
  end

  def my_method
     puts "hi there!!"
  end
end
Run Code Online (Sandbox Code Playgroud)

这有什么缺点吗?还有更好的解决方案吗?你的任何推荐?

谢谢.

更新:

我的目标是将一个模块与单例类混合:

module NoInstanceSingleton
   def method_missing(method, *args)
      self.instance.send(method, *args)
   end
end
Run Code Online (Sandbox Code Playgroud)

结束然后在课堂上使用它:

class SingletonKlass
   include Singleton
   extend NoInstanceSingleton

  def method1; end
  def method2; end
  ...
  def methodN; end
end
Run Code Online (Sandbox Code Playgroud)

我想能够直接打电话:

SingletonKlass.method1
Run Code Online (Sandbox Code Playgroud)

ruby singleton metaprogramming

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

标签 统计

mongodb ×2

gridfs ×1

locking ×1

metaprogramming ×1

ruby ×1

sharding ×1

singleton ×1