okwangxing 发表于 2013-1-25 21:08:04

Nosql初探(voldemort)

在这个充斥着无数的nosql的世界,voldemort作为Nosql的一员.简单测试了下'健康状态'
background:目前被LinkIn使用,与Dynamo思想类似

1.读写性能.
   read 10s100000 writer 15s1000000
测试机的性能一般,自己开发机器.

2.压缩测试

压缩参考数据:10000条真实数据

数据量压缩格式时间(毫秒)大小(k)10000Null50013      1640410000Lzf49451      821210000Gzip47764      7184

由于资料很少,对于xml的配置,幸亏存在xrd文件,debug发现可对数据进行压缩,尤其是针对字符串的处理,这个压缩效果是很显著的.通过上面简单的测试结构就可得知.
voldemort.store.compress.StreamCompressionStrategy
http://project-voldemort.com/images/logical_arch.png


压缩策略


[*]routing-strategy,
[*] preferred-reads,
[*] preferred-writes,
[*] retention-days,
[*] retention-scan-throttle-rate

自己使用的preferred-writes.

压缩类型

[*]gzip
[*]lzf


   配置文件特别的少,只得通过xsd文件来写xml文件,存储的类型支持json,string,序列化,protobuf,identity.只要还是数据是字符串形式的,则压缩效果很明显.

   压缩可针对key,也可针对value压缩。压缩的比率较大

   本次压缩采用的是单机模型.

   需要注意的就是配置本机IP
Cluster.xml
<cluster>      <name>mycluster</name>      <server>                <id>0</id>                <host>192.168.208.76</host>                <http-port>8081</http-port>                <socket-port>6666</socket-port>                <partitions>0, 1</partitions>      </server></cluster>


压缩在客户端压缩?
Stores.xml
<stores><store>    <name>test</name>    <persistence>bdb</persistence>    <routing>client</routing>    <replication-factor>1</replication-factor>    <required-reads>1</required-reads>    <required-writes>1</required-writes>    <key-serializer>      <type>string</type>    </key-serializer>    <value-serializer>      <type>string</type>       <compression>         <type>gzip</type>         <options>preferred-writes</options>       </compression>    </value-serializer></store><view>    <name>test-view</name>    <view-of>test</view-of>    <view-class>      voldemort.store.views.UpperCaseView    </view-class>    <value-serializer>      <type>string</type>    </value-serializer></view></stores>




参考资料
1.http://h5py.alfven.org/lzf/
2.http://code.google.com/p/hyk-proxy/issues/detail?id=10
页: [1]
查看完整版本: Nosql初探(voldemort)