分布式数据库实验PPT讲稿.ppt

上传人:石*** 文档编号:45882201 上传时间:2022-09-25 格式:PPT 页数:29 大小:1.43MB
返回 下载 相关 举报
分布式数据库实验PPT讲稿.ppt_第1页
第1页 / 共29页
分布式数据库实验PPT讲稿.ppt_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《分布式数据库实验PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《分布式数据库实验PPT讲稿.ppt(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、分布式数据库实验第1页,共29页,编辑于2022年,星期五任务描述n用JAVA建立一个分布式的应用程序以实现一个简单的旅行预订系统,分为三个阶段:n1.实现一个简单的资源管理器(Resource Manager,一个具有固定的表和操作集的非常简易的数据库系统),用来支持并发事务的ACID性质(原子性、一致性、独立性、持久性);n2.实现一个工作流程控制器(Workflow Controller)和一个事务管理器(Transaction Manager),用来在多个资源管理器(Resource Managers)之间实现分布式事务处理;n3.实现一些扩展功能。n本课程只要求实现第一部分。第2页,

2、共29页,编辑于2022年,星期五简易的旅行资源管理器nRM支持并发事务的ACID性质。RM存储着关于航班,出租车,宾馆房间和客户的数据信息。多个客户端通过一个事务处理界面可同时访问这个RM以查询和更新数据。这个RM要保证这些并发事务的执行正确性,即符合ACID性质的要求。nRM存储着下列表:nFLIGHTS(String flightNum,int price,int numSeats,int numAvail)nHOTELS(String location,int price,int numRooms,int numAvail)nCARS(String location,int price

3、,int numCars,int numAvail)nCUSTOMERS(String custName)nRESERVATIONS(String custName,int resvType,String resvKey)第3页,共29页,编辑于2022年,星期五简易的旅行资源管理器n我们提供了资源管理器(Resource Manager)的标准接口(详见ResourceManager API)。这个接口允许每一个在RM中存储的表中的行被添加、删除和修改。你的工作是为每一个我们提供的接口写出实现程序。第4页,共29页,编辑于2022年,星期五事务处理nRM支持事务处理。一个事务调用RM的sta

4、rt()方法来获取一个唯一的事务标识(transaction id)。所有对RM的后续调用都要包括这个事务标识。最后,事务调用commit()或abort()方法结束事务处理。第5页,共29页,编辑于2022年,星期五并发控制n并发控制是通过两阶段锁(two-phase locking)来实现的。当一个客户端要求查询或更新信息时,你的RM要适当地给相应元组加锁,并在事务正常完成(commits)或异常中断(abort)时释放所有的锁。我们提供了一个锁管理器(lock manager)帮助你完成任务。第6页,共29页,编辑于2022年,星期五文件说明npart1.tarnLockManager.

5、javanLockManagerTest.javanClient.javanMakefilenmake.exe第7页,共29页,编辑于2022年,星期五文件说明npart1.tar是源码(详见API),有两个文件夹:lockmgr和transaction。nlockmgr实现了LockManager的功能,你不必修改这个包中的内容。ntransaction提供了一些基本的类以帮助你完成工作,它包含了ResourceManager的接口。请注意,你不要修改此文件,你的RM实现要基于名为ResourceManagerImpl的类(以及一些自己定义的新类),这个类提供了ResourceManager

6、的接口。你必须自己编写接口实现代码,以替代目前提供的这个ResourceManagerImpl.java文件中的接口实现代码。第8页,共29页,编辑于2022年,星期五文件说明n请注意:用请注意:用LockManager.java文件和文件和LockManagerTest.java文件替换文件替换part1和和part2中的同名文件(因为中的同名文件(因为part1和和part2中的同名文件有错误!)中的同名文件有错误!)client.java是用来做最后测试的。是用来做最后测试的。第9页,共29页,编辑于2022年,星期五文件说明nWindows下需要Make工具,即make.exe,需将m

7、ake.exe放到javac.exe所在目录下。nWindows下需用我们提供的makefile文件替换part1.tar中的makefile文件。而Linux下则不用。第10页,共29页,编辑于2022年,星期五基本框架结构(Part I):C/SResourceManagerFlights,Hotels,Cars,CustomersClient 1Client 2Client n第11页,共29页,编辑于2022年,星期五1.运行环境n操作系统Solaris VM or Windows or Linux(Unix)n开发语言JAVA JDK1.2.2以上版本 (Windows下需要Make

8、工具)第12页,共29页,编辑于2022年,星期五1.运行环境nJAVA环境变量设置Set path=;C:j2sdk1.4.0_01binCLASSPATH=.;C:j2sdk1.4.0_01libtools.jar;C:j2sdk1.4.0_01libdt.jar;C:j2sdk1.4.0_01jrelibrt.jar;D:project 第13页,共29页,编辑于2022年,星期五1.运行环境n怎样运行javac*.java 生成 *.class 文件make runreg 注册端口号make runserver 运行Server端make runclient 运行Client端Ctrl

9、+c to kill the server第14页,共29页,编辑于2022年,星期五2.RMI与ThreadnRMI(Remote Method Invocation)rebind(name,obj)和 bind(name,obj)lookup(name)第15页,共29页,编辑于2022年,星期五2.RMI与ThreadnThread run()定义线程体 sleep(long millis)睡眠millis毫秒 start()启动线程第16页,共29页,编辑于2022年,星期五3.Lock Manager (lockmgr包)nlock(xid,thingBeingLocked,read

10、|write)throws DeadlockException;nunlockAll(xid)第17页,共29页,编辑于2022年,星期五4.ITE和TAEnITE-InvalidTransactionException 注意:记录可用的事务号nTAE-TransactionAbortedException e.g.deadlock第18页,共29页,编辑于2022年,星期五5.事务可以挂起吗?n挂起-不commit,也不abortn可以挂起,真正的RM用超时机制强制abort此类事务n程序中可以不考虑第19页,共29页,编辑于2022年,星期五6.怎样实现多粒度锁?n粒度 tables和tu

11、plesn意向锁(IS和IX)lm不直接提供,但可以实现:read S,S update S,X insert/delete X,X第20页,共29页,编辑于2022年,星期五7.读/写磁盘nreadObject()nwriteObject(Object)e.g.public class FlightsItem implements java.io.Serializable 第21页,共29页,编辑于2022年,星期五8.Customers和Reservations表可以合并吗?n可以合并nReservations不含主键,但通常按custName查询nReservations(String

12、custName,List resv)nresv(int resvType,String resvKey)第22页,共29页,编辑于2022年,星期五9.测试与异常n测试(Test)shutdown(),dieNow(),dieBeforePointerSwitch(),dieAfterPointerSwitch()第23页,共29页,编辑于2022年,星期五9.测试与异常n异常处理 InvalidTransactionException,TransactionAbortedException,DeadlockException IOException和RemoteException可以暂时不

13、考虑第24页,共29页,编辑于2022年,星期五10.原子性的实现10.原子性的实现nShadow思想第25页,共29页,编辑于2022年,星期五成果提交n两实验分组相同n每一小组最后提交:n系统设计报告n程序演示报告n小组各成员的任务分工n源程序(需要详细注释,注明所使用的JDK版本)第26页,共29页,编辑于2022年,星期五提交方式nftp:/202.38.79.95,“分布式数据库实验”目录下n用户名:addb 密码:addb06n该目录只有上传权限,请先在本地将所要提交的报告和程序放在一个目录中,目录使用小组成员学号命名,如SA06011001&002&003&004,然后上传该目录到FTP n各阶段成果和程序均在最后一起提交n提交截止日期:2007年1月20日第27页,共29页,编辑于2022年,星期五参考文献n分布式数据库系统及其应用n数据库系统导论nJava2 API 大全nJava编程思想第28页,共29页,编辑于2022年,星期五谢 谢!第29页,共29页,编辑于2022年,星期五

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁