CN107786638A - 一种数据处理方法、装置及系统 - Google Patents
一种数据处理方法、装置及系统 Download PDFInfo
- Publication number
- CN107786638A CN107786638A CN201710890580.XA CN201710890580A CN107786638A CN 107786638 A CN107786638 A CN 107786638A CN 201710890580 A CN201710890580 A CN 201710890580A CN 107786638 A CN107786638 A CN 107786638A
- Authority
- CN
- China
- Prior art keywords
- target object
- server
- container
- location information
- information
- 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.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 52
- 238000012217 deletion Methods 0.000 claims abstract description 121
- 230000037430 deletion Effects 0.000 claims abstract description 121
- 238000000034 method Methods 0.000 claims abstract description 79
- 230000004044 response Effects 0.000 claims abstract description 36
- 230000015654 memory Effects 0.000 claims description 48
- 238000004891 communication Methods 0.000 description 42
- 230000008569 process Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 19
- 230000000694 effects Effects 0.000 description 12
- 239000000306 component Substances 0.000 description 7
- 238000004590 computer program Methods 0.000 description 5
- 230000003993 interaction Effects 0.000 description 4
- 239000003550 marker Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 235000019800 disodium phosphate Nutrition 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000004064 recycling Methods 0.000 description 2
- 239000000470 constituent Substances 0.000 description 1
- 239000008358 core component Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例提供一种数据处理方法,涉及计算机存储领域,能够在一定程度上避免读取对象和删除对象发生冲突。该方法包括:对象存储系统中的容器服务器接收代理服务器发送的删除查询消息,该删除查询消息中包括第一目标对象所属的容器的标识信息和第一目标对象的标识信息;并且容器服务器根据第一目标对象所属的容器的标识信息和第一目标对象的标识信息在容器服务器的对象列表中查询该第一目标对象的位置信息;若在对象列表中查询到该第一目标对象的位置信息,容器服务器删除对象列表中的该第一目标对象的位置信息,并且将该第一目标对象的位置信息写入容器服务器的删除日志中;以及容器服务器向代理服务器发送删除响应消息。
Description
技术领域
本发明实施例涉及计算机存储领域,尤其涉及一种数据处理方法、装置及系统。
背景技术
随着计算机存储技术的快速发展,对象存储系统以其高速访问特性、高可靠性以及可扩展性等优势,快速地成为计算机存储领域用于存储数据为主流存储系统。
在对象存储系统中,用户使用某一终端(例如终端上的浏览器或者其他应用)时,可以使用终端向对象存储系统写入数据(可以称为对象,对象包括元数据和数据本身)、删除对象存储系统中的某些数据或者读取对象存储系统中的某些数据。如图1所示,对象存储系统可以包括终端10,代理服务器11,容器服务器12和对象服务器13。终端10读取对象存储系统中的数据(即对象)时,对象存储系统中的代理服务器11接收到终端10发送的对象读取请求,代理服务器11向对象存储系统的容器服务器12发送查询该对象位置信息的消息,然后容器服务器12可以在该容器服务器12中的数据库中查询该对象的位置信息,若查询到该对象的位置信息,则代理服务器11向对象服务器13发送该对象的位置信息,对象服务器13根据该对象的位置信息,读取该对象,并将读取的对象返回给终端10。
终端10删除对象存储系统中的某一数据(即对象)时,代理服务器11接收到终端10发送的对象删除请求,同理,代理服务器11向容器服务器12发送查询该对象的位置信息的消息,然后容器服务器12在该容器服务器12的数据库中查询该对象的位置信息,若查询到该对象的位置信息,将该对象的位置信息发送给代理服务器11,代理服务器11向对象服务器13发送该对象的位置信息,然后对象服务器13根据该对象的位置信息,对该对象服务器13中的该对象做删除标记,并返回删除响应消息给代理服务器11,代理服务器11再向容器服务器12发送删除该容器服务器12中的该对象的位置信息的请求消息,从而容器服务器12删除数据库中的该对象的位置信息。
然而,在上述方法中,当对象存储系统中并发存在读取某一对象(例如第一对象)的请求和删除该对象的请求时,由于在删除该第一对象的过程中,对象服务器需对该对象做删除标记,如果对象服务器先接收到指示删除该第一对象的第一对象的位置信息,后接收到指示读取该第一对象的第一对象的位置信息,由于对象服务器根据第一对象的位置信息可能已经对该第一对象做了删除标记,如此,可能会导致对象服务器根据第一目标的位置信息无法再读取该第一对象(即读取该对象失败),因此,导致读取第一对象和删除第一对象发生冲突。
发明内容
本申请提供一种数据处理方法、装置及系统,能够在一定程度上避免读取对象和删除对象发生冲突。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据处理方法,该方法可以包括:容器服务器接收代理服务器发送的删除查询消息,该删除查询消息中包括第一目标对象所属的容器的标识信息和第一目标对象的标识信息;然后容器服务器根据第一目标对象所属的容器的标识信息和第一目标对象的标识信息在容器服务器的对象列表中查询第一目标对象的位置信息;若在对象列表中查询到第一目标对象的位置信息,容器服务器删除对象列表中的第一目标对象的位置信息,并且将第一目标对象的位置信息写入容器服务器的删除日志中;以及容器服务器向代理服务器发送删除响应消息。其中,对象列表中包含第一类对象的位置信息,该第一类对象为未被标记删除的、对象服务器中存储的对象,一个第一类对象的位置信息用于指示对象在对象服务器中的位置,删除日志中包含第二类对象的位置信息,该第二类对象为被标记删除的、对象服务器中存储的对象的位置信息。
本申请提供的数据处理方法,在删除对象存储系统中的对象(例如上述第一目标对象)的过程中,由于容器服务器可以将该第一目标对象的位置信息从对象列表中删除,并且将该第一目标对象的位置新写入容器服务器的删除日志中,可知,容器服务器无需再将该第一目标对象的位置信息发送给代理服务器,代理服务器也无需再将该第一目标对象的位置信息发送给对象服务器,从而对象服务器也无需在对该对象服务器中的第一目标对象做删除标记,如此,当删除对象存储系统中的该第一目标对象与读取对象存储系统中的该第一目标对象并发发生时,由于在删除该第一目标对象的过程中,对象服务器中的该第一目标对象并没有被标记为删除,因此可以在对象服务器中读取到该第一目标对象,与现有技术相比,可以避免由于对象服务器中的第一目标对象被标记为删除,而造成读取该第一目标对象失败的问题,即可以避免读取第一目标对象和删除第一目标对象的发生冲突。
进一步地,由于容器服务器无需再将该第一目标对象的位置信息发送给代理服务器,代理服务器也无需再将该第一目标对象的位置信息发送给对象服务器,从而对象服务器也无需在对该对象服务器中的第一目标对象做删除标记,如此,可以简化删除第一目标对象的流程,而且可以节约服务器之间的通信资源。
在第一方面的第一种可选的实现方式中,上述第一目标对象的位置信息可以包括第一目标对象所在的文件标识、第一目标对象的偏移量以及第一目标对象的尺寸,文件标识指示的文件中包括至少两个对象;或者,第一目标对象的位置信息可以包括第一目标对象的ID(identity)。
本申请中,根据第一目标对象写入对象存储系统中,存储的方法(可以理解为写入的方法)的不同,第一目标对象的位置信息包含的内容可以不同,对于不同的存储方法,上述数据处理方法均可以实现删除第一目标对象的操作,并且可以简化删除第一目标对象的流程,而且可以节约服务器之间的通信资源。
在第一方面的第二种可选的实现方式中,本申请提供的数据处理方法还可以包括:容器服务器接收代理服务器发送的读取查询消息,该读取查询消息中包括第二目标对象所属的容器的标识信息和第二目标对象的标识信息;然后容器服务器根据第二目标对象所属的容器的标识信息和第二目标对象的标识信息,在对象列表中查询第二目标对象的位置信息;若在对象列表中查询到第二目标对象的位置信息,容器服务器向代理服务器发送第二目标对象的位置信息,以指示代理服务器根据第二目标对象的位置信息从对象服务器中读取第二目标对象,该第二目标对象的位置信息包括第二目标对象所在的文件标识、第二目标对象的偏移量以及第二目标对象的尺寸,文件标识指示的文件中包括至少两个对象。
本申请中,可以通过上述方法顺利地读取对象存储系统中的对象。
在第一方面的第三种可选的实现方式中,若容器服务器接收的读取查询消息中包括第一目标对象所属的容器的标识信息和第一目标对象的标识信息,在容器服务器删除对象列表中的第一目标对象的位置信息,并且将第一目标对象的位置信息写入容器服务器的删除日志中之前,本申请提供的数据处理方法还可以包括:容器服务器读取对象列表中的第一目标对象的位置信息。
本申请中,在对象存储系统中,当读取某一对象与删除该对象并发发生时(即可以理解为对象存储系统处理读取某一对象的事件的同时也需要处理删除该对象的事件),以第一目标对象为例说明,在容器服务器将第一目标对象的位置信息从对象列表中删除,并且将第一目标对象的位置信息写入容器服务器的删除日志中之前,容器服务器已读取对象列表中的第一目标对象的位置信息,那么本次读取第一目标对象的流程和删除第一目标对象的流程中,即使容器服务器中的第一目标对象的位置信息已被删除,并且该第一目标对象的位置信息已被写入删除日志中,本次还可以读取到第一目标对象。
与现有技术相比,上述容器服务器中的第一目标对象的位置信息已被删除,并且该第一目标对象的位置信息已被写入删除日志中,本次还可以读取第一目标对象的原因是:本次删除第一目标对象的过程中,可以在删除日志中写入第一目标对象的位置信息,以表示对该第一目标对象做了删除标记,无需再对对象服务器中的第一目标对象做删除标记,因此,在对象服务器中该第一目标对象依然存在,并且还未被回收,如此,对象服务器可以根据上述容器服务器根据读取查询请求消息获取的第一目标对象的位置信息,在该对象服务器中读取该第一目标对象。可见本发明实施例提供的数据处理方法,能够在一定程度上避免读取对象和删除对象的冲突(指的是读取对象和删除对象并发发生时,先删除对象的操作会造成读取对象的操作无法读取到该对象)
在第一方面的第四种可选的实现方式中,本申请提供的数据处理方法还可以包括:容器服务器向对象服务器发送垃圾回收请求消息,该垃圾回收请求消息中包括删除日志中的目标对象的位置信息;并且容器服务器接收对象服务器发送的垃圾回收响应消息,以及容器服务器删除删除日志中目标对象的位置信息,其中,垃圾回收响应消息指示对象服务器已删除目标对象。
本申请中,容器服务器删除目标对象之后(即将目标对象的位置信息从对象列表中删除,并且将该目标对象的位置信息写入删除日志之后),容器服务器还可以根据删除日志中的目标对象的位置信息,请求对象服务器删除(即回收)该对象服务器中的目标对象的内容,从而容器服务器删除删除日志中的目标对象的位置信息,从而彻底删除对象存储系统中的该目标对象。
在第一方面的第五种可选的是实现方式中,本申请提供的数据处理方法还可以包括:容器服务器接收代理服务器发送的位置更新消息;并且容器服务器根据位置更新消息,更新第三目标对象的位置信息,该位置更新消息用于更新第三目标对象的位置信息,该位置更新消息中包括第三目标对象所属的容器的标识信息、第三目标对象的标识信息以及第三目标对象的第一位置信息。
在第一方面的第六种可选的实现方式中,上述容器服务器根据位置更新消息,更新第三目标对象的位置信息的方法可以包括:容器服务器根据第三目标对象所属的容器的标识信息、第三目标对象的标识信息,在容器服务器的对象列表中查询第三目标对象的位置信息;若在对象列表中未查询到第三目标对象的位置信息,容器服务器将位置更新消息中的第三目标对象的第一位置信息写入对象列表;若在对象列表中查询到第三目标对象的位置信息,该第三目标对象的位置信息为第二位置信息,并且该第三目标对象的第二位置信息与位置更新消息中的第三目标对象的第一位置信息不同,容器服务器将第三目标对象的第二位置信息替换为第三目标对象的第一位置信息,并且将第三目标对象的第二位置信息写入容器服务器的删除日志中。
本申请中,在对象存储系统中,容器服务器可以更新对象存储系统中的对象(例如上述第三目标对象)的位置信息(例如,在写入第三目标对象之后,更新第三目标对象的位置信息),如此,在后续的读取或者删除该第三目标对象时,可以从容器服务器中查询到准确的第三目标对象的位置信息,以正确读取该第三目标对象,或者删除第三目标对象。
第二方面,提供一种数据处理方法,该方法可以包括:对象服务器接收代理服务器发送的上传目标对象的请求消息,该上传目标对象的请求消息中包括第三目标对象;然后对象服务器将该第三目标对象写入对象服务器中;以及对象服务器向代理服务器发送第三目标对象的位置信息,该第三目标对象的位置信息包括第三目标对象所在的文件标识、第三目标对象的偏移量以及第三目标对象的尺寸,文件标识指示的文件中包括有至少两个对象。
本申请提供的数据处理方法,在向对象存储系统中上传对象(例如可以称为第三目标对象)的过程中,由于对象服务器将第三目标对象写入对象服务器的文件系统的文件中,该文件中可以包括至少两个对象,可知,当对象存储系统中写入多个小对象时,可以将多个小对象写入一个文件中,如此,可以节省对象服务器的文件系统的存储资源,从而提高对象服务器的性能。
在第二方面的第一种可选的实现方式中,本申请提供的数据处理方法还可以包括:对象服务器接收代理服务器发送的第二目标对象的位置信息;并且对象服务器根据第二目标对象的位置信息读取第二目标对象;以及对象服务器向代理服务器发送发送第二目标对象。
在第二方面的第二种可选的实现方式中,本申请提供的数据处理方法还可以包括:对象服务器接收容器服务器发送的垃圾回收请求消息,该垃圾回收请求消息中包括容器服务器的删除日志中的第一目标对象的位置信息;并且对象服务器根据第一目标对象的位置信息,删除第一目标对象;以及对象服务器向容器服务器发送垃圾回收响应消息,该垃圾回收响应消息指示已删除第一目标对象。
对于第二方面的第二种可选的实现方式的技术效果的描述,可以参见上述第一方面的第四种可选的实现方式的技术效果的描述,此处不再赘述。
第三方面,本申请提供一种数据处理方法,该方法可以包括:代理服务器向对象服务器发送上传目标对象的请求消息,该上传目标对象的请求消息中包括目标对象;然后代理服务器接收对象服务器发送的目标对象的第一位置信息,该目标对象的第一位置信息包括目标对象所在的文件标识、目标对象的偏移量以及目标对象的尺寸,文件标识指示的文件中保存有至少两个对象;以及代理服务器向容器服务器发送位置更新消息,以指示容器服务器根据位置更新消息,更新容器服务器的对象列表中的目标对象的位置信息,该位置更新消息中包括目标对象所属的容器的标识信息、目标对象的标识信息以及上述目标对象的第一位置信息。
在第三方面的第一种可选的实现方式中,本申请提供的数据处理方法还可以包括:代理服务器接收容器服务器发送的删除响应消息,该删除响应消息为容器服务删除对象列表中的目标对象的位置信息,并将目标目标对象的位置信息写入容器服务器的删除日志之后发送的。
第三方面及其可选的实现方式的技术效果可以参见第一方面及其各种可选的实现方式,第二方面及其各种可选的实现方式的技术效果的相关描述,此处不再赘述。
第四方面,提供一种容器服务器,该容器服务器可以包括:接收模块、查询模块、更新模块以及发送模块。其中,接收模块可以用于接收代理服务器发送的删除查询消息,该删除查询消息中包括第一目标对象所属的容器的标识信息和第一目标对象的标识信息;查询模块可以用于根据接收模块接收的第一目标对象所属的容器的标识信息和第一目标对象的标识信息,在容器服务器的对象列表中查询第一目标对象的位置信息,该对象列表中包含第一类对象的位置信息,该第一类对象为未被标记删除的、对象服务器中存储的对象,一个第一类对象的位置信息用于指示对象在对象服务器中的位置;更新模块可以用于若查询模块在对象列表中查询到第一目标对象的位置信息,删除对象列表中的第一目标对象的位置信息,并且将第一目标对象的位置信息写入容器服务器的删除日志中,该删除日志中包含第二类对象的位置信息,该第二类对象为被标记删除的、对象服务器中存储的对象的位置信息;发送模块可以用于向代理服务器发送删除响应消息。
在第四方面的第一种可选的实现方式中,上述第一目标对象的位置信息包括第一目标对象所在的文件标识、第一目标对象的偏移量以及第一目标对象的尺寸,该文件标识指示的文件中包括至少两个对象;或者,第一目标对象的位置信息包括第一目标对象的ID。
在第四方面的第二种可选的实现方式中,上述接收模块还可以用于接收代理服务器发送的读取查询消息,读取查询消息中包括第二目标对象所属的容器的标识信息和第二目标对象的标识信息;上述查询模块还可以用于根据接收模块接收的第二目标对象所属的容器的标识信息和第二目标对象的标识信息,在对象列表中查询第二目标对象的位置信息,该第二目标对象的位置信息包括第二目标对象所在的文件标识、第二目标对象的偏移量以及第二目标对象的尺寸,文件标识指示的文件中包括至少两个对象;上述发送模块还可以用于若查询模块在对象列表中查询到第二目标对象的位置信息,容器服务器向代理服务器发送第二目标对象的位置信息,以指示代理服务器根据第二目标对象的位置信息从对象服务器中读取第二目标对象。
在第四方面的第三种可选的实现方式中,本申请提供的容器服务器还可以包括读取模块。该读取模块可以用于若接收模块接收的读取查询消息中包括第一目标对象所属的容器的标识信息和第一目标对象的标识信息,在更新模块删除对象列表中的第一目标对象的位置信息,并且将第一目标对象的位置信息写入容器服务器的删除日志中之前,读取对象列表中的第一目标对象的位置信息。
在第四方面的第四种可选的实现方式中,上述发送模块还可以用于向对象服务器发送垃圾回收请求消息,该垃圾回收请求消息中包括删除日志中的目标对象的位置信息;上述接收模块还可以用于接收对象服务器发送的垃圾回收响应消息,该垃圾回收响应消息指示对象服务器已删除目标对象;更新模块还可以用于删除删除日志中目标对象的位置信息。
在第四方面的第五种可选的实现方式中,上述接收模块还可以用于接收代理服务器发送的位置更新消息,该位置更新消息用于更新第三目标对象的位置信息,该位置更新消息中包括第三目标对象所属的容器的标识信息、第三目标对象的标识信息以及第三目标对象的第一位置信息;上述更新模块还可以用于根据接收模块接收的位置更新消息,更新第三目标对象的位置信息。
在第四方面的第六种可选的实现方式中,上述查询模块还可以用于根据第三目标对象所属的容器的标识信息、第三目标对象的标识信息,在容器服务器的对象列表中查询第三目标对象的位置信息;上述更新模块具体用于若查询模块在对象列表中未查询到第三目标对象的位置信息,将位置更新消息中的第三目标对象的第一位置信息写入对象列表,若查询模块在对象列表中查询到第三目标对象的位置信息,第三目标对象的位置信息为第二位置信息,并且第三目标对象的第二位置信息与位置更新消息中的第三目标对象的第一位置信息不同,将第三目标对象的第二位置信息替换为第三目标对象的第一位置信息,并且将第三目标对象的第二位置信息写入容器服务器的删除日志中。
第五方面,提供一种对象服务器,该对象服务器可以包括接收模块、写数据模块以及发送模块。其中,接收模块可以用于接收代理服务器发送的上传目标对象的请求消息,该上传目标对象的请求消息中包括第三目标对象;写数据模块可以用于将接收模块接收的第三目标对象写入对象服务器中;发送模块可以用于向代理服务器发送第三目标对象的位置信息,该第三目标对象的位置信息包括第三目标对象所在的文件标识、第三目标对象的偏移量以及第三目标对象的尺寸,文件标识指示的文件中包括有至少两个对象。
在第五方面的第一种可选的实现方式中,本申请提供的对象服务器还可以包括读取模块。上述接收模块还可以用于接收代理服务器发送的第二目标对象的位置信息;读取模块可以用于根据接收模块接收的第二目标对象的位置信息读取第二目标对象;上述发送模块还可以用于向代理服务器发送发送第二目标对象。
在第五方面的第二种可选的实现方式中,本申请提供的对象服务器还可以包括删除模块。上述接收模块还可以用于接收容器服务器发送的垃圾回收请求消息,该垃圾回收请求消息中包括容器服务器的删除日志中的第一目标对象的位置信息;该删除模块可以用于根据接收模块接收的第一目标对象的位置信息,删除第一目标对象;上述发送模块还可以用于向容器服务器发送垃圾回收响应消息,该垃圾回收响应消息指示已删除第一目标对象。
第六方面,提供一种代理服务器,该代理服务器可以包括发送模块和接收模块。其中,发送模块可以用于向对象服务器发送上传目标对象的请求消息,该上传目标对象的请求消息中包括目标对象;接收模块可以用于接收对象服务器发送的目标对象的第一位置信息,该目标对象的第一位置信息包括目标对象所在的文件标识、目标对象的偏移量以及目标对象的尺寸,文件标识指示的文件中保存有至少两个对象;上述发送模块还可以用于向容器服务器发送位置更新消息,以指示容器服务器根据位置更新消息,更新容器服务器的对象列表中的目标对象的位置信息,该位置更新消息中包括目标对象所属的容器的标识信息、目标对象的标识信息以及目标对象的第一位置信息。
在第六方面的第一种可选的实现方式中,上述接收模块还可以用于接收容器服务器发送的删除响应消息,该删除响应消息为容器服务删除对象列表中的目标对象的位置信息,并将目标目标对象的位置信息写入容器服务器的删除日志之后发送的。
第七方面,提供一种容器服务器,该容器服务器可以包括处理器和与该处理器耦合连接的存储器。该存储器可以用于存储计算机指令。当该容器服务器运行时,该处理器执行该存储器存储的该计算机指令,以使得该容器服务器执行上述第一方面及其各种可选的实现方式中任意之一所述的数据处理方法。
第八方面,提供一种计算机可读存储介质,该计算机可读存储介质可以包括计算机指令。当该计算机指令在容器服务器上运行时,使得该容器服务器执行上述第一方面及其各种可选的实现方式中任意之一所述的数据处理方法。
第九方面,提供一种包括计算机指令的计算机程序产品,当该计算机程序产品在容器服务器上运行时,使得该容器服务器执行上述第一方面及其各种可选的实现方式中任意之一所述的数据处理方法。
第七方面至第九方面的技术效果的描述,可以参见上述对第一方面的技术效果的相关描述,此处不再赘述。
第十方面,提供一种对象服务器,该对象服务器可以包括处理器和与该处理器耦合连接的存储器。该存储器可以用于存储计算机指令。当该对象服务器运行时,该处理器执行该存储器存储的该计算机指令,以使得该对象服务器执行上述第二方面及其各种可选的实现方式中任意之一所述的数据处理方法。
第十一方面,提供一种计算机可读存储介质,该计算机可读存储介质可以包括计算机指令。当该计算机指令在对象服务器上运行时,使得该对象服务器执行上述第二方面及其各种可选的实现方式中任意之一所述的数据处理方法。
第十二方面,提供一种包括计算机指令的计算机程序产品,当该计算机程序产品在对象服务器上运行时,使得该对象服务器执行上述第二方面及其各种可选的实现方式中任意之一所述的数据处理方法。
第十方面至第十二方面的技术效果的描述,可以参见上述对第二方面的技术效果的相关描述,此处不再赘述。
第十三方面,提供一种代理服务器,该代理服务器可以包括处理器和与该处理器耦合连接的存储器。该存储器可以用于存储计算机指令。当该代理服务器运行时,该处理器执行该存储器存储的该计算机指令,以使得该代理服务器执行上述第三方面及其各种可选的实现方式中任意之一所述的数据处理方法。
第十四方面,提供一种计算机可读存储介质,该计算机可读存储介质可以包括计算机指令。当该计算机指令在代理服务器上运行时,使得该代理服务器执行上述第三方面及其各种可选的实现方式中任意之一所述的数据处理方法。
第十五方面,提供一种包括计算机指令的计算机程序产品,当该计算机程序产品在代理服务器上运行时,使得该代理服务器执行上述第三方面及其各种可选的实现方式中任意之一所述的数据处理方法。
第十三方面至第十五方面的技术效果的描述,可以参见上述对第三方面的技术效果的相关描述,此处不再赘述。
第十六方面,提供一种对象存储系统,该对象存储系统可以包括上述第四方面及其各种可选的实现方式中任意之一所述的容器服务器,上述第五方面及其各种可选的实现方式中任意之一所述的对象服务器,以及上述第六方面及其各种可选的实现方式中任意之一所述的代理服务器。
或者,该对象存储系统系统可以包括上述第七方面中的容器服务器,第十方面中的对象服务器,以及上述第十三方面中的代理服务器。
第十六方面的相关内容和技术效果的描述可以参见上述对第一方面或任意一种可能的实现方式,第二方面或任意一种可能的实现方式以及第三方面或任意一种可能的实现方式的相关内容和技术效果的相关描述,此处不再赘述。
附图说明
图1为本发明实施例提供的一种对象存储系统的架构示意图;
图2为本发明实施例提供的各种服务器的硬件示意图;
图3为本发明实施例提供的一种数据处理方法示意图一;
图4为本发明实施例提供的一种数据处理方法示意图二;
图5为本发明实施例提供的一种数据处理方法示意图三;
图6为本发明实施例提供的一种数据处理方法示意图四;
图7为本发明实施例提供的容器服务器的结构示意图一;
图8为本发明实施例提供的容器服务器的结构示意图二;
图9为本发明实施例提供的对象服务器的结构示意图一;
图10为本发明实施例提供的对象服务器的结构示意图二;
图11为本发明实施例提供的代理服务器的结构示意图一;
图12为本发明实施例提供的代理服务器的结构示意图二。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本发明实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
首先对本发明实施例提供的一种数据处理方法、装置及系统中涉及的一些概念做解释说明。
容器:在对象存储领域,也可以称为桶,其中存储有对象的信息(例如可以称为对象列表,包括多个对象的位置信息,例如对象的ID,对象在某一文件中的偏移量以及对象的大小等信息),容器位于容器服务器中。
对象:在对象存储领域,对象为存储的单位,对象存储在对象存储系统中的对象服务器中,对象包括对象元数据和对象数据,对象元数据用于描述对象的属性的信息,例如对象的大小或者对象的类型(例如图片、音频和视频等)等,对象数据为对象本身。
本发明实施例提供的数据处理方法可以应用于对象存储系统中,该对象存储系统的架构示意图可以参见上述图1所示的对象存储系统的架构示意图,其中,代理服务器11负责对象存储系统中的其余组件间的相互通信,例如,代理服务器11可以接收客户端的超文本传输请求(例如读取请求、删除请求和上传请求等),并且可以转发客户端(例如图1中的终端10)的请求消息至对象存储系统中的容器服务器12或对象服务器13。容器服务器12的数据库中维护(可理解为存储)容器的信息和对象的信息(例如对象的位置信息),对象服务器13的文件系统中存储多个对象的元数据和数据。在本发明实施例提供的对象存储系统中,可以通过代理服务器11、容器服务器12和对象服务器13的交互实现上传(即写入)对象、读取对象和删除对象的操作。
可以理解的是,在如图1所示的对象存储系统中,终端10可以为手机、平板电脑、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)、智能汽车、传感设备、物联网(internetof thing,IOT)设备、客户终端设备(customer premise equipment,CPE)等。
上述如图1所示的代理服务器11、容器服务器12和对象服务器13,可以为硬件服务器,也可以为软件服务器,本发明实施例中,以代理服务器11、容器服务器12和对象服务器13为硬件服务器,介绍各个服务器的硬件结构和软件功能模块。
需要说明的是,本发明实施例中,上述如图1所示的对象存储系统中,代理服务器11、容器服务器12和对象服务器13可以为同一种结构的服务器,也可以为不同结构的服务器。下面结合图1所示的对象存储系统,分别介绍代理服务器、容器服务器和对象服务器的组成部件。
图2为本发明实施例提供的各个服务器的硬件示意图,如图2所示的代理服务器100可以包括:处理器101、存储器102以及通信接口103。
处理器101:是代理服务器的核心部件,用于运行服务器的操作系统与服务器上的应用程序(包括系统应用程序和第三方应用程序)。
本发明实施例中,处理器101具体可以为中央处理器(central processing unit,CPU),通用处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合,其可以实现或执行本发明实施例公开的内容所描述的各种示例性的逻辑方框,模块和电路;处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
存储器102:用于存储代理服务器的程序代码和数据。
本发明实施例中,存储器102具体可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);该存储器也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flashmemory),硬盘(hard disk,HDD)或固态硬盘(solid-state disk,SSD);该存储器还可以包括上述种类的存储器的组合。
通信接口103:用于代理服务器与其他设备进行通信的接口电路,通信接口可以为收发器、收发电路等具有收发功能的结构,通信接口包括串行通信接口和并行通信接口。例如,本发明实施例中,代理服务器100可以通过通信接口103与客户端(例如图2中的终端10)通信,与容器服务器200通信,或者与对象服务器300通信。
图2所示的容器服务器200可以包括处理器201、存储器202以及通信接口203。其中,对于处理器201的描述可以参见对于代理服务器100的处理器101的描述,此处不再赘述。本发明实施例中,在对象存储系统中,容器服务器200接收到代理服务器100发送的读取查询消息或者删除查询消息之后,容器服务器的处理器101可以处理读取查询消息或者删除查询消息。
对于存储器202的描述可以参见对于代理服务器100的存储器102的描述,本发明实施例中,如图2所示,容器服务器200的存储器202中可以包括至少一个容器(例如所示的M个容器(M≥1)),每一个容器中可以包括对象列表和删除日志,对象列表中存储有多个对象(可以称为第一类对象)的位置信息,第一类对象为未被标记删除的、对象服务器中存储的对象,删除日志中存储有多个对象(可以称为第二类对象)的位置信息,第二类对象为被标记删除的、对象服务器中存储的对象的位置信息。
对于通信接口203的描述可以参见对于代理服务器100的通信结构103的描述,本发明实施例中,容器服务器可以通过通信接口203与代理服务器100通信,或者与对象服务器300通信。
图2所示的对象服务器300可以包括处理器301、存储器302以及通信接口303。其中,对于处理器301的描述可以参见对于代理服务器100的处理器101的描述,此处不再赘述。本发明实施例中,在对象存储系统中,对象服务器200接收到代理服务器100发送的上传对象的请求消息或接收到容器服务器200发送的垃圾回收请求消息之后,对象服务器300的处理器301可以处理处理该上传对象的请求消息或处理该垃圾回收请求消息。
对于存储器302的描述可以参见对于代理服务器100的存储器102的描述,本发明实施例中,如图2所示,对象服务器300的存储器302中可以包括文件系统,文件系统中包括至少一个文件(例如如图2所示的文件系统包括N个文件(N≥1)),该至少一个文件中每一个文件中可以存储多个对象(例如如图2所示的每个文件中可以包括P个对象(P≥2))。
对于通信接口303的描述可以参见对于代理服务器100的通信结构103的描述,本发明实施例中,对象服务器300可以通过通信接口303与代理服务器100通信,或者与容器服务器200通信。
在现有技术中,由于在删除某一对象的过程中,对象服务器需根据该对象的位置信息对该对象做删除标记,当对象存储系统中既有读取某一对象(例如第一对象)的请求,也有删除该对象的请求时,由于在读取该对象时,对象服务器中的该对象可能已被标记为删除,因此可能会出现读取该对象失败的情况,即导致读取第一对象和删除第一对象发生冲突。本发明实施例提供了一种数据处理方法、装置及系统,能够在一定程度上避免读取对象和删除对象发生冲突。
结合上述如图1所示的对象存储系统,用户设备可以删除对象存储系统中存储的对象,也可以读取对象存储系统中存储的对象,还可以上传对象至对象存储系统,下面首先通过对象存储系统中的各个服务器之间的交互过程对删除对象、读取对象和上传对象三个不同的应用场景做详细介绍。
本发明实施例中,将删除对象的场景记为场景一,将读取对象的场景记为场景二,将上传对象的场景记为场景三。
场景一
结合图1和图2,如图3所示,删除对象存储系统中的对象的场景下,本发明实施例提供的数据处理方法可以包括S101-S105:
S101、代理服务器向容器服务器发送删除查询消息,该删除查询消息中包括第一目标对象所属的容器的标识信息和第一目标对象的标识信息。
本发明实施例中,终端需删除对象存储系统中的某一对象(以下均可以称为第一目标对象)时,终端可以向代理服务器发送删除第一目标对象的请求消息,代理服务器接收到终端发送的删除第一目标对象的请求消息,并且解析该删除第一目标对象的请求消息,获取第一目标对象所属的容器的标识信息和第一目标对象的标识信息之后,代理服务器可以将该第一目标对象所属的容器的标识信息和第一目标对象的标识信息携带在删除查询消息中发送给容器服务器,其中,容器中存储有对象的位置信息,该位置信息用于指示对象服务器中的该对象的位置,第一目标对象所属的容器的标识信息可以标识需删除的第一目标对象的位置存储在哪一个容器中,第一目标对象的标识信息可以指示需删除的目标对象为该容器中的哪一个目标对象。
可选的,本发明实施例中,第一目标对象的标识信息可以为第一目标对象的名称或者预先预定好的用户定义的可以指示目标对象的其他信息,本发明实施例不作具体限定。
同理,第一目标对象所属的容器的标识信息也可以为该容器的名称或者预先预定好的用户定义的可以指示该容器的其他信息,本发明实施例不作具体限定。
S102、容器服务器接收代理服务器发送的删除查询消息。
S103、容器服务器根据删除查询消息中的第一目标对象所属的容器的标识信息和第一目标对象的标识信息,在容器服务器的对象列表中查询第一目标对象的位置信息。
其中,容器服务器的对象列表中包含第一类对象的位置信息,该第一类对象为未被标记删除的、对象服务器中存储的对象,每一个第一类对象的位置信息用于指示每一对象在对象服务器中的位置。
本发明实施例中,根据对象的存储的方式的不用,对象的位置信息也不同,示例性的,如果将一个对象存储在一个文件中,可以理解为每一个文件仅存储一个对象,那么对象的位置信息为对象的ID;如果将至少两个对象存储在一个文件中,可以理解为每一个文件中存储至少两个对象,那么对象的位置信息为对象所在的文件标识、对象的偏移量以及对象的尺寸,对象的偏移量为该对象在其存储的文件中的位置,对象的尺寸标识对象的大小,例如对象所占的比特数的数量。
可知,上述第一目标对象的位置信息可以包括该第一目标对象的ID,或者第一目标对象的位置信息可以包括第一目标对象所在的文件标识、第一目标对象的偏移量以及第一目标对象的尺寸,该文件标识指示的文件中包括至少两个对象。
可选的,本发明实施例中,在实际的实现过程中,对于上述每一个文件仅存储一个对象的情况,那么对象的位置信息还可以使用容器的ID和对象的ID共同表示,在对象服务器中的对象较多时,由于对象的ID可以表示的对象的范围可能无法满足对象的数量,即对象的实际数量超出对象的ID可表示的对象的数量,因此,可以使用容器的ID和对象的ID两种字段标识对象的位置信息,以指示该对象。
可选的,本发明实施例中,容器服务器的对象列表中可以存储多个对象的位置信息,即可以存储多条位置信息,每一条位置信息对应一个对象的位置信息,每一条位置信息可以对应一个位置索引,并且对象所属的容器的标识信息和对象的标识信息组成的信息二元组也对应一个位置索引,上述容器服务器根据第一目标对象所属的容器的标识信息和第一目标对象的标识信息在容器服务器的对象列表中查询第一目标对象的位置信息的方法具体为:容器服务器根据第一目标对象所属的容器的标识信息和第一目标对象的标识信息确定第一目标的位置索引,然后根据第一目标对象的位置的索引可以确定第一目标对象的位置信息。
示例性的,以容器服务器中包括5个对象的位置信息为例,如表1所示,为容器服务器中的对象所属的容器的标识信息和对象的标识信息组成的信息二元组(表1中简称为对象的信息二元组)与对象的位置索引,以及对象的位置信息与对象的位置索引之间的对应关系示例。
表1
在表1中,object1表示对象1的标识,container1表示对象1所属的容器的标识。
S104、若在上述对象列表中查询到第一目标对象的位置信息,该容器服务器删除对象列表中的第一目标对象的位置信息,并且将该第一目标对象的位置信息写入容器服务器的删除日志中。
其中,删除日志中包含第二类对象的位置信息,该第二类对象为被标记删除的、对象服务器中存储的对象的位置信息。
本发明实施例中,容器服务器将第一目标对象的位置信息从对象列表中删除,并且将该第一目标对象的位置信息写入删除日志之后,容器服务器后续接收到关于第一目标对象的其他查询消息(例如读取查询消息)时,容器服务器在对象列表将查询不到该第一目标目标对象的位置信息,从而也不能对该第一目标对象实施相应的操作。
需要说明的是,本发明实施例中,将第一目标对象的位置信息从对象列表中删除,并且将该第一目标对象的位置信息写入删除日志完成之后,即认为删除第一目标对象成功,实际上第一目标对象的内容,即第一目标对象的元数据和数据本身还未被删除(即未被回收),还存储在对象服务器中。
本发明实施例中,容器服务器的删除日志中的对象的位置信息指示对象服务器中待回收的对象,上述将第一目标对象的位置信息写入删除日志中,可以理解为待删除的第一目标对象先在标记出来,在适当的时间,在根据该删除日志中的第一目标对象的位置信息,从对象服务器中回收第一目标对象的内容。
关于回收对象服务器中的对象的方法将在下述实施例中详细说明,此处不予描述。
S105、容器服务器向代理服务器发送删除响应消息。
本发明实施例中,该删除响应消息中可以包括指示删除第一目标对象成功的指示信息,以指示容器服务器删除该第一目标对象成功。
可以理解的是,本发明实施例中,若对象存储系统中不存在第一目标对象,即容器服务器中不存在该第一目标对象的位置信息,对象服务器中也不存在该第一目标对象,在这种情况下,若上述容器服务器在对象列表中未查询到第一目标对象的位置信息,容器服务器可以向代理服务器发送包括指示未查询到第一目标对象的位置信息的指示信息,以指示容器服务器未查询到该第一目标对象的位置信息,即本次删除操作结束。
本发明实施例提供的数据处理方法,在删除对象存储系统中的对象(例如第一目标对象)的过程中,容器服务器接收到删除查询消息之后,容器服务器可以在容器服务器的对象列表中查询该第一目标对象的位置信息,并且在对象列表中查询到第一目标对象的位置信息的情况下,将该第一目标对象的位置信息从对象列表中删除,并且将该第一目标对象的位置信息写入容器服务器的删除日志中。现有技术相比,本发明实施例中,容器服务器在对象列表中查询到第一目标对象的位置信息时,无需再将该第一目标对象的位置信息发送给代理服务器,代理服务器也无需再将该第一目标对象的位置信息发送给对象服务器,从而对象服务器也无需在对该对象服务器中的第一目标对象做删除标记,如此,当删除对象存储系统中的该第一目标对象与读取对象存储系统中的该第一目标对象并发发生时,由于在删除该第一目标对象的过程中,对象服务器中的该第一目标对象并没有被标记为删除,因此可以在对象服务器中读取到该第一目标对象,与现有技术相比,可以避免由于对象服务器中的第一目标对象被标记为删除,而造成读取该第一目标对象失败的问题,即可以避免读取第一目标对象和删除第一目标对象的发生冲突。
进一步地,由于容器服务器无需再将该第一目标对象的位置信息发送给代理服务器,代理服务器也无需再将该第一目标对象的位置信息发送给对象服务器,从而对象服务器也无需在对该对象服务器中的第一目标对象做删除标记,如此,可以简化删除第一目标对象的流程,而且可以节约服务器之间的通信资源。
场景二
结合图1和图2,如图4所示,读取对象存储系统中的对象的场景下,本发明实施例提供的数据处理方法可以包括S201-S209:
S201、代理服务器向容器服务器发送读取查询消息,该读取查询消息中包括第二目标对象所属的容器的标识信息和第二目标对象的标识信息。
本发明实施例中,终端需读取对象存储系统中的某一对象(均可以称为第二目标对象)时,终端可以向代理服务器发送读取第二目标对象的请求消息,代理服务器接收到终端发送的读取第二目标对象的请求消息,并且解析该读取第一目标对象的请求消息,获取第二目标对象所属的容器的标识信息和第二目标对象的标识信息之后,代理服务器可以将该第二目标对象所属的容器的标识信息和第二目标对象的标识信息携带在读取查询消息中发送给容器服务器,以获取第二目标对象的位置信息,从而读取该第二目标对象。
S202、容器服务接收代理服务器发送的读取查询消息。
S203、容器服务器根据第二目标对象所属的容器的标识信息和第二目标对象的标识信息,在该容器服务器的对象列表中查询第二目标对象的位置信息。
本发明实施例中,第二目标对象的位置信息包括第二目标对象所在的文件标识、第二目标对象的偏移量以及第二目标对象的尺寸,该文件标识指示的文件中包括至少两个对象。
对于S202的其他描述可以具体参见上述场景一的实施例中,对于S103的相关描述,此处不再赘述
S204、若在对象列表中查询到第二目标对象的位置信息,容器服务器向代理服务器发送第二目标对象的位置信息。
本发明实施例中,容器服务器向代理服务器发送第二目标对象的位置信息,可以指示代理服务器根据第二目标对象的位置信息从对象服务器中读取第二目标对象。
S205、代理服务器接收容器服务器发送的第二目标对象的位置信息。
S206、代理服务器向对象服务器发送第二目标对象的位置信息。
S207、对象服务器接收容器服务器发送的第二目标对象的位置信息。
S208、对象服务器根据第二目标对象的位置信息读取第二目标对象。
S209、对象服务器向代理服务器发送第二目标对象。
本发明实施例中,代理服务器可以接收的第二目标对象的位置信息发送给对象服务器,从而对象服务器可以根据第二目标对象的位置信息,在对象服务器中的对应位置读取该第二目标对象,并将该第二目标对象发送给代理服务器,然后代理服务器将该第二目标对象发送给终端,如此终端可以顺利读取到第二目标对象。
场景三
结合图1和图2,如图5所示,向对象服务器上传对象的场景下,本发明实施例提供的数据处理方法还可以包括S301-S308:
S301、代理服务器向对象服务器发送上传第三目标对象的请求消息,该上传第三目标对象的请求消息中包括第三目标对象。
本发明实施例中,终端需向对象存储系统中上传某一对象(例如可以称为第三目标对象)时,终端可以向代理服务器发送上传请求消息,该上传请求消息中包括第三目标对象所属的容器的标识信息和第三目标对象的标识信息,该第三目标对象所属的容器的标识信息用于指示将第三目标对象写入对象服务器之后,在哪一个容器中更新第三目标对象的位置信息;代理服务器可以将该第三目标携带在上传第三目标对象的请求消息中发送给对象服务器。
S302、对象服务器接收容器服务器发送的上传第三目标对象的请求消息。
S303、对象服务器将第三目标对象写入对象服务器的某一文件中。
本发明实施例中,写入第三目标对象的文件可支持写入多个对象,该多个对象为小对象,小对象可以理解为该对象占用的空间比较小,即对象的尺寸比较小(例如一幅图像、一个小文本等都可以称为小对象),与现有技术中,每一个文件中仅包含一个对象相比,将多个对象(这里指的是将对多个小对象)写入一个大文件中,可以节省对象服务器的文件系统的存储资源,从而可以提高对象服务器的性能。
进一步的,在现有技术中,每一个文件中仅包含一个对象相比,当对象服务器回收多个小对象之后,服务器中会产生多个空间碎片(即回收每一个小对象之后的小文件),本发明实施例中,将多个小对象写入一个大文件中,如此,回收该大文件中的小对象时,可以减少服务器中的空间碎片,从而,在写入某一个大对象(占用的存储空间比较大)时,无需再将该大对象分成多个部分写入多个小文件中,可以将该大对象的全部内容写入大文件中,能够提高对象存储系统的性能。
S304、对象服务器向代理服务器发送第三目标对象的第一位置信息。
其中,第三目标对象的第一位置信息包括第三目标对象所在的文件标识、第三目标对象的偏移量以及第三目标对象的尺寸,该第三目标对象所在的文件标识指示的文件中保存有至少两个对象。
本发明实施例中,对象服务器将第三目标对象写入对象服务器的某一位置,假设该位置称为第一位置,对象服务器可以生成第三目标对象的位置信息,由于在本次向对象服务器写入第三目标对象之前,对象服务器中可能已存储有该第三目标对象(可能本次待写入的第三目标对象为对已存储的第三目标对象的修改版本),因此为了区分本次写入的第三目标对象的位置位置信息与之前已存储的第三目标对象的位置信息,将本次写入的第三目标对象的位置信息记为第三目标对象的第一位置信息。
S305、代理服务器接收对象服务器发送的第三目标对象的第一位置信息。
S306、代理服务器向容器服务器发送上述位置更新消息。
本发明实施例中,上述位置更新消息用于更新容器服务器的对象列表中的目标对象的位置信息。代理服务器接收到对象服务器发送的第三目标对象的第一位置信息之后,代理服务器可以将目标对象所属的容器的标识信息、目标对象的标识信息以及目标对象的第一位置信息携带在位置更新消息中发送给容器服务器,以指示容器服务器根据位置更新消息,更新容器服务器的对象列表中的目标对象的位置信息。
S307、容器服务器接收代理服务器发送的位置更新消息。
S308、容器服务器根据位置更新消息,更新容器服务器的对象列表中的第三目标对象的位置信息。
可选的,本发明实施例中,上述S308具体可以通过S308a-S308b实现:
S308a、容器服务器根据第三目标对象所属的容器的标识信息、第三目标对象的标识信息,在容器服务器的对象列表中查询第三目标对象的位置信息。
本发明实施例中,容器服务器根据其接收的位置更新消息中的第三目标对象所属的容器的标识信息和第三目标对象的标识信息,在对象列表中查询对象列表中是否存在第三目标对象的位置信息。
对于S308a的具体描述可以参见上述场景一的实施例中,对于S103的相关描述,此处不再赘述。
S308b、容器服务器根据查询结果,更新第三目标对象的位置信息。
本发明实施例中,容器服务器在对象列表中查询第三目标对象的位置信息的查询结果可以包括:容器服务器在对象列表中未查询到第三目标对象的位置信息,或者容器服务器在对象列表中查询到第三目标对象的位置信息。根据查询结果的不同,上述S307b可以包括下述308b1或S208b2:
S308b1、若在对象列表中未查询到第三目标对象的位置信息,容器服务器将其接收的位置更新消息中的第三目标对象的第一位置信息写入对象列表。
本发明实施例中,在对象存储系统中,将第三目标对象写入对象服务器中之后,若容器服务器不存在该第三目标对象的位置信息,则将该第三目标对象的第一位置信息写入对象列表中,从而在后续的读取或者删除第三目标对象过程中,可以通过在对象列表中查询该第三目标对象的位置信息,从而完成该第三目标对象的读取或者删除。
S308b2、若在对象列表中查询到第三目标对象的位置信息,该第三目标对象的位置信息为第二位置信息,并且第三目标对象的第二位置信息与位置更新消息中的第三目标对象的第一位置信息不同,容器服务器将第三目标对象的第二位置信息替换为第三目标对象的第一位置信息,并且将第三目标对象的第二位置信息写入容器服务器的删除日志中。
本发明实施例中,若在对象列表中查询到第三目标对象的位置信息,说明本次向对象服务器中写入第三目标对象时,对象服务器中已存储有第三目标对象(可能本次待写入的第三目标对象为对已存储的第三目标对象的修改版本),因此,可以将第三目标对象的第二位置信息替换为第三目标对象的第一位置信息,具体的,容器服务器将第三目标对象的第二位置信息删除,将第三目标对象的第一位置信息写入对象列表中,如此,在后续的操作(例如读取该第三目标对象或删除该第三目标对象)过程中,可以在容器服务器中查询到准确的第三目标对象的信息,从而正确读取该第三目标对象,或者删除第三目标对象。并且可以将第三目标对象的第二位置信息写入容器服务器的删除日志中,对象服务器根据删除日志中的第三目标对象的第二位置信息,回收对象服务器中第三目标的第二位置信息指示的第三目标对象。
本发明实施例提供的数据处理方法,在向对象存储系统中上传对象(例如可以称为第三目标对象)的过程中,代理服务器可以将上传第三目标对象的请求消息发送给对象服务器,对象服务器接收该上传第三目标对象的请求消息,并将该请求消息中的第三目标对象写入该对象服务器中,以及向代理服务器发送该第三目标对象的第一位置信息,该第三目标对象的第一位置信息包括第三目标对象所在的文件标识、第三目标对象的偏移量以及第三目标对象的尺寸,该第三目标对象所在的文件标识指示的文件中保存有至少两个对象。与现有技术相比,本发明实施例中,由于对象服务器将第三目标对象写入对象服务器的文件系统的文件中,该文件中可以包括至少两个对象,可知,当对象存储系统中写入多个小对象时,可以将多个小对象写入一个文件中,如此,可以节省对象服务器的文件系统的存储资源,从而提高对象服务器的性能。
可选的,本发明实施例中,上述场景一中的第一目标对象,场景二中的第二目标对象以及场景三中的第三目标对象可以为相同的目标对象,也可以为不同的目标对象。若第一目标对象、第二目标对象以及第三目标对象为相同的目标对象,例如均称为第一目标对象,则通过上述实施例中三种场景的描述,可以将第一目标对象写入对象存储系统,从而可以从该对象存储系统中读取该第一目标对象,或者删除该第一目标对象。
可选的,本发明实施例中,根据上述实施例的相关描述,当容器服务器从对象列表中删除一个对象的位置信息,并且将该对象的位置信息写入删除日志之后,可以通过容器服务器和对象服务器的交互,回收对象服务器中的该对象。下面以第一目标对象为例,对回收对象的方法做示例性的说明。
结合图1和图2,如图6所示,容器服务器从对象列表中删除第一目标对象的位置信息,并且将该第一目标对象的位置信息写入删除日志之后,本发明实施例提供的数据处理方法还可以包括S401-S406:
S401、容器服务器向对象服务器发送垃圾回收请求消息。
其中,垃圾回收请求消息中包括删除日志中的第一目标对象的位置信息。该垃圾请求消息用于请求对象服务器回收对象服务器中的第一目标对象的内容(即包括第一目标对象的元数据和数据)。
可选的,本发明实施例中,容器服务器从对象列表中删除第一目标对象的位置信息,并且将该第一目标对象的位置信息写入删除日志之后,容器服务器在预设的时间间隔内向对象服务器发送垃圾回收请求消息,或者容器服务器可以在对象服务器的剩余存储空间比较小时,向对象服务器发送垃圾回收请求,以回收对象服务器中的对象(也可理解为垃圾)。
S402、对象服务器接收容器服务器发送的垃圾回收请求消息。
S403、对象服务器根据垃圾回收请求消息中的第一目标对象的位置信息,删除第一目标对象。
本发明实施例中,对象服务器可以回收对象服务器中的垃圾对象,该垃圾对象即为容器服务器的删除日志中的对象的位置信息指示的对象,上述对象服务器回收第一目标对象的方法为:根据垃圾回收请求消息中的第一目标对象的位置信息,删除第一目标对象,从而释放了对象服务器的存储空间。
S404、对象服务器向容器服务器发送垃圾回收响应消息,该垃圾回收响应消息指示已删除第一目标对象。
S405、容器服务器接收对象服务器发送的垃圾回收响应消息。
S406、容器服务器删除容器服务器的删除日志中的第一目标对象的位置信息。
本发明实施例中,容器服务器接收到对象服务器发送的垃圾回收响应消息之后,容器服务器可以将其删除日志中的该第一目标对象的位置信息删除,至此完成回收该第一目标对象,对象存储系统中不再存在该第一目标对象。
可选的,本发明实施例中,在对象存储系统中,当读取某一对象与删除该对象并发发生时(即可以理解为对象存储系统处理读取某一对象的事件的同时也需要处理删除该对象的事件),以第一目标对象为例说明,根据上述实施例中的读取对象和删除对象的方法,本发明实施例中,在容器服务器将第一目标对象的位置信息从对象列表中删除,并且将第一目标对象的位置信息写入容器服务器的删除日志中之前,容器服务器已读取对象列表中的第一目标对象的位置信息,那么本次读取第一目标对象的流程和删除第一目标对象的流程中,即使容器服务器中的第一目标对象的位置信息已被删除,并且该第一目标对象的位置信息已被写入删除日志中,本次还可以读取到第一目标对象。
与现有技术相比,上述容器服务器中的第一目标对象的位置信息已被删除,并且该第一目标对象的位置信息已被写入删除日志中,本次还可以读取第一目标对象的原因是:本次删除第一目标对象的过程中,可以在删除日志中写入第一目标对象的位置信息,以表示对该第一目标对象做了删除标记,无需再对对象服务器中的第一目标对象做删除标记,因此,在对象服务器中该第一目标对象依然存在,并且还未被回收,如此,对象服务器可以根据上述容器服务器根据读取查询请求消息获取的第一目标对象的位置信息,在该对象服务器中读取该第一目标对象。可见本发明实施例提供的数据处理方法,能够在一定程度上避免读取对象和删除对象的冲突(指的是读取对象和删除对象并发发生时,先删除对象的操作会造成读取对象的操作无法读取到该对象)。
综上所述,本发明实施例提供的数据处理方法,上述删除对象、读取对象、上传对象以及回收对象的过程可以在用户态完成,能够降低开发和维护对象存储系统的难度。
上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如容器服务器、对象服务器以及代理服务器等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本发明实施例可以根据上述方法示例对容器服务器、对象服务器以及代理服务器等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中所涉及的容器服务器的一种可能的结构示意图,如图7所示,容器服务器可以包括:接收模块30、查询模块31、更新模块32以及发送模块33。其中,接收模块30可以用于支持容器服务器执行上述方法实施例中的S102、S202、S307和S405;查询模块31可以用于支持容器服务器执行上述方法实施例中的S103、S203;更新模块32可以用于支持容器服务器执行上述方法实施例中的S104、S308(包括S308a-S308b)和S406;发送模块33可以用于支持容器服务器执行上述方法实施例中的S105、S204和S401。可选的,如图7所示,该容器服务器还可以包括读取模块34。读取模块34可以用于支持容器服务器执行上述实施例中的“若接收模块30接收的读取查询消息中包括第一目标对象所属的容器的标识信息和第一目标对象的标识信息,在更新模块删除对象列表中的第一目标对象的位置信息,并且将第一目标对象的位置信息写入所述容器服务器的删除日志中之前,读取对象列表中的第一目标对象的位置信息”。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图8示出了上述实施例中所涉及的容器服务器的一种可能的结构示意图。如图8所示,容器服务器可以包括:处理模块40和通信模块41。处理模块40可以用于对容器服务器的动作进行控制管理,例如,处理模块40可以用于支持容器服务器执行上述方法实施例中的S103、S104、S203、S308(包括S308a-S308b)和S406,和/或用于本文所描述的技术的其它过程。通信模块41可以用于支持容器服务器与其他网络实体的通信,例如通信模块41可以用于支持容器服务器执行上述方法实施例中的S102、S105、S202、S204、S307、S401和S405。可选的,如图8所示,该容器服务器还可以包括存储模块42,用于存储容器服务器的程序代码和数据。
其中,处理模块40可以是处理器或控制器(例如可以是上述如图2所示的处理器201),例如可以是中央处理器(central processing unit,CPU)、通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application-specificintegrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框、模块和电路。上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块41可以是收发器、收发电路或通信接口等(例如可以是上述如图2所示的通信接口203)。存储模块42可以是存储器(例如可以是上述如图2所示的存储器202)。
当处理模块40为处理器,通信模块41为收发器,存储模块42为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是外设部件互连标准(peripheralcomponent interconnect,PCI)总线或扩展工业标准结构(extended Industry standardarchitecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。
在采用对应各个功能划分各个功能模块的情况下,图9示出了上述实施例中所涉及的对象服务器的一种可能的结构示意图,如图9所示,对象服务器可以包括:接收模块50、写数据模块51以及发送模块52。接收模块50可以用于支持对象服务器执行上述方法实施例中的S207、S302和S402;写数据模块51可以用于支持对象服务器执行上述方法实施例中的S303;发送模块52可以用于支持对象服务器执行上述方法实施例中的S209、S304和S404。可选的,如图9所示,该对象服务器还可以包括读取模块53和删除模块54。读取模块53可以用于支持对象服务器执行上述方法实施例中的S208;删除模块54可以用于支持对象服务器执行上述方法实施例中的S403。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图10示出了上述实施例中所涉及的对象服务器的一种可能的结构示意图。如图10所示,对象服务器可以包括:处理模块60和通信模块61。处理模块60可以用于对对象服务器的动作进行控制管理,例如,处理模块60可以用于支持对象服务器执行上述方法实施例中的S208、S303和S403,和/或用于本文所描述的技术的其它过程。通信模块61可以用于支持对象服务器与其他网络实体的通信,例如通信模块61可以用于支持对象服务器执行上述方法实施例中的S207、S209、S302、S304、S402和S404。可选的,如图10所示,该对象服务器还可以包括存储模块62,用于存储对象服务器的程序代码和数据。
其中,处理模块60可以是处理器或控制器(例如可以是上述如图2所示的处理器301),例如可以是CPU、通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框、模块和电路。上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块61可以是收发器、收发电路或通信接口等(例如可以是上述如图2所示的通信接口303)。存储模块62可以是存储器(例如可以是上述如图2所示的存储器302)。
当处理模块60为处理器,通信模块61为收发器,存储模块62为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。
在采用对应各个功能划分各个功能模块的情况下,图11示出了上述实施例中所涉及的代理服务器的一种可能的结构示意图,如图11所示,代理服务器可以包括:发送模块70和接收模块71。发送模块70可以用于支持代理服务器执行上述方法实施例中的S101、S201、S206、S301和S306;接收模块50可以用于支持代理服务器执行上述方法实施例中的S205和S305。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
在采用集成的单元的情况下,图12示出了上述实施例中所涉及的代理服务器的一种可能的结构示意图。如图12所示,代理服务器可以包括:处理模块80和通信模块81。处理模块80可以用于对代理服务器的动作进行控制管理。通信模块81可以用于支持代理服务器与其他网络实体的通信,例如通信模块81可以用于支持代理服务器执行上述方法实施例中的S101、S201、S206、S205、S301、S305和S306。可选的,如图12所示,该代理服务器还可以包括存储模块82,用于存储代理服务器的程序代码和数据。
其中,处理模块80可以是处理器或控制器(例如可以是上述如图2所示的处理器101),例如可以是CPU、通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明实施例公开内容所描述的各种示例性的逻辑方框、模块和电路。上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块81可以是收发器、收发电路或通信接口等(例如可以是上述如图2所示的通信接口103)。存储模块82可以是存储器(例如可以是上述如图2所示的存储器102)。
当处理模块80为处理器,通信模块81为收发器,存储模块82为存储器时,处理器、收发器和存储器可以通过总线连接。总线可以是PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本发明实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (31)
1.一种数据处理方法,其特征在于,包括:
容器服务器接收代理服务器发送的删除查询消息,所述删除查询消息中包括第一目标对象所属的容器的标识信息和所述第一目标对象的标识信息;
所述容器服务器根据所述第一目标对象所属的容器的标识信息和所述第一目标对象的标识信息,在所述容器服务器的对象列表中查询所述第一目标对象的位置信息,所述对象列表中包含第一类对象的位置信息,所述第一类对象为未被标记删除的、对象服务器中存储的对象,一个第一类对象的位置信息用于指示所述对象在所述对象服务器中的位置;
若在所述对象列表中查询到所述第一目标对象的位置信息,所述容器服务器删除所述对象列表中的所述第一目标对象的位置信息,并且将所述第一目标对象的位置信息写入所述容器服务器的删除日志中,所述删除日志中包含第二类对象的位置信息,所述第二类对象为被标记删除的、对象服务器中存储的对象的位置信息;
所述容器服务器向所述代理服务器发送删除响应消息。
2.根据权利要求1所述的方法,其特征在于,
所述第一目标对象的位置信息包括所述第一目标对象所在的文件标识、所述第一目标对象的偏移量以及所述第一目标对象的尺寸,所述文件标识指示的文件中包括至少两个对象;或者,
所述第一目标对象的位置信息包括所述第一目标对象的ID。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述容器服务器接收所述代理服务器发送的读取查询消息,所述读取查询消息中包括第二目标对象所属的容器的标识信息和所述第二目标对象的标识信息;
所述容器服务器根据所述第二目标对象所属的容器的标识信息和所述第二目标对象的标识信息,在所述对象列表中查询所述第二目标对象的位置信息,所述第二目标对象的位置信息包括所述第二目标对象所在的文件标识、所述第二目标对象的偏移量以及所述第二目标对象的尺寸,所述文件标识指示的文件中包括至少两个对象;
若在所述对象列表中查询到所述第二目标对象的位置信息,所述容器服务器向所述代理服务器发送所述第二目标对象的位置信息,以指示所述代理服务器根据所述第二目标对象的位置信息从所述对象服务器中读取所述第二目标对象。
4.根据权利要求1至3任意一项所述的方法,其特征在于,若所述容器服务器接收的读取查询消息中包括所述第一目标对象所属的容器的标识信息和所述第一目标对象的标识信息,在所述容器服务器删除所述对象列表中的所述第一目标对象的位置信息,并且将所述第一目标对象的位置信息写入所述容器服务器的删除日志中之前,所述方法还包括:
所述容器服务器读取所述对象列表中的所述第一目标对象的位置信息。
5.根据权利要求1至4任意一项所述的方法,其特征在于,所述方法还包括:
所述容器服务器向所述对象服务器发送垃圾回收请求消息,所述垃圾回收请求消息中包括所述删除日志中的目标对象的位置信息;
所述容器服务器接收所述对象服务器发送的垃圾回收响应消息,所述垃圾回收响应消息指示所述对象服务器已删除所述目标对象;
所述容器服务器删除所述删除日志中所述目标对象的位置信息。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法还包括:
所述容器服务器接收所述代理服务器发送的位置更新消息,所述位置更新消息用于更新第三目标对象的位置信息,所述位置更新消息中包括所述第三目标对象所属的容器的标识信息、所述第三目标对象的标识信息以及所述第三目标对象的第一位置信息;
所述容器服务器根据所述位置更新消息,更新所述第三目标对象的位置信息。
7.根据权利要求6所述的方法,其特征在于,所述容器服务器根据所述位置更新消息,更新所述第三目标对象的位置信息,包括:
所述容器服务器根据所述第三目标对象所属的容器的标识信息、所述第三目标对象的标识信息,在所述容器服务器的对象列表中查询所述第三目标对象的位置信息;
若在所述对象列表中未查询到所述第三目标对象的位置信息,所述容器服务器将所述位置更新消息中的第三目标对象的第一位置信息写入所述对象列表;
若在所述对象列表中查询到所述第三目标对象的位置信息,所述第三目标对象的位置信息为第二位置信息,并且所述第三目标对象的第二位置信息与所述位置更新消息中的所述第三目标对象的第一位置信息不同,所述容器服务器将所述第三目标对象的第二位置信息替换为所述第三目标对象的第一位置信息,并且将所述第三目标对象的第二位置信息写入所述容器服务器的删除日志中。
8.一种数据处理方法,其特征在于,包括:
对象服务器接收代理服务器发送的上传目标对象的请求消息,所述上传目标对象的请求消息中包括第三目标对象;
所述对象服务器将所述第三目标对象写入所述对象服务器中;
所述对象服务器向所述代理服务器发送所述第三目标对象的位置信息,所述第三目标对象的位置信息包括所述第三目标对象所在的文件标识、所述第三目标对象的偏移量以及所述第三目标对象的尺寸,所述文件标识指示的文件中包括有至少两个对象。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述对象服务器接收所述代理服务器发送的第二目标对象的位置信息;
所述对象服务器根据所述第二目标对象的位置信息读取所述第二目标对象;
所述对象服务器向所述代理服务器发送发送所述第二目标对象。
10.根据权利要求8或9所述的方法,其特征在于,所述方法还包括:
所述对象服务器接收所述容器服务器发送的垃圾回收请求消息,所述垃圾回收请求消息中包括所述容器服务器的删除日志中的第一目标对象的位置信息;
所述对象服务器根据所述第一目标对象的位置信息,删除所述第一目标对象;
所述对象服务器向所述容器服务器发送垃圾回收响应消息,所述垃圾回收响应消息指示已删除所述第一目标对象。
11.一种数据处理方法,其特征在于,包括:
代理服务器向对象服务器发送上传目标对象的请求消息,所述上传目标对象的请求消息中包括所述目标对象;
所述代理服务器接收所述对象服务器发送的所述目标对象的第一位置信息,所述目标对象的第一位置信息包括所述目标对象所在的文件标识、所述目标对象的偏移量以及所述目标对象的尺寸,所述文件标识指示的文件中保存有至少两个对象;
所述代理服务器向容器服务器发送所述位置更新消息,以指示所述容器服务器根据所述位置更新消息,更新所述容器服务器的对象列表中的所述目标对象的位置信息,所述位置更新消息中包括所述目标对象所属的容器的标识信息、所述目标对象的标识信息以及所述目标对象的第一位置信息。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
所述代理服务器接收所述容器服务器发送的删除响应消息,所述删除响应消息为所述容器服务删除所述对象列表中的所述目标对象的位置信息,并将所述目标所述目标对象的位置信息写入所述容器服务器的删除日志之后发送的。
13.一种容器服务器,其特征在于,包括接收模块、查询模块、更新模块以及发送模块;
所述接收模块,用于接收代理服务器发送的删除查询消息,所述删除查询消息中包括第一目标对象所属的容器的标识信息和所述第一目标对象的标识信息;
所述查询模块,用于根据所述接收模块接收的所述第一目标对象所属的容器的标识信息和所述第一目标对象的标识信息,在所述容器服务器的对象列表中查询所述第一目标对象的位置信息,所述对象列表中包含第一类对象的位置信息,所述第一类对象为未被标记删除的、对象服务器中存储的对象,一个第一类对象的位置信息用于指示所述对象在所述对象服务器中的位置;
所述更新模块,用于若所述查询模块在所述对象列表中查询到所述第一目标对象的位置信息,删除所述对象列表中的所述第一目标对象的位置信息,并且将所述第一目标对象的位置信息写入所述容器服务器的删除日志中,所述删除日志中包含第二类对象的位置信息,所述第二类对象为被标记删除的、对象服务器中存储的对象的位置信息;
所述发送模块,用于向所述代理服务器发送删除响应消息。
14.根据权利要求13所述的容器服务器,其特征在于,
所述第一目标对象的位置信息包括所述第一目标对象所在的文件标识、所述第一目标对象的偏移量以及所述第一目标对象的尺寸,所述文件标识指示的文件中包括至少两个对象;或者,
所述第一目标对象的位置信息包括所述第一目标对象的ID。
15.根据权利要求13或14所述的容器服务器,其特征在于,
所述接收模块,还用于接收所述代理服务器发送的读取查询消息,所述读取查询消息中包括第二目标对象所属的容器的标识信息和所述第二目标对象的标识信息;
所述查询模块,还用于根据所述接收模块接收的所述第二目标对象所属的容器的标识信息和所述第二目标对象的标识信息,在所述对象列表中查询所述第二目标对象的位置信息,所述第二目标对象的位置信息包括所述第二目标对象所在的文件标识、所述第二目标对象的偏移量以及所述第二目标对象的尺寸,所述文件标识指示的文件中包括至少两个对象;
所述发送模块,还用于若所述查询模块在所述对象列表中查询到所述第二目标对象的位置信息,所述容器服务器向所述代理服务器发送所述第二目标对象的位置信息,以指示所述代理服务器根据所述第二目标对象的位置信息从所述对象服务器中读取所述第二目标对象。
16.根据权利要求13至15任意一项所述的容器服务器,其特征在于,所述容器服务器还包括读取模块;
所述读取模块,用于若所述接收模块接收的读取查询消息中包括所述第一目标对象所属的容器的标识信息和所述第一目标对象的标识信息,在所述更新模块删除所述对象列表中的所述第一目标对象的位置信息,并且将所述第一目标对象的位置信息写入所述容器服务器的删除日志中之前,读取所述对象列表中的所述第一目标对象的位置信息。
17.根据权利要求13至16任意一项所述的容器服务器,其特征在于,
所述发送模块,还用于向所述对象服务器发送垃圾回收请求消息,所述垃圾回收请求消息中包括所述删除日志中的目标对象的位置信息;
所述接收模块,还用于接收所述对象服务器发送的垃圾回收响应消息,所述垃圾回收响应消息指示所述对象服务器已删除所述目标对象;
所述更新模块,还用于删除所述删除日志中所述目标对象的位置信息。
18.根据权利要要求13至17任意一项所述的容器服务器,其特征在于,
所述接收模块,还用于接收所述代理服务器发送的位置更新消息,所述位置更新消息用于更新第三目标对象的位置信息,所述位置更新消息中包括所述第三目标对象所属的容器的标识信息、所述第三目标对象的标识信息以及所述第三目标对象的第一位置信息;
所述更新模块,还用于根据所述接收模块接收的所述位置更新消息,更新所述第三目标对象的位置信息。
19.根据权利要求18所述的容器服务器,其特征在于,
所述查询模块,还用于根据所述第三目标对象所属的容器的标识信息、所述第三目标对象的标识信息,在所述容器服务器的对象列表中查询所述第三目标对象的位置信息;
所述更新模块,具体用于若所述查询模块在所述对象列表中未查询到所述第三目标对象的位置信息,将所述位置更新消息中的第三目标对象的第一位置信息写入所述对象列表,若所述查询模块在所述对象列表中查询到所述第三目标对象的位置信息,所述第三目标对象的位置信息为第二位置信息,并且所述第三目标对象的第二位置信息与所述位置更新消息中的所述第三目标对象的第一位置信息不同,将所述第三目标对象的第二位置信息替换为所述第三目标对象的第一位置信息,并且将所述第三目标对象的第二位置信息写入所述容器服务器的删除日志中。
20.一种对象服务器,其特征在于,包括接收模块、写数据模块以及发送模块;
所述接收模块,用于接收代理服务器发送的上传目标对象的请求消息,所述上传目标对象的请求消息中包括第三目标对象;
所述写数据模块,用于将所述接收模块接收的所述第三目标对象写入所述对象服务器中;
所述发送模块,用于向所述代理服务器发送所述第三目标对象的位置信息,所述第三目标对象的位置信息包括所述第三目标对象所在的文件标识、所述第三目标对象的偏移量以及所述第三目标对象的尺寸,所述文件标识指示的文件中包括有至少两个对象。
21.根据权利要求20所述的对象服务器,其特征在于,所述对象服务器还包括读取模块;
所述接收模块,还用于接收所述代理服务器发送的第二目标对象的位置信息;
所述读取模块,用于根据所述接收模块接收的所述第二目标对象的位置信息读取所述第二目标对象;
所述发送模块,还用于向所述代理服务器发送发送所述第二目标对象。
22.根据权利要求20或21所述的对象服务器,其特征在于,所述对象服务器还包括删除模块;
所述接收模块,还用于接收所述容器服务器发送的垃圾回收请求消息,所述垃圾回收请求消息中包括所述容器服务器的删除日志中的第一目标对象的位置信息;
所述删除模块,用于根据所述接收模块接收的所述第一目标对象的位置信息,删除所述第一目标对象;
所述发送模块,还用于向所述容器服务器发送垃圾回收响应消息,所述垃圾回收响应消息指示已删除所述第一目标对象。
23.一种代理服务器,其特征在于,包括发送模块和接收模块;
所述发送模块,用于向对象服务器发送上传目标对象的请求消息,所述上传目标对象的请求消息中包括所述目标对象;
所述接收模块,用于接收所述对象服务器发送的所述目标对象的第一位置信息,所述目标对象的第一位置信息包括所述目标对象所在的文件标识、所述目标对象的偏移量以及所述目标对象的尺寸,所述文件标识指示的文件中保存有至少两个对象;
所述发送模块,还用于向容器服务器发送位置更新消息,以指示所述容器服务器根据所述位置更新消息,更新所述容器服务器的对象列表中的所述目标对象的位置信息,所述位置更新消息中包括所述目标对象所属的容器的标识信息、所述目标对象的标识信息以及所述目标对象的第一位置信息。
24.根据权利要求23所述的代理服务器,其特征在于,
所述接收模块,还用于接收所述容器服务器发送的删除响应消息,所述删除响应消息为所述容器服务删除所述对象列表中的所述目标对象的位置信息,并将所述目标所述目标对象的位置信息写入所述容器服务器的删除日志之后发送的。
25.一种容器服务器,其特征在于,包括处理器和与所述处理器耦合连接的存储器;
所述存储器用于存储计算机指令,当所述容器服务器运行时,所述处理器执行所述存储器存储的所述计算机指令,以使得所述容器服务器执行如权利要求1至7任意一项所述的数据处理方法。
26.一种对象服务器,其特征在于,包括处理器和与所述处理器耦合连接的存储器;
所述存储器用于存储计算机指令,当所述对象服务器运行时,所述处理器执行所述存储器存储的所述计算机指令,以使得所述对象服务器执行如权利要求8至10任意一项所述的数据处理方法。
27.一种代理服务器,其特征在于,包括处理器和与所述处理器耦合连接的存储器;
所述存储器用于存储计算机指令,当所述代理服务器运行时,所述处理器执行所述存储器存储的所述计算机指令,以使得所述代理服务器执行如权利要求11或12所述的数据处理方法。
28.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在容器服务器上运行时,使得所述容器服务器执行如权利要求1至7任意一项所述的数据处理方法。
29.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在对象服务器上运行时,使得所述对象服务器执行如权利要求8至10任意一项所述的数据处理方法。
30.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在代理服务器上运行时,使得所述代理服务器执行如权利要求11或12所述的数据处理方法。
31.一种对象存储系统,其特征在于,包括如权利要求13至19任意一项或者权利要求25所述的容器服务器,如权利要求20至22任意一项或者权利要求26所述的对象服务器,以及如权利要求23或24或者权利要求27所述的代理服务器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710890580.XA CN107786638B (zh) | 2017-09-27 | 2017-09-27 | 一种数据处理方法、装置及系统 |
PCT/CN2018/105965 WO2019062572A1 (zh) | 2017-09-27 | 2018-09-17 | 一种数据处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710890580.XA CN107786638B (zh) | 2017-09-27 | 2017-09-27 | 一种数据处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107786638A true CN107786638A (zh) | 2018-03-09 |
CN107786638B CN107786638B (zh) | 2020-04-14 |
Family
ID=61434093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710890580.XA Active CN107786638B (zh) | 2017-09-27 | 2017-09-27 | 一种数据处理方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107786638B (zh) |
WO (1) | WO2019062572A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628664A (zh) * | 2018-05-11 | 2018-10-09 | 北京辰森世纪科技股份有限公司 | 一种容器处理的方法及装置 |
CN109088913A (zh) * | 2018-06-29 | 2018-12-25 | 华为技术有限公司 | 请求数据的方法和负载均衡服务器 |
WO2019062572A1 (zh) * | 2017-09-27 | 2019-04-04 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
CN110543325A (zh) * | 2019-08-15 | 2019-12-06 | 中国银行股份有限公司 | 数据处理方法及装置 |
CN110896408A (zh) * | 2018-09-13 | 2020-03-20 | 华为技术有限公司 | 一种数据处理方法及服务器集群 |
CN113950145A (zh) * | 2021-12-20 | 2022-01-18 | 支付宝(杭州)信息技术有限公司 | 数据处理方法及装置 |
CN117194298A (zh) * | 2023-09-18 | 2023-12-08 | 上海鸿翼软件技术股份有限公司 | 一种控制方法、装置、设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112948694B (zh) * | 2021-03-31 | 2023-06-27 | 北京奇艺世纪科技有限公司 | 数据处理方法、装置、电子设备及可读存储介质 |
CN113342274B (zh) * | 2021-06-10 | 2024-01-30 | 北京火山引擎科技有限公司 | 一种数据处理方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130013780A1 (en) * | 2007-09-03 | 2013-01-10 | Sony Corporation | Content receiving device and method |
CN104641377A (zh) * | 2012-10-19 | 2015-05-20 | 迈克菲股份有限公司 | 用于移动计算设备的数据丢失防护 |
CN104813328A (zh) * | 2012-12-23 | 2015-07-29 | 迈克菲公司 | 受信容器 |
CN105100149A (zh) * | 2014-05-13 | 2015-11-25 | 中国电信股份有限公司 | 用于管理文件的方法和系统 |
CN105338113A (zh) * | 2015-11-25 | 2016-02-17 | 北京航空航天大学 | 一种针对城市数据资源共享的多平台数据互联系统 |
CN105677250A (zh) * | 2016-01-04 | 2016-06-15 | 北京百度网讯科技有限公司 | 对象存储系统中的对象数据的更新方法和更新装置 |
WO2016192866A1 (en) * | 2015-06-03 | 2016-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Implanted agent within a first service container for enabling a reverse proxy on a second container |
CN107105050A (zh) * | 2017-05-11 | 2017-08-29 | 北京奇艺世纪科技有限公司 | 一种业务对象的存储、下载方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107786638B (zh) * | 2017-09-27 | 2020-04-14 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
-
2017
- 2017-09-27 CN CN201710890580.XA patent/CN107786638B/zh active Active
-
2018
- 2018-09-17 WO PCT/CN2018/105965 patent/WO2019062572A1/zh active Application Filing
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130013780A1 (en) * | 2007-09-03 | 2013-01-10 | Sony Corporation | Content receiving device and method |
CN104641377A (zh) * | 2012-10-19 | 2015-05-20 | 迈克菲股份有限公司 | 用于移动计算设备的数据丢失防护 |
CN104813328A (zh) * | 2012-12-23 | 2015-07-29 | 迈克菲公司 | 受信容器 |
CN105100149A (zh) * | 2014-05-13 | 2015-11-25 | 中国电信股份有限公司 | 用于管理文件的方法和系统 |
WO2016192866A1 (en) * | 2015-06-03 | 2016-12-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Implanted agent within a first service container for enabling a reverse proxy on a second container |
CN105338113A (zh) * | 2015-11-25 | 2016-02-17 | 北京航空航天大学 | 一种针对城市数据资源共享的多平台数据互联系统 |
CN105677250A (zh) * | 2016-01-04 | 2016-06-15 | 北京百度网讯科技有限公司 | 对象存储系统中的对象数据的更新方法和更新装置 |
CN107105050A (zh) * | 2017-05-11 | 2017-08-29 | 北京奇艺世纪科技有限公司 | 一种业务对象的存储、下载方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019062572A1 (zh) * | 2017-09-27 | 2019-04-04 | 华为技术有限公司 | 一种数据处理方法、装置及系统 |
CN108628664A (zh) * | 2018-05-11 | 2018-10-09 | 北京辰森世纪科技股份有限公司 | 一种容器处理的方法及装置 |
CN109088913A (zh) * | 2018-06-29 | 2018-12-25 | 华为技术有限公司 | 请求数据的方法和负载均衡服务器 |
CN109088913B (zh) * | 2018-06-29 | 2021-05-11 | 华为技术有限公司 | 请求数据的方法和负载均衡服务器 |
CN110896408A (zh) * | 2018-09-13 | 2020-03-20 | 华为技术有限公司 | 一种数据处理方法及服务器集群 |
CN110543325A (zh) * | 2019-08-15 | 2019-12-06 | 中国银行股份有限公司 | 数据处理方法及装置 |
CN113950145A (zh) * | 2021-12-20 | 2022-01-18 | 支付宝(杭州)信息技术有限公司 | 数据处理方法及装置 |
CN113950145B (zh) * | 2021-12-20 | 2022-03-08 | 支付宝(杭州)信息技术有限公司 | 数据处理方法及装置 |
CN117194298A (zh) * | 2023-09-18 | 2023-12-08 | 上海鸿翼软件技术股份有限公司 | 一种控制方法、装置、设备及存储介质 |
CN117194298B (zh) * | 2023-09-18 | 2024-05-31 | 上海鸿翼软件技术股份有限公司 | 一种控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107786638B (zh) | 2020-04-14 |
WO2019062572A1 (zh) | 2019-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107786638B (zh) | 一种数据处理方法、装置及系统 | |
CN107870728B (zh) | 用于移动数据的方法和设备 | |
CN107911249B (zh) | 一种网络设备的命令行发送方法、装置和设备 | |
CN103607428B (zh) | 一种访问共享内存的方法和装置 | |
CN108228646B (zh) | 用于访问数据的方法和电子设备 | |
CN111198856B (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
US10884926B2 (en) | Method and system for distributed storage using client-side global persistent cache | |
CN106446044B (zh) | 存储空间回收方法及装置 | |
CN109889588B (zh) | 文件获取方法、装置、计算机设备和存储介质 | |
CN109918352B (zh) | 存储器系统和存储数据的方法 | |
KR20070039067A (ko) | 정보 제공 시스템, 정보 제공 서버, 휴대 단말, 정보 제공제어 프로그램 및 휴대 단말 제어 프로그램 | |
US10983718B2 (en) | Method, device and computer program product for data backup | |
US11455117B2 (en) | Data reading method, apparatus, and system, avoiding version rollback issues in distributed system | |
CN113568566A (zh) | 利用索引物件来进行简易存储服务无缝迁移的方法、主装置以及存储服务器 | |
CN111831691B (zh) | 一种数据读写方法及装置、电子设备、存储介质 | |
CN104424224A (zh) | 一种文件索引存储方法及装置 | |
CN109542860B (zh) | 基于hdfs的业务数据管理方法、终端设备 | |
CN109753229B (zh) | 数据迁移方法、装置、网络附属存储设备和存储介质 | |
US20140365430A1 (en) | Information processing apparatus, system, and control method | |
CN114443598A (zh) | 写数据方法、装置、计算机设备及存储介质 | |
CN110866380A (zh) | 一种填写信息字段内容的方法、终端 | |
CN114201496A (zh) | 数据更新方法、装置、电子设备、系统及存储介质 | |
CN104468318B (zh) | 网络通信中回收反向关系链的方法及服务器 | |
CN109857719B (zh) | 分布式文件处理方法、装置、计算机设备以及存储介质 | |
US20210144217A1 (en) | Service communication proxy apparatus and method |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220215 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |