分布式数据库实验.ppt

上传人:w****2 文档编号:6385311 上传时间:2020-02-24 格式:PPT 页数:29 大小:310.37KB
返回 下载 相关 举报
分布式数据库实验.ppt_第1页
第1页 / 共29页
分布式数据库实验.ppt_第2页
第2页 / 共29页
分布式数据库实验.ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
DistributedTravelReservationSystem Part 任务描述 用JAVA建立一个分布式的应用程序以实现一个简单的旅行预订系统 分为三个阶段 1 实现一个简单的资源管理器 ResourceManager 一个具有固定的表和操作集的非常简易的数据库系统 用来支持并发事务的ACID性质 原子性 一致性 独立性 持久性 2 实现一个工作流程控制器 WorkflowController 和一个事务管理器 TransactionManager 用来在多个资源管理器 ResourceManagers 之间实现分布式事务处理 3 实现一些扩展功能 本课程只要求实现第一部分 简易的旅行资源管理器 RM支持并发事务的ACID性质 RM存储着关于航班 出租车 宾馆房间和客户的数据信息 多个客户端通过一个事务处理界面可同时访问这个RM以查询和更新数据 这个RM要保证这些并发事务的执行正确性 即符合ACID性质的要求 RM存储着下列表 FLIGHTS StringflightNum intprice intnumSeats intnumAvail HOTELS Stringlocation intprice intnumRooms intnumAvail CARS Stringlocation intprice intnumCars intnumAvail CUSTOMERS StringcustName RESERVATIONS StringcustName intresvType StringresvKey 简易的旅行资源管理器 我们提供了资源管理器 ResourceManager 的标准接口 详见ResourceManagerAPI 这个接口允许每一个在RM中存储的表中的行被添加 删除和修改 你的工作是为每一个我们提供的接口写出实现程序 事务处理 RM支持事务处理 一个事务调用RM的start 方法来获取一个唯一的事务标识 transactionid 所有对RM的后续调用都要包括这个事务标识 最后 事务调用commit 或abort 方法结束事务处理 并发控制 并发控制是通过两阶段锁 two phaselocking 来实现的 当一个客户端要求查询或更新信息时 你的RM要适当地给相应元组加锁 并在事务正常完成 commits 或异常中断 abort 时释放所有的锁 我们提供了一个锁管理器 lockmanager 帮助你完成任务 文件说明 part1 tarLockManager javaLockManagerTest javaClient javaMakefilemake exe 文件说明 part1 tar是源码 详见API 有两个文件夹 lockmgr和transaction lockmgr实现了LockManager的功能 你不必修改这个包中的内容 transaction提供了一些基本的类以帮助你完成工作 它包含了ResourceManager的接口 请注意 你不要修改此文件 你的RM实现要基于名为ResourceManagerImpl的类 以及一些自己定义的新类 这个类提供了ResourceManager的接口 你必须自己编写接口实现代码 以替代目前提供的这个ResourceManagerImpl java文件中的接口实现代码 文件说明 请注意 用LockManager java文件和LockManagerTest java文件替换part1和part2中的同名文件 因为part1和part2中的同名文件有错误 client java是用来做最后测试的 文件说明 Windows下需要Make工具 即make exe 需将make exe放到javac exe所在目录下 Windows下需用我们提供的makefile文件替换part1 tar中的makefile文件 而Linux下则不用 基本框架结构 PartI C S Flights Hotels Cars Customers 1 运行环境 操作系统SolarisVMorWindowsorLinux Unix 开发语言JAVAJDK1 2 2以上版本 Windows下需要Make工具 1 运行环境 JAVA环境变量设置Setpath C j2sdk1 4 0 01 bin CLASSPATH C j2sdk1 4 0 01 lib tools jar C j2sdk1 4 0 01 lib dt jar C j2sdk1 4 0 01 jre lib rt jar D project 1 运行环境 怎样运行javac java生成 class文件makerunreg注册端口号makerunserver运行Server端makerunclient运行Client端Ctrl ctokilltheserver 2 RMI与Thread RMI RemoteMethodInvocation rebind name obj 和bind name obj lookup name 2 RMI与Thread Threadrun 定义线程体sleep longmillis 睡眠millis毫秒start 启动线程 3 LockManager lockmgr包 lock xid thingBeingLocked read write throwsDeadlockException unlockAll xid 4 ITE和TAE ITE InvalidTransactionException注意 记录可用的事务号TAE TransactionAbortedExceptione g deadlock 5 事务可以挂起吗 挂起 不commit 也不abort可以挂起 真正的RM用超时机制强制abort此类事务程序中可以不考虑 6 怎样实现多粒度锁 粒度tables和tuples意向锁 IS和IX lm不直接提供 但可以实现 read S Supdate S Xinsert delete X X 7 读 写磁盘 readObject writeObject Object e g publicclassFlightsItemimplementsjava io Serializable 8 Customers和Reservations表可以合并吗 可以合并Reservations不含主键 但通常按custName查询Reservations StringcustName Listresv resv intresvType StringresvKey 9 测试与异常 测试 Test shutdown dieNow dieBeforePointerSwitch dieAfterPointerSwitch 9 测试与异常 异常处理InvalidTransactionException TransactionAbortedException DeadlockExceptionIOException和RemoteException可以暂时不考虑 10 原子性的实现 10 原子性的实现Shadow思想 成果提交 两实验分组相同每一小组最后提交 系统设计报告程序演示报告小组各成员的任务分工源程序 需要详细注释 注明所使用的JDK版本 提交方式 ftp 202 38 79 95 分布式数据库实验 目录下用户名 addb密码 addb06该目录只有上传权限 请先在本地将所要提交的报告和程序放在一个目录中 目录使用小组成员学号命名 如SA06011001 002 003 004 然后上传该目录到FTP各阶段成果和程序均在最后一起提交提交截止日期 2007年1月20日 参考文献 分布式数据库系统及其应用 数据库系统导论 Java2API大全 Java编程思想 谢谢
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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