CN107239237A - 数据写入方法及装置和电子设备 - Google Patents

数据写入方法及装置和电子设备 Download PDF

Info

Publication number
CN107239237A
CN107239237A CN201710505904.3A CN201710505904A CN107239237A CN 107239237 A CN107239237 A CN 107239237A CN 201710505904 A CN201710505904 A CN 201710505904A CN 107239237 A CN107239237 A CN 107239237A
Authority
CN
China
Prior art keywords
data
wall scroll
queue
buffer queue
batch
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.)
Pending
Application number
CN201710505904.3A
Other languages
English (en)
Inventor
贾新禹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710505904.3A priority Critical patent/CN107239237A/zh
Publication of CN107239237A publication Critical patent/CN107239237A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices

Abstract

本申请提供一种数据写入方法及装置,所述方法包括:获取用户通过单条数据接口提交的单条数据;将所述单条数据添加到缓存队列;在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。应用本申请实施例,可以提高数据写入效率。

Description

数据写入方法及装置和电子设备
技术领域
本申请涉及数据存储技术领域,尤其涉及一种数据写入方法及装置和电子设备。
背景技术
随着互联网的不断发展,使用互联网的用户越来越大,随之而来生成的数据也呈指数增长。
在一些需要人为写入数据的场景中如搜索引擎、消息队列,也出现了需要写入海量数据的情况。面对海量数据,传统的单条数据写入方式由于效率较低通常都被批量数据写入方式所替代。
然而,现有的批量数据写入存在用户操作复杂的问题。
发明内容
本申请提供的一种数据写入方法及装置,以解决现有技术中存在的批量数据写入操作复杂的问题。
根据本申请实施例提供的一种数据写入方法,所述方法包括:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。
根据本申请实施例提供的一种数据写入方法,所述方法包括:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量写入到存储设备。
根据本申请实施例提供的一种数据写入方法,所述方法包括:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据写入到存储设备;
在事件监听器触发设定指令的情况下,将所述数据队列中未写入到存储设备的数据批量写入到所述存储设备。
根据本申请实施例提供的一种数据写入方法,所述方法包括:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据发送到服务端;
在事件监听器触发设定指令的情况下,将所述数据队列中未发送到服务端的数据批量发送到所述服务端。
根据本申请实施例提供的一种数据写入装置,所述装置包括:
获取数据单元,获取用户通过单条数据接口提交的单条数据;
添加数据单元,将所述单条数据添加到缓存队列;
发送数据单元,在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。
根据本申请实施例提供的一种数据写入装置,所述装置包括:
获取数据单元,获取用户通过单条数据接口提交的单条数据;
添加数据单元,将所述单条数据添加到缓存队列;
写入数据单元,在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量写入到存储设备。
根据本申请实施例提供的一种数据写入装置,所述装置包括:
获取数据单元,获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
写入数据单元,将所述数据队列中的数据写入到存储设备;
异常处理单元,在事件监听器触发设定指令的情况下,将所述数据队列中未写入到存储设备的数据批量写入到所述存储设备。
根据本申请实施例提供的一种数据写入装置,所述装置包括:
获取数据单元,获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
发送数据单元,将所述数据队列中的数据发送到服务端;
异常处理单元,在事件监听器触发设定指令的情况下,将所述数据队列中未发送到服务端的数据批量发送到所述服务端。
根据本申请实施例提供的一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。
根据本申请实施例提供的一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量写入到存储设备。
根据本申请实施例提供的一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据写入到存储设备;
在事件监听器触发设定指令的情况下,将所述数据队列中未写入到存储设备的数据批量写入到所述存储设备。
根据本申请实施例提供的一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据发送到服务端;
在事件监听器触发设定指令的情况下,将所述数据队列中未发送到服务端的数据批量发送到所述服务端。
本申请实施例中,通过将用户提交的单条数据添加到缓存队列中,并通过设置控制器来触发设定指令,该设定指令用于将缓存队列中所有单条数据发送到服务端或者写入到本地存储设备。如此,可以将用户单条数据写入转换为自动批量数据写入。对于用户而言,虽然依然使用单条数据接口提交数据,但其实最终是一种批量数据写入的方式,这样就提高了数据写入效率;而且用户并不感知批量数据写入过程,也无需在批量数据写入过程中进行操作。相对于现有的单条数据写入方式,应用本实施例可以提高数据写入效率;相对于现有的批量数据写入方式,应用本实施例,用户无需除了提交单条数据的操作,无需进行其它额外操作,简化了用户操作,提高了用户体验。
附图说明
图1是本申请一实施例提供的数据写入方法的流程图;
图2是本申请一实施例提供的客户端内部模块示意图;
图3是本申请一实施例提供的数据写入方法的流程图;
图4是本申请一实施例提供的数据写入方法的流程图;
图5是本申请一实施例提供的数据写入方法的流程图;
图6是本申请一实施例提供的数据写入装置的模块示意图;
图7是本申请一实施例提供的数据写入装置的模块示意图;
图8是本申请一实施例提供的数据写入装置的模块示意图;
图9是本申请一实施例提供的数据写入装置的模块示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如前所述,现有的批量数据写入方式,提供用户一个批量数据接口,用户通过该批量数据接口主动进行批量数据写入操作。这里的批量数据写入操作对于用户来说比较复杂。
例如,在进行批量数据写入过程中,数据写入系统如果发送异常如关闭,则用户需要手动将剩余未写入的数据发送。
另一方面,对于搜索引擎、消息队列这类场景,待写入的数据具有很高的时效性,这样就要求用户实时关注待写入数据的时效性,如果某个数据超过了预设时长,即不具有时效性,该数据就无法写入或者写入后会导致系统异常。对于不具有时效性的数据,用户必须将其从批量数据中找到并取回。
现有的批量数据写入操作过于复杂,有些用户宁可使用传统的单条数据写入方式,从而影响数据写入的效率。
为了解决上述问题,请参见图1,为本申请一实施例提供的数据写入方法的流程图,所述方法包括以下步骤:
步骤110:获取用户通过单条数据接口提交的单条数据。
一般的,对于业务系统来说,数据通常都是存储在服务端的;而用户可以使用客户端与该服务端进行数据交互从而实现业务往来。在本实施例中,用于进行数据写入的系统也可以包括服务端以及至少一个的客户端。具体地,用户可以在客户端进行数据写入操作,并通过该客户端将需要写入的数据发送给服务端,由服务端写入到存储设备。
数据写入系统通过提供客户端单条数据接口,如此,用户可以在客户端上通过单条数据接口一条一条的递交单条数据。可以理解的,对于用户来说,依然使用的是一种单条数据写入方式。
步骤120:将所述单条数据添加到缓存队列。
但是,客户端在接收到用户提交的单条数据之后,并不是如现有技术那样直接将该单条数据发送给服务端,从而完成一次单条数据写入过程;而是,将所述单条数据添加到缓存队列中。
所述缓存队列用于缓存用户提交的单条数据。在控制器未触发设定指令时,只要客户端获取到用户提交的单条数据,就可以持续添加到缓存队列中。
步骤130:在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。
以下结合图2所示客户端内部模块示意图,可以包括处理器、缓存队列、批量发送器、定时器和事件监听器,这些模块可以理解成客户端内部用于执行不同功能的软件模块。
处理器获取用户通过单条数据接口提交的单条数据;
所述处理器将所述单条数据添加到缓存队列;
在处理器、定时器或事件监听器触发设定指令的情况下,所述批量发送器将所述缓存队列中所有单条数据批量发送到服务端。
在一种方式中:
所述控制器可以包括定时器,其中,所述定时器在到达定时周期的情况下,触发设定指令。
如前所述,待写入的数据通常有着非常高的时效性要求;因此,本实施例通过设置定时器,并且该定时器设定一个定时周期,在定时器计时到达该定时周期后,就可以触发设定指令。从而可以控制批量发送器周期性的将缓存队列中的数据发送给服务端,也就是说,在队列中第一条数据写入后,必定到达定时周期发送出去,避免第一条数据过期。
所述定时器设定的定时周期可以是数据最大忍耐时长例如100毫秒;当然设定的定时周期可以根据实际需要灵活设定。
通过设置定时器,可以免去用户人为关注数据时效性的问题;用户只需提交数据即可,简化操作,提高数据写入效率,用户体验较好。
在另一种方式中:
所述控制器可以包括事件监听器;其中,所述事件监听器在监测到数据写入程序关闭的情况下,触发设定指令。
如前所述,在批量数据写入过程中,如果数据写入程序异常关闭(例如程序被终止),数据队列中未发送的数据必须要用户人为进行操作,将未发送的数据发送给服务端。
本实施例中,通过设置事件监听器,该事件监听器用于监测数据写入程序是否关闭,只要监测到数据写入关闭(包括异常关闭以及正常关闭),就可以触发设定指令。也就是说,只要数据写入程序关闭,事件监听器就可以控制批量发送器将缓存队列中未发送的单条数据再次批量发送给服务端,而无需用户介入操作。所述事件监听器可以包括例如系统钩子(SystemHook)。
所述步骤130中,将所述缓存队列中所有单条数据批量发送到服务端,具体可以包括:
对所述缓存队列中所有单条数据序列化处理;
将序列化后的数据发送到服务端。
该实施例中,所述序列化(Serialization)是一种将数据的状态信息转换为可以存储或者传输形式的过程。也就是说,数据如果需要进行存储或者传输,需要预先进行序列化。
通过本实施例,将用户提交的单条数据添加到缓存队列中,并通过设置控制器来触发设定指令,该设定指令可以用于发送缓存队列中所有单条数据。如此,可以将用户单条数据写入转换为自动批量数据写入。对于用户而言,虽然依然使用单条数据接口提交数据,但其实最终是一种批量数据写入的方式,这样就提高了数据写入效率;而且用户并不感知批量数据写入过程,也无需在数据写入过程中进行操作。相对于现有的单条数据写入方式,应用本实施例可以提高数据写入效率;相对于现有的批量数据写入方式,应用本实施例,用户无需除了提交单条数据的操作,无需进行其它额外操作,简化了用户操作,提高了用户体验。
在本申请的一个具体实施例中,所述将所述缓存队列中所有单条数据批量发送到服务端,具体可以包括:
对所述缓存队列中所有单条数据序列化处理;
将序列化后的数据缓存到内存,清空所述数据队列;
将缓存在内存中的所述序列化的数据发送到服务端。
本实施例中,实际应用时,在序列化处理过程中,可以将当前状态的数据写入到临时存储区域如内存中。之后,可以从内存中读取或反序列化数据的状态信息,重新创建出该数据。
所述内存设有内存上限;其中,在所述内存中数据量达到所述内存上限的情况下,阻塞写入所述内存的数据。
本实施例与上一实施例不同之处在于,本实施例先将缓存队列中单条数据缓存到内存中,并清空缓存队列。及时清空数据队列可以避免由于等待缓存队列中数据发送而导致无法添加新获取的单条数据,可以及时添加用户新提交的单条数据,从而可以提高数据写入效率。
在图1所示实施例基础上,在一个具体地实施例中,所述步骤120之前,所述方法还可以包括:
判断缓存队列是否已满;
所述步骤120,具体可以包括:
在所述缓存队列未满的情况下,将所述单条数据添加到缓存队列。
在所述缓存队列已满的情况下,触发设定指令。
在实际应用中,缓存队列通常设置有一个队列上限,当缓存队列中数据量达到该队列上限后,缓存队列就没有空间存放新的数据。为此,如图2所示,处理器在获取到用户通过单条数据接口提交的单条数据之后,可以判断缓存队列是否已满,例如判断该缓存队列中缓存的数据量是否到达队列上限;如果到达队列上限,则说明该缓存队列已满,此时缓存队列中无法添加新的单条数据,需要等待该缓存队列清空后才能进行添加;等待过程中,处理器由于判断得出缓存队列已满,因此可以触发设定指令,控制批量发送器执行步骤130;如果未到达队列上限,则说明该缓存队列未满,处理器可以将所述单条数据添加到缓存队列。
请参见图3,为本申请一实施例提供的数据写入方法的流程图,所述方法包括以下步骤:
步骤310:获取用户通过单条数据接口提交的单条数据。
该步骤与前述实施例中步骤110类似,此处不再赘述。
步骤320:将所述单条数据添加到缓存队列。
该步骤与前述实施例中步骤110类似,此处不再赘述。
步骤330:在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量写入到存储设备。
与前述实施例类似的,所述控制器包括定时器;其中,所述定时器设置有定时周期,所述定时器周期性地触发所述设定指令。
所述控制器包括事件监听器;其中,所述事件监听器在监测到数据写入程序关闭的情况下,触发设定指令。
第一种方式中:
所述将所述缓存队列中所有单条数据批量写入到存储设备,具体包括:
对所述缓存队列中所有单条数据序列化处理;
将串行化后的数据写入到存储设备。
第二种方式中:
所述将所述缓存队列中所有单条数据批量写入到存储设备,具体包括:
对所述缓存队列中所有单条数据序列化处理;
将序列化后的数据缓存到内存,清空所述数据队列;
将缓存在内存中的所述序列化的数据写入到存储设备。
该方式中,所述内存设有内存上限;其中,在所述内存中数据量达到所述内存上限的情况下,阻塞写入所述内存的数据。
本实施例中,执行主体可以仅是前述的客户端,也可以仅是服务端。例如,用户可以直接在服务端上操作,提交单条数据;这样,对于服务端来说,最终将缓存队列中所有单条数据批量写入到本地的存储设备。
再例如,对于分布式系统中,每一台客户端都可以视为服务端集群下的一个子服务端。这样,用户就可以在客户端操作,提交单条数据,并最终将缓存队列中所有单条数据批量写入到本地的存储设备,而无需发送给服务端。
由于图3所示实施例与图1所示实施例区别仅在于步骤330中将所述缓存队列中所述单条数据批量写入待存储设备而不是发送给服务端,因此本实施例以及其它相关步骤可以参考前述实施例中相应说明。
在图3所示实施例的基础上,在所述步骤320之前,所述方法可以包括:
判断缓存队列是否已满;
所述步骤320,具体可以包括:
在所述缓存队列未满的情况下,将所接收的单条数据添加到缓存队列。
在所述缓存队列已满的情况下,触发设定指令。
请参见图4,为本申请一实施例提供的数据写入方法的流程图,所述方法包括以下步骤:
步骤410:获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
步骤420:将所述数据队列中的数据写入到存储设备;
步骤430:在事件监听器触发设定指令的情况下,将所述数据队列中未写入到存储设备的数据批量写入到所述存储设备。
前述实施例均是向用户提供单条数据接口,本实施例中用户可以通过与现有相同的批量数据接口批量提交数据,即以数据队列的形式,该数据队列中包括了用户提交的至少一条的单条数据。
和图3所示实施例相同的场景,即数据最终是写入到本地的。
为了解决现有批量数据写入方式中,在批量数据写入过程中,如果数据写入程序异常关闭(例如程序被终止),数据队列中未写入的数据必须要用户人为进行操作,将未写入的数据继续写入存储设备。本实施例中,通过设置事件监听器,该事件监听器用于监测数据写入程序是否关闭,只要监测到数据写入关闭(包括异常关闭以及正常关闭),就可以触发设定指令。也就是说,只要数据写入程序关闭,事件监听器就可以控制批量发送器将缓存队列中未发送的单条数据再次批量写入存储设备,而无需用户介入操作。所述事件监听器可以包括例如系统钩子(SystemHook)。
请参见图5,为本申请一实施例提供的数据写入方法的流程图,所述方法包括以下步骤:
步骤510:获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
步骤520:将所述数据队列中的数据发送到服务端;
步骤530:在事件监听器触发设定指令的情况下,将所述数据队列中未发送到服务端的数据批量发送到所述服务端。
前述实施例均是向用户提供单条数据接口,本实施例中用户可以通过与现有相同的批量数据接口批量提交数据,即以数据队列的形式,该数据队列中包括了用户提交的至少一条的单条数据。
和图1所示实施例相同的系统架构,即客户端-服务端架构,客户端需要将数据队列中的数据发送到服务端,由服务端写入存储设备。
为了解决现有批量数据写入方式中,在批量数据发送过程中,如果数据写入程序异常关闭(例如程序被终止),数据队列中未发送的数据必须要用户人为进行操作,将未发送的数据继续发送给服务端。本实施例中,通过设置事件监听器,该事件监听器用于监测数据写入程序是否关闭,只要监测到数据写入关闭(包括异常关闭以及正常关闭),就可以触发设定指令。也就是说,只要数据写入程序关闭,事件监听器就可以控制批量发送器将数据队列中未发送的单条数据再次批量发送给服务端,而无需用户介入操作。所述事件监听器可以包括例如系统钩子(SystemHook)。
与前述图1所述的数据写入方法实施例相对应,本申请还提供了一种数据写入装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本申请数据写入装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该数据写入实际功能,还可以包括其他硬件,对此不再赘述。
参见图6,为本申请一实施例提供的数据写入装置的模块图,所述装置包括:获取数据单元610、添加数据单元620和发送数据单元630。
其中,获取数据单元610,获取用户通过单条数据接口提交的单条数据;
添加数据单元620,将所述单条数据添加到缓存队列;
发送数据单元630,在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。
在一个可选的实施例中:
在所述添加数据单元620之前,所述装置还包括:
判断子单元,判断缓存队列是否已满;
所述添加数据单元620,具体包括:
在所述缓存队列未满的情况下,将所述单条数据添加到缓存队列。
在一个可选的实施例中:
所述装置还包括:
触发指令子单元,在所述缓存队列已满的情况下,触发设定指令。
在一个可选的实施例中:
所述控制器包括定时器;其中,所述定时器在到达定时周期的情况下,触发设定指令。
在一个可选的实施例中:
所述控制器包括事件监听器;其中,所述事件监听器在监测到数据写入程序关闭的情况下,触发设定指令。
在一个可选的实施例中:
所述发送数据单元630,具体包括:
序列化子单元,在控制器触发设定指令的情况下,对所述缓存队列中所有单条数据序列化处理;
发送子单元,将序列化后的数据发送到服务端。
在一个可选的实施例中:
所述发送数据单元630,具体包括:
序列化子单元,在控制器触发设定指令的情况下,对所述缓存队列中所有单条数据序列化处理;
处理子单元,将序列化后的数据缓存到内存,清空所述数据队列;
发送子单元,将缓存在内存中的所述序列化的数据发送到服务端。
在一个可选的实施例中:
所述内存设有内存上限;其中,在所述内存中数据量达到所述内存上限的情况下,阻塞写入所述内存的数据。
与前述图3所述的数据采集方法实施例相对应,本申请还提供了一种数据采集装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本申请数据写入装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该数据写入实际功能,还可以包括其他硬件,对此不再赘述。
参见图7,为本申请一实施例提供的数据采集装置的模块图,所述装置包括:获取数据单元710、添加数据单元720和发送数据单元730。
其中,获取数据单元710,获取用户通过单条数据接口提交的单条数据;
添加数据单元720,将所述单条数据添加到缓存队列;
写入数据单元730,在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量写入到存储设备。
在一个可选的实施例中:
在所述添加数据单元720之前,所述装置还包括:
判断子单元,判断缓存队列是否已满;
所述添加数据单元720,具体包括:
在所述缓存队列未满的情况下,将所述单条数据添加到缓存队列。
在一个可选的实施例中:
所述装置还包括:
触发指令子单元,在所述缓存队列已满的情况下,触发设定指令。
在一个可选的实施例中:
所述控制器包括定时器;其中,所述定时器在到达定时周期的情况下,触发设定指令。
在一个可选的实施例中:
所述控制器包括事件监听器;其中,所述事件监听器在监测到数据写入程序关闭的情况下,触发设定指令。
在一个可选的实施例中:
所述写入数据单元730,具体包括:
序列化子单元,在控制器触发设定指令的情况下,对所述缓存队列中所有单条数据序列化处理;
写入子单元,将序列化后的数据写入到存储设备。
在一个可选的实施例中:
所述写入数据单元730,具体包括:
序列化子单元,在控制器触发设定指令的情况下,对所述缓存队列中所有单条数据序列化处理;
处理子单元,将序列化后的数据缓存到内存,清空所述数据队列;
写入子单元,将缓存在内存中的所述序列化的数据写入到存储设备。
在一个可选的实施例中:
所述内存设有内存上限;其中,在所述内存中数据量达到所述内存上限的情况下,阻塞写入所述内存的数据。
与前述图4所述的数据采集方法实施例相对应,本申请还提供了一种数据采集装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本申请数据写入装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该数据写入实际功能,还可以包括其他硬件,对此不再赘述。
参见图8,为本申请一实施例提供的数据采集装置的模块图,所述装置包括:获取数据单元810、写入数据单元820和异常处理单元830。
其中,获取数据单元810,获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
写入数据单元820,将所述数据队列中的数据写入到存储设备;
异常处理单元830,在事件监听器触发设定指令的情况下,将所述数据队列中未写入到存储设备的数据批量写入到所述存储设备。
与前述图5所述的数据采集方法实施例相对应,本申请还提供了一种数据采集装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,本申请数据写入装置所在设备的一种硬件结构可以包括处理器、网络接口、内存以及非易失性存储器之外,实施例中装置所在的设备通常根据该数据写入实际功能,还可以包括其他硬件,对此不再赘述。
参见图9,为本申请一实施例提供的数据采集装置的模块图,所述装置包括:获取数据单元910、发送数据单元920和异常处理单元930。
其中,获取数据单元810,获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
发送数据单元820,将所述数据队列中的数据发送到服务端;
异常处理单元830,在事件监听器触发设定指令的情况下,将所述数据队列中未发送到服务端的数据批量发送到所述服务端。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上图6描述了数据写入装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。
类似的,以上图7描述了数据采集装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量写入到存储设备。
类似的,以上图8描述了数据采集装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据写入到存储设备;
在事件监听器触发设定指令的情况下,将所述数据队列中未写入到存储设备的数据批量写入到所述存储设备。
类似的,以上图9描述了数据采集装置的内部功能模块和结构示意,其实质上的执行主体可以为一种电子设备,包括:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据发送到服务端;
在事件监听器触发设定指令的情况下,将所述数据队列中未发送到服务端的数据批量发送到所述服务端。
在上述电子设备的实施例中,应理解,该处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,而前述的存储器可以是只读存储器(英文:read-only memory,缩写:ROM)、随机存取存储器(英文:random access memory,简称:RAM)、快闪存储器、硬盘或者固态硬盘。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (26)

1.一种数据写入方法,所述方法包括:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。
2.根据权利要求1所述的方法,在所述将所述单条数据添加到缓存队列之前,所述方法还包括:
判断缓存队列是否已满;
所述将所述单条数据添加到缓存队列,具体包括:
在所述缓存队列未满的情况下,将所述单条数据添加到缓存队列。
3.根据权利要求2所述的方法,所述方法还包括:
在所述缓存队列已满的情况下,触发设定指令。
4.根据权利要求1所述的方法,所述控制器包括定时器;其中,所述定时器在到达定时周期的情况下,触发设定指令。
5.根据权利要求1所述的方法,所述控制器包括事件监听器;其中,所述事件监听器在监测到数据写入程序关闭的情况下,触发设定指令。
6.根据权利要求1所述的方法,所述将所述缓存队列中所有单条数据批量发送到服务端,具体包括:
对所述缓存队列中所有单条数据序列化处理;
将序列化后的数据发送到服务端。
7.根据权利要求1所述的方法,所述将所述缓存队列中所有单条数据批量发送到服务端,具体包括:
对所述缓存队列中所有单条数据序列化处理;
将序列化后的数据缓存到内存,清空所述数据队列;
将缓存在内存中的所述序列化的数据发送到服务端。
8.根据权利要求7所述的方法,所述内存设有内存上限;其中,在所述内存中数据量达到所述内存上限的情况下,阻塞写入所述内存的数据。
9.一种数据写入方法,所述方法包括:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量写入到存储设备。
10.根据权利要求9所述的方法,在所述将所述单条数据添加到缓存队列之前,所述方法还包括:
判断缓存队列是否已满;
所述将所述单条数据添加到缓存队列,具体包括:
在所述缓存队列未满的情况下,将所接收的单条数据添加到缓存队列。
11.根据权利要求10所述的方法,所述方法还包括:
在所述缓存队列已满的情况下,触发设定的指令。
12.根据权利要求9所述的方法,所述控制器包括定时器;其中,所述定时器设置有定时周期,所述定时器周期性地触发所述设定指令。
13.根据权利要求9所述的方法,所述控制器包括事件监听器;其中,所述事件监听器在监测到数据写入程序关闭的情况下,触发设定指令。
14.根据权利要求9所述的方法,所述将所述缓存队列中所有单条数据批量写入到存储设备,具体包括:
对所述缓存队列中所有单条数据序列化处理;
将串行化后的数据写入到存储设备。
15.根据权利要求9所述的方法,所述将所述缓存队列中所有单条数据批量写入到存储设备,具体包括:
对所述缓存队列中所有单条数据序列化处理;
将序列化后的数据缓存到内存,清空所述数据队列;
将缓存在内存中的所述序列化的数据写入到存储设备。
16.根据权利要求15所述的方法,所述内存设有内存上限;其中,在所述内存中数据量达到所述内存上限的情况下,阻塞写入所述内存的数据。
17.一种数据写入方法,所述方法包括:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据写入到存储设备;
在事件监听器触发设定指令的情况下,将所述数据队列中未写入到存储设备的数据批量写入到所述存储设备。
18.一种数据写入方法,所述方法包括:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据发送到服务端;
在事件监听器触发设定指令的情况下,将所述数据队列中未发送到服务端的数据批量发送到所述服务端。
19.一种数据写入装置,所述装置包括:
获取数据单元,获取用户通过单条数据接口提交的单条数据;
添加数据单元,将所述单条数据添加到缓存队列;
发送数据单元,在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。
20.一种数据写入装置,所述装置包括:
获取数据单元,获取用户通过单条数据接口提交的单条数据;
添加数据单元,将所述单条数据添加到缓存队列;
写入数据单元,在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量写入到存储设备。
21.一种数据写入装置,所述装置包括:
获取数据单元,获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
写入数据单元,将所述数据队列中的数据写入到存储设备;
异常处理单元,在事件监听器触发设定指令的情况下,将所述数据队列中未写入到存储设备的数据批量写入到所述存储设备。
22.一种数据写入装置,所述装置包括:
获取数据单元,获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
发送数据单元,将所述数据队列中的数据发送到服务端;
异常处理单元,在事件监听器触发设定指令的情况下,将所述数据队列中未发送到服务端的数据批量发送到所述服务端。
23.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量发送到服务端。
24.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用户通过单条数据接口提交的单条数据;
将所述单条数据添加到缓存队列;
在控制器触发设定指令的情况下,将所述缓存队列中所有单条数据批量写入到存储设备。
25.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据写入到存储设备;
在事件监听器触发设定指令的情况下,将所述数据队列中未写入到存储设备的数据批量写入到所述存储设备。
26.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取用户通过批量数据接口提交的数据队列;所述数据队列中保存有至少一条的单条数据;
将所述数据队列中的数据发送到服务端;
在事件监听器触发设定指令的情况下,将所述数据队列中未发送到服务端的数据批量发送到所述服务端。
CN201710505904.3A 2017-06-28 2017-06-28 数据写入方法及装置和电子设备 Pending CN107239237A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710505904.3A CN107239237A (zh) 2017-06-28 2017-06-28 数据写入方法及装置和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710505904.3A CN107239237A (zh) 2017-06-28 2017-06-28 数据写入方法及装置和电子设备

Publications (1)

Publication Number Publication Date
CN107239237A true CN107239237A (zh) 2017-10-10

Family

ID=59989977

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710505904.3A Pending CN107239237A (zh) 2017-06-28 2017-06-28 数据写入方法及装置和电子设备

Country Status (1)

Country Link
CN (1) CN107239237A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408239A (zh) * 2018-10-31 2019-03-01 长沙新弘软件有限公司 一种基于队列的异步io处理方法
CN113961153A (zh) * 2021-12-21 2022-01-21 杭州趣链科技有限公司 一种索引数据写入磁盘的方法、装置及终端设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752387A (zh) * 2012-06-29 2012-10-24 用友软件股份有限公司 数据存储处理系统和数据存储处理方法
CN103577551A (zh) * 2013-10-16 2014-02-12 青岛海信传媒网络技术有限公司 一种数据批量提交到数据库的方法和装置
US20140089599A1 (en) * 2012-09-21 2014-03-27 Fujitsu Limited Processor and control method of processor
CN105791439A (zh) * 2016-04-29 2016-07-20 中国农业银行股份有限公司 一种数据处理方法、数据接收设备及数据处理系统
CN105978968A (zh) * 2016-05-11 2016-09-28 山东合天智汇信息技术有限公司 一种海量数据的实时传输处理方法、服务器及处理系统
CN106131138A (zh) * 2016-06-27 2016-11-16 浪潮软件股份有限公司 一种基于非阻塞队列的展示数据实时推送系统和方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102752387A (zh) * 2012-06-29 2012-10-24 用友软件股份有限公司 数据存储处理系统和数据存储处理方法
US20140089599A1 (en) * 2012-09-21 2014-03-27 Fujitsu Limited Processor and control method of processor
CN103577551A (zh) * 2013-10-16 2014-02-12 青岛海信传媒网络技术有限公司 一种数据批量提交到数据库的方法和装置
CN105791439A (zh) * 2016-04-29 2016-07-20 中国农业银行股份有限公司 一种数据处理方法、数据接收设备及数据处理系统
CN105978968A (zh) * 2016-05-11 2016-09-28 山东合天智汇信息技术有限公司 一种海量数据的实时传输处理方法、服务器及处理系统
CN106131138A (zh) * 2016-06-27 2016-11-16 浪潮软件股份有限公司 一种基于非阻塞队列的展示数据实时推送系统和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109408239A (zh) * 2018-10-31 2019-03-01 长沙新弘软件有限公司 一种基于队列的异步io处理方法
CN113961153A (zh) * 2021-12-21 2022-01-21 杭州趣链科技有限公司 一种索引数据写入磁盘的方法、装置及终端设备

Similar Documents

Publication Publication Date Title
US11467769B2 (en) Managed fetching and execution of commands from submission queues
CN109597818A (zh) 数据更新方法、装置、存储介质和设备
US8516163B2 (en) Hardware-based concurrent direct memory access (DMA) engines on serial rapid input/output SRIO interface
TWI317482B (en) Wide-port context cache apparatus, systems and methods, and machine-accessible medium having associated information
CN104881259B (zh) 一种数据处理方法和装置以及存储设备
CN103441948B (zh) 一种数据访问方法、网卡及存储系统
US20170308468A1 (en) Performance-driven cache line memory access
MX2013001941A (es) Combinacion de memoria temporal de escritura con metricas de vaciado dinamicamente ajustables.
TW200949533A (en) Utilization of a store buffer for error recovery on a store allocation cache miss
CN108023829A (zh) 报文处理方法及装置、存储介质、电子设备
CN108153783A (zh) 一种数据缓存的方法和装置
CN107239237A (zh) 数据写入方法及装置和电子设备
CN107092628A (zh) 时间序列数据的处理方法和装置
CN108292162A (zh) 用于多线程访问的软件定义fifo缓冲器
CN110532205A (zh) 数据传输方法、装置、计算机设备和计算机可读存储介质
JP7097371B2 (ja) メモリシステムへの加速されたアクセスを提供するための方法及び機器
CN105446848B (zh) 电子设备的数据处理性能的测试方法及装置
US8424014B2 (en) Method for pushing work request-associated contexts into an IO device
CN109298888B (zh) 队列的数据存取方法及装置
CN110058819A (zh) 基于可变缓存管理机制的主机命令处理方法和装置
CN108958903B (zh) 嵌入式多核中央处理器任务调度方法与装置
EP3968186A1 (en) Video data storage method, apparatus, terminal device, and storage medium
WO2019206260A1 (zh) 文件缓存的读取方法和装置
CN111459402A (zh) 磁盘可控缓冲写方法、控制器、混合io调度方法及调度器
US6735677B1 (en) Parameterizable queued memory access system

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1245446

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20200924

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171010