阅读更多

12顶
2踩

企业架构
今天,经过一个多月的线上运行,我们很荣幸的发布guzz 1.2.9分布式切表功能。分布式切表是指将一张大表分切成N张小表,并将这些小表储存到不同的数据库(机器)中,从而实现数据的分散存储和分散查询。

对于大型系统和数据规模较大的系统,分布式切表提供了非常好的解决方案,有效的解决了大数据分散存储、查询、归档和维护等诸多的问题。但市面上流行的数据层框架,对于此特性几乎无人涉及。guzz首次将这种技术做成了通用框架级别,更全面的提供“一站式数据层解决方案”。

guzz 1.2.9 build20110209 更新介绍:

分布式切表:

guzz特性。

分布式切表以guzz的Shadow Table为基础。在Shadow Table的基础上,通过配置完成,应用不需要修改现有代码即可完成小表的分布式存储。具体请参看:http://code.google.com/p/guzz/wiki/TutorialVirtualDB?wl=zh-Hans

至此,guzz已经通过6个层面完成了全面的数据分切支持:


支持记录SQL执行时间:

在打印执行的SQL和SQL参数的同时,通过 调试服务(DebugService) 两个新的参数允许打印出sql执行所花费的时间,并且允许控制只打印执行时间超过一定时长的sql语句。时间单位为纳秒。

具体请参看:http://code.google.com/p/guzz/wiki/AppendCoreService?wl=zh-Hans

支持hbm.xml的package属性:

支持配置hbm.xml的类名时,指定package。用于支持某些hibernate工具自动生成的配置文件。

其他:

1. 更改LogService为InsertQueueService;

2. 修复了几个bug。

什么是guzz?

guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大补充和延伸,并可以取代这2个东西。

guzz主要功能与特点:
  • 现代大规模系统设计,技术上吸收了ibatis/hibernate的优点
  • 对于大部分场景,支持像hibernate一样的对象持久、映射和方便的增删改查,提高开发效率
  • 对于复杂场景,支持像ibatis一样,让DBA参与SQL设计的复杂数据库操作和优化,以及SQL在线调试
  • 更简洁、更好用、更容易控制的批操作接口
  • 支持在线加载与调试SQL。按照应用策略,从文件/数据库/Web Service等途径,动态提取与使用SQL语句(Dynamic SQL)
  • 支持应用程序使用大量的数据库和主从读写分离
  • 支持数据库表在多组机器间水平分布(Shard),并自动维护多组机器之间的分布式事务
  • 支持1张表按照业务规则分切成多张小表(Shadow),并支持每张小表拥有自己特殊的属性字段(Custom)
  • 支持1张大表分切后的小表,分布到不同的数据库中(VirtualDB)
  • 支持超越范式的特殊关联、非结构化数据等异构资源POJO模式的统一读取
  • 支持组件化服务(SOA)和服务相互依赖,构建企业/项目实施基础平台
  • 提供面向对象的数据库读取标签(JSP Taglib),加快页面展示层的快速变更、开发与部署
  • 支持配置管理服务器,可以使用一套软件系统对所有应用程序的配置进行统一管理
项目地址:http://code.google.com/p/guzz/
文档:http://code.google.com/p/guzz/wiki/WikiHomePage?tm=6
下载:http://code.google.com/p/guzz/downloads/list

下一个build更新计划:

  • 做什么哪?开源一个云服务项目?
  • 辅助诊断类功能?


12
2
评论 共 12 条 请登录后发表评论
12 楼 cnhans 2015-08-06 11:02
googlecode 倒闭了,为啥不转到github呢?
文档和源码都丢失了吧?

谁还敢用?
11 楼 gongmingwind 2012-08-06 13:10
很好,很多思想还是值得学习和借鉴的
10 楼 zhaolei-best 2011-10-09 17:50
[color=red][/color]
9 楼 myreligion 2011-02-14 08:59
lzy.je 写道
觉得没有amoeba透明切分来得直接。
amoeba性能非常一般。qps降得厉害。

有好就有坏,越透明限制也就越大。guzz提供的是不同于proxy的另外一种方案,所有东西由你自己控制,不做太多智慧的事情。
8 楼 lzy.je 2011-02-12 15:47
觉得没有amoeba透明切分来得直接。
amoeba性能非常一般。qps降得厉害。
7 楼 白黑山河 2011-02-11 23:44
又有一个新兵加入到越南战场来了
6 楼 wlwolf 2011-02-10 22:54
集是不是在应用程序的内存当中组
Wingel 写道
好像是在应用程序端的框架,那如果有跨切分表的查询,结果集是不是在应用程序的内存当中组装?有没有性能参考?

可以考虑一下greenplum
5 楼 myreligion 2011-02-10 16:45
tutu1982 写道
如何处理多表查询?

在同一个库内的,文档上有介绍。对于跨库的,问DBA,在理论上就没有通用的好的解决方案,需要特殊情况特殊处理。
4 楼 tutu1982 2011-02-10 16:03
如何处理多表查询?
3 楼 fight_bird 2011-02-10 13:38
不错,思路值得借鉴,我正在做类似的海量数据表水平切分的小框架。

类似的开源项目有好几个,这个做得比较“宽”,其实,做好、做专分布式切分框架即可。
2 楼 myreligion 2011-02-10 11:58
Wingel 写道
好像是在应用程序端的框架,那如果有跨切分表的查询,结果集是不是在应用程序的内存当中组装?有没有性能参考?

应用的开发者和DBA自己控制。看自己的需要。
1 楼 Wingel 2011-02-10 11:55
好像是在应用程序端的框架,那如果有跨切分表的查询,结果集是不是在应用程序的内存当中组装?有没有性能参考?

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • delphi 2010 Marco Cantu

    Marco Cantu - Delphi 2010

  • 学习 Delphi 必读的6本书【转译】

    学习Delphi必读的6本书,床头,桌边随时翻阅,认真学习,一定会成为Delphi专家!

  • delphi专家marcocantu的个人网站

      http://www.marcocantu.com/   marcocantu著有:《精通Delphi》系列丛书,《Delphi开发手册》以及电子书《精通Pascal 》

  • 数据库分布式设计很简单--guzz分布式切表功能正式发布

    今天,经过一个多月的线上运行,我们很荣幸的发布guzz 1.2.9分布式切表功能。分布式切表是指将一张大表分切成N张小表,并将这些小表储存到不同的数据库(机器)中,从而实现数据的分散存储和分散查询。   ...

  • mysql注解查询动态sql_数据层框架guzz1.2.8 正式版发布 支持注解与动态SQL

    guzz是一套用来解决ORM、... guzz主要功能与特点: 现代大规模系统设计,技术上吸收了ibatis/hiberguzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。...

  • guzz1.2.8 beta2发布--支持动态加载在线调试SQL

    guzz是一套用来解决ORM、多数据源管理、以及通用数据计算的数据层框架,为系统在数据层的设计提供一站式解决方案。guzz可以看作是 ibatis/hibernate的一大的延伸,并可以取代这2个东西。 guz...

  • 分布式统一框架的设计与实现(数据库)

    我们设计并开发了内容中心统一的分布式开发框架。我们把它取名为albian, albian是基于java的(故以下简称albianj)。他主要是面向海量数据处理、海 量数据访问、并解决互联网开发中经常会碰到的数据海量增长问题,...

  • 骆昊-Java面试题全集(下)学习笔记_2018_12_17

    这部分主要是开源Java EE框架方面的内容,包括Hibernate、MyBatis、Spring、Spring MVC等,由于...此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有...

  • Guzz入门教程

    本教程将教会你:如何创建guzz项目,如何用guzz添加数据库记录,如何实现读写分离,如何进行多数据库之间分表、切表、分布式切表等,并对“服务”有个概念。 什么是guzz?什么时候用? guzz[ˈɡuzi]念做谷子。...

  • guzz 1.3.0大版本发布,支持Spring事务

    在这个版本中,您可以像配置Hibernate一样配置Guzz,让Spring进行声明的全局事务管理。Guzz Spring事务支持标准Spring事务的所有配置,除了嵌套事务和JTA。嵌套事务Hibernate也不支持,如果需要使用,请按照hack ...

  • guzz1.2.9多数据库框架更新发布

    如无意外,本次更新为1.2.9最后一次更新,随后将进行下一个大版本的开发,设计新的功能,欢迎提供想法。 guzz 1.2.9 20110830更新介绍: 本次更新: 1. fix issue 16. 为paramMapping 增加了type属性,...

  • 分布式系统的一点总结

    虽然前期可能并发不会很大但是还是研究了一下支付宝和Ebay的分布式架构,以备用。   首先CAP理论。 我们通常在集中式环境中遇到的事务基本都是遵循ACID原则的。也就是说数据库中的数据有着很强的一致性。 但是...

  • 车神(车江毅)的分布式事务资料链接汇总

    分布式事务-Sharding 分布式事务-Sharding  Sharding    (转)大型互联网站解决海量数据的常见策略 - - ITeye技术网站  阿里巴巴Cobar架构设计与实践 - 机械机电 - 道客巴巴  阿里分布式数据库服务...

  • 数据库分库分表-访问策略(DDAL技术方案选型)

    1.数据量越来越大,超出了单表或者单库的最大限制。 2.数据访问压力越来越大,超出了数据库系统能力。访问压力可能出现读压力过大或者写压力过大。 3.数据访问层运维问题。 4.数据访问层高可用方案。 5.数据访问...

  • 4-20校招面试总结

    分布式数据存储的首选,目前了解不多,但大型分布式资源存储首选都是Hadoop,很火   26. Ralasfe 开源访问控制中间件,可以做到功能级访问控制和数据级访问控制 http://www.ralasafe.cn/   27.DWZJS 国内的一个...

  • 面试题汇总-大牛的Java170

    《设计模式精解》 中关于桥梁模式的部分)。 - 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界描绘成一系列完全自治、封闭的对象。我们在...

  • Java面试题全集126-170(开源Java EE框架)

    此外,这篇文章还对企业应用架构、大型网站架构和应用服务器优化等内容进行了简单的探讨,这些内容相信对面试会很有帮助。 126、什么是ORM? 答:对象关系映射(Object-Relational Mapping,简称ORM)是一种...

  • RuoYi-Vue3(1).zip

    RuoYi-Vue3(1).zip

Global site tag (gtag.js) - Google Analytics