我们的系统是运营商级并且非常强大,它经过负载测试以处理每秒5000个事务,并且对于每个事务,文档被插入到单个MongoDB集合中(在此应用程序中没有更新或查询,它是只写的).这相当于每天约700MM的文件,这是我们的基准.
MongoDB部署尚未分片,我们有1x replicaset,1个master和2个slave,所有这些都是ec2上的m2.2xlarge类型.每个实例都由1TB RAID0条带支持,该条带由8个卷组成(无PIOPS).我们使用带有c ++本机BSON解析器的node-mongodb-native驱动程序来获得最佳写入性能,并尝试相应地对文档结构建模.
{
_id: ObjectID(),
a: ‘string’,
b: ‘string’,
c: ‘string’ or <int>,
g: ‘string’ or <not_exist>,
t: ISODate(),
h: <int>,
d: <int>,
m: <int>,
y: <int>
}
Run Code Online (Sandbox Code Playgroud)
col.ensureIndex({ c: 1, a: 1, y: 1, m: 1, d: 1, h: 1 });
Run Code Online (Sandbox Code Playgroud)
col.aggregate([
{ $match: { c: 'customer_1', y: 2013, m: 11 } },
{ $group: { _id: …Run Code Online (Sandbox Code Playgroud)