CN110674167B - 数据库操作方法、装置、计算机设备和存储介质 - Google Patents
数据库操作方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110674167B CN110674167B CN201910767709.7A CN201910767709A CN110674167B CN 110674167 B CN110674167 B CN 110674167B CN 201910767709 A CN201910767709 A CN 201910767709A CN 110674167 B CN110674167 B CN 110674167B
- Authority
- CN
- China
- Prior art keywords
- task
- read
- write
- queue
- tasks
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种数据库操作方法、装置、计算机设备和存储介质。所述方法包括:接收对数据库的多个操作任务,并记录各操作任务的任务类型及创建时间;任务类型包括读任务及写任务;将读任务对应的操作任务存储至数据库中设置的读等待队列中,将写任务对应的操作任务存储至数据库中设置的写等待队列中;根据读等待队列和写等待队列中的各操作任务的创建时间,分别执行读等待队列及写等待队列中的操作任务。采用本方法能够实现读写分离的机制,有效地避免了在对数据库同时进行读写操作时引起的卡顿问题,有效的提高了数据库读写效率。
Description
技术领域
本申请涉及数据处理技术领域,特别是数据库操作方法、装置、计算机设备和存储介质。
背景技术
数据库是互联网平台常见的数据存取技术。Android操作系统内置了一个名为SQLite的关系型数据库,这是一款轻量型的数据库,可以十分方便的对数据进行增删查改等操作。
为了进一步提高对SQLite数据库的操作效率,通常会采用数据库ORM(Object-Relational Mapping)框架或多线程的数据库操作方式提高对SQLite数据库的操作效率,可以有效的解决读写慢的问题。
但是,由于当前的ORM框架仅仅提供了一个数据库映射的框架,很容易导致卡顿、数据读取错误等问题,多线程的数据库操作方式由于采用多线程同时操作数据库,往往也会发生线程死锁及读写错误问题,降低了对数据库的读写效率,严重的还会导致应用程序崩溃。
发明内容
基于此,有必要针对上述技术问题,提供一种提高数据库读写效率的数据库操作方法、装置、计算机设备和存储介质。
第一方面,本申请提供一种数据库操作方法,所述方法包括:
接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;
将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;
根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后。
在本申请的一个实施例中,根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,包括:
判断所述写等待队列中是否存在至少一个等待写任务;
若所述写等待队列中存在至少一个等待写任务,根据各所述等待写任务的创建时间,从所述写等待队列中取出待迁移写任务,所述待迁移写任务的创建时间最早;
判断所述读等待队列中是否存在比所述待迁移写任务的创建时间更早的至少一个等待读任务;
若所述读等待队列中存在比所述待迁移写任务的创建时间更早的至少一个等待读任务,将在所述读等待队列中比所述待迁移写任务的创建时间更早的至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务;
将所述待迁移写任务放回所述写等待队列;
将所述至少一个待迁移读任务迁移至所述数据库中设置的正在读队列,执行所述正在读队列中的操作任务。
在本申请的一个实施例中,所述方法还包括:
若所述读等待队列中不存在比所述待迁移写任务的创建时间更早的至少一个等待读任务,将所述待迁移写任务迁移至所述数据库中设置的正在写队列,执行所述正在写队列的操作任务。
在本申请的一个实施例中,所述方法还包括:
若所述写等待队列为空,判断所述读等待队列中是否存在至少一个等待读任务;
若所述读等待队列中存在至少一个等待读任务,根据各所述等待读任务的创建时间,按照时间顺序将至少一个所述等待读任务作为待迁移读任务,获得至少一个待迁移读任务;
将所述至少一个待迁移读任务迁移至所述数据库中设置的正在读队列,执行所述正在读队列中的操作任务。
在本申请的一个实施例中,所述将所述至少一个待迁移读任务迁移至正在读队列,包括:
若所述正在读队列中的读任务个数小于预设的同时读取阈值,根据各所述待迁移读任务的创建时间,按照时间顺序将各所述待迁移读任务迁移至正在读队列,直至所述读任务个数等于预设的同时读取阈值或各所述待迁移读任务已被全部迁移。
在本申请的一个实施例中,所述方法还包括:
获取执行所述读等待队列及所述写等待队列中的操作任务时产生的异常信息,所述异常信息包括出现异常的操作任务及与出现异常的操作任务对应的异常类型;
根据所述异常类型判断所述出现异常的操作任务是否可以重试;
若判定可以重试,按照所述出现异常的操作任务携带的访问属性对应的重试次数,重新执行所述出现异常的操作任务。
在本申请的一个实施例中,所述按照所述出现异常的操作任务携带的访问属性对应的重试次数,重新执行所述出现异常的操作任务,包括:
在根据所述重试次数重新执行所述出现异常的操作任务均失败后,获取所述出现异常的操作任务携带的访问属性对应的丢弃权限;
根据所述丢弃权限判断所述出现异常的操作任务是否允许被丢弃;
若所述丢弃权限为允许丢弃,放弃所述出现异常的操作任务;
若所述丢弃权限为禁止丢弃,抛出所述异常信息,并发出告警提示,以使管理员对所述异常信息进行处理。
在本申请的一个实施例中,所述若所述丢弃权限为允许丢弃,放弃所述操作任务,包括:
获取所述操作任务的任务类型;
若所述操作任务为读任务,则返回空数据;
若所述操作任务为写任务,放弃对所述数据库的写入。
第二方面,本申请提供一种数据库操作装置,所述装置包括:
操作任务接收模块,用于接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;
队列操作模块,用于将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;
任务执行模块,用于根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后。
第三方面,本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;
将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;
根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;
将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;
根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后。
上述数据库操作方法、装置、计算机设备和存储介质,通过接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后。根据本申请实施例提供的数据库操作方法,通过将对数据库的多个操作任务进行分类,将读任务对应的操作任务存储至读等待队列,将写任务对应的操作任务存储至写等待队列,并通过分别执行读等待队列及写等待队列中操作任务的方式,将两种类型的操作任务分离开,且读操作与写操作不同时进行,实现了读写分离的机制,有效地避免了在对数据库同时进行读写操作时引起的卡顿、出错的问题,有效的提高了数据库读写效率。
附图说明
图1为本申请实施例提供的数据库操作方法的实施环境图;
图2为本申请实施例提供的一种数据库操作方法的流程图;
图3为本申请实施例提供的另一种数据库操作方法的流程图;
图4为本申请实施例提供的另一种数据库操作方法的流程图;
图5为本申请实施例提供的另一种数据库操作方法的流程图;
图6为本申请实施例提供的另一种数据库操作方法的流程图;
图7为本申请实施例提供的另一种数据库操作方法的流程图;
图8为本申请实施例提供的另一种数据库操作方法的流程图;
图9为本申请实施例提供的一种数据库操作装置的框图;
图10为本申请实施例提供的另一种数据库操作装置的框图;
图11为本申请实施例提供的一种计算机设备的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的数据库操作方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
请参考图2,其示出了本实施例提供的一种数据库操作方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,接收对数据库的多个操作任务,并记录各操作任务的任务类型及创建时间;任务类型包括读任务及写任务。
在本申请的一个实施例中,监测当前系统中各个应用对数据库的操作任务,即每当各个应用对该数据库进行操作时,会记录该操作任务的任务类型,具体的,该操作任务的任务类型可以包括读任务及写任务。该读任务为应用对数据库中数据的读取操作,写任务为应用对数据库中数据的新增,更改,删除等操作。
在本申请的一个实施例中,每当监测到各个应用对数据库发起操作任务时,会记录该操作任务的创建时间。
步骤204,将读任务对应的操作任务存储至数据库中设置的读等待队列中,以及将写任务对应的操作任务存储至数据库中设置的写等待队列中。
具体的,在该数据库初始化时,对该数据库创建读等待队列List<DatabaseReadTask>mWaitReadTaskList,及创建写等待队列List<DatabaseWriteTask>mWriteWaitTaskList。
在本申请的一个实施例中,每当监测到对于该数据库的操作任务,会根据该操作任务的任务类型,将该操作任务存储至与任务类型对应的等待队列中,其中,将读任务对应的操作任务存储至数据库中设置的读等待队列中,以及将写任务对应的操作任务存储至数据库中设置的写等待队列中。
步骤206,根据读等待队列和写等待队列中的各操作任务的创建时间,分别执行读等待队列及写等待队列中的操作任务,其中,写等待队列中的操作任务执行在读等待队列中的操作任务执行之前或之后。
在本申请的一个实施例中,可以提取读等待队列及写等待队列中各所述操作任务的创建时间,根据创建时间的早晚,依次分别执行读等待队列及写等待队列中的操作任务。
在本申请的一个实施例中,若存在至少两个写等待队列中的操作任务的创建时间相同,则按照一定顺序分别执行所述至少两个操作任务,即执行完一个操作任务后再执行另一个操作任务。
在本申请的一个实施例中,若存在至少两个读等待队列中的操作任务的创建时间相同,可以按照一定顺序分别执行所述至少两个操作任务,也可以同时执行所述至少两个操作任务。
在本申请的一个实施例中,若写等待队列中存在一个操作任务与读等待队列中的一个操作任务的创建时间相同,可以先执行写等待队列中的操作任务,执行完毕后,再执行读等待队列中的操作任务;也可以先执行读等待队列中的操作任务,执行完毕后,再执行写等待队列中的操作任务。
在本申请实施例提供的数据库操作方法中,通过接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后。根据本申请实施例提供的数据库操作方法,通过将对数据库的多个操作任务进行分类,将读任务对应的操作任务存储至读等待队列,将写任务对应的操作任务存储至写等待队列,并通过分别执行读等待队列及写等待队列中操作任务的方式,将两种类型的操作任务分离开,且读操作与写操作不同时进行,实现了读写分离的机制,有效地避免了在对数据库同时进行读写操作时引起的卡顿、出错问题,有效的提高了数据库读写效率。
请参考图3,其示出了本实施例提供的另一种数据库操作方法的流程图,该数据库操作方法可以应用于上文所述的实施环境中的终端102中。在上述图2所示实施例的基础上,上述步骤206具体可以包括以下步骤:
步骤302,判断写等待队列中是否存在至少一个等待写任务。
在本申请的一个实施例中,在对该写等待队列及该读等待队列中存储的多个操作任务调度执行时,由于设置的写等待队列的优先级比读等待队列的优先级高,因此,需要先判断该写等待队列中的操作任务情况。
具体的,需要先判断该写等待队列中是否包含等待写任务,在接收多个操作任务时,若判断操作任务为写任务,将写任务对应的操作任务作为等待写任务存储至该写等待队列中。
步骤304,若写等待队列中存在至少一个等待写任务,根据各等待写任务的创建时间,从写等待队列中取出待迁移写任务,待迁移写任务的创建时间最早。
在本申请的一个实施例中,本申请在接收对数据库的操作任务时,还记录该操作任务对应的创建时间,当该写等待队列中只存在一个等待写任务时,将该等待写任务直接作为待迁移写任务;当该写等待队列中存在两个及以上的等待写任务时,会先获取每一个等待写任务的创建时间,将创建时间最早的等待写任务作为待迁移写任务。具体的,在得到该待迁移写任务后,会将该待迁移写任务从所述写等待队列中取出。
步骤306,判断读等待队列中是否存在比待迁移写任务的创建时间更早的至少一个等待读任务。
步骤308,若所述读等待队列中存在比所述待迁移写任务的创建时间更早的至少一个等待读任务,将在读等待队列中比待迁移写任务的创建时间更早的至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务。
在本申请的一个实施例中,在将该待迁移写任务迁移至正在写队列之前,需要对读等待队列中的操作任务的创建时间及待迁移写任务的创建时间进行获取并对比,当该读等待队列中存在比待迁移写任务的创建时间更早的至少一个等待读任务,会将得到的创建时间更早的至少一个等待读任务作为待迁移读任务。
步骤310,将待迁移写任务放回写等待队列。
步骤312,将至少一个待迁移读任务迁移至数据库中设置的正在读队列,执行正在读队列中的操作任务。
在本申请的一个实施例中,当存在比该待迁移写任务创建时间更早的等待读任务时,会将该待迁移写任务放回写等待队列,以释放空间。
在本申请的一个实施例中,由于得到的至少一个待迁移读任务的创建时间较早,因此,需要将该多个待迁移读任务依次迁移至数据库中设置的正在读队列,并执行正在读队列中的操作任务。其中,在该数据库初始化时,对该数据库创建正在读队列List<DatabaseReadTask>mReadingTaskList。
步骤314,若所述读等待队列中不存在比所述待迁移写任务的创建时间更早的至少一个等待读任务,将所述待迁移写任务迁移至所述数据库中设置的正在写队列,执行所述正在写队列的操作任务。
在本申请实施例提供的数据库操作方法中,通过判断写等待队列中是否存在至少一个等待写任务;若写等待队列中存在至少一个等待写任务,根据各等待写任务的创建时间,从写等待队列中取出待迁移写任务,待迁移写任务的创建时间最早;判断读等待队列中是否存在比待迁移写任务的创建时间更早的至少一个等待读任务;若读等待队列中存在比待迁移写任务的创建时间更早的至少一个等待读任务,将在读等待队列中比待迁移写任务的创建时间更早的至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务;将待迁移写任务放回写等待队列;将至少一个待迁移读任务迁移至数据库中设置的正在读队列,执行正在读队列中的操作任务。根据本申请实施例提供的数据库操作方法,在提取该待迁移写任务之后及将该待迁移写任务迁移至正在写队列并执行之前,还判断了待迁移写任务的创建时间和读等待队列中的操作任务的创建时间,在读等待队列中存在比待迁移写任务的创建时间更早的至少一个等待读任务时,先获取对应的至少一个待迁移读任务并迁移至正在读队列,并执行正在读队列中的操作任务。在提升读写效率的同时,也保证了对多个读写操作任务的执行合理性,进而也提升了读写操作任务对应的应用的响应效率。
请参考图4,其示出了本实施例提供的另一种数据库操作方法的流程图,该数据库操作方法可以应用于上文所述的实施环境中的终端102中。在上述图2所示实施例的基础上,所述方法还可以包括以下步骤:
步骤402,若写等待队列为空,判断读等待队列中是否存在至少一个等待读任务。
在本申请的一个实施例中,当判断该写等待队列中不存在操作任务时,表示可以执行优先级较低的读等待队列中的操作任务。此时,需要进一步的判断当前读等待队列中是否存在至少一个等待读任务。
步骤404,若读等待队列中存在至少一个等待读任务,根据各等待读任务的创建时间,按照时间顺序将至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务。
步骤406,将至少一个待迁移读任务至数据库中设置的正在读队列,执行正在读队列中的操作任务。
在本申请的一个实施例中,当读等待队列中存在至少一个等待读任务时,会按照每一个等待读任务的创建时间,依次将创建时间最早的等待读任务作为待迁移读任务并迁移至正在读队列中,并执行该正在读队列中的操作任务。
在本申请实施例提供的数据库操作方法中,在写等待队列为空时,通过判断读等待队列中是否存在至少一个等待读任务;若读等待队列中存在至少一个等待读任务;根据各等待读任务的创建时间,按照时间顺序将至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务;将至少一个待迁移读任务至数据库中设置的正在读队列,执行正在读队列中的操作任务。根据本申请实施例提供的数据库操作方法,通过先根据优先级确认写等待队列中没有操作任务,进而根据创建时间确定需要执行的等待读任务,可以在保证读写分离的同时,提升多个读写操作任务的执行合理性,进而也提升了读写操作任务对应的应用的响应效率。
本实施例还提供另一种数据库操作方法的流程图,该数据库操作方法可以应用于上文所述的实施环境中的终端102中。在上述图3及图4所示实施例的基础上,所述将所述至少一个待迁移读任务迁移至正在读队列的步骤,具体可以包括以下步骤:
若正在读队列中的读任务个数小于预设的同时读取阈值,根据各待迁移读任务的创建时间,按照时间顺序将各待迁移读任务迁移至正在读队列,直至读任务个数等于预设的同时读取阈值或各待迁移读任务已被全部迁移。
在本申请的一个实施例中,在对该数据库进行初始化时,会对该正在读队列设置一个同时读取阈值,该同时读取阈值用于指示在同一时间可以并发读取的读操作任务的个数,较优的,该同时读取阈值可以默认为5。
具体的,针对多个待迁移读任务,先获取该正在读队列中已有的操作任务的个数,若未达到该同时读取阈值,根据该多个待迁移读任务的创建时间,依次将创建时间较早的待迁移读任务迁移至正在读队列中,在达到该同时读取阈值时,停止迁移。每当该正在读队列中已有的操作任务的个数少于同时读取阈值时,将剩余的待迁移读任务迁移至正在读队列中,并执行正在读队列中的操作任务,直至该多个待迁移读任务均被迁移至正在读队列中,或者已被执行。
根据本申请实施例提供的数据库操作方法,通过设置正在读队列的同时读取阈值,可以在同一时间满足读任务类别的操作任务的同时读取操作,提升了读写效率。也可以通过调整同时读取阈值的大小进一步控制当前运行环境的读写效率及异常风险。
在上述实施例的基础上,通过实现读写分离的方案,使得对数据库的操作任务能够有序进行,极大的降低了异常发生概率,但是,由于物理设备的原因,依旧会有较小概率发生异常的情况,因此,请参考图5,其示出了本实施例提供的另一种数据库操作方法的流程图,该数据库操作方法可以应用于上文所述的实施环境中的终端102中。在上述图2所示实施例的基础上,所述方法还可以包括以下步骤:
步骤502,获取执行读等待队列及写等待队列中的操作任务时产生的异常信息,异常信息包括出现异常的操作任务及与出现异常的操作任务对应的异常类型。
在本申请的一个实施例中,为了解决数据库读写过程中产生的异常问题,需要在操作数据库出现异常时,对抛出的异常信息进行捕获。捕获到的异常信息包括了出现异常的操作任务及与出现异常的操作任务对应的异常类型。具体的,该异常类型可以包括:SQLiteFullException(数据库已满满或者磁盘容量已满引起的异常),SQLiteDiskIOException(当访问一个数据库文件的时候的IO异常),SQLiteOutOfMemoryException(访问数据库内存溢出导致的异常),SQLiteDatabaseLockedException(数据库处于锁定状态引起的异常)等。
步骤504,根据异常类型判断出现异常的操作任务是否可以重试。
在本申请的一个实施例中,设置允许重试的异常类型包括SQLiteDiskIOException(当访问一个数据库文件的时候的IO异常)、SQLiteOutOfMemoryException(访问数据库内存溢出导致的异常)、SQLiteDatabaseLockedException(数据库处于锁定状态引起的异常)。
步骤506,若判定可以重试,按照出现异常的操作任务携带的访问属性对应的重试次数,重新执行出现异常的操作任务。
在本申请的一个实施例中,在操作任务的创建时,会给操作任务设置对应的访问属性,该访问属性包括可以被重试的次数。当根据异常类型判断该出现异常的操作任务可以被重试时,会按照该出现异常的操作任务携带的访问属性对应的重试次数重新执行出现异常的操作任务。
具体的,若一个出现异常的操作任务对应的重试次数为3,对该操作任务进行重新执行时,在一个实施例中,可以同时设置3个相同的操作任务,例如,同时设置3个读操作任务,以使这3个读操作任务在正在读队列中同时对数据库进行访问操作。在另一个实施例中,可以先设置一个操作任务,并获取其执行情况,当重试成功时,停止重试操作;当重试失败时,继续重试操作,直至达到最大重试次数3。
在本申请实施例提供的数据库操作方法中,通过获取执行读等待队列及写等待队列中的操作任务时产生的异常信息,异常信息包括出现异常的操作任务及与出现异常的操作任务对应的异常类型;根据异常类型判断出现异常的操作任务是否可以重试;若判定可以重试,按照出现异常的操作任务携带的访问属性对应的重试次数,重新执行出现异常的操作任务。根据本申请实施例提供的数据库操作方法,通过针对异常类型设置可以被重试的异常类型,并根据出现异常的操作任务的重试次数,重新执行出现异常的操作任务,使得本申请在无需人工处理的情况下,自动对产生的异常进行处理,排除了因出现异常而导致的系统卡顿,应用崩溃等情况。
请参考图6,其示出了本实施例提供的另一种数据库操作方法的流程图,该数据库操作方法可以应用于上文所述的实施环境中的终端102中。在上述图5所示实施例的基础上,上述步骤506,还可以包括以下步骤:
步骤602,在根据重试次数重新执行出现异常的操作任务均失败后,获取出现异常的操作任务携带的访问属性对应的丢弃权限。
在本申请的一个实施例中,在操作任务的创建时,会给操作任务设置对应的访问属性,该访问属性还包括丢弃权限。该丢弃权限用于表示该操作任务是否可以被直接丢弃。具体的,只有在根据重试次数重新执行出现异常的操作任务均失败后,才会进一步的判断出现异常的操作任务是否允许被丢弃。
步骤604,根据丢弃权限判断出现异常的操作任务是否允许被丢弃。
步骤606,若丢弃权限为允许丢弃,放弃出现异常的操作任务。
步骤608,若丢弃权限为禁止丢弃,抛出异常信息,并发出告警提示,以使管理员对异常信息进行处理。
在本申请实施例提供的数据库操作方法中,通过在根据重试次数重新执行出现异常的操作任务均失败后,获取出现异常的操作任务携带的访问属性对应的丢弃权限;根据丢弃权限判断出现异常的操作任务是否允许被丢弃;若丢弃权限为允许丢弃,放弃出现异常的操作任务;若丢弃权限为禁止丢弃,抛出异常信息,并发出告警提示,以使管理员对异常信息进行处理。根据本申请实施例提供的数据库操作方法,通过对操作任务设置对应的丢弃权限,可以在出现无法避免的异常时,进一步判断对应的操作任务是否允许被丢弃,并在允许被丢弃的情况下丢弃该操作任务,降低了系统卡顿,应用崩溃的概率,并且,在不允许被丢弃的情况下,发出告警提示,提升了本申请在各个环境下的应用性。
请参考图7,其示出了本实施例提供的另一种数据库操作方法的流程图,该数据库操作方法可以应用于上文所述的实施环境中的终端102中。在上述图6所示实施例的基础上,上述步骤606,还可以包括以下步骤:
步骤702,获取操作任务的任务类型。
步骤704,若操作任务为读任务,则返回空数据。
步骤706,若操作任务为写任务,放弃对数据库的写入。
在本申请实施例提供的数据库操作方法中,通过获取操作任务的任务类型;若操作任务为读任务,则返回空数据;若操作任务为写任务,放弃对数据库的写入。根据本申请实施例提供的数据库操作方法,通过对不同任务类型的操作任务设置不同的丢弃方式,可以使得系统出现异常的概率进一步的减低。
请参考图8,其示出了本实施例提供的另一种数据库操作方法的流程图,该数据库操作方法可以应用于上文所述的实施环境中的终端102中,包括以下步骤:
步骤802,接收对数据库的多个操作任务,并记录各操作任务的任务类型;任务类型包括读任务及写任务。
步骤804,将读任务对应的操作任务存储至数据库中设置的读等待队列中,以及将写任务对应的操作任务存储至数据库中设置的写等待队列中。
步骤806,判断写等待队列中是否存在至少一个等待写任务,若是,执行步骤808,若否,执行步骤818。
步骤808,若写等待队列中存在至少一个等待写任务,根据各等待写任务的创建时间,从写等待队列中取出待迁移写任务,待迁移写任务的创建时间最早。
步骤810,判断读等待队列中是否存在比待迁移写任务的创建时间更早的至少一个等待读任务,若是,执行步骤814,若否,执行步骤812。
步骤812,将待迁移写任务迁移至数据库中设置的正在写队列,执行正在写队列中的操作任务。
步骤814,若存在,将在读等待队列中比待迁移写任务的创建时间更早的至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务。
步骤816,将待迁移写任务放回写等待队列。
步骤818,判断读等待队列中是否存在至少一个等待读任务,若是,执行步骤920,若否,流程结束。
步骤820,若读等待队列中存在至少一个等待读任务,根据各等待读任务的创建时间,按照时间顺序将至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务。
步骤822,将至少一个待迁移读任务迁移至数据库中设置的正在读队列,执行正在读队列中的操作任务。
根据本申请实施例提供的数据库操作方法,通过将对数据库的多个操作任务进行分类,将读任务对应的操作任务存储至读等待队列,将写任务对应的操作任务存储至写等待队列,并通过设置优先级的方式,将两种类型的操作任务分离开,实现了读写分离的机制,有效地避免了在对数据库同时进行读写操作时引起的卡顿问题,在提升读写效率的同时,也保证了对多个读写操作任务的执行合理性,进而也提升了读写操作任务对应的应用的响应效率。
应该理解的是,虽然上述流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参考图9,其示出了本申请实施例提供的一种数据库操作装置900的框图。如图9所示,所述数据库操作装置900可以包括:操作任务接收模块901、队列操作模块902及任务执行模块903,其中:
所述操作任务接收模块901,用于接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务。
所述队列操作模块902,用于将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中。
所述任务执行模块903,用于根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后。
在本申请的一个实施例中,所述任务执行模块903,具体用于:判断写等待队列中是否存在至少一个等待写任务;若写等待队列中存在至少一个等待写任务,根据各等待写任务的创建时间,从写等待队列中取出待迁移写任务,待迁移写任务的创建时间最早;判断读等待队列中是否存在比待迁移写任务的创建时间更早的至少一个等待读任务;若读等待队列中存在比待迁移写任务的创建时间更早的至少一个等待读任务,将在读等待队列中比待迁移写任务的创建时间更早的至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务;将待迁移写任务放回写等待队列;将至少一个待迁移读任务迁移至数据库中设置的正在读队列,执行正在读队列中的操作任务。
在本申请的一个实施例中,所述任务执行模块903,具体用于:若所述读等待队列中不存在比所述待迁移写任务的创建时间更早的至少一个等待读任务,将所述待迁移写任务迁移至所述数据库中设置的正在写队列,执行所述正在写队列的操作任务。
在本申请的一个实施例中,所述任务执行模块903,具体用于:若写等待队列为空,判断读等待队列中是否存在至少一个等待读任务;若读等待队列中存在至少一个等待读任务;根据各等待读任务的创建时间,按照时间顺序将至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务;将至少一个待迁移读任务至数据库中设置的正在读队列,执行正在读队列中的操作任务。
在本申请的一个实施例中,所述任务执行模块903,具体用于:若正在读队列中的读任务个数小于预设的同时读取阈值,根据各待迁移读任务的创建时间,按照时间顺序将各待迁移读任务迁移至正在读队列,直至读任务个数等于预设的同时读取阈值或各待迁移读任务已被全部迁移。
请参考图10,其示出了本申请实施例提供的一种数据库操作装置1000的框图。如图10所示,所述数据库操作装置1000除了包括数据库操作装置900包括的各模块外,可选的,还可以包括:异常处理模块904。其中:
所述异常处理模块904用于,获取执行读等待队列及写等待队列中的操作任务时产生的异常信息,异常信息包括出现异常的操作任务及与出现异常的操作任务对应的异常类型;根据异常类型判断出现异常的操作任务是否可以重试;若判定可以重试,按照出现异常的操作任务携带的访问属性对应的重试次数,重新执行出现异常的操作任务。
在本申请的一个实施例中,所述异常处理模块904,具体用于:在根据重试次数重新执行出现异常的操作任务均失败后,获取出现异常的操作任务携带的访问属性对应的丢弃权限;根据丢弃权限判断出现异常的操作任务是否允许被丢弃;若丢弃权限为允许丢弃,放弃出现异常的操作任务;若丢弃权限为禁止丢弃,抛出异常信息,并发出告警提示,以使管理员对异常信息进行处理。
在本申请的一个实施例中,所述异常处理模块904,具体用于:获取所述操作任务的任务类型;若所述操作任务为读任务,则返回空数据;若所述操作任务为写任务,放弃对所述数据库的写入。
关于数据库操作装置的具体限定可以参见上文中对于数据库操作方法的限定,在此不再赘述。上述数据库操作装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图11所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据库操作方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图11中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;
将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;
根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;
将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;
根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据库操作方法,其特征在于,所述方法包括:
接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;所述写任务为所述数据库中数据的新增,更改,删除操作;
将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;
根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后;
获取执行所述读等待队列及所述写等待队列中的操作任务时产生的异常信息,所述异常信息包括出现异常的操作任务及与出现异常的操作任务对应的异常类型;
根据所述异常类型判断所述出现异常的操作任务是否可以重试;
若判定可以重试,按照所述出现异常的操作任务携带的访问属性对应的重试次数,重新执行所述出现异常的操作任务。
2.根据权利要求1所述的方法,其特征在于,根据所述读等待队列和所述写等待队列的中各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后,包括:
判断所述写等待队列中是否存在至少一个等待写任务;
若所述写等待队列中存在至少一个等待写任务,根据各所述等待写任务的创建时间,从所述写等待队列中取出待迁移写任务,所述待迁移写任务的创建时间最早;
判断所述读等待队列中是否存在比所述待迁移写任务的创建时间更早的至少一个等待读任务;
若所述读等待队列中存在比所述待迁移写任务的创建时间更早的至少一个等待读任务,将在所述读等待队列中比所述待迁移写任务的创建时间更早的至少一个等待读任务作为待迁移读任务,获得至少一个待迁移读任务;
将所述待迁移写任务放回所述写等待队列;
将所述至少一个待迁移读任务迁移至所述数据库中设置的正在读队列,执行所述正在读队列中的操作任务。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述读等待队列中不存在比所述待迁移写任务的创建时间更早的至少一个等待读任务,将所述待迁移写任务迁移至所述数据库中设置的正在写队列,执行所述正在写队列的操作任务。
4.根据权利要求2所述的方法,其特征在于,所述方法包括:
若所述写等待队列为空,判断所述读等待队列中是否存在至少一个等待读任务;
若所述读等待队列中存在至少一个等待读任务,根据各所述等待读任务的创建时间,按照时间顺序将至少一个所述等待读任务作为待迁移读任务,获得至少一个待迁移读任务;
将所述至少一个待迁移读任务迁移至所述数据库中设置的正在读队列,执行所述正在读队列中的操作任务。
5.根据权利要求2或4任意一项所述的方法,其特征在于,所述将所述至少一个待迁移读任务迁移至正在读队列,包括:
若所述正在读队列中的读任务个数小于预设的同时读取阈值,根据各所述待迁移读任务的创建时间,按照时间顺序将各所述待迁移读任务迁移至正在读队列,直至所述读任务个数等于预设的同时读取阈值或各所述待迁移读任务已被全部迁移。
6.根据权利要求1所述的方法,其特征在于,所述按照所述出现异常的操作任务携带的访问属性对应的重试次数,重新执行所述出现异常的操作任务,包括:
在根据所述重试次数重新执行所述出现异常的操作任务均失败后,获取所述出现异常的操作任务携带的访问属性对应的丢弃权限;
根据所述丢弃权限判断所述出现异常的操作任务是否允许被丢弃;
若所述丢弃权限为允许丢弃,放弃所述出现异常的操作任务;
若所述丢弃权限为禁止丢弃,抛出所述异常信息,并发出告警提示,以使管理员对所述异常信息进行处理。
7.根据权利要求6所述的方法,其特征在于,所述若所述丢弃权限为允许丢弃,放弃所述操作任务,包括:
获取所述操作任务的任务类型;
若所述操作任务为读任务,则返回空数据;
若所述操作任务为写任务,放弃对所述数据库的写入。
8.一种数据库操作装置,其特征在于,所述装置包括:
操作任务接收模块,用于接收对数据库的多个操作任务,并记录各所述操作任务的任务类型及创建时间;所述任务类型包括读任务及写任务;所述写任务为所述数据库中数据的新增,更改,删除操作;
队列操作模块,用于将所述读任务对应的操作任务存储至所述数据库中设置的读等待队列中,以及将所述写任务对应的操作任务存储至所述数据库中设置的写等待队列中;
任务执行模块,用于根据所述读等待队列和所述写等待队列中的各所述操作任务的创建时间,分别执行所述读等待队列及所述写等待队列中的操作任务,其中,所述写等待队列中的操作任务执行在所述读等待队列中的操作任务执行之前或之后;
获取模块,用于获取执行所述读等待队列及所述写等待队列中的操作任务时产生的异常信息,所述异常信息包括出现异常的操作任务及与出现异常的操作任务对应的异常类型;
判断模块,用于根据所述异常类型判断所述出现异常的操作任务是否可以重试;
重试模块,用于若判定可以重试,按照所述出现异常的操作任务携带的访问属性对应的重试次数,重新执行所述出现异常的操作任务。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910767709.7A CN110674167B (zh) | 2019-08-20 | 2019-08-20 | 数据库操作方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910767709.7A CN110674167B (zh) | 2019-08-20 | 2019-08-20 | 数据库操作方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110674167A CN110674167A (zh) | 2020-01-10 |
CN110674167B true CN110674167B (zh) | 2022-08-16 |
Family
ID=69076356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910767709.7A Active CN110674167B (zh) | 2019-08-20 | 2019-08-20 | 数据库操作方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674167B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112800026B (zh) * | 2021-01-18 | 2024-02-06 | 中国银联股份有限公司 | 一种数据转移节点、方法、系统及计算机可读存储介质 |
CN112883124B (zh) * | 2021-03-17 | 2022-12-02 | 重庆紫光华山智安科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591964A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 数据读写分离机制的实现方法和装置 |
CN105512244A (zh) * | 2015-11-30 | 2016-04-20 | 北京京东尚科信息技术有限公司 | 基于消息队列实现数据库事务处理的方法及装置 |
CN105763595A (zh) * | 2015-12-23 | 2016-07-13 | 杭州赫智电子科技有限公司 | 一种提高数据处理效率的方法及服务器 |
CN106649857A (zh) * | 2016-12-30 | 2017-05-10 | 北京恒华伟业科技股份有限公司 | 一种基于读写分离的数据库操作方法及装置 |
CN107688607A (zh) * | 2017-07-26 | 2018-02-13 | 努比亚技术有限公司 | 一种数据库访问的方法及移动终端、计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10223032B2 (en) * | 2017-04-28 | 2019-03-05 | International Business Machines Corporation | Queue control for shared memory access |
-
2019
- 2019-08-20 CN CN201910767709.7A patent/CN110674167B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591964A (zh) * | 2011-12-30 | 2012-07-18 | 北京新媒传信科技有限公司 | 数据读写分离机制的实现方法和装置 |
CN105512244A (zh) * | 2015-11-30 | 2016-04-20 | 北京京东尚科信息技术有限公司 | 基于消息队列实现数据库事务处理的方法及装置 |
CN105763595A (zh) * | 2015-12-23 | 2016-07-13 | 杭州赫智电子科技有限公司 | 一种提高数据处理效率的方法及服务器 |
CN106649857A (zh) * | 2016-12-30 | 2017-05-10 | 北京恒华伟业科技股份有限公司 | 一种基于读写分离的数据库操作方法及装置 |
CN107688607A (zh) * | 2017-07-26 | 2018-02-13 | 努比亚技术有限公司 | 一种数据库访问的方法及移动终端、计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110674167A (zh) | 2020-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI554875B (zh) | 基於資源存取模式預測、診斷應用程式故障並從應用程式故障恢復 | |
US8751740B1 (en) | Systems, methods, and computer readable media for performance optimization of storage allocation to virtual logical units | |
US10545913B1 (en) | Data storage system with on-demand recovery of file import metadata during file system migration | |
CN110674167B (zh) | 数据库操作方法、装置、计算机设备和存储介质 | |
US20150186059A1 (en) | Memory management program, memory management method, and memory management device | |
CN115408411A (zh) | 数据写入方法、装置、电子设备及存储介质 | |
CN108628760B (zh) | 原子写命令的方法与装置 | |
US20170068603A1 (en) | Information processing method and information processing apparatus | |
CN114138838A (zh) | 数据处理方法及装置、设备和介质 | |
CN111966531B (zh) | 数据快照方法、装置、计算机设备及存储介质 | |
CN108628761B (zh) | 原子命令执行方法与装置 | |
CN117131014A (zh) | 数据库迁移方法、装置、设备及存储介质 | |
US20180210664A1 (en) | System and method for managing a storage system | |
CN111966701A (zh) | 一种元数据更新方法、装置、设备及存储介质 | |
US10599530B2 (en) | Method and apparatus for recovering in-memory data processing system | |
JP2016095638A (ja) | トランザクション処理装置、トラザクション処理方法、及びプログラム | |
US11132351B2 (en) | Executing transactions based on success or failure of the transactions | |
US10761892B2 (en) | Method and electronic device for executing data reading/writing in volume migration | |
US9430338B2 (en) | Method and computing device for recording log entries | |
US8984336B1 (en) | Systems and methods for performing first failure data captures | |
CN115454570A (zh) | 灾备方法、灾备恢复方法、虚拟机系统、设备及存储介质 | |
EP3070610B1 (en) | Information processing device, control method thereof, and recording medium | |
CN113094294B (zh) | Ssd异常掉电处理方法、装置、计算机设备及存储介质 | |
CN110383248A (zh) | 控制多核处理器的方法和相关计算机 | |
US11281407B1 (en) | Verified write command in active-active replication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |