开发者社区> 问答> 正文

[调戏贴]写给高性能数据库引擎CoolHash?报错

    前一段时间fourinone在ITEYE资讯上(OSC上也有)发表了一篇 高性能数据库引擎产品宣言,我回复评论说玩得酷,还要考得住,借用一些企鹅手机管家的台词,结果被fourinone十分不满意。又把我骂了一顿,我继续回击。面试的时候流行一句话,talk is cheap,show me the code,我在此又借用了一下,talk is cheap,show the benchmark!自此我每天一贴呼唤fourinone拿出benchmark,但至此他都没有回应!好吧我就自己动手看看CoolHash的高性能,我使用fourinone提到的4.05.06,进行了100并发100w请求的benchmark,并将代码放在 https://git.oschina.net/zhh5919/fourinonetest 不料在并发场景下CoolHash就会抛出异常,啊高性能啊! 
详细过程如下: 
搞这个东东,目的只有一个让我们看看fourinone coolhash的所谓高性能。 搞起来的步骤: 

  • 首先将项目导入eclipse中,会自动编译代码到bin目录,同时会将fourinone.jar copy到该 目录下,这个很重要,因为在fourinone提供的指南demo也是这么玩,尽量和他的demo一致, 要不fourinone会说你使用姿势不正确的。
  • 启动CoolHashServer 从命令行cmd下进入bin目录。然后执行 java -cp fourinone.jar; RunServer 然后看到启动log Start ParkService and waiting 4 seconds... Start CoolHashService and waiting 5 seconds... Please try connect to CoolHashServer now. ok CoolHashServer启动成功啊
  • 简单的benchmark,CoolHash只提供单线程的读写,而且仅仅是单线程写入几十个数据, 如果把他叫做benchmark,我想你看到这里,一定是呵呵 哈哈…… 那我们给他加点压力吧,100并发100w次请求,我想这不是什么难事儿吧!mongodb, ideawu开源的SSDB都能轻松做到,让我们来见识一下CoolHash看看行不行,我写了一段 模拟100并发100w请求的代码,在EasyCoolHashDemo,各位看官也可以帮我review一下。 执行看看吧! java -cp .;fourinone.jar EasyCoolHashDemo

    执行结果让我差点崩溃了,哦不是我崩溃,是我的电脑崩溃了,cpu几乎100%。 我的电脑配置i5-3470 3.2GHz的,内存4G,win7系统。 惊喜的是哪有这些~ 根本执行不了,就不断地报错~ 欢迎更多的小伙伴来按上面的步骤 试试看看有木有报错! @fourinone 啊 这就你所说的高性能,不是单线程写入几十个kv,然后每个kv都秒级别 就是高性能了 


INFO: DataWorker Number:8 
Exception in thread "Thread-9" java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at com.fourinone.FileAdapter$1.getBytes(FileAdapter.java:317) at com.fourinone.ConstantBit$Target$1.getBytes(ConstantBit.java:22) at com.fourinone.ConstantBit$Target.getTargetBytes(ConstantBit.java:175) 

    at com.fourinone.DumpCtor.put(DumpCtor.java:208) 
    at EasyCoolHashDemo$Worker.run(EasyCoolHashDemo.java:39) 
    at java.lang.Thread.run(Unknown Source) 
Exception in thread "Thread-56" java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at com.fourinone.FileAdapter$1.getBytes(FileAdapter.java:317) at com.fourinone.ConstantBit$Target$1.getBytes(ConstantBit.java:22) at com.fourinone.ConstantBit$Target.getTargetBytes(ConstantBit.java:175) 

    at com.fourinone.DumpCtor.put(DumpCtor.java:208) 
    at EasyCoolHashDemo$Worker.run(EasyCoolHashDemo.java:39) 
    at java.lang.Thread.run(Unknown Source) 
Exception in thread "Thread-81" java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at com.fourinone.FileAdapter$1.getBytes(FileAdapter.java:317) at com.fourinone.ConstantBit$Target$1.getBytes(ConstantBit.java:22) at com.fourinone.ConstantBit$Target.getTargetBytes(ConstantBit.java:175) 

    at com.fourinone.DumpCtor.put(DumpCtor.java:208) 
    at EasyCoolHashDemo$Worker.run(EasyCoolHashDemo.java:39) 
    at java.lang.Thread.run(Unknown Source) 
Exception in thread "Thread-70" java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at com.fourinone.FileAdapter$1.getBytes(FileAdapter.java:317) at com.fourinone.ConstantBit$Target$1.getBytes(ConstantBit.java:22) at com.fourinone.ConstantBit$Target.getTargetBytes(ConstantBit.java:175) 

    at com.fourinone.DumpCtor.put(DumpCtor.java:208) 
    at EasyCoolHashDemo$Worker.run(EasyCoolHashDemo.java:39) 

    at java.lang.Thread.run(Unknown Source) 



展开
收起
爱吃鱼的程序员 2020-06-20 17:27:49 1180 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    作者自己写一个吧,有竞争,对谁都有好处。
    另外fourinone这个是成型多年的产品,肯定还是有优势的,这个版本测试出问题,只能说这个版本有些问题,不能否定其历史和架构,如果你能提出来怎么改进,就更好了

    要是实在涉及到个人矛盾,它不是开源的嘛,自己clone一个改进一下变成自己的呗

    我没有在否定它的历史,我同时测试了3.x的分布式缓存,100并发写入100w数据要2个小时这个性能说得过去吗!这是多年并不成型啊!代码可以看EasyParkDemo.这个事儿最好呼唤<aclass='referer'target='_blank'>@fourinone出来让他给一个benchmark<spanstyle="font-family:Helvetica,Tahoma,Arial,sans-serif;font-size:12px;line-height:18px;background-color:#F7F7F7;">talkischeapshowwethebenchmark呼唤你拿出专业点的benchmark,立此贴为据,拿不出来,就别再吹嘘高性能了!每日一贴直到看到benchmark有能耐吹嘘高性能数据库引擎产品宣言,没胆拿出个benchmark吗就基于fourinone4.05.06@fourinone 我没有真正测试过这个东东,只是我有点怀疑,别人几十年花了无数金钱和精力研究的东西,这位大牛一年半载就超越了?而且别人千万行级的代码,大牛几千行搞定?代码就差一万倍,想不通啊。只能感叹一下,中国有神人。。。<aclass='referer'target='_blank'>@Tom-Lin让我们一起呼唤神人<aclass='referer'target='_blank'>@fourinone出来给个解释你已经把源码和测试结果贴出来了,让仁者见仁,智者见智吧主要是骂我的时候很快就跳出来,让他给个解释就躲起来了,说实话他吹嘘这些大多是为了配合他的那本书测试了一个,确实是这样,求解,是作法还是什么问题???

    国人急功近利,从不为技术沉淀,没办法,养家糊口重要,为了钱,那有时间静心创新啊。

    就够用最近的中国操作系统在10月发布这事一样,人家win发展多少年,一心作一件事,人国就是COPY改,哎,没核心的东东,一汽造车就是一个典型。呵呵呵。


    2020-06-20 17:28:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载