您好,欢迎访问三七文档
1TheInformationCompanyTM深入内存数据库王健Sr.SalesConsultant3TimesTen历史1992–起源于惠普实验室研究项目•针对电信网络应用的内存数据库研究1996–TimesTen公司成立•核心成员都来自HP实验室原来成员•第一个商业版本产生(TimesTen2.0)1999–在英国商业运作2001–增加CacheConnect功能2005–由Oracle收购•11主要的版本产生(TimesTen6.0)•200+客户,1500+部署系统至今–迅速发展…4内存数据库的特性5内存数据库解决方案实时数据管理软件即时响应y高可伸缩性y持续可用性Formanagingevents,transactionsanddatawithinperformance-criticalapplications.全球有超过1500家企业客户采用OracleTimesTen内存数据库解决方案6极快的响应速度0102030updatemixedselectmicroseconds28millionthsofasecond70%select;20%update;10%insertTimesTenIn-MemoryDatabase6.0,4-CPU,3GHzx86Xeon,32-bitRHLinux25millionthsofasecond9millionths7极高的处理能力32,66370,11154,303121,70598,568250,550050,000100,000150,000200,000250,000300,000updatemixedselect1CPU2CPUs4CPUsTransactionspersecond70%select;20%update;10%insertOracleTimesTen6.0,4-CPU,3GHzx86Xeon,32-bitRHLinux8针对物理内存而特别设计优化的数据库所有数据存于物理内存采用关系型数据模型针对物理内存而特别设计优化的数据存储结构与算法多进程/多线程共享数据存储(DataStore)•嵌入式或客户机-服务器式标准APIs(ODBC,JDBC,SQL-92)易于安装与配置Application-TierPlatformNetworkIn-MemoryDatabase(s)ApplicationTimesTenlibrariesTransactionLogs...Client-ServerCheckpointfilesApplicationTimesTenlibraries9内存数据库的部署呈现层应用层数据库层“针对性能要求高的系统的应用层数据管理解决方案”针对物理内存而优化的应用层数据库,可以获得极高的响应速度并实现实时数据缓存10OracleTimesTen支持“实时世界”IntheEnterprise呼叫处理软交换一键通话(PTT)定位服务呈现业务InNetworksInTelecom实时计费认证鉴权收入保障网络/Qos管理自服务门户SOAOnWallStreet订单匹配智能订单路由成交撮合实时分析SOA呼叫中心用户个性化在线BI/BAM实时物流实时订座11内存数据库和传统关系型数据库的比较12131415性能扩展Throughput(simpletxn/sec)100’s1000’s10,000’s100,000’sOracleDatabase10g(TerabyteDB’s)OracleDatabase10gRAC(TerabyteDB’s)OracleTimesTenIn-MemoryDatabase(GigabyteDB’s)ResponsetimeMicro-SecondsMilli-SecondsSeconds16内存数据库与磁盘数据库的比较数据库特性OracleDatabase10gOracleTimesTenIn-MemoryDatabase目标应用关键业务应用关键业务应用数据模型关系型-SQL关系型-SQL优化磁盘为中心内存为中心典型部署方式数据库层应用层架构客户机/服务器嵌入式(直接数据访问)响应时间毫秒到秒级微秒到毫秒级数据容量TB到PB级GB级可扩展性Cluster(RAC)&SMPSMP17响应时间及吞吐量的比较18OracleTimesTen产品家族19OracleTimesTen产品家族Product:OracleTimesTenIn-MemoryDatabaseOption:Replication–TimesTentoTimesTenOption:CacheConnecttoOracle20OracleTimesTen产品特性z实时性能z多用户并发z无数据丢失z基于标准z几乎无需管理z灵活的部署选项相关的产品和服务:zReplication-TimesTentoTimesTen(选项)zCacheConnecttoOracle(选项)21TimesTen:架构ServerdaemonIn-MemoryDataStore(s)Client/ServerApplicationorToolApplication-TierServerPlatformNetwork/MessageBusReplicationagent(s)TimesTensharedlibrariesApplicationCodeTimesTensharedlibrariesApplicationProgramsDataStoresubdaemon(s)Admin/UtilityprogramsLogfilesCheckpointfilesServerproxiesTimesTendaemonDataTables,Indexes,SystemTablesLocks,Cursors,CompiledCommands,TempIndexesLogBufferDataTables,Indexes,SystemTablesLocks,Cursors,CompiledCommands,TempIndexesLogBuffer22日志与数据持久性内存缓冲区交易日志与同步交易日志•应用程序可以在交易层面设置日志选项交易日志与检查点文件保存在磁盘之上双重检查点文件机制,可用于故障恢复Application-TierPlatformNetworkIn-MemoryDatabase(s)ApplicationTimesTenlibrariesTransactionLogs...Client-ServerCheckpointfilesApplicationTimesTenlibraries23DataStoreCheckpoints日志文件•Checkpoints把datastore的当前状态记录在硬盘上yTimesTen交替的把数据记录在两个checkpoint日志文件上y有了checkpoint日志文件和log文件,Timesten就能保证在任何情况下数据的完整性和一致性•Timesten自动清除log文件LogFilesdsName.log1TimesTenSubdaemon(multi-threadedprocess)CheckpointdsName.ds0CheckpointdsName.ds1LogFilesdsName.logNLogFilesdsName.log0DataStore24交易与并发访问Datastore可被多进程/多线程所共享•嵌入式或客户机-服务器模式完全的交易机制支持(COMMIT/ROLLBACK)交易独立性•Read-committed(non-blockedversioning)•Readsdonotblockwrites•Writesdonotblockreads•Serializableisalsosupported并发访问控制•锁:datastore-level,表级锁,行级锁死锁检测25MicroLoggingTM保护内存数据库不受应用故障影响共享进程空间会使嵌入式应用受进程故障的影响MicroLogging™技术可以确保OracleTimesTen内存数据库不受应用进程故障的影响•异常终止的应用进程不会影响DataStore,受到影响的交易会被滚回(Rollback)•其他进程/线程可以继续运行,不受影响•内存数据库可以继续运行,不需中断安全且高性能26数据发布-TransactionLogAPI(XLA)XLAinterfaceLogMemoryBufferTXLogfilesIn-MemoryDataStoreXLAAppsReal-timeAppsUpdatesTransactionLogAPI(XLA)•跟踪实时数据变化•监视交易变化•发送数据变化到外部应用•实现实时事件通知与处理27数据清理支持•支持两种自动数据清理技术。•基于时间的数据清理-根据时间戳来判断•基于使用的数据清理-根据LRU(LEASTRECENTLYUSED)算法来判断•数据清理策略可配置•支持常规TimesTen表和缓存组(cachegroups)清理28基于SELECT自动装载•CacheConnecttoOracle的特性•如果在TimesTen中没有找到数据,TimesTen会从Oracle数据库重新装载•该特性是个选项特性,可由应用程序进行开/关•只会装载缓存组(cachegroup)中定义的数据(避免装载到不需要的数据)•SELECT使用主键和外键来装载指定的Cache实例•示例:•用户登陆的时候装载用户信息29多国语言支持•TimesTen支持57个字符集和84中语言排序•NCHAR,NVARCHAR,CHAR,和VARCHAR列的语言排序,大小写和方言不敏感查询•CHAR和VARCHAR列可以存储non-ASCII数据•连接字符集用于应用内码•兼容Oracle数据库特性•建议将连接字符集和数据库字符集设置为一样•语言排序比二进制排序更加耗费资源•已有的缓存连接(CacheConnect)客户需要将它们的TimesTen字符集设置的和Oracle数据库一样30TimesTen支持的平台31内存数据库TimesTen高可用性的解决方案32TimesTen复制功能z高可用性z负载共享z灵活的体系结构z性能和一致性z复制高速缓存的数据33复制–TimesTen到TimesTenReplicationTimesTentoTimesTenIn-MemoryDatabaseIn-MemoryDatabaseApplicationProgramTimesTenApplicationProgramTimesTenNetwork多路,点到点Active/standby或active/active,多级表级或data-store级复制同步与异步数据传送故障自动恢复冲突检测与解除在线升级34灵活的配置复制–TimesTen到TimesTenActive-StandbyActive-Active(splitworkload)Active-Active(distributedworkload)N–Way(updateanywhere)Propagation灵活的配置选择复制表或者data-store35同步与异步复制异步复制•异步传送交易数据•非常快的应用响应时间•适合于需要高性能、低延迟的应用场景同步复制•同步传送交易数据•在返回控制权给应用之前,提交的交易能确保被传送到远端节点•同步复制可以由应用系统在交易层面来进行控制“开启”或“关闭”36异步复制流程发送方接收方(1)交易被提交,依据应用系统的设置,交易日志被记录到日志缓冲区或同步写到磁盘日志文件。(2)当日志缓冲区“满”了,交易日志会被写到磁盘的日志文件里面。(3)复制代理向接收方发送这批交易信息。(4)接收方代理在data-store上执行这批交易。(5)强制写磁盘交易日志文件。(6)接收方代理向发送方发送确认响应。(
本文标题:深入内存数据库
链接地址:https://www.777doc.com/doc-4819402 .html