驱动修改驱动,使用Erlang VoltDB实现每秒877万事务_免费下载

voltdb  时间:2021-01-26  阅读:()

叫你如何修改驱动

使用Erlang+VoltDB实现每秒87.7万事务

Henning Diedrich首次接触VoltDB是为了给大型网络游戏服务器寻找更好的数据库在其经历了扩展MySQL的“悲惨遭遇”后 Henning看上了VoltDB 因为VoltDB比MySQL更适合复杂游戏世界的需求最起码Henning认为VoltDB比其它任何数据库都适合。当然Henning同样在寻找比Java更适合程序服务器的语言如同各位所想Erlang捕获了Henning的“芳心” 。这样一来对Henning来说就万事具备只欠Erlang上的VoltDB “驱动”了。

驱动的建立

Henning的动作不可谓不快 3年后应VoltDB的要求 2010年其捐献了该驱动的第一个版本。这个驱动使用起来已逼近完美唯一欠缺的就是集群主机间使用的是同步连接。而在2012年VoltDB决定建立一个更大更犀利的版本 现已在GitHub上开源。

下面将介绍新的异步驱动所具备的特性纯Erlang完全并行的微进程

microprocess 极其的快速、稳定并适合VoltDB 3继承并整合了先前版本。新驱动的可靠及一致的高吞吐量保障建立在多年Erlang MySQL驱动和Emysql开发经验之上而连接池和调用队列更是采用了最初为Electonic Arts设计的核心建模其可靠性毋庸置疑。这些因素保障了新的Erlang驱动可以承受峰值访问并为VoltDB服务器节点分配负载。

至于基准脚本的建立 Henning借鉴了之前他为VoltDB建立Node. js的经验。有了之前的这些经验 Henning很清楚让云集群能更好运行需要什么样的数据以及必须详细的地方。

驱动内部结构的实现基本上完成了预期的要求程序的微进程将调用驱动中的函数给一个专用的连接器发送消息它将处理所有的连接工作。请求发送以后初始化进程将被阻塞在一个同步的接收块当然它不会阻塞你其它的所有进程或者根据需要继续运行 已经有理由选择异步模式了结果从服务器送到进程中的mailbox中。 本段中所说的同步只是针对驱动而对VoltDB的调用使用的仍然是异步模式驱动只是简单的让进程在接受块中等待

在这里你有很多的选择 比如存在让你建立专用进程去处理请求发送的模式从而保护你的初始化进程不会被驱动中其它活动打断。对那些你不会在意成功与否的写操作在发起后你就可以弃之不理甚至是阻止接收这些操作失败后的返回消息。

基准应用程序

基准基于VoltDB的投票用例这个例子在每个VoltDB都存在原始的用例设置中有一个页面用于显示结果每400毫秒修改一次。你可以从VoltDB安装目录下examples/voter中找到它。

基准需要一些准备工作数据库需要写入6个选手的姓名然后向服务器每个核心发送100万的写入事务每个事务都会给选手中随机的一个送去一票。最终显示每个参赛者所得的票数通过使用VoltDB的materialized view和ad-hoc查询。 在VoltDB术语中 ad-hoc属于常规查询

基准源在驱动的主目录之下的etc/bench中 同样你还可以在其中发现一个详细的README.md其中阐述了基准运行的多个途径。你可以使用以下的代码在本地测试 当然会很慢

$ git clone git://github.com/VoltDB/voltdb.git voltdb

$ git clone git://github.com/VoltDB/voltdb-client-erlang.git erlvolt$ cd voltdb/examples/voter && ./run. sh &

$ cd && cd erlvolt && make clean all bench

通常会在屏幕上显示如下结果metal:~ hd$ cd voltdb-3-com/examples/voter && ./run. sh &

[1] 10817metal:~ hd$ Initializing VoltDB. . .

_ __ ____ ____ ____

| | / /___ / / /_/ __ \/ __ )

| | / / __ \/ / __/ / / / __ |

| |/ / /_/ / / /_/ /_/ / /_/ /

|___/\____/_/\__/_____/_____/

--------------------------------

Build: 3.0 voltdb-3.0-95-gfffab2b Community Edition

Connecting to VoltDB cluster as the leader. . .

Initializing initiator ID: 0, SiteID: 0:5

WARN: Running without redundancy (k=0) is not recommended forproduction use.

Server completed initialization.metal:erlvolt hd$ cd && cd erlvolt && make clean all benchcleanerlc -W -I . ./include +debug_info -o . ./ebin erlvolt. erlerlc -W -I . ./include +debug_info -o . ./ebin erlvolt_app. erlerlc -W -I . ./include +debug_info -o . ./ebin erlvolt_conn. erlerlc -W-I . ./include +debug_info -o . ./ebin erlvolt_conn_mgr.erlerlc -W-I . ./include +debug_info -o . ./ebin erlvolt_profiler.erlerlc -W -I . ./include +debug_info -o . ./ebin erlvolt_sup. erlerlc -W -I . ./include +debug_info -o . ./ebin erlvolt_wire. erlerlc -W -I . ./. ./include +debug_info -o . ./. ./ebin bench. erlErlvolt Bench 0.9 (client 'VSD' )

----------------------------------------------------------------

Client 'VSD' , voter, 100,000 calls, steady, 200 workers, delay n/a,direct, queue n/a, slots n/a, limit n/a, verbose, "n/a" stats/secHosts: localhost:21212connect . . .preparation . . .

Start at: 2013-02-06 18:56:20. . . . . . . . . . . . . . . . . . . . .

Starting: 2013-02-06 18:56:20calls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .cool down . . .check writes . . . okresults . . . votes: 100,000 (6 contestants)

. . . . .Edwina Burnam: 16,817

. . . .Jessie Alloway: 16,808

. . .Tabatha Gehling: 16,669

. . . . .Alana Bregman: 16,613

. . . .Jessie Eichman: 16,556

. . . . . .Kelly Clauss: 16,537

close pool . . .

Client 'VSD' , voter, 100,000 calls, steady, 200 workers, delay n/a,direct, queue n/a, slots n/a, limit n/a, verbose, "n/a" stats/sec---------------------------------------------------------------------

Client 'VSD' overall: 14,357 T/sec throughput, 0.00% fails, totaltransactions: 100,000, fails: 0, total time: 6.965sec

Erlvolt 0.3.3, bench started 2013-02-06 18:56:20, ended 2013-02-06

18:56:26, database: +100,000 new votes

[++++++++++++++]

更进一步的介绍比如在云中进行最棒的基础测试查看etc/bench/README.md或者在驱动根目录下查看这个页面 doc/BENCHMARK-README.html。

基准测试结果

当在单核心-smb+S 1上运行时使用一个12-node VoltDB服务器集群Erlang驱动会跑出每个核心上2.65万TPS 事务/秒 。如果将全配的16核心的集群实例作为客户端节点每台机器上都会达到26万TPS。

使用8个节点连接到1个12节点的VoltDB集群每个客户端节点将达到平均的

10.9689万TPS整个集群将达到87. 7517万TPS。

鉴于这个基准测试的是驱动而不是服务器 Henning Diedrich并未对服务器集群做出调整。当然随着集群继续增大时每个客户端核心的性能可能会受到EC2的网络限制。当然基准只有在服务器未过载的情况下才会体现出效果而通过“backpressure”也可以最大程度上的防止系统过载。

测试环境

Henning将一个20节点的Amazon EC2 cc2.xlarge拆分成8个Erlang客户端和12个VoltDB服务器节点。 M3.2xlarge提供了如下特性

 Cluster Compute Eight Extra Large Instance cc2.8xlarge

 60.5GiB内存

 88个EC2计算单元2×Intel Xeon E5-2670 8核

 3370 GB的实例存储

 I/O性能 10 G的以太网

节点配置如下

 Ubuntu Server 12.04 LTS for Cluster Instances AMI

 Oracle Java JDK 1.7

 Erlang R15B03

 VoltDB Enterprise Edition 3.0 RC 该基准在免费的Volt 3.0 Community

Edition版本上也可以完美运行

事务相关

客户端通过调用Voter的vote  方法进行储存这个过程肯定不会只执行一个写操作取决于你的逻辑 可分为4-6个操作

 检索调用者投票者的位置一个查询操作

 检查调用者是否超过了他的投票次数一个查询操作

 验证调用者投票的对象是否有效一个查询操作

 如果上面全部有效则投票生效一个插入操作

基于以上这些每个插入同时引起两处不同的materializedview的改变这样的话87.7万的TPS造成了350万的QPS。

观察结果和注意点

Henning认为这里最值得关注的数字就是单CPU核心上的2.65 TPS整合了10万次的操作。这可以让你对你需要的硬件数量进行估算当然还要切记的是服务器的性能一般比EC2实例要高的多。当然这里没有选用8台主机而是使用EC2实例也是基于EC2实例性能的透明性。

女孩http://www.hainvhai .com

保温杯http://www. ibaowenbei .com

欧路云(22元) 新增美国Cera线路VPS主机且可全场8折

欧路云(oulucloud) 商家在前面的文章中也有陆续介绍过几次,这不今天有看到商家新增加美国Cera线路的VPS主机,而且有提供全场八折优惠。按照最低套餐最低配置的折扣,月付VPS主机低至22元,还是比较便宜的。不过我们需要注意的是,欧路云是一家2021年新成立的国人主机商,据说是由深圳和香港的几名大佬创建。如果我们有介意新商家的话,选择的时候谨慎且月付即可,注意数据备份。商家目前主营高防VP...

Virtono:圣何塞VPS七五折月付2.2欧元起,免费双倍内存

Virtono是一家成立于2014年的国外VPS主机商,提供VPS和服务器租用等产品,商家支持PayPal、信用卡、支付宝等国内外付款方式,可选数据中心共7个:罗马尼亚2个,美国3个(圣何塞、达拉斯、迈阿密),英国和德国各1个。目前,商家针对美国圣何塞机房VPS提供75折优惠码,同时,下单后在LET回复订单号还能获得双倍内存的升级。下面以圣何塞为例,分享几款VPS主机配置信息。Cloud VPSC...

ManSora:英国CN2 VPS,1核/1GB内存/10GB SSD/1TB流量/100Mbps/KVM,$18.2/月

mansora怎么样?mansora是一家国人商家,主要提供沪韩IEPL、沪日IEPL、深港IEPL等专线VPS。现在新推出了英国CN2 KVM VPS,线路为AS4809 AS9929,可解锁 Netflix,并有永久8折优惠。英国CN2 VPS,$18.2/月/1GB内存/10GB SSD空间/1TB流量/100Mbps端口/KVM,有需要的可以关注一下。点击进入:mansora官方网站地址m...

voltdb为你推荐
莫代尔和纯棉哪个好请问莫代尔棉和纯莫代尔哪个更好?三国游戏哪个好玩三国游戏 什么最好玩?苹果手机助手哪个好iphone有什么比较好用的软件!手机管家哪个好有哪些人下了手机管家,最好的是哪个?海克斯皮肤哪个好诺手二周年皮肤好不好,和海克斯那个比哪个好,二周年属于稀有吗红茶和绿茶哪个好红茶和绿茶哪个更好?雅思和托福哪个好考托福和雅思哪个好考 急。。。。。首选dns服务器首选DNS服务器和备用DNS服务器有什么区别?360云盘登录360云盘在哪里登陆360云盘转存百度云盘如何将360里的文件转存到百度云盘
万网免费域名 已备案域名出售 贝锐花生壳域名 中国万网域名 sugarhosts 香港bgp机房 新世界机房 香港机房 国外服务器网站 lamp配置 国内php空间 qq数据库下载 e蜗 天互数据 国外免费全能空间 免费申请网站 免费phpmysql空间 鲁诺 国外视频网站有哪些 优酷黄金会员账号共享 更多