您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 人事档案/员工关系 > 高性能分布式云数据库
Copyright©VersantCorp.Allrightsreserved.0001高性能分布式云数据库产品和案例介绍ByTigerLau,CTOofVersantChina性能,灵活性灵活性,支持查询性能性能优点复杂简单简单简单数据对象型关系型网络化层次化,结构化模型随机性较强,支持既成的查询性能灵活性,对查询的支持灵活性,对查询的支持缺点这两点是现有很多系统的核心问题所在数据库发展简史什么是Versant数据库Versant数据库是大规模的分布式数据库Versant数据库是专门为复杂数据提供服务的数据库:设计目标是优化对象的存储与操作。有能力管理任何类型的复杂模型。简单类型:整型,字符串数据类型与程序语言定义完全一致,非自建数据结构多值类型(Multi-valued):动态类型数组可以有效支持复杂程序数据结构,无需拆分有能力管理对象间的任何关系。对象间引用(链接)集合(唯一性),列表(排序),图(关联性查找)一次性存储,透明装载,能极大提高系统效率Versant数据库能够实现数据与程序语言的无缝集成。Versant数据库的定位什么是复杂数据?应用自身的数据结构以及数据非常复杂。面向图形/GIS的复杂应用系统基于复杂对象导航访问模式的应用系统受到面向对象模型的影响而形成的复杂数据。继承集合关联由于无法简单的映射到关系模型而形成的复杂数据。大量的映射代码大量的联合(JOIN)操作性能不佳经常面临复杂数据的行业电信尤其与网络管理与核心业务大容量并发支撑密切相关的应用地理信息/航天在应用中提供空间数据金融股票,专利监控,风险监控科学/气象/医疗生物科学信息系统,医疗信息管理系统国防与智能系统出于保密需要…其它领域——需要大量历史数据支持的应用!Versant数据库的基础架构与优势Versant数据库的基础架构Versant数据库的技术优势VersantObjectManagerVersantObjectManagerVersantNetworkLayerVersantNetworkLayerVersantServerVersantServerVirtualSystemLayerVirtualSystemLayerVersantNetworkLayerVersantNetworkLayerOtherInterfaces,Tools,etc.OtherInterfaces,Tools,etc.VersantC++InterfaceVersantC++InterfaceVersantJavaInterfacesVersantJavaInterfacesVersantCInterfaceVersantCInterfaceVersant数据库系统架构RawDevices,FileSystems,RAID,SAN,NASRawDevices,FileSystems,RAID,SAN,NASVersantServerVersantClientVersantStorageManagerVersantStorageManagerLogicalLogFileLogicalLogFilePhysicalLogFilePhysicalLogFileDatabaseVolume(s)DatabaseVolume(s)PageCacheBEProfileBEProfileRoll-forwardlogRoll-forwardlogObjectCacheUserInterfaceApplicationVersantObjectManagerVersantObjectManagerVersantObjectManagerApplicationLogicApplicationLogicUserInterfaceUserInterfaceFEProfileFEProfileVersant数据库的双缓存架构ACIDTransactionsIndexingSMPSupportEventNotificationFaultTolerantServerReplicationScaletoTerabytesDualLoggingSQLODBCJDBCQueryQueryQueryEngineEngineServerServercachecachePhysicalPhysicalLogicalLogicalRelationalServerRelationalServerQueryDualLoggingClientCacheTransactionalControlQueryQueryEngineEngineTablesObjectsServerServercachecachePhysicalPhysicalLogicalLogicalSQLODBCJDBCSQLCC++Java.NET架构对比:RDBMSvsVERSANTVersant数据库可以实现灵活的多线程架构ClientThreadClientThreadClientThreadClientThreadClientThreadClientThreadClientThreadClientThreadClientThreadClientThreadClientThreadClientThreadClientProcessClientProcessSessionObject/ObjectCacheSessionObject/ObjectCacheSessionObject/ObjectCacheLogBufferThreadLogBufferThreadBackgroundPageFlusherBackgroundPageFlusherServerThreadServerThreadServerThreadServerThreadServerThreadServerThreadPageCacheLockTableServerProcessasyncI/Oofnon-commitbufferwriteswritesmodifiedpagestodiskComplexdata——复杂数据Complexdatarelationships——复杂数据的关系ODBCJDBCAsynchronousReplicationEventNotificationFaultTolerantServer24x7CORBAJ2EEJavaC++XAMTMSToolsVersant数据库能更好地解决复杂问题面向对象的程序模型与对象的数据库的无缝对接可以创造巨大的价值:开发时间缩短、应用执行效率提高,易用性提高以及目标产品投放市场的及时性的提高;Versant提供的存储模型等同于应用的内存模型,这使得企业应用的数据库可以在保持高健壮性的基础上同时获得高效的执行效率。Versant适用于面向关键业务的C++及Java应用内存模型与存储模型不一致从存储模型映射成内存模型时有巨大的性能消耗更多的转换代码编程语言和数据操作语言不一致,存在“失配”问题SELECTFROMtable1...;SELECTFROMtable2...;convert_tables_to_memory();Orderorder=newOrder()for(i=0;i100;i++){OrderLinep=newOrderLine();…order.addLine(p)}convert_memory_to_tables();INSERTINTOtable1...;UPDATEtable2...;SELECTFROMtable1...;SELECTFROMtable2...;convert_tables_to_memory();Orderorder=newOrder()for(i=0;i100;i++){OrderLinep=newOrderLine();…order.addLine(p)}convert_memory_to_tables();INSERTINTOtable1...;UPDATEtable2...;In-MemoryRDBMSTables传统关系型数据库在OR-Mapping领域面临困难内存模型与存储模型相一致高性能的大数据量对象操作(排序等)没有额外的转换代码强化的程序生产力程序开发语言即DML与DDLVERSANTOrderorder=newOrder()for(i=0;i100;i++){OrderLinep=newOrderLine();…order.addLine(p)}Orderorder=newOrder()for(i=0;i100;i++){OrderLinep=newOrderLine();…order.addLine(p)}In-MemoryVersant数据库能够更好支持复杂数据$$Employeeemp=newHourlyEmployee(“Meier”);transaction.commit().soc_nohour_rateover_ratemax_oversoc_nomonth_ratebonus_pctsoc_noemp_namebirth_datedept_name由于继承对象需要拆分之后才能存储到关系数据库中,需要额外的编码,维护难度加大,性能大幅降低由于继承对象需要拆分之后才能存储到关系数据库中,需要额外的编码,维护难度加大,性能大幅降低Employeesoc_noemp_namebirth_datedept_nameHourlyEmphour_rateover_ratemax_overSalariedEmpmonth_ratebonus_pctCompanycomp_nameemployeesdepartments例:关系数据库在解决继承对象存储时的困境createtableEmployee_Table(emp_idnumberprimarykeysoc_nonumberuniqeemp_namevarcharBirth_datedatedept_idnumberforeignkey)createtableHourly_Emp_Table(emp_idnumberprimarykeyforeignkeyhour_ratedecimalover_ratedecimalmax_overdecimal)createtableSalaried_Emp_Table(emp_idnumberprimarykeyforeignkeymonth_ratedeciamlbonus_pctdecimal)createtableDepartment_Table(......)createsequence......$$EXECSQLINSERTINTOEmployee_Table(soc_no,emp_name,birth_date,dept_name)VALUES(:emp-soc_no,:emp-name,:emp-birth_date,:emp-dept_name);if(emp-type==1)EXECSQLINSERTINTOHourly_emp_Table(soc_no,hour_rate,over_rate,max_over)VALUE(:emp-soc_no,:emp-hour_rate,:emp-over_rate,:emp-max_over);elseif(emp-type==2)EXECSQLINSERTINTOSalaried_emp_Table(soc_no,month_rate,bonus_pct)VALUES(:emp-soc_no,:emp-month_rate,:emp-bonus_pct)EXECSQLCOMMITWORKRELEASE;Employeeemp=newHourlyEmployee(“Meier”);transaction.commit().soc_nohour_rateover_ratemax_oversoc_nomonth_ratebonus_pctsoc
本文标题:高性能分布式云数据库
链接地址:https://www.777doc.com/doc-4410914 .html