免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234
最近访问板块 发新帖
楼主: send_linux
打印 上一主题 下一主题

[其他] 数据库核心开发知多少--大家一起来写数据库引擎(获奖名单已公布-9-25) [复制链接]

论坛徽章:
2
午马
日期:2015-01-27 11:22:392015年辞旧岁徽章
日期:2015-03-03 16:54:15
31 [报告]
发表于 2013-09-07 20:18 |只看该作者

1、您尝试阅读过哪些数据库的代码,您的感受是什么?
    Mysql的代码看过不少。也看了像 innodb这样的引擎实现。 看这些 主要是因为像oracle这样的是闭源的, 看一些存储引擎 至少可以明白大概流程是怎么走的, 但规模不同,目标不同,也就是过过瘾,看看数据结构之类。

2、如果您来参与开发数据库引擎,您认为难点在哪?
      效率和ACID的妥协。
      可以追求快速,把更多的东西放到内存里,来提速,但为了数据的完整性和安全,则必须设计大量保证数据和业务完整的措施,像redo/undo这些如果应用上去,那么数据本身就不可以再放到内存里去了。
      另外的就是追求快速检索数据,存取数据。虽然优化器不算存储引擎,但至少存储端要为index/partition等技术留下实现的空间。
      
      玩多了就会觉得, 没有什么是万金油,总归不能面面俱到,那就适当地做一些思考角度的变换, 要想想设计出来的目的, 比如说用做高并发的oltp,那么引擎本身就要特别注意lock/spin/latch的引入,能轻就轻, 不要把过多的资源浪费在并发共享上。 如果是查询比较多的, 那就注意好index下层数据结构的实现,快点取到数据更重要。 还有 可以根据不同数据类型设计好存储数据结构,比如int /lob/char的设计结构可以不固定。


3、NoSQL等分布式数据库和现在主流的RDBMS的思想上有何差别?
      最大的差别就是没有ACID的约束了。
      这其实也就是传统数据库不能做到什么都行的例子, 有些场景里,对业务要求并不多,客户只是想很快的取得视频,图片。 而这些东西并不需要特别严格的业务完整和数据校验,这些资源省下来了之后,用户的体验就变好。这也是互联网企业很好的努力方向。
      但这并不意味着 要取代传统RDBMS,因为我们的数据库市场是多样化的,就像交通工具一样,客车细分为各种型号,然后在赛场还有F1,在工地上有卡车,他们之间没必要相互取代。
      以前很大的一个思维定势,在于说,我们以为数据库就是RDBMS,像ORACLE这个样子的。这是因为市场份额和工业界的反馈导致的误解,而在一个大数据的时代,数据库,完全可以是更新更潮的款式,而且这些新想法同样反馈到了像ORACLE 12c这些新产品里去了。 这样说来,Nosql和传统RDBMS就不是对立的,而是可以相互融合学习的。

-s
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP