MongoDb的用途

MongoDB是个好东西,唯一缺憾是目前的shard还比较初级,但可以在客户端做。

对于它的用途,目前初步的想法:

1. 实时的流量分析统计
使用Google统计固然好,但不够实时。使用MongoDb的特性倒是比较容易实现统计。

2. MogileFS的替代方案
对于mogileFS的替代方案,准备做2个尝试
1种是使用Flare构建,实际上Flare内置了一个fusefs,可以参考。
第二是用MogoDB搭建。最新的sf.net用mongo存储所有的项目页面和下载页面,算是一个成功的实例(它是使用TurboGear2实现的)。
mogo内置了gridFS的支持,虽然Perl不支持,但是PHP还是不错的,况且perl的gridfs实现也并不难。

我心里不是特确定的是它的能力,能够承载多大的数据量?
1T以上的数据是否可以承受? 如果不行,就需要考虑shard,这是目前一个短板。
此外,mogileFS的复制和冗余功能也需要考虑实现。

3. 整合服务的后端数据库
使用json可以将任何数据文档轻松存储,这对于聚合类的服务非常适合。
结合sphinx,可以轻松实现全文检索。

Comments

3 Responses to “MongoDb的用途”

  1. summer on November 13th, 2009 10:54 am

    我在 osx 10.6.2 下安装 php 的 mongo 扩展总是失败,有什么建议么?

    pecl install mongo 之后得到的错误和手动编译一样:

    cc ${wl}-flat_namespace ${wl}-undefined ${wl}suppress -o .libs/mongo.so -bundle .libs/mongo.o .libs/mongo_types.o .libs/bson.o .libs/cursor.o .libs/collection.o .libs/db.o .libs/gridfs.o -arch i386 -arch x86_64 -arch ppc -arch ppc64
    ld: warning: in /usr/lib/bundle1.o, missing required architecture ppc64 in file
    ld: warning: in /usr/lib/libSystemStubs.a, missing required architecture ppc64 in file
    ld: warning: in /usr/lib/libSystem.dylib, missing required architecture ppc64 in file
    ld: symbol dyld_stub_binding_helper not defined (usually in crt1.o/dylib1.o/bundle1.o) for architecture ppc64
    collect2: ld returned 1 exit status
    lipo: can’t open input file: /var/tmp//cclKzuLh.out (No such file or directory)
    make: *** [mongo.la] Error 1
    ERROR: `make’ failed

  2. nightsailer on November 13th, 2009 9:23 pm

    应该是你的xcode环境没有安装ppc64 sdk. 但是编译时候出现了编译ppc版本. 你可以手动把”-arch ppc -arch ppc64″ 去掉.
    这应该是phpize的问题. 另外,你是否下载的是for tiger的mongodb?

  3. summer on November 27th, 2009 10:39 am

    搞定了,他的 .m4 文件有点问题,作者说在下一版本中会修正

Leave a Reply