我正在记录GridFS以及在不同机器之间对其进行分片的可能性.
在这里阅读文档,建议的分片键是chunks.files_id.此键将链接到文件集合的_id,因此此_id是增量的.我保存在网格中的每个新文件都将有一个新的增量_id.
在O'Reilly"Scaling MongoDB"一书中,不鼓励使用增量分片键来避免HotSpots(最后一个分片将接收所有的写入和读取).
您对分割GridFS集合的建议是什么?
有没有人遇到HotSpot问题?
谢谢.
我正在阅读这篇文章 - http://wiki.postgresql.org/images/7/7f/Adam-lowry-postgresopen2011.pdf,我注意到mongoDB的丑陋部分是全局锁定.
MongoDB是否具有读/写操作的全局锁定?最新版本怎么样?有改变的计划吗?
我想调用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)