4. 关于数据访问层 引用维基百科 : A Data Access Layer (DAL) is a layer of a computer program which provides simplified access to data stored in persistent storage of some kind, such as an entity-relational database. This data access layer is used in turn by other program modules to access and manipulate the data within the data store without having to deal with the complexities inherent in this access.
5. 关于数据访问层 ( 续 ) 应用程序 Data Access Layer DB API 文件 DAL 在系统中的位置
6. 关于 Dal - 概览 Dal 是手机之家开发的数据访问层软件的产品名。 Dal1.0 、 Dal2.1.x 、 Dal2.2.x 及 Dal2.x 则是该软件的不同版本系列的一个引用。 Dal 是手机之家研发团队近几年在开发和运营上的经验的总结以及智慧的结晶。 开发 Dal 的目的是为了解决在构建大中型网站时遇到的和数据访问有关的诸多问题,如怎样使得分表透明化,怎样使得缓存存取清除自动化,怎样才能更好地防止服务单点故障等等。 Dal1.0 是一个具有里程碑意义的版本,但在很多方面仍然欠考虑。 Dal2.1.x 是一个经过精心设计、认真编写,具有较高可用性的分布式数据访问层,是综合数据代理 ( 如 MySQL Proxy) 、名值对缓存 ( 如 Memcached) 、集群等等思想而构建的一个软件系统。 Dal2.2.x 是目前的最新系列,引入了很多新特性:如分布式事务,支持数据库主从等等。
7. 关于 Dal - 软件定位 1) 不但具备了 memcached 和 mysql proxy 的优点,还避免了两者的缺点。 2) Dal 作为一个中间件,应保持语言中立、数据库中立。 3) 让系统在数据访问层上具备分布式计算能力。 4) 不造 ORM 轮子,只是发明访问数据的接口。
21. Dal 的发展 - Dal2.1.x 大图 MySQL Dal Server JDBC Oracle ??? JDBC JDBC Java Dal Client PHP Dal Client Python Dal Client ? Dal Client DALP DALP DALP DALP 缓存组件
22. Dal 的发展 – Dal Server2.1.x 大图 Monkey NIO Framework query executor routing strategy query parser cache provider Event listener MySQL conn provider config manager big queue dal handler Oracle DALP
30. Dal 的发展 – Dal2.2.x 大图 Dal 专用 客户端 Dal Server #a Cache #c Cache #a Dal Server #b Dal Server #c Dal Server #d Cache #b Cache #d Dal2.2.x 缓存集群 数据库集群 DB#a DB#d DB#d DB#b
31. Dal 的发展 – Dal2.2.x 重要变更 1) 自动生成条目 ( 实体 ) 类,用于缓存数据库记录。数据已经有了类型,同时有望缓解 JVM GC 问题。 2) 支持分布式事务。遵循 XA 规范。 3) 支持数据库主从。 4) 缓存内置、外置,任君选择。 5) 更好的元信息抽象,更聪明的发现及重载机制。 6) 更优的内置消息队列。内存中存储的是引用。 7) 已从 Dal Server 分离出 Dal Core ,可以简单地作为嵌入式包来引用。 8) 已支持 Php, Java, Python, Ruby 四个客户端。