The invention discloses a multi-threaded transaction processing method based on MongoDB, first download the MongoDB language API package can then said MongoDB arbitrary operating tasks; to create a business class, multiple instances of a task each transaction instance to form sequence management, and statistics of the length of the sequence added; create a global transaction management queue, follow the FIFO principle to manage multiple transaction instances; each thread generates transaction instances with sequential task instances, in each thread will be pressed into the global transaction instance transaction management queue, processing sequence of global transaction instances alone open a thread to the transaction management in the queue the API language package. The invention can facilitate the promotion and application of MongoDB in the field of strong affairs, reduce the development time, and ensure the correctness of the data in high concurrency.
【技术实现步骤摘要】
一种基于MongoDB的多线程事务处理方法
本专利技术涉及数据库领域,尤其涉及一种基于MongoDB的数据库多线程强事务处理的方法。
技术介绍
2010年,随着互联网Web2.0网站的兴起,NoSQL(NotOnlySQL,非关系型数据库)在国内掀起一阵热潮,其中风头最劲的莫过于MongoDB了。越来越多的业界公司已经将MongoDB投入实际的生产环境,很多创业团队也将MongoDB作为自己的首选数据库,创造出非常之多的移动互联网应用。MongoDB的文档模型自由灵活,可以让开发者在开发过程中畅顺无比。对于大数据量、高并发、弱事务的互联网应用,MongoDB可以应对自如。MongoDB内置的水平扩展机制提供了从百万到十亿级别的数据量处理能力,完全可以满足Web2.0和移动互联网的数据存储需求,其开箱即用的特性也大大降低了中小型网站的运维成本。事务(Transaction)是数据库运行中的一个逻辑工作单位,特别适用于多用户同时操作的数据通信系统。事务是并发控制的单位,是用户定义的一个操作序列。这些操作序列是有顺序的,要么都做,要么都不做,是一个不可分割的工作单位。一个事务的执行不能被其他事务干扰。即一个事务内部的操作序列及顺序,对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。MongoDB本身是弱事务的,如何在高并发处理中,实现强事务管理是其拓展其它应用领域的关键。
技术实现思路
本专利技术结合多线程、高并发、强事务的游戏服务器应用开发,提供一种基于MongoDB的多线程事务处理方法,针对MongoDB的弱事务进行改善,形成强事务管理。为达到上述目 ...
【技术保护点】
一种基于MongoDB的多线程事务处理方法,其特征在于,包括如下步骤:下载各语言的MongoDB API;封装能够表示MongoDB任意操作的任务类,每个任务实例表示一个操作,多个任务实例的序列构成一个事务实例;创建一个事务类,每个事务实例包括多个任务实例,多个任务实例以序列形式管理,并对添加的序列长度做计数统计;创建一个全局的事务管理队列,遵循先进先出原则来管理多个事务实例;每个线程产生带有序列任务实例的事务实例,多个线程就会有多个事务实例,并在各自线程里将事务实例压入全局的事务管理队列,单独开启一个线程来顺序处理全局的事务管理队列中的事务实例;将各语言封装API。
【技术特征摘要】
1.一种基于MongoDB的多线程事务处理方法,其特征在于,包括如下步骤:下载各语言的MongoDBAPI;封装能够表示MongoDB任意操作的任务类,每个任务实例表示一个操作,多个任务实例的序列构成一个事务实例;创建一个事务类,每个事务实例包括多个任务实例,多个任务实例以序列形式管理,并对添加的序列长度做计数统计;创建一个全局的事务管理队列,遵循先进先出原则来管理多个事务实例;每个线程产生带有序列任务实例的事务实例,多个线程就会有多个事务实例,并在各自线程里将事务实例压入全局的事务管理队列,单独开启一个线程来顺序处理全局的事务管理队列中的事务实例;将各语言封装API。2.根...
【专利技术属性】
技术研发人员:凌云,邱玢,黄祺君,
申请(专利权)人:上海童讯网络科技有限公司,
类型:发明
国别省市:上海,31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。