WO2022073458A1 - 对象存储服务的数据修改方法、服务节点、客户端及设备 - Google Patents

对象存储服务的数据修改方法、服务节点、客户端及设备 Download PDF

Info

Publication number
WO2022073458A1
WO2022073458A1 PCT/CN2021/122147 CN2021122147W WO2022073458A1 WO 2022073458 A1 WO2022073458 A1 WO 2022073458A1 CN 2021122147 W CN2021122147 W CN 2021122147W WO 2022073458 A1 WO2022073458 A1 WO 2022073458A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
modified
target object
object storage
service node
Prior art date
Application number
PCT/CN2021/122147
Other languages
English (en)
French (fr)
Inventor
汪正洋
Original Assignee
华为云计算技术有限公司
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 华为云计算技术有限公司 filed Critical 华为云计算技术有限公司
Publication of WO2022073458A1 publication Critical patent/WO2022073458A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • 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

Definitions

  • the present application relates to the field of communication technologies, and in particular, to a data modification method, service node, client and device for object storage services.
  • Object storage service is an object-based storage service with the advantages of mass, security, high reliability, and low cost.
  • OBS is a service oriented to Internet (internet) access. Tenants can establish connections with object storage service nodes (computing nodes that support OBS) through the object storage client, create data buckets on the object storage service nodes, and access and manage objects in the data buckets on the object storage service nodes.
  • object storage service nodes computing nodes that support OBS
  • OBS supports data write, read, and append write modes.
  • the append write mode can be used to modify data.
  • the tenant can download the data in the object from the object storage service node to the local object storage client through the object storage client, and then modify the data in the object on the object storage client, and then upload the modified data in the object. Upload it to the object storage service node and overwrite the objects stored on the object storage service node.
  • This method of data modification requires downloading all the data in the object to the local object storage client. For objects with a large amount of data, the download process takes a long time, and when the storage space is not enough to store the object, the Data modification failed.
  • the present application provides a data modification method, service node, client and device for an object storage service, which are used to improve the data modification efficiency based on the object storage service.
  • an embodiment of the present application provides a data modification method for an object storage service, and the method is applied to an object storage service node.
  • the object storage service node receives a data write request sent by the object storage client, and the data write request is used to request to modify the data to be modified in the target object stored in the object storage service node.
  • the data write request may include the bucket domain name of the data bucket where the target object is located, the name of the target object, and the location of the data to be modified in the target object (the location of the data to be modified in the target object can be determined by the data to be modified in the target object.
  • the offset and the data length indication of the data to be modified can also be indicated by other information), and the modified data; after the object storage service node receives the data write request, the object storage service node can modify the target object.
  • the object storage service node confirms the data bucket according to the bucket domain name (in the embodiment of this application, the data bucket may also be referred to as a bucket for short), confirms the target object in the data bucket according to the name of the target object, and confirms the target object according to the position of the data to be modified in the target object Determine the data to be modified, and modify the data to be modified into modified data.
  • the tenant can trigger the object storage service node to modify the target object stored in the object storage service node through the object storage client, and it is no longer necessary to download all the data in the target object to the local object storage client.
  • the method is relatively simple, convenient and efficient, which effectively reduces the number of interactions between the object storage client and the object storage service node, shortens the interaction time, and improves the efficiency of data modification.
  • the object storage service node may directly update the data to be modified in the target object to modified data.
  • the object storage service node may also store the modified data without changing the original data in the target object; for example, the object storage service node may store the modified data in the persistent storage unit, and record the metadata used to indicate the data layout of the modified data, wherein , the data layout includes the storage location of the modified data, and the storage location of the modified data can be indicated by the identifier of the persistent storage unit, the offset of the modified data in the persistent storage unit, and the length of the modified data in the persistent storage unit.
  • the data layout may further include the position of the modified data in the target object, and the position of the modified data in the target object may be indicated by the position of the object to be modified in the target object.
  • the object storage service node can modify the data in the target object in different ways, and the way is more flexible.
  • the method of storing the modified data enables the object storage service node to save the data before and after each data modification, and can record the modification process of the data; the method of storing the modified data is also more convenient, which further reduces the time for data modification.
  • the metadata of the target object can be divided into multiple secondary metadata, one secondary metadata is the metadata of the data in a range of the target object, and different secondary metadata correspond to different ranges , that is, a secondary metadata can be used to indicate the data layout of a range of data in the target object.
  • the division of the metadata of the target object facilitates the subsequent reading of the secondary metadata in a targeted manner.
  • the object storage service node when the object storage service node records metadata, it may first determine the range to which the data to be modified belongs in the target object according to the offset of the data to be modified in the target object and the data length of the data to be modified , the number of secondary metadata corresponding to the range is determined from a plurality of secondary metadata according to the range. For the convenience of description, the secondary metadata corresponding to the range is referred to as target secondary metadata. Afterwards, the object storage service node may add the target secondary metadata to the target secondary metadata.
  • the object storage service node can read the secondary metadata in a targeted manner, and modify the secondary metadata, so that the amount of metadata read by the object storage service node can be effectively reduced, and the recording metadata can be improved. to ensure the efficiency of data modification.
  • the data write request further includes time information, where the time information is used to indicate the time at which the data write request is sent.
  • the time when data writing occurs can be effectively recorded by the time information.
  • the data writing request further includes authentication information, where the authentication information is used to indicate the authority of the object storage client to access the object storage service node.
  • the authentication information is used to indicate the authority of the object storage client to access the object storage service node.
  • the object storage service node may send a data modification success response to the object storage client .
  • the data modification status can be notified in time through the successful data modification response, so that the tenant can timely know that the data has been modified successfully through the object storage client, and the user experience can be improved.
  • an embodiment of the present application provides a data modification method, which is applied to an object storage client.
  • the object storage client is referred to as an object storage client for short.
  • the tenant can send a data modification request for the target object to the object storage client through the application.
  • the data modification request includes the bucket domain name of the data bucket where the target object is located, the name of the target object, the location of the data to be modified in the target object, and the modified data.
  • the position of the data to be modified in the target object may be indicated by the offset of the data to be modified in the target object, the data length of the data to be modified, or may be indicated by other information.
  • the embodiment of the present application does not limit the indication that the data to be modified is in the target object. position in the target object.
  • the object storage client can send a data write request to the object storage service node according to the data modification request.
  • the object storage client can place the information carried in the data modification request in the data write request and send it to the object storage service node to request to modify the data to be modified in the target object stored in the object storage service node.
  • the data write request includes the bucket domain name of the data bucket where the target object is located, the name of the target object, the location of the data to be modified in the target object, and the modified data.
  • the position of the data to be modified in the target object may be indicated by the offset of the data to be modified in the target object, the data length of the data to be modified, or may be indicated by other information.
  • the tenant no longer needs to download the entire object locally through the object storage client to complete data modification.
  • the tenant only needs to trigger the object storage client to send a data write request to the object storage service node, and then the data modification can be realized, which greatly simplifies the data modification process and effectively improves the data modification efficiency.
  • the data write request further includes time information, where the time information is used to indicate the time at which the data write request is sent. The time when the data modification occurs can be effectively recorded through the time information.
  • the data writing request further includes authentication information, where the authentication information is used to indicate the authority of the object storage client to access the object storage service node.
  • the authentication information is used to indicate the authority of the object storage client to access the object storage service node.
  • the object storage client can also receive a data writing success response from the object storage service node, so that the tenant can know the status of data modification in time.
  • an embodiment of the present application further provides an object storage service node, the object storage service node has a function of implementing the behavior in the method instance of the first aspect, and the beneficial effect can be referred to the description of the first aspect and is omitted here.
  • the functions can be implemented by hardware, or can be implemented by hardware executing corresponding software.
  • the hardware or software includes one or more modules corresponding to the above functions.
  • the structure of the object storage service node includes a receiving module, a processing module, and optionally, a sending module, and these modules can perform the corresponding functions in the method examples of the first aspect. For details, please refer to the method examples. The detailed description in , will not be repeated here.
  • the embodiments of the present application further provide an object storage client, the object storage client has the function of implementing the behavior in the method instance of the second aspect, and the beneficial effect can be referred to the description of the second aspect and is omitted here.
  • the functions can be implemented by hardware, or can be implemented by hardware executing corresponding software.
  • the hardware or software includes one or more modules corresponding to the above functions.
  • the structure of the object storage client includes a receiving module and a sending module, and these modules can perform the corresponding functions in the method example of the second aspect. For details, please refer to the detailed description in the method example, which is not described here. Repeat.
  • an embodiment of the present application further provides a computing device, which has the function of implementing the behavior in the method example of the first aspect.
  • the structure of the computing device includes a processor and a memory, and the processor is configured to support the object storage service node to perform the corresponding functions in the method of the first aspect.
  • the memory is coupled to the processor and holds program instructions and data necessary for the computing device.
  • the structure of the computing device further includes a communication interface for communicating with other devices.
  • an embodiment of the present application further provides a computing device, the computing device has the function of implementing the behavior in the method example of the second aspect.
  • the structure of the computing device includes a processor and a memory, and the processor is configured to support the object storage client to perform the corresponding functions in the method of the second aspect.
  • the memory is coupled to the processor and holds program instructions and data necessary for the computing device.
  • the structure of the computing device further includes a communication interface for communicating with other devices.
  • the present application further provides a computer-readable storage medium, where instructions are stored in the computer-readable storage medium, and when the computer-readable storage medium is run on a computer, the computer enables the computer to execute each possible implementation in the first aspect.
  • the present application further provides a computer program product comprising instructions, which, when run on a computer, cause the computer to execute the method described in each of the possible implementations of the first aspect above.
  • the computer When running on a computer, the computer is caused to perform the method described in each of the possible implementations of the second aspect above.
  • the present application further provides a computer chip, the chip is connected to a memory, the chip is used to read and execute a software program stored in the memory, and execute each possible implementation manner of the first aspect above The method described in the above, or the method described in each possible implementation manner of the second aspect above.
  • FIG. 1 is a schematic diagram of the logical architecture of the object storage service provided by the present application.
  • FIG. 2 is a schematic diagram of the architecture of a system provided by the application.
  • FIG. 3 is a schematic structural diagram of an object storage service node provided by the present application.
  • FIG. 4 is a schematic diagram of the logical structure of an object storage service node provided by the present application.
  • FIG. 5 is a schematic diagram of the internal interaction of an object storage service node provided by the present application.
  • FIG. 6 is a schematic diagram of a method for data modification provided by the application.
  • FIG. 7 is a schematic diagram of the division of metadata of a target object provided by the present application.
  • FIG. 8 is a schematic structural diagram of an object storage service node provided by the present application.
  • FIG. 9 is a schematic structural diagram of an object storage client provided by the present application.
  • FIG. 10 is a schematic structural diagram of a computing device provided by the present application.
  • Cloud platform Provides pages related to public cloud services for tenants to remotely access public cloud services. Tenants can log in to the cloud platform on the public cloud access page through the pre-registered account and password, and after successful login, select on the public cloud access page. And purchase the corresponding public cloud services, such as OBS, virtual machine services, container services, etc. For OBS, tenants can further access the configuration interface or application programming interface (API) provided on the public cloud access page.
  • OBS performs configuration, such as creating buckets, configuring access policies for buckets, uploading objects to buckets from the tenant's local computer through the Internet, and other operations on buckets.
  • Bucket It is a container for storing objects in OBS.
  • Object storage provides a flat storage method based on buckets and objects. All objects in a bucket are at the same logical level, eliminating the multi-level tree directory structure in the file system. .
  • Each bucket has its own attributes such as storage class, access rights, and region. Tenants can create buckets with different storage classes and access rights, and configure more advanced attributes to meet storage requirements in different scenarios.
  • bucket names are globally unique and cannot be modified, that is, buckets created by a tenant cannot have the same name as other buckets they have created, nor can they have the same name as buckets created by other tenants.
  • the region to which the bucket belongs cannot be modified after it is created.
  • ACL access control list
  • Each item of the ACL list contains the permissions granted to the authorized tenant, such as read permission and write permission.
  • Tenants can perform operations on buckets, such as creating, deleting, displaying, and setting bucket ACLs, only if they have corresponding permissions on buckets.
  • Tenants can use their accounts to log in to the cloud platform. They can create multiple buckets through the configuration interface or API on the public cloud access page provided by the cloud platform. They can also configure bucket names for buckets, and the number and size of objects stored in each bucket. No restrictions, tenants do not need to consider data scalability, OBS is based on representational state transfer (REST) style and hypertext transfer protocol (hypertext transport protocol, HTTP) and hypertext transfer protocol (hypertext transfer protocol) secure, HTTPS) protocol service, tenants can locate bucket resources through a uniform resource locator (uniform resource locator, URL), which is also referred to as a bucket domain name in this embodiment of the present application.
  • REST representational state transfer
  • HTTP hypertext transport protocol
  • HTTPS hypertext transfer protocol Secure
  • URL uniform resource locator
  • FIG 1 is a schematic diagram of the logical architecture of the object storage service.
  • each bucket can include multiple objects (described in detail below), and the objects between the buckets interact with each other. Isolation.
  • the tenant purchases the object storage service remotely by operating the object storage client.
  • the object storage service provides the tenant with a bucket.
  • the bucket domain name can be provided.
  • the tenant can operate the object storage client to access the bucket through the bucket domain name, so that the bucket can be Data can be uploaded in and downloaded from the bucket, where the uploaded data is stored in the bucket in object mode.
  • a static bucket refers to a bucket provided by the above object storage service.
  • the data bucket described in the present invention may be referred to as a bucket for short, and the bucket is set in a physical storage device, such as the physical disk described below, and can be used to store objects.
  • Object It is the basic unit of data storage in OBS.
  • An object is actually a collection of data of a file and its related attribute information (metadata). All data uploaded by tenants to OBS is stored in buckets in the form of objects.
  • the object includes three parts: key (Key), metadata (Metadata), and data (Data).
  • Each object in a bucket has a unique object key value.
  • Metadata that is, the description information of the object, includes system metadata and tenant metadata, and these metadata are uploaded to the object storage service in the form of key-value pairs.
  • the system metadata is automatically generated by the object storage service and is used when processing the data of the object.
  • the system metadata includes the date (Date), the content length (Content-length), the last modification time (Last-modify), and the MD5 encrypted content (Content). -MD5) etc.
  • Tenant metadata is specified by the tenant when uploading objects to the bucket, and is the object description information customized by the tenant. Data, data, that is, the data content uploaded by the tenant.
  • the Object Storage Service provides a way to simulate folders: by adding "/" to the name of the object, for example "test/123 .jpg", at this time, "test” is simulated as a folder, "123.jpg” is simulated as the file name under the "test” folder, but in fact, the object name (Key) is "test” /123.jpg", the data (Data) is the 123.jpg file itself.
  • the storage class of the object can be specified. If not specified, the storage class of the bucket is the same by default. After uploading, the storage class of the object can be modified, and the bucket can be accessed through the object storage client.
  • the object storage client can be a dedicated object storage client provided by the tenant's locally used browser or cloud platform. For example, the tenant can access the bucket through the browser set on the local computer. After the input account verification is passed, the tenant can use the browser to upload objects to the bucket, or modify or delete the objects in the bucket. , the local computer is connected to the Internet.
  • the persistent storage unit (persistence log, PLOG), the basic storage unit of the object storage system, is set on the physical disk, specifically the storage space of the fixed size of the physical disk.
  • the object storage system stores the physical disks of multiple object storage service nodes as PLOGs.
  • the embodiments of the present application only take the PLOG as the basic storage unit as an example, and any storage space that can be used as the basic storage unit is applicable to the embodiments of the present application.
  • the object storage client 20 may be deployed on the user side, such as a terminal device 21 outside the data center.
  • An application program 22 may also be deployed on the terminal device 21.
  • the embodiments of the present application do not limit the specific type of the terminal device.
  • the terminal device may be a mobile phone, a notebook computer, a tablet computer, a handheld computer, a wireless terminal in a smart city, Wireless devices in the smart home.
  • the object storage client 20 may interact with the application 22, for example, the application 22 may send a data modification request to the object storage client 20 under the trigger of the tenant. After receiving the data modification request, the object storage client 20 may send a data write request to the application program 22 according to the data modification request.
  • the cloud platform 10 is set in the data center, and is respectively connected with the object storage service node (the object storage service node may be referred to as the object storage service node for short, only the object storage service node 201, The object storage service node 202) and the remote connection gateway 204 are connected.
  • the object storage service node may be referred to as the object storage service node for short, only the object storage service node 201, The object storage service node 202) and the remote connection gateway 204 are connected.
  • the tenant can log in to the cloud platform 10 with an account on the object storage client 20, create a bucket, configure the bucket name, and obtain the bucket domain name through the cloud platform 10.
  • the cloud platform 10 can issue a creation instruction to the object storage service node (such as the object storage service node 201 or the object storage service node 202 ) through the switching device 203 , the creation instruction includes the bucket name, bucket domain name and other information, and informs the object storage service node to create a bucket and save the bucket name, bucket domain name and other information.
  • the tenant can also access the bucket domain name by operating the object storage client 20, locate the bucket in the object storage service node, upload data (such as uploading objects) and download data (such as downloading objects) in the bucket.
  • the tenant can also modify the objects in the bucket by operating the object storage client 20 . That is, the tenant can trigger the object storage client 20 to send a data write request to the object storage service node, and instruct to modify the data to be modified in the target object stored in the bucket of the object storage service node.
  • the object storage service node can determine the target object in the bucket according to the bucket name and the name of the target object carried in the data write request, and store the data to be modified in the target object according to the data write request.
  • the offset and the data length of the data to be modified modify the data to be modified into modified data.
  • the remote connection gateway 204 can be implemented through a virtual private network (Virtual Private Network, VPN) or a dedicated line network, and the object storage service node can be implemented through a server provided with multiple physical disks.
  • VPN Virtual Private Network
  • the object storage service node 201 includes a software layer and a hardware layer, and the hardware layer includes a disk controller 2015. , physical network card 2016, physical disk 1 and physical disk 2 (here, it is only taken as an example that the object storage service node 201 includes two physical disks, and the embodiment of this application does not limit the number of physical disks in the object storage service node) .
  • the software layer includes an object storage device control unit 2011 and an operating system 2012.
  • the control unit 2011 runs on the operating system 2012.
  • the operating system 2012 includes a disk drive 2013 and a physical network card driver 2014.
  • the cloud platform 10 can communicate with the control unit 2011 through the physical network card 2016.
  • the control unit 2011 controls the disk controller 2015 through the disk drive 2013 to set the physical disk 1 and the physical disk 2 as a plurality of PLOGs.
  • the cloud platform 10 notifies the control unit 2011 to create bucket 1.
  • the control unit 2011 creates bucket 1 on physical disk 1 and physical disk 2 in the hardware layer through the operating system, and the PLOG distribution of bucket 1 Information such as the bucket name and bucket domain name of bucket 1 are stored in physical disk 1 and physical disk 2.
  • the tenant can trigger the object storage service node 201 to write the object into the bucket through the object storage client 20.
  • the object can be written into the bucket by the control unit 2011 in the object storage service node 201 .
  • the tenant can trigger the object storage service node 201 to read the object from the bucket through the object storage client 20, for example, it can be controlled by the object storage service node 201.
  • the unit 2011 obtains the object from the bucket and feeds it back to the object storage client 20 .
  • control unit 2011 when the tenant needs to modify the object in the bucket 1 through the object storage client 20, the control unit 2011 receives the data write request, and can determine the data to be modified in the target object according to the data write request, and Modify data to modify to modify data.
  • the above description takes the object storage service node as the granularity for illustration. From a functional point of view, the interaction within the object storage service node can be understood as the interaction between functional layers.
  • the object storage service node is divided into functions, which can be divided into persistence layer, metadata index layer, and service layer. Each of these layers can be deployed on a different object storage service node.
  • the persistence layer is used to store the data (data) in the object.
  • the storage space for storing data can be divided into multiple basic storage units.
  • Each basic storage unit can be a PLOG.
  • the multiple basic storage units Can be deployed on different object storage service nodes.
  • one PLOG supports data storage, data deletion, and data modification.
  • the metadata index layer is used to store and manage the metadata of objects.
  • the metadata index layer can also be distributed on different object storage service nodes.
  • the business layer is used to process requests (such as data write requests) sent by computing nodes.
  • requests such as data write requests
  • the business layer can Data processing, such as writing data, or modifying data, processing metadata stored in the metadata index layer, such as recording metadata.
  • the tenant may send a data write request to the object storage service node through the object storage client, instructing the object storage service node to modify the data in the object, and the object storage service node to modify the object, and the tenant It is no longer necessary to download the entire object locally and re-upload it after local modification, which can greatly reduce the data interaction between the object storage client and the object storage service node, and can effectively improve the efficiency of data modification.
  • the following describes a data modification method for providing an object storage service according to an embodiment of the present application. Taking the interaction between the object storage client 20 and the object storage service node 201 as an example, referring to FIG. 6 , the method includes:
  • Step 201 The tenant may trigger the application 22 to send a data modification request to the object storage client 20 .
  • the tenant can input the bucket domain name of the data bucket where the target object is located, the name of the target object, the offset of the data to be modified in the target object, the data length of the data to be modified, and the modified data on the application 22 .
  • the tenant can modify part or all of the data in the target object data, and for example, the tenant can add new data based on the data of the target object, that is, data appending.
  • the application 22 can determine the bucket domain name of the data bucket where the target object input by the tenant is located, the name of the target object, the offset of the data to be modified in the target object, the data length of the data to be modified, And to modify data, the bucket domain name of the data bucket where the target object is located, the name of the target object, the offset of the data to be modified in the target object, the data length of the data to be modified, and the modified data can be carried in the data modification request, and sent to the data modification request.
  • the object storage client 20 sends the data modification request.
  • the data modification request may also carry time information, where the time information may indicate the trigger time of the data modification request, that is, the time when the data modification request is sent.
  • the type of the application program 22 is not limited in the embodiment of the present application.
  • the application program 22 may be a browser, a plug-in on the browser, or other application software.
  • Step 202 After receiving the data modification request, the object storage client 20 sends a data writing request to the object storage service node 201.
  • the object storage client 20 and the object storage service node 201 may perform information exchange by calling the object modification interface.
  • the object modification interface defines an information format for information exchange between the object storage client 20 and the object storage service node 201 when the data in the object needs to be modified.
  • the object modification interface defines the parameters to be carried in the data write request.
  • This parameter includes some or all of the following:
  • the operation parameter for example, when the operation parameter is modify, indicates that the data in the object needs to be modified, which can be determined according to the data modification request.
  • the name of the object is used to indicate the target object, which can be determined according to the name of the target object carried in the data modification request.
  • Offset this parameter is used to indicate the offset of the data to be modified in the target object, which can be determined according to the offset of the data to be modified carried in the data modification request in the target object.
  • Bucket domain name (host)
  • this parameter is used to indicate the bucket domain name of the bucket where the target object is located, which can be determined according to the bucket domain name of the data bucket carried in the data modification request.
  • Data length (content length) this parameter is used for the data length of the data to be modified, which can be determined according to the data length of the data to be modified carried in the data modification request.
  • this parameter is used to indicate the current time, that is, the time when the data write request is sent.
  • This parameter can be configured by the object storage client 20 itself, or can be determined according to the time information carried in the data modification request.
  • Data content (content) this parameter is used to indicate the modification data, which can be determined according to the modification data carried in the data modification request.
  • the authentication information is used to indicate the authority of the object storage client 20 to access the object storage service node 201, and the object storage service node 201 can determine whether the object storage client 20 has authority according to the authentication information.
  • the object storage service node 201 will modify the target object only when it is determined that the object storage client 20 has the authority.
  • the embodiment of the present application does not limit the type of the authentication information, for example, the authentication information may be a certificate, an account name, a password, an authentication token, and the like.
  • the authentication information may be acquired by the object storage client 20 from the object storage service node 201 in advance and stored locally. When a data write request needs to be sent to the object storage service node 201, the object storage client 20 may acquire it locally.
  • the authentication information is carried in the data write request.
  • the object storage client 20 may also acquire the authentication information in other ways, and the description here is only taking the object storage client 20 acquiring the authentication information from the object storage service node 201 as an example for description.
  • Step 203 The object storage service node 201 receives the data writing request, and modifies the target object according to the data writing request.
  • the object storage service node 201 may confirm the bucket according to the bucket domain name in the data writing request, and determine the target object according to the name of the object carried in the data writing request.
  • the object storage service node 201 can modify the target object in the following two ways.
  • Method 1 Update the data in the target object.
  • the object storage service node 201 may modify and update the data to be modified in the target object to modified data.
  • the object storage service node 201 may determine the data to be modified in the target object according to the offset of the data to be modified in the target object and the data length of the data to be modified, and modify the data to be modified into modified data.
  • the object storage service node 201 may also record metadata for describing the data layout of the modified data (for the convenience of description, the metadata describing the data layout of the modified data is referred to as target metadata), and the target metadata may indicate the target object's data layout.
  • the modification time of the target object may be determined by the date carried in the data writing request, or may be determined by the object storage service node 201 according to the time when the data in the target object is updated.
  • the size of the data in the target object remains unchanged, and the storage location of the data before and after modification also remains unchanged, that is, the PLOG where the data in the target object is located remains unchanged.
  • the second method is to add the modified data in the target object.
  • the object storage service node 201 can add the modified data to the target object, that is, it can store the modified data in the PLOG, and record the data layout used to describe the modified data.
  • Metadata (for the convenience of description, the metadata describing the data layout of the modified data is called target metadata), the target metadata here can indicate the storage location of the modified data, such as the identification of the PLOG, the length in the PLOG, and offset indication. Metadata can also indicate the modification time, the location of the modified data in the target object. The position of the modified data in the target object may be indicated by the offset of the data to be modified in the target object and the data length of the data to be modified.
  • the modification time of the target object may be determined by the date carried in the data writing request, or determined by the object storage service node 201 according to the time when the modified data is stored.
  • the object storage service node 201 can modify the data in the target object in the second mode, And record the target metadata.
  • the target metadata can record the storage location of the modified data and the location of the modified data in the target object.
  • the modified data can be indicated by the offset of the modified data in the target object and the data length of the modified data. position in the target object.
  • the offset of the modified data in the target object may be equal to the data length of the original data in the target object, where the original data is the data in the target object before the modified data is stored.
  • Both the first and second methods involve the recording of the target metadata.
  • the object storage service node 201 can read the metadata of the target object, and after adding the target metadata to the metadata of the target object, save the metadata of the target object with the added target metadata.
  • the object storage service node 201 can read out all the metadata of the target object, and add the target metadata to the metadata of the target object, for example, increase the modification time of the target object, the offset of the data to be modified in the target object, the amount of the target object to be modified. Modify the data length of the data, modify the storage location of the data and other information. Afterwards, the metadata of the target object to which the target metadata is added is saved.
  • This way of recording target metadata is simpler. It is suitable for scenarios where the number of modifications to the target object is small, or the metadata of the target object itself has a small amount of data.
  • the object storage service node 201 can read part of the metadata of the target object, and after adding the target metadata to the part of the metadata, save the part of the metadata to which the target metadata is added.
  • the object storage service node 201 may divide the metadata of the target object into a plurality of smaller sub-meta data, each sub-meta data is used to describe the data layout of the data in a range of the target object (the data layout). Including the storage location, modification time and other information of the data within the scope), that is, the secondary metadata is the metadata of the data within the scope. Different secondary metadata correspond to different ranges. Each secondary metadata can be stored independently.
  • the storage object can divide the metadata of the target object into N secondary metadata, each secondary metadata It is used to describe 32MB, for example, secondary metadata 0 is used to describe the data layout of data in the data from 0 to 32MB, and secondary metadata 1 is used to describe the data layout of 32 to 64MB of data in the data. Secondary metadata 2 is used to describe the data layout of 64-96MB of data in the data, secondary metadata 3 is used to describe the data layout of 96-128MB of data in the data, and secondary metadata N-1 is used to describe the data in ( N-1) Data layout of data of *32MB to N*32MB.
  • secondary metadata 0 is used to describe the data layout of data in the data from 0 to 32MB
  • secondary metadata 1 is used to describe the data layout of 32 to 64MB of data in the data.
  • Secondary metadata 2 is used to describe the data layout of 64-96MB of data in the data
  • secondary metadata 3 is used to describe the data layout of 96-128MB of data in the data
  • secondary metadata N-1 is used to describe the data in (
  • the range to which the data to be modified belongs in the target object is determined according to the offset of the data to be modified in the target object and the data length of the data to be modified.
  • the secondary metadata corresponding to the scope is determined in each secondary metadata, and the secondary metadata corresponding to the scope is the target secondary metadata; the target metadata is added to the target secondary metadata, and the added target metadata is saved and added. Secondary metadata for the target metadata.
  • the offset of the data to be modified in the target object and the data length of the data to be modified indicate that 0-2 MB of data in the target object needs to be modified, and the object storage service node 201 can obtain the secondary metadata 0 of the target object.
  • the offset of the data to be modified in the target object and the data length of the data to be modified indicate that 2-40 MB of data in the target object needs to be modified, and the object storage service node 201 can obtain the secondary metadata of the target object. 0 and secondary metadata 1.
  • the object storage service node 201 may add target metadata to the secondary metadata.
  • the offset of the data to be modified in the target object and the data length of the data to be modified indicate that 0-2 MB of data in the target object needs to be modified, and the object storage service node 201 may add description data to the secondary metadata 0
  • the object storage service node 201 may add a description in the secondary metadata 0
  • the target metadata of the data layout of the 2-32MB data in the target object after the data modification is added, and the target metadata describing the data layout of the 32-40MB data in the target object after the data modification is added to the secondary metadata 1.
  • the object storage service node 201 may save the secondary metadata to which the target metadata is added.
  • the object storage service node 201 only needs to read the secondary metadata with a small amount of data, which can greatly reduce the size of the metadata read by the object storage service node 201 each time, so that the metadata Recording is more efficient, and is suitable for scenarios where the target object is modified more frequently, or the metadata of the target object itself has a large amount of data.
  • Step 204 After completing the modification of the target object, the object storage service node 201 sends a data modification success response to the object storage client 20.
  • the embodiment of the present application does not limit the number of modifications to the target object by the computing node.
  • the tenant can trigger the object storage client 20 to send a data write request to the object storage service node 201 through the object storage client 20 times, so that the object storage service
  • the node 201 modifies the data in the target object multiple times.
  • the tenant can also read the data in the target object after data modification from the object storage service node 201 through the object storage client 20 .
  • Step 205 the object storage client 20 sends a data read request to the object storage service node 201 .
  • the data read request includes the name of the target object and the bucket domain name of the bucket where the target object is located. If the tenant can only read part of the data in the target object, the data read request can also carry the read range, and the read range can be indicated by the offset of the data in the target object and the data length.
  • Step 206 After receiving the data read request, the object storage service node 201 can locate the bucket according to the bucket domain name, determine the target object according to the name of the target object and the identifier of the bucket, and obtain the information in the target object according to the metadata of the target object. The data.
  • the object storage service node 201 can obtain the data in the target object in the following two ways.
  • step 203 Corresponding to the first way in step 203 .
  • the object storage service node 201 determines the target object, it can obtain the metadata of the target object (the metadata of the target object is the metadata of the target object to which the target metadata is added), and then determine according to the metadata of the target object. The storage location of the data in the target object, from which the object storage service node 201 can read the data in the target object.
  • the object storage service node 201 may determine the storage location of the data within the read range of the target object according to the metadata and the read range, and read the data within the read range of the target object from the storage location.
  • step 203 Corresponding to the second way in step 203 .
  • the object storage service node 201 can obtain the metadata of the target object (the target object's metadata).
  • the metadata is the metadata of the target object to which the target metadata is added), after that, the object storage service node 201 can determine whether the data in the target object is modified, the modification time of the data in the target object, and the target object according to the metadata of the target object.
  • the storage location of the data in the object for example, it is determined that there is some modified data in the data, and some unmodified data in the data.
  • the object storage service node 201 can determine the storage location of the part of the data according to the metadata of the target object; for the modified part of the data, the object storage service node 201 can The object's metadata determines where the modified data is stored when it was last modified.
  • the object storage service node 201 can read the part of the data according to the storage location of the part of the data.
  • the object storage service node 201 may read the modified data according to the storage location of the modified data at the time of the latest modification.
  • the part of the data and the modified data are the data in the target object.
  • the offset in the target object is 0 and the data length is 2MB, that is, the data between 0 and 2MB is modified.
  • the modified data is modified this time. 1 is stored in PLOG1, and the length of modified data 1 is 2MB.
  • the data with the offset of 1 and the data length of 5MB in the target object is modified, that is, the data of 1-6MB is modified.
  • the modified data 2 of this modification is stored in PLOG2, and the length of the modified data 2 is 5MB.
  • the object storage service node 201 can determine, according to the metadata of the target object, that 6MB-10MB of data in the target object is unmodified data when reading the data in the target object , you can directly read this part of the data. According to the metadata of the target object, it is determined that the data of 1MB to 6MB in the target object is the modified data. For the data of 0 to 1MB, the latest modified data is the data of 0 to 1MB in PLOG1. The object storage service node 201 retrieves the data from PLOG1. 0 ⁇ 1MB of data is read in.
  • the latest modified data is the data of 0 to 5 MB in PLOG2, and the object storage service node 201 reads 5 MB of data in PLOG2 from PLOG2.
  • the data read by the object storage service node 201 is the data in the target object after the latest modification.
  • the object storage service node 201 can determine whether the data within the read range in the target object is based on the metadata and the read range. Modification, modification time of the data, and storage location of the data, for the unmodified part of the data in the data within the read range, the object storage service node 201 can determine the storage location of the part of the data according to the metadata of the target object, from The partial data is read at the storage location. For the modified partial data in the data within the read range, the object storage service node 201 may determine the storage location of the modified data at the latest modification according to the metadata of the target object, and read the partial data from the storage location.
  • Step 207 The object storage service node 201 carries the data in the target object in the data read success response, and sends the data read success response to the object storage client 20 .
  • the object storage client 20 can send a data read request to the object storage service node 201, and the object storage service node 201 can determine the most recent data according to the metadata of the target object.
  • the data in the target object is modified once, and the data in the target object after the latest modification is fed back to the object storage client 20, which can improve the accuracy of data reading.
  • the embodiment of the present application further provides an object storage service node for executing the method executed by the object storage service node 201 in the method embodiment shown in FIG.
  • the object storage service node 800 includes a receiving module 801, a processing module 802, and optionally, a sending module 803;
  • the receiving module 801 is configured to receive a data write request sent by the object storage client, the data write request is used to request to modify the data to be modified in the target object stored in the object storage service node, and the data write request includes the target object The bucket domain name of the data bucket where it is located, the name of the target object, the offset of the data to be modified in the target object, the data length of the data to be modified, and the modified data.
  • the receiving module 801 may execute the method executed by the object storage service node 201 in step 202 in the embodiment shown in FIG. 6 .
  • the processing module 802 is configured to confirm the data bucket according to the bucket domain name, confirm the target object in the data bucket according to the name of the target object, and modify the data to be modified corresponding to the offset and the data length in the target object as modified data.
  • the processing module 802 may execute step 203 in the embodiment shown in FIG. 6 .
  • the modified data when the processing module 802 modifies the to-be-modified data corresponding to the offset and the data length in the target object to modified data, the modified data can be stored in the persistent storage unit; metadata can also be recorded. It is used to indicate the data layout of the modified data, and the data layout includes the storage location of the modified data.
  • the storage location of the modified data may be indicated by the identifier of the persistent storage unit, the offset of the modified data in the persistent storage unit, and the length of the modified data in the persistent storage unit.
  • the data layout may further include the position of the modified data in the target object, for example, the offset of the data to be modified in the target object and the data length of the data to be modified may be indicated.
  • the metadata of the target object includes multiple secondary metadata, one secondary metadata is metadata of data within a scope of the target object, and different scopes corresponding to different secondary metadata are different.
  • the processing module 802 may first determine the range to which the data to be modified belongs in the target object according to the offset of the data to be modified in the target object and the data length of the data to be modified, and according to The scope determines the target secondary metadata from the plurality of secondary metadata; the metadata is then added to the target secondary metadata.
  • the data write request further includes time information, where the time information is used to indicate the time at which the data write request is sent.
  • the data writing request further includes authentication information, where the authentication information is used to indicate the permission of the object storage client to access the object storage service node.
  • the sending module 803 sends a data modification success response to the object storage client after the processing module 802 modifies the to-be-modified data corresponding to the offset and the data length in the target object to modified data.
  • the sending module 803 may be configured to execute the method executed by the object storage service node 201 in step 204 in the embodiment shown in FIG. 6 .
  • an object storage client for executing the method executed by the object storage client 20 in the method embodiment shown in FIG.
  • an object storage client provided by an embodiment of the present application includes a receiving module 901 and a sending module 902 .
  • the receiving module 901 is configured to receive a data modification request for the target object sent by the application program 22 .
  • the receiving module 901 may execute the method executed by the object storage client 20 in step 201 in the embodiment shown in FIG. 6 .
  • the sending module 902 is configured to send a data write request to the object storage service node according to the data modification request, and the data write request is used to request to modify the data to be modified in the target object stored in the object storage service node, and the data write request It includes the bucket domain name of the data bucket where the target object is located, the name of the target object, the offset of the data to be modified in the target object, the data length of the data to be modified, and the modified data.
  • the sending module 902 can generate a data write request according to the data modification request, for example, carry the information in the data modification request in the data write request; and send the data write request to the object storage service node.
  • the sending module 902 may execute the method executed by the object storage client 20 in step 202 in the embodiment shown in FIG. 6 .
  • the data write request further includes time information, and the time information is used for the time when the data write request is sent.
  • the data writing request further includes authentication information, where the authentication information is used to indicate the permission of the object storage client to access the object storage service node.
  • the receiving module 901 may also receive a data modification success response.
  • each functional module in the embodiments of the present application may be integrated into one processing unit, or each module may exist physically alone, or two or more modules may be integrated into one module.
  • the above-mentioned integrated modules can be implemented in the form of hardware, and can also be implemented in the form of software function modules.
  • the above embodiments may be implemented in whole or in part by software, hardware, firmware or any other combination.
  • the above-described embodiments may be implemented in whole or in part in the form of a computer program product.
  • the computer program product includes one or more computer instructions. When the computer program instructions are loaded or executed on a computer, all or part of the processes or functions described in the embodiments of the present invention are generated.
  • the computer may be a general purpose computer, special purpose computer, computer network, or other programmable device.
  • the computer instructions may be stored in or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be downloaded from a website site, computer, server, or data center Transmission to another website site, computer, server, or data center is by wire (eg, coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (eg, infrared, wireless, microwave, etc.).
  • the computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server, a data center, or the like that contains one or more sets of available media.
  • the usable media may be magnetic media (eg, floppy disks, hard disks, magnetic tapes), optical media (eg, DVDs), or semiconductor media.
  • the semiconductor medium may be a solid state drive (SSD).
  • object storage service node 201 and the object storage client 20 in the embodiment shown in FIG. 6 may take the form shown in FIG. 10 .
  • the computing device 1000 shown in FIG. 10 includes at least one processor 1001 , a memory 1002 , and optionally, a communication interface 1003 .
  • the memory 1002 may be volatile memory, such as random access memory; the memory may also be non-volatile memory, such as read-only memory, flash memory, hard disk drive (HDD) or solid-state drive (solid-state drive, SSD), physical disk, or memory 1002 is, but is not limited to, any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Memory 1002 may be a combination of the above-described memories.
  • connection medium between the above-mentioned processor 1001 and the memory 1002 is not limited in this embodiment of the present application.
  • the processor 1001 can be a central processing unit (central processing unit, CPU), and the processor 1001 can also be other general-purpose processors, digital signal processors (digital signal processors, DSP), application specific integrated circuits (application specific integrated circuits. ASIC. ), field programmable gate array (FPGA) or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, artificial intelligence chips, chips on a chip, etc.
  • a general purpose processor may be a microprocessor or any conventional processor or the like.
  • the processor 1001 in FIG. 10 can execute the instructions by invoking the computer stored in the memory 1002, so that the computing device can execute any of the above method embodiments.
  • the functions/implementation process of the receiving module, the sending module, and the processing module in FIG. 8 can all be implemented by the processor 1001 in FIG. 10 calling the computer-executed instructions stored in the memory 1002 .
  • the function/implementation process of the processing module in FIG. 8 can be implemented by the processor 1001 in FIG. 10 calling the computer execution instructions stored in the memory 1002, and the function/implementation process of the receiving module and the sending module in FIG.
  • the communication interface 1003 in 10 is implemented.
  • the processor 1001 in FIG. 10 can execute instructions by calling the computer stored in the memory 1002, so that the computing device can execute any of the above method embodiments.
  • the object storage client 20 executes the method.
  • the functions/implementation process of the receiving module and the transmitting module in FIG. 9 can be implemented by calling the computer execution instructions stored in the memory 1002 by the processor 1001 in FIG. 10 .
  • the function/implementation process of generating a data write request in the sending module in FIG. 9 can be implemented by the processor 1001 in FIG. 10 calling the computer execution instructions stored in the memory 1002, and the receiving module and the sending module in FIG. 9 send The function/implementation process of the data write request can be implemented through the communication interface 1003 in FIG. 10 .
  • the embodiments of the present application may be provided as a method, a system, or a computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
  • computer-usable storage media including, but not limited to, disk storage, CD-ROM, optical storage, etc.
  • These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory result in an article of manufacture comprising instruction means, the instructions
  • the apparatus implements the functions specified in the flow or flow of the flowcharts and/or the block or blocks of the block diagrams.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

对象存储服务的数据修改方法、服务节点、客户端及设备。本申请,对象存储服务节点接收对象存储客户端发送的数据写入请求,数据写入请求用于请求对对象存储服务节点中存储的目标对象中的待修改数据进行修改。对象存储服务节点根据数据写入请求中携带的桶域名确认桶,根据目标对象的名称确认数据桶中的目标对象,将待修改数据在目标对象中的位置对应的待修改数据修改为修改数据。租户可以通过对象存储客户端触发对象存储服务节点对存储在服务节点的目标对象进行修改,不再需要将目标对象中所有数据下载到对象存储客户端本地,数据修改方式较为简单、便捷、高效,有效减少对象存储客户端与服务节点之间的交互次数,缩短交互时间,提高数据修改效率。

Description

对象存储服务的数据修改方法、服务节点、客户端及设备 技术领域
本申请涉及通信技术领域,尤其涉及对象存储服务的数据修改方法、服务节点、客户端及设备。
背景技术
对象存储服务(object storage service,OBS)是一个基于对象的存储服务,具备海量、安全、高可靠、低成本的优点。
OBS是一种面向互联网(internet)访问的服务。租户可以通过对象存储客户端与对象存储服务节点(支持OBS的计算节点)建立连接,在对象存储服务节点上创建数据桶,对对象存储服务节点上数据桶中的对象进行访问和管理。
目前,OBS支持数据写入、读取以及追加写等模式,其中,追加写模式能够用于实现数据修改。租户可以通过对象存储客户端将对象中数据从对象存储服务节点下载到对象存储客户端本地,之后在对象存储客户端上对该对象中的数据进行修改,之后再将修改后的对象中的数据上传到对象存储服务节点中,覆盖在对象存储服务节点上存储的对象。
这种数据修改的方式,需要将对象中所有数据下载到对象存储客户端本地,对于数据量较大的对象,下载过程耗时较长,且当本次存储空间不足以存储该对象时,将导致数据修改失败。
发明内容
本申请提供一种对象存储服务的数据修改方法、服务节点、客户端及设备,用于提高基于对象存储服务的数据修改效率。
第一方面,本申请实施例提供了一种对象存储服务的数据修改方法,该方法应用于对象存储服务节点。该方法中,对象存储服务节点接收对象存储客户端发送的数据写入请求,该数据写入请求用于请求对对象存储服务节点中存储的目标对象中的待修改数据进行修改。数据写入请求可以包括目标对象所在的数据桶的桶域名、目标对象的名称、待修改数据在目标对象中的位置(待修改数据在目标对象中的位置可以通过待修改数据在目标对象中的偏移量以及待修改数据的数据长度指示,也可以用其他信息指示)、以及修改数据;对象存储服务节点在接收到该数据写入请求后,对象存储服务节点可以对目标对象进行修改。
对象存储服务节点根据桶域名确认数据桶(在本申请实施例中,数据桶也可以简称为桶),根据目标对象的名称确认数据桶中的目标对象,根据待修改数据在目标对象中的位置确定待修改数据,将该待修改数据修改为修改数据。
通过上述方法,租户可以通过对象存储客户端触发对象存储服务节点对存储在对象存储服务节点的目标对象进行修改,不再需要将目标对象中所有数据下载到对象存储客户端本地,这种数据修改方式较为简单、便捷、高效,有效减少对象存储客户端与对象存储服务节点之间的交互次数,缩短交互时间,提高数据修改效率。
在一种可能的实现方式中,对象存储服务节点在将待修改数据修改为修改数据时,可以直接将目标对象中的待修改数据更新为修改数据。对象存储服务节点也可以不改变目标对象中的原始数据,存储该修改数据;例如,对象存储服务节点可以在持久存储单元存储修改数据,并记录用于指示修改数据的数据布局的元数据,其中,数据布局包括修改数据的存储位置,修改数据的存储位置可以通过持久存储单元的标识、修改数据在持久存储单元的偏移量以及修改数据在持久存储单元的长度指示。数据布局还可以包括修改数据在目标对象中的位置,修改数据在目标对象中的位置可以通过待修改对象在目标对象中的位置指示。
通过上述方法,对象存储服务节点可以通过不同的方式修改目标对象中的数据,方式较为灵活。存储该修改数据的方式能够使得对象存储服务节点中保存每次数据修改之前和之后的数据,能够记录数据的修改过程;存储该修改数据的方式也较为便捷,进一步减少数据修改的时间。
在一种可能的实现方式中,目标对象的元数据可以划分为多个次级元数据,一个次级元数据为目标对象中一个范围内数据的元数据,不同次级元数据对应的范围不同,也即一个次级元数据可以用于指示目标对象中一个范围内数据的数据布局。
通过上述方法,目标对象的元数据的划分便于后续有针对性的读取次级元数据。
在一种可能的实现方式中,对象存储服务节点在记录元数据时,可以先根据待修改数据在目标对象的偏移量、待修改数据的数据长度确定待修改数据在目标对象中所属的范围,根据范围从多个次级元数据中确定该范围对应的次级元数,为方便说明,将该范围对应的次级元数据称为目标次级元数据。之后对象存储服务节点可以在目标次级元数据中增加目标次级元数据。
通过上述方法,对象存储服务节点能够有针对性的读取次级元数据,并修改该次级元数据,使得对象存储服务节点读取的元数据的数据量能够有效减少,可以提高记录元数据的效率,保证数据修改的高效性。
在一种可能的实现方式中,数据写入请求还包括时间信息,时间信息用于指示发送数据写入请求的时间。通过时间信息能够有效的记录数据写入发生的时间。
在一种可能的实现方式中,数据写入请求还包括鉴权信息,鉴权信息用于指示对象存储客户端访问对象存储服务节点的权限。通过携带鉴权信息可以提高数据修改的安全性,保证只有具备访问对象存储服务节点权限的对象存储客户端才能够指示对象存储服务节点对目标对象中的数据进行修改。
在一种可能的实现方式中,对象存储服务节点在将目标对象中偏移量和数据长度对应的待修改数据修改为修改数据之后,对象存储服务节点可以向对象存储客户端发送数据修改成功响应。
通过上述方法,通过数据修改成功响应可以及时通知数据修改状态,以便租户能够通过对象存储客户端及时获知数据已修改成功,提升用户体验。
第二方面,本申请实施例提供了一种数据修改方法,该方法应用于对象存储客户端,为方便说明,将对象存储客户端简称为对象存储客户端。在该方法中,租户可以通过应用程序向对象存储客户端发送针对目标对象的数据修改请求。数据修改请求包括目标对象所在的数据桶的桶域名、目标对象的名称、待修改数据在目标对象的位置、以及修改数据。其中,待修改数据在目标对象的位置可以通过待修改数据在目标对象的偏移量、待修改数据的数据长度指示,也可以通过其他信息指示,本申请实施例并不限定指示待修改数据在目标对象中的位置的方式。
对象存储客户端在接收到应用程序发送的数据修改请求后,可以根据数据修改请求向对象存储服务节点发送数据写入请求。例如,对象存储客户端可以将数据修改请求中携带的信息置于数据写入请求中,发送给对象存储服务节点,以请求对对象存储服务节点中存储的目标对象中的待修改数据进行修改。数据写入请求包括目标对象所在的数据桶的桶域名、目标对象的名称、待修改数据在目标对象的位置、以及修改数据。其中,待修改数据在目标对象的位置可以通过待修改数据在目标对象的偏移量、待修改数据的数据长度指示,也可以通过其他信息指示。
通过上述方法,租户不在需要通过对象存储客户端将整个对象下载到本地,以完成数据修改。租户仅需触发对象存储客户端向对象存储服务节点发送数据写入请求,就可以实现数据修改,大大简化了数据修改流程,使得数据修改效率有效提升。
在一种可能的实现方式中,数据写入请求还包括时间信息,时间信息用于指示发送数据写入请求的时间。通过时间信息能够有效的记录数据修改发生的时间。
在一种可能的实现方式中,数据写入请求还包括鉴权信息,鉴权信息用于指示对象存储客户端访问对象存储服务节点的权限。通过携带鉴权信息可以提高数据修改过程的安全性,保证具备访问对象存储服务节点的对象存储客户端才能够指示对象存储服务节点对目标对象的数据进行修改。
在一种可能的实现方式中,对象存储客户端还可以接收来自对象存储服务节点的数据写入成功响应,以使得租户能够及时获知数据修改的状态。
第三方面,本申请实施例还提供了一种对象存储服务节点,该对象存储服务节点具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述对象存储服务节点的结构中包括接收模块、处理模块,可以的,还包括发送模块,这些模块可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第四方面,本申请实施例还提供了一种对象存储客户端,该对象存储客户端具有实现上述第二方面的方法实例中行为的功能,有益效果可以参见第二方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述对象存储客户端的结构中包括接收模块、发送模块,这些模块可以执行上述第二方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第五方面,本申请实施例还提供了一种计算设备,该计算设备具有实现上述第一 方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述计算设备的结构中包括处理器和存储器,所述处理器被配置为支持所述对象存储服务节点执行上述第一方面方法中相应的功能。所述存储器与所述处理器耦合,其保存所述计算设备必要的程序指令和数据。所述计算设备的结构中还包括通信接口,用于与其他设备进行通信。
第六方面,本申请实施例还提供了一种计算设备,该计算设备具有实现上述第二方面的方法实例中行为的功能,有益效果可以参见第二方面的描述此处不再赘述。所述计算设备的结构中包括处理器和存储器,所述处理器被配置为支持所述对象存储客户端执行上述第二方面方法中相应的功能。所述存储器与所述处理器耦合,其保存所述计算设备必要的程序指令和数据。所述计算设备的结构中还包括通信接口,用于与其他设备进行通信。
第七方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面中的各个可能的实现方式中所述的方法;当其在计算机上运行时,使得计算机执行上述第二方面中的各个可能的实现方式中所述的方法。
第八方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中的各个可能的实现方式中所述的方法。当其在计算机上运行时,使得计算机执行上述第二方面中的各个可能的实现方式中所述的方法。
第九方面,本申请还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面中的各个可能的实现方式中所述的方法,或执行上述第二方面中的各个可能的实现方式中所述的方法。
附图说明
图1为本申请提供的对象存储服务的逻辑架构示意图;
图2为本申请提供的一种系统的架构示意图;
图3为本申请提供的一种对象存储服务节点的结构示意图;
图4为本申请提供的一种对象存储服务节点的逻辑结构示意图;
图5为本申请提供的一种对象存储服务节点的内部交互示意图;
图6为本申请提供的一种数据修改的方法示意图;
图7为本申请提供的一种目标对象的元数据的划分示意图;
图8为本申请提供的一种对象存储服务节点的结构示意图;
图9为本申请提供的一种对象存储客户端的结构示意图;
图10为本申请提供的一种计算设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本申请实施例,首先,对本申请涉及的部分术语进行解释说明。
云平台:可提供与公有云服务相关的页面以供租户远程访问公有云服务,租户可通过预先注册的账号密码在公有云访问页面登录云平台,并在登录成功之后,在公有云访问页面选择并购买对应的公有云服务,例如OBS、虚拟机服务、容器服务等,针对OBS而言,租户可进一步通过公有云访问页面上提供的配置界面或者应用程序编程接口(application programming interface,API)对OBS进行配置,例如创建桶,配置桶的访问策略,从租户本地的计算机通过互联网上传对象到桶中等等针对桶的操作。
桶(Bucket):是OBS中存储对象的容器,对象存储提供了基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层级,去除了文件系统中的多层级树形目录结构。每个桶都有自己的存储类别、访问权限、所属区域等属性,租户可以创建不同存储类别和访问权限的桶,并配置更多高级属性来满足不同场景的存储诉求。
在OBS中,桶名是全局唯一的且不能修改,即租户创建的桶不能与自己已创建的其他桶名称相同,也不能与其他租户创建的桶名称相同。桶所属的区域在创建后也不能修改。每个桶在创建时都会生成默认的桶访问列表(access control list,ACL),ACL列表的每项包含了对被授权租户授予什么样的权限,如读取权限、写入权限等。租户只有对桶有相应的权限,才可以对桶进行操作,如创建、删除、显示、设置桶ACL等。
租户可使用账号在云平台登录,通过云平台提供的公有云访问页面上的配置界面或者API可创建多个桶,还可以为桶配置桶名,每个桶中存放的对象的数量和大小总和没有限制,租户不需要考虑数据的可扩展性,OBS是基于表述性状态传递(representational state transfer,REST)风格和超文本传送协议(hypertext transport protocol,HTTP)和超文本传输安全协议(hypertext transfer protocol secure,HTTPS)协议的服务,租户可以通过统一资源定位符(uniform resource locator,URL)来定位桶资源,本申请实施例中该URL又称为桶域名。OBS中桶和对象的关系如图1所示,图1是对象存储服务的逻辑架构示意图,如图1所述,每个桶可以包括多个对象(下文详细介绍),桶之间的对象相互隔离,租户通过操作对象存储客户端远程购买对象存储服务,对象存储服务向租户提供桶,具体而言,可以提供桶域名,租户可操作对象存储客户端通过该桶域名访问桶,从而可向桶中上传数据,并且,可从桶中下载数据,其中,上传的数据以对象方式存储在桶中。
数据桶:在本发明实施例中,静态桶是指上述对象存储服务提供的桶。
值得注意的是,本发明所述的数据桶,可简称为桶,该桶设置于物理存储设备中,例如下文所述的物理磁盘,可用于存储对象。
对象(Object):是OBS中数据存储的基本单位,一个对象实际是一个文件的数据与其相关属性信息(元数据)的集合体。租户上传至OBS的数据都以对象的形式保存在桶中。对象包括了键值(Key),元数据(Metadata),数据(Data)三部分。
Key,即对象的名称,例如为经过UTF-8编码的长度大于0且不超过1024的字符序列,一个桶里的每个对象拥有唯一的对象键值。
Metadata,即对象的描述信息,包括系统元数据和租户元数据,这些元数据以键值对(Key-Value)的形式被上传到对象存储服务中。系统元数据由对象存储服务自动产生,在处理对象的数据时使用,系统元数据包括日期(Date),内容长度 (Content-length),上次修改时间(Last-modify),MD5加密内容(Content-MD5)等。租户元数据由租户在上传对象到桶时指定,是租户自定义的对象描述信息。Data,数据,即租户上传的数据内容。
通常,可将对象等同于文件来进行管理,但是为了使租户更方便进行管理数据,对象存储服务提供了一种方式模拟文件夹:通过在对象的名称中增加“/”,例如“test/123.jpg”,此时,“test”就被模拟成了一个文件夹,“123.jpg”则模拟成“test”文件夹下的文件名了,而实际上,对象名称(Key)是“test/123.jpg”,数据(Data)为123.jpg文件本身。
租户上传对象时,可以指定对象的存储类别,若不指定,默认与桶的存储类别一致。上传后,对象的存储类别可以修改,桶可通过对象存储客户端被访问。对象存储客户端可为租户的在本地使用的浏览器或云平台提供的专用对象存储客户端。举例而言,租户可以通过设置在本地计算机中的浏览器访问桶,在输入账号验证通过后,租户可使用浏览器上传对象到桶中,或对桶中的对象进行修改、删除等操作,其中,本地计算机接入互联网中。
持久存储单元(persistence log,PLOG),对象存储系统的基本存储单元,设置在物理磁盘上,具体为物理磁盘的固定大小的存储空间,对象存储系统将多个对象存储服务节点的物理磁盘以PLOG形式进行管理,本申请实施例仅是以PLOG为基本存储单元为例,凡是能够作为基本存储单元的存储空间均适用于本申请实施例。
下文结合图2对本申请实施例适用的系统架构进行说明,参见图2,在本实施例中,对象存储客户端20可以部署在用户侧,如可以部署在数据中心的之外的终端设备21。该终端设备21上还可以部署有应用程序22,本申请实施例并不限定终端设备的具体类型,例如该终端设备可以为手机、笔记本电脑、平板电脑、掌上电脑、智慧城市中的无线终端、智慧家庭中的无线设备。对象存储客户端20可以与应用程序22交互,如应用程序22可以在租户的触发下向对象存储客户端20发送数据修改请求。对象存储客户端20在接收到数据修改请求后,可以根据数据修改请求向应用程序22发送数据写入请求。
云平台10设置在数据中心,通过交换设备203分别与对象存储服务节点(对象存储服务节点可以简称为对象存储服务节点,在本申请实施例中仅示例性的绘制出了对象存储服务节点201、对象存储服务节点202)以及远程连接网关204连接。
租户可以在对象存储客户端20使用账号登陆到云平台10,通过云平台10创建桶、配置桶名,获取桶域名。云平台10在检测到租户的操作(如创建桶、配置桶名等操作)后,可以通过交换设备203向对象存储服务节点(如对象存储服务节点201或对象存储服务节点202)下发创建指令,创建指令中包括桶名、桶域名等信息,通知对象存储服务节点创建桶,保存在桶名、桶域名等信息。
在创建了桶之后,租户还可以通过操作对象存储客户端20访问桶域名,定位到对象存储服务节点中的桶,在桶中上传数据(如上传对象)、下载数据(如下载对象)。在本申请实施例中,租户还可以通过操作对象存储客户端20对桶中的对象进行修改。也即租户可以触发对象存储客户端20向对象存储服务节点发送数据写入请求,指示对 对象存储服务节点的桶中存储的目标对象中的待修改数据进行修改。
对象存储服务节点在接收到数据写入请求后,可以根据数据写入请求中携带的桶名、目标对象的名称确定桶中的目标对象,根据数据写入请求中携带待修改数据在目标对象的偏移量、待修改数据的数据长度将待修改数据修改为修改数据。
举例而言,远程连接网关204可以通过虚拟私有网络(Virtual Private Network,VPN)或专线网络实现,对象存储服务节点可通过设置有多个物理磁盘的服务器实现。
下面具体到对象存储服务节点,以对象存储服务节点201为例,对对象存储服务节点的结构进行说明,参见图3,对象存储服务节点201包括软件层和硬件层,硬件层包括磁盘控制器2015、物理网卡2016,物理磁盘1和物理磁盘2(这里仅是以对象存储服务节点201包括两个物理磁盘为例进行说,本申请实施例中并不限定对象存储服务节点中物理磁盘的数量)。软件层包括对象存储设备控制单元2011和操作系统2012,控制单元2011运行在操作系统2012上,操作系统2012中包括磁盘驱动2013和物理网卡驱动2014,云平台10可通过物理网卡2016与控制单元2011进行通信,控制单元2011通过磁盘驱动2013控制磁盘控制器2015将物理磁盘1和物理磁盘2设置为多个PLOG。云平台10在接收到桶1的创建指令之后,通知控制单元2011创建桶1,控制单元2011通过操作系统,在硬件层中的物理磁盘1和物理磁盘2上创建桶1,桶1的PLOG分布在物理磁盘1和物理磁盘2中,并保存桶1的桶名、桶域名等信息。
当租户通过对象存储客户端20需要向桶1中上传对象时,租户可以通过对象存储客户端20触发对象存储服务节点201将对象写入到桶中。例如,可以由对象存储服务节点201中的控制单元2011将对象写入到桶中。当租户通过对象存储客户端20需要下载桶1中的对象时,租户可以通过对象存储客户端20触发对象存储服务节点201从桶中读取对象,例如,可以由对象存储服务节点201中的控制单元2011从桶中获取对象,反馈给对象存储客户端20。
在本申请实施例中,当租户通过对象存储客户端20需要对桶1中对象进行修改时,控制单元2011接收数据写入请求,可以根据数据写入请求确定目标对象中待修改数据,将待修改数据修改为修改数据。
上述描述以对象存储服务节点为粒度为进行说明。从功能角度,对象存储服务节点内部的交互可以理解为功能层之间的交互。
如图4所示,对象存储服务节点从功能进行划分,可以分为持久化层(persistence layer)、元数据索引层(index layer)、以及业务层(service layer)。对于这些层中的每一层可以部署在不同对象存储服务节点上。
持久化层,用于存储对象中的数据(data),在持久化层中,存储数据的存储空间可以划分为多个基本存储单元,每个基本存储单元可以为PLOG,该多个基本存储单元可以部署在不同的对象存储服务节点上。在本申请实施例中,一个PLOG支持数据存储、数据删除以及数据修改。
元数据索引层,用于存储和管理对象的元数据,该元数据索引层也可以分布在不同的对象存储服务节点上。
业务层,用于处理计算节点发送的请求(如数据写入请求),如图5所示,业务 层能够根据接收到的、来自对象存储客户端20的数据写入请求对持久化层中的数据进行处理,例如写入数据、或修改数据,对元数据索引层中存储的元数据进行处理,如记录元数据。
通常,租户在需要对对象中的数据进行修改时,需要从对象存储服务节点中将该对象中的数据下载到对象存储客户端,之后在本地修改该对象中的数据。在修改之后,将修改后的对象上传至对象存储服务节点。当对象较大时,对象的下载以及上传将耗费较长的时间,导致数据修改效率降低,数据修改方式也较不灵活。
而在本申请实施例中,租户可以通过对象存储客户端向对象存储服务节点发送数据写入请求,指示对象存储服务节点对对象中的数据进行修改,由对象存储服务节点对对象进行修改,租户不再需要将整个对象下载到本地、在本地修改后重新上传,能够较大程度的减少对象存储客户端与对象存储服务节点之间的数据交互,能够有效提升数据修改效率。
下面结合附图对本申请实施例提供对象存储服务的数据修改方法进行说明,以对象存储客户端20与对象存储服务节点201之间交互为例,参见图6,该方法包括:
步骤201:租户可以触发应用程序22向对象存储客户端20发送数据修改请求。
租户可以在应用程序22上输入目标对象所在的数据桶的桶域名、目标对象的名称、待修改数据在目标对象的偏移量、待修改数据的数据长度、以及修改数据。
这里需要说明的是,租户对已存储对象中的数据进行修改的方式有很多。例如租户可以修改该目标对象数据中的部分或全部数据,又例如,租户可以在该目标对象的数据的基础上增加新的数据,也即为数据追加。
应用程序22在检测到租户在的操作后,可以确定租户输入的目标对象所在的数据桶的桶域名、目标对象的名称、待修改数据在目标对象的偏移量、待修改数据的数据长度、以及修改数据,可以将目标对象所在的数据桶的桶域名、目标对象的名称、待修改数据在目标对象的偏移量、待修改数据的数据长度、以及修改数据携带在数据修改请求中,向对象存储客户端20发送该数据修改请求。
可选的,数据修改请求中还可以携带时间信息,该时间信息可以指示数据修改请求的触发时间,也即发送该数据修改请求的时间。
在本申请实施例中并不限定该应用程序22的类型,例如该应用程序22可以为浏览器、或浏览器上的插件,也可以为其他应用软件。
步骤202:对象存储客户端20在接收到数据修改请求后,向对象存储服务节点201发送数据写入请求。在本申请实施例中对象存储客户端20与对象存储服务节点201之间可以通过调用对象修改接口进行信息交互。
该对象修改接口定义了在需要对对象中的数据进行修改时,对象存储客户端20与对象存储服务节点201之间进行信息交互的信息格式。该对象修改接口定义了数据写入请求中需要携带的参数。
该参数包括下列的部分或全部:
操作参数,如当该操作参数为modify时,指示需要对对象中的数据进行修改,可以根据数据修改请求确定。
对象的名称,该参数用于指示目标对象,可以根据数据修改请求中携带所述目标 对象的名称确定。
偏移量(position),该参数用于指示待修改数据在目标对象的偏移量,可以根据数据修改请求中携带的待修改数据在所述目标对象的偏移量确定。
桶域名(host),该参数用于指示目标对象所在桶的桶域名,可以根据数据修改请求中携带的数据桶的桶域名确定。
数据长度(content length),该参数用于待修改数据的数据长度,可以根据数据修改请求中携带的待修改数据的数据长度确定。
日期(Date),该参数用于指示当前时间,也即发送数据写入请求的时间,该参数可以是对象存储客户端20自行配置,也可以根据数据修改请求中携带的时间信息确定。
数据内容(content),该参数用于指示修改数据,可以根据数据修改请求中携带的修改数据确定。
鉴权信息(authorization),该鉴权信息用于指示对象存储客户端20访问对象存储服务节点201的权限,对象存储服务节点201可以根据该鉴权信息确定对象存储客户端20是否具备权限。对象存储服务节点201只有在确定对象存储客户端20具备权限时,才会对目标对象进行修改。本申请实施例并不限定该鉴权信息的类型,例如该鉴权信息可以为证书、账户名、密码、认证令牌等。该鉴权信息可以是对象存储客户端20预先从对象存储服务节点201获取、并保存在本地的,当需要向对象存储服务节点201发送数据写入请求时,对象存储客户端20可以从本地获取该鉴权信息,携带在数据写入请求中。对象存储客户端20也可以通过其他方式获取该鉴权信息,这里仅是以对象存储客户端20从对象存储服务节点201获取鉴权信息为例进行说明。
上述参数仅是举例,在实际应用中还可以包括其他参数。
步骤203:对象存储服务节点201接收该数据写入请求,根据该数据写入请求对目标对象进行修改。
对象存储服务节点201在接收到数据写入请求后,可以根据数据写入请求中桶域名确认桶,根据数据写入请求中携带对象的名称确定目标对象。
若是对目标对象中的部分数据或全部数据进行修改,对象存储服务节点201可以通过如下两种方式对目标对象进行修改。
方式一、更新目标对象中的数据。
对象存储服务节点201在确定了目标对象后,对象存储服务节点201可以将该目标对象中待修改数据修改更新为修改数据。
具体的,对象存储服务节点201可以根据待修改数据在目标对象的偏移量、待修改数据的数据长度确定目标对象中的待修改数据,将该待修改数据修改为修改数据。
对象存储服务节点201还可以记录用于描述修改数据的数据布局的元数据(为方便说明,将描述修改数据的数据布局的元数据称为目标元数据),该目标元数据可以指示目标对象的修改时间、待修改数据在目标对象的偏移量、待修改数据的数据长度、修改数据的存储位置(如指示修改数据所在的PLOG、在PLOG中的长度、以及偏移量)等信息。其中,目标对象的修改时间可以是数据写入请求中携带的date确定的,也可以是对象存储服务节点201根据更新目标对象中的数据时的时间确定的。
在这种方式中,目标对象中的数据大小始终不变,修改前后数据的存储位置也不变,也即该目标对象中的数据所在的PLOG始终不变。
方式二、在目标对象中增加该修改数据。
对象存储服务节点201在确定了目标对象后,对象存储服务节点201可以在该目标对象中增加该修改数据,也即可以在PLOG中存储该修改数据,并记录用于描述修改数据的数据布局的元数据(为方便说明,将描述修改数据的数据布局的元数据称为目标元数据),这里的目标元数据可以指示修改数据的存储位置,如可以通过PLOG的标识、在PLOG中的长度、以及偏移量指示。元数据还可以指示修改时间、修改数据在目标对象中的位置。该修改数据在目标对象中的位置可以通过待修改数据在目标对象的偏移量、待修改数据的数据长度指示。其中,目标对象的修改时间可以是数据写入请求中携带的date确定的,也可以是对象存储服务节点201根据存储修改数据时的时间确定的。
在这种方式中,对象中的数据会随着修改次数的增加变大,不同修改数据可能存储在不同的PLOG中,故而需要在目标对象的元数据中记录目标元数据。
需要说明的是,若租户对目标对象中数据的修改方式为在目标对象中的原有数据的基础上增加新的数据,对象存储服务节点201可以通过方式二对目标对象中的数据进行修改,并记录目标元数据。这种情况下,该目标元数据可以记录修改数据的存储位置,以及修改数据在目标对象中的位置,如可以通过修改数据在目标对象的偏移量、以及修改数据的数据长度来指示修改数据在目标对象中的位置。这种情况下,该修改数据在目标对象中的偏移量可以等于目标对象中原始数据的数据长度,其中,原始数据是在存储该修改数据之前,目标对象中的数据。
在方式一和方式二中均涉及到目标元数据的记录,对象存储服务节点201记录目标元数据的方式有许多,下面列举其中两种。
一、对象存储服务节点201可以读取目标对象的元数据,在目标对象的元数据中增加目标元数据之后,再保存增加了目标元数据的该目标对象的元数据。
对象存储服务节点201可以将该目标对象的元数据全部都读出,在目标对象的元数据中增加目标元数据,例如增加目标对象的修改时间、待修改数据在目标对象的偏移量、待修改数据的数据长度、修改数据的存储位置等信息。之后再保存增加了目标元数据的该目标对象的元数据。
这种记录目标元数据的方式更加简单。适用于对目标对象修改次数少,或目标对象的元数据本身的数据量较小的场景。
二、对象存储服务节点201可以读取目标对象的部分元数据,在该部分元数据中增加目标元数据之后,再保存增加了目标元数据的该部分元数据。
对象存储服务节点201可以将目标对象的元数据切分为多个更小的次级元数据,每个次级元数据用于描述该目标对象中一个范围内的数据的数据布局(该数据布局包括该范围内的数据的存储位置、修改时间等信息),也即该次级元数据为该范围内数据的元数据。不同次级元数据对应的范围不同。每个次级元数据可以独立存储。
如图7所示,以目标对象中数据的大小为N*32兆比特(MB)为例,存储对象可以将目标对象的元数据切分为N的次级元数据,每个次级元数据用于描述32MB,如 次级元数据0用于描述该数据中0~32MB的数据的数据布局,次级元数据1用于描述该数据中32~64MB的数据的数据布局,次级元数据2用于描述该数据中64~96MB的数据的数据布局,次级元数据3用于描述该数据中96~128MB的数据的数据布局,次级元数据N-1用于描述该数据中(N-1)*32MB~N*32MB的数据的数据布局。
当对象存储服务节点201需要记录目标元数据时,根据待修改数据在目标对象的偏移量、待修改数据的数据长度确定待修改数据在目标对象中所属的范围,根据该范围从所述多个次级元数据中确定与该范围对应的次级元数据,与该范围对应次级元数据即为目标次级元数据;在该目标次级元数据中增加目标元数据,并保存增加了目标元数据的次级元数据。
例如,待修改数据在所述目标对象的偏移量、待修改数据的数据长度指示需要修改目标对象中数据0~2MB的数据,对象存储服务节点201可以获取该目标对象的次级元数据0。又例如,待修改数据在所述目标对象的偏移量、待修改数据的数据长度指示需要修改目标对象中数据2~40MB的数据,对象存储服务节点201可以获取该目标对象的次级元数据0以及次级元数据1。
对象存储服务节点201在获取了次级元数据后,可以在次级元数据中增加目标元数据。例如,待修改数据在所述目标对象的偏移量、待修改数据的数据长度指示需要修改目标对象中数据0~2MB的数据,对象存储服务节点201可以在次级元数据0上增加描述数据修改后目标对象中0~2MB数据的数据布局的目标元数据。又例如,待修改数据在所述目标对象的偏移量、待修改数据的数据长度指示需要修改目标对象中数据2~40MB的数据,对象存储服务节点201可以在次级元数据0中增加描述数据修改后目标对象中2~32MB数据的数据布局的目标元数据,在次级元数据1增加描述数据修改后目标对象中32~40MB数据的数据布局的目标元数据。
在对次级元数据进行更新之后,对象存储服务节点201可以保存增加了目标元数据的次级元数据。
这种记录元数据的方式中,对象存储服务节点201只需读取数据量较小的次级元数据,能够大大减少对象存储服务节点201每次读取的元数据的大小,使得元数据的记录更加高效,适用于对目标对象修改次数较多,或目标对象的元数据本身的数据量较大的场景。
步骤204:对象存储服务节点201在对目标对象修改完成后,向对象存储客户端20发送数据修改成功响应。
本申请实施例中并不限定计算节点对目标对象的修改次数,租户可以通过对象存储客户端20多次触发对象存储客户端20向对象存储服务节点201发送数据写入请求,以使得对象存储服务节点201多次对目标对象中的数据进行修改。在对目标对象进行修改之后,租户还可以通过对象存储客户端20从对象存储服务节点201读取数据修改后目标对象中的数据。下面对计算节点从对象存储服务节点201读取数据修改后目标对象中的数据进行说明。参见步骤205~207。
步骤205:对象存储客户端20向对象存储服务节点201发送数据读取请求。该数据读取请求中包括目标对象的名称和目标对象所在的桶的桶域名。若租户可以只读取目标对象中的部分数据,该数据读取请求中还可以携带读取范围,可以通过数据在目 标对象中的偏移量以及数据长度指示读取范围。
步骤206:对象存储服务节点201在接收该数据读取请求后,可以根据桶域名定位到桶,可以根据目标对象的名称和桶的标识确定目标对象,根据目标对象的元数据获取该目标对象中的数据。
对应于对象存储服务节点201修改目标对象中数据的两种方式,对象存储服务节点201可以通过如下两种方式获得目标对象中数据。
对应于步骤203中的方式一。
若数据读取请求中不包括读取范围,也即租户需要读取目标对象中的所有数据。对象存储服务节点201在确定了目标对象后,可以获取该目标对象的元数据(该目标对象的元数据为增加了目标元数据的目标对象的元数据),进而根据该目标对象的元数据确定目标对象中的数据的存储位置,对象存储服务节点201可以从该存储位置读取目标对象中的数据。
若数据读取请求中还包括读取范围,也即租户需要读取目标对象中的部分数据。对象存储服务节点201可以根据该元数据和读取范围确定目标对象中读取范围内的数据的存储位置,从该存储位置读取目标对象中读取范围内的数据。
对应于步骤203中的方式二。
若数据读取请求中不包括读取范围,也即租户需要读取目标对象中的所有数据,对象存储服务节点201在确定了目标对象后,可以获取该目标对象的元数据(该目标对象的元数据为增加了目标元数据的目标对象的元数据),之后,对象存储服务节点201可以根据目标对象的元数据确定目标对象中数据是否修改、目标对象中的数据的修改时间,以及该目标对象中的数据的存储位置,如确定该数据中存在修改的部分数据,以及该数据中未修改的部分数据。对于该数据中未修改的部分数据,对象存储服务节点201可以根据该目标对象的元数据确定该部分数据的存储位置,对于该数据中存在修改的部分数据,对象存储服务节点201可以根据该目标对象的元数据确定最近一次修改时修改数据的存储位置。
对于该数据中未修改的部分,对象存储服务节点201可以根据该部分数据的存储位置读取该部分数据。对于该数据中存在修改的部分,对象存储服务节点201可以根据最近一次修改时修改数据的存储位置读取该修改数据。该部分数据以及修改数据即为该目标对象中的数据。
举例来说,对于目标对象存在两次修改,第一次修改了目标对象中的偏移量为0,数据长度为2MB的数据,也即修改了0~2MB的数据,此次修改的修改数据1存储在PLOG1中,修改数据1的长度为2MB。第二次修改了目标对象中偏移量为1、数据长度为5MB的数据,也即修改了1~6MB的数据,此次修改的修改数据2存储在PLOG2,修改数据2的长度为5MB。
假设需要读取该目标对象中0~10MB的数据,对象存储服务节点201在读取目标对象中的数据时,可以根据目标对象的元数据确定目标对象中6MB~10MB的数据为未修改的数据,可以直接读取该部分数据。根据目标对象的元数据确定目标对象中1MB~6MB的数据为存在修改的数据,对于0~1MB的数据,最近一次修改的修改数据为PLOG1中0~1MB的数据,对象存储服务节点201从PLOG1中读取0~1MB的数据。 对于1~6MB的数据,最近一次修改的修改数据为PLOG2中0~5MB的数据,对象存储服务节点201从PLOG2中读取PLOG2中5MB的数据。对象存储服务节点201读取的数据即为最近一次修改后目标对象中的数据。
若数据读取请求中还包括读取范围,也即租户需要读取目标对象中的部分数据,对象存储服务节点201可以根据该元数据和读取范围确定目标对象中读取范围内的数据是否修改、数据的修改时间,以及数据的存储位置,对于该读取范围内的数据中未修改的部分数据,对象存储服务节点201可以根据该目标对象的元数据确定该部分数据的存储位置,从该存储位置处读取该部分数据。对于该读取范围内的数据中存在修改的部分数据,对象存储服务节点201可以根据该目标对象的元数据确定最近一次修改时修改数据的存储位置,读取从该存储位置该部分数据。
步骤207:对象存储服务节点201将目标对象中的数据携带在数据读取成功响应中,向对象存储客户端20发送数据读取成功响应。
通过上述方式,当租户需要读取目标对象中的数据时,可以通过对象存储客户端20向对象存储服务节点201发送数据读取请求,对象存储服务节点201能够根据目标对象的元数据确定经过最近一次修改后该目标对象中的数据,并向对象存储客户端20反馈经过最近一次修改后该目标对象中的数据,能够提高数据读取的准确性。
基于与方法实施例同一发明构思,本申请实施例还提供了一种对象存储服务节点,用于执行上述如图6所示的方法实施例中对象存储服务节点201执行的方法,相关特征可参见上述方法实施例,此处不再赘述。如图8所示,为本申请实施例提供的一种对象存储服务节点,对象存储服务节点800包括接收模块801、处理模块802,可选的,还包括发送模块803;
接收模块801,用于接收对象存储客户端发送的数据写入请求,数据写入请求用于请求对对象存储服务节点中存储的目标对象中的待修改数据进行修改,数据写入请求包括目标对象所在的数据桶的桶域名、目标对象的名称、待修改数据在目标对象的偏移量、待修改数据的数据长度、以及修改数据。接收模块801可以执行如图6所示的实施例中步骤202中对象存储服务节点201执行的方法。
处理模块802,用于根据桶域名确认数据桶,根据目标对象的名称确认数据桶中的目标对象,将目标对象中偏移量和数据长度对应的待修改数据修改为修改数据。处理模块802可以执行如图6所示的实施例中的步骤203。
作为一种可能的实施方式,处理模块802在将目标对象中偏移量和数据长度对应的待修改数据修改为修改数据时,可以在持久存储单元存储修改数据;还可以记录元数据,元数据用于指示修改数据的数据布局,数据布局包括修改数据的存储位置。修改数据的存储位置可以通过持久存储单元的标识、修改数据在持久存储单元的偏移量以及修改数据在持久存储单元的长度指示。数据布局还可以包括修改数据在目标对象中的位置,如可以通过待修改数据在目标对象中的偏移量以及待修改数据的数据长度指示。
作为一种可能的实施方式,目标对象的元数据包括多个次级元数据,一个次级元数据为目标对象中一个范围内数据的元数据,不同次级元数据对应的范围不同。
作为一种可能的实施方式,处理模块802在记录元数据时,可以先根据待修改数据在目标对象的偏移量、待修改数据的数据长度确定待修改数据在目标对象中所属的范围,根据范围从多个次级元数据中确定目标次级元数据;之后在目标次级元数据中增加元数据。
作为一种可能的实施方式,数据写入请求还包括时间信息,时间信息用于指示发送数据写入请求的时间。
作为一种可能的实施方式,数据写入请求还包括鉴权信息,鉴权信息用于指示对象存储客户端访问对象存储服务节点的权限。
作为一种可能的实施方式,发送模块803在处理模块802将目标对象中偏移量和数据长度对应的待修改数据修改为修改数据之后,向对象存储客户端发送数据修改成功响应。发送模块803可以用于执行如图6所示的实施例中步骤204中对象存储服务节点201执行的方法。
基于与方法实施例同一发明构思,本申请实施例还提供了一种对象存储客户端,用于执行上述如图6所示的方法实施例中对象存储客户端20执行的方法,相关特征可参见上述方法实施例,此处不再赘述。如图9所示,为本申请实施例提供的一种对象存储客户端,对象存储客户端包括接收模块901、发送模块902。
接收模块901,用于接收应用程序22发送的针对目标对象的数据修改请求。接收模块901可以执行如图6所示的实施例中步骤201中对象存储客户端20执行的方法。
发送模块902,用于根据数据修改请求向对象存储服务节点发送数据写入请求,数据写入请求用于请求对对象存储服务节点中存储的目标对象中的待修改数据进行修改,数据写入请求包括目标对象所在的数据桶的桶域名、目标对象的名称、待修改数据在目标对象的偏移量、待修改数据的数据长度、以及修改数据。发送模块902可以根据该数据修改请求生成数据写入请求,如将数据修改请求中的信息携带在数据写入请求中;并向对象存储服务节点发送数据写入请求。发送模块902可以执行如图6所示的实施例中步骤202中对象存储客户端20执行的方法。
作为一种可能的实施方式,数据写入请求还包括时间信息,时间信息用于发送数据写入请求的时间。
作为一种可能的实施方式,数据写入请求还包括鉴权信息,鉴权信息用于指示对象存储客户端访问对象存储服务节点的权限。
作为一种可能的实施方式,接收模块901还可以接收数据修改成功响应。
需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以 为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
在一个简单的实施例中,本领域的技术人员可以想到如图6所示的实施例中对象存储服务节点201和对象存储客户端20可采用图10所示的形式。
如图10所示的计算设备1000,包括至少一个处理器1001、存储器1002,可选的,还可以包括通信接口1003。
存储器1002可以是易失性存储器,例如随机存取存储器;存储器也可以是非易失性存储器,例如只读存储器,快闪存储器,硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、物理磁盘或者存储器1002是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1002可以是上述存储器的组合。
本申请实施例中不限定上述处理器1001以及存储器1002之间的具体连接介质。
处理器1001可以为中央处理器(central processing unit,CPU),该处理器1001还可以是其他通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circui。ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、人工智能芯片、片上芯片等。通用处理器可以是微处理器或者是任何常规的处理器等。处理器1001在与其他设备进行通信时,可以通过通信接口1003进行数据传输,如从接收第一检测指令或第二检测指令。
当所述对象存储服务节点采用图10所示的形式时,图10中的处理器1001可以通过调用存储器1002中存储的计算机执行指令,使得所述计算设备可以执行上述任一方法实施例中的所述对象存储服务节点201执行的方法。
具体的,图8的接收模块、发送模块、以及处理模块的功能/实现过程均可以通过图10中的处理器1001调用存储器1002中存储的计算机执行指令来实现。或者,图8中的处理模块的功能/实现过程可以通过图10中的处理器1001调用存储器1002中存储的计算机执行指令来实现,图8的接收模块以及发送模块的功能/实现过程可以通过图10中的通信接口1003来实现。
当所述对象存储客户端采用图10所示的形式时,图10中的处理器1001可以通过调用存储器1002中存储的计算机执行指令,使得所述计算设备可以执行上述任一方法实施例中的所述对象存储客户端20执行的方法。
具体的,图9的接收模块、发送模块的功能/实现过程均可以通过图10中的处理器1001调用存储器1002中存储的计算机执行指令来实现。或者,图9中的发送模块 中生成数据写入请求的功能/实现过程可以通过图10中的处理器1001调用存储器1002中存储的计算机执行指令来实现,图9的接收模块以及发送模块中发送数据写入请求的功能/实现过程可以通过图10中的通信接口1003来实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (24)

  1. 一种对象存储服务的数据修改方法,其特征在于,所述方法应用于对象存储服务节点,所述方法包括:
    接收对象存储客户端发送的数据写入请求,所述数据写入请求用于请求对所述对象存储服务节点中存储的目标对象中的待修改数据进行修改,所述数据写入请求包括所述目标对象所在的数据桶的桶域名、所述目标对象的名称、所述待修改数据在所述目标对象的偏移量、所述待修改数据的数据长度、以及修改数据;
    根据所述桶域名确认所述数据桶,根据所述目标对象的名称确认所述数据桶中的所述目标对象,将所述目标对象中所述偏移量和所述数据长度对应的所述待修改数据修改为所述修改数据。
  2. 如权利要求1所述的方法,其特征在于,所述将所述目标对象中所述偏移量和所述数据长度对应的所述待修改数据修改为所述修改数据,包括:
    在持久存储单元存储所述修改数据;
    记录元数据,所述元数据用于指示所述修改数据的数据布局,所述数据布局包括所述持久存储单元的标识、所述修改数据在所述持久存储单元的偏移量以及所述修改数据在所述持久存储单元的长度。
  3. 如权利要求1或2所述的方法,其特征在于,所述目标对象的元数据包括多个次级元数据,一个次级元数据为所述目标对象中一个范围内数据的元数据,不同所述次级元数据对应的所述范围不同。
  4. 如权利要求3所述的方法,其特征在于,所述记录元数据,包括:
    根据所述待修改数据在所述目标对象的偏移量和所述待修改数据的数据长度确定所述待修改数据在所述目标对象中所属的范围,根据所述范围从所述多个次级元数据中确定目标次级元数据;
    在所述目标次级元数据中增加所述元数据。
  5. 如权利要求1至4任一所述的方法,其特征在于,所述数据写入请求还包括时间信息,所述时间信息用于指示发送所述数据写入请求的时间。
  6. 如权利要求1至5任一所述的方法,其特征在于,所述数据写入请求还包括鉴权信息,所述鉴权信息用于指示所述对象存储客户端访问所述对象存储服务节点的权限。
  7. 如权利要求1至6任一所述的方法,其特征在于,所述将所述目标对象中所述偏移量和所述数据长度对应的所述待修改数据修改为所述修改数据之后,还包括:
    向所述对象存储客户端发送数据修改成功响应。
  8. 一种数据修改方法,其特征在于,所述方法应用于对象存储客户端,所述方法包括:
    接收应用程序发送的针对目标对象的数据修改请求;
    根据所述数据修改请求向对象存储服务节点发送数据写入请求,所述数据写入请求用于请求对所述对象存储服务节点中存储的所述目标对象中的待修改数据进行修改,所述数据写入请求包括所述目标对象所在的数据桶的桶域名、所述目标对象的名称、所述待修改数据在所述目标对象的偏移量、所述待修改数据的数据长度、以及修改数 据。
  9. 如权利要求8所述的方法,其特征在于,所述数据写入请求还包括时间信息,所述时间信息用于指示发送所述数据写入请求的时间。
  10. 如权利要求8或9所述的方法,其特征在于,所述数据写入请求还包括鉴权信息,所述鉴权信息用于指示所述对象存储客户端访问所述对象存储服务节点的权限。
  11. 一种对象存储服务节点,其特征在于,所述对象存储服务节点包括接收模块、处理模块;
    所述接收模块,用于接收对象存储客户端发送的数据写入请求,所述数据写入请求用于请求对所述对象存储服务节点中存储的目标对象中的待修改数据进行修改,所述数据写入请求包括所述目标对象所在的数据桶的桶域名、所述目标对象的名称、所述待修改数据在所述目标对象的偏移量、所述待修改数据的数据长度、以及修改数据;
    所述处理模块,用于根据所述桶域名确认所述数据桶,根据所述目标对象的名称确认所述数据桶中的所述目标对象,将所述目标对象中所述偏移量和所述数据长度对应的所述待修改数据修改为所述修改数据。
  12. 如权利要求11所述的对象存储服务节点,其特征在于,所述处理模块在将所述目标对象中所述偏移量和所述数据长度对应的所述待修改数据修改为所述修改数据时,具体用于:
    在持久存储单元存储所述修改数据;
    记录元数据,所述元数据用于指示所述修改数据的数据布局,所述数据布局包括所述持久存储单元的标识、所述修改数据在所述持久存储单元的偏移量以及所述修改数据在所述持久存储单元的长度。
  13. 如权利要求11或12所述的对象存储服务节点,其特征在于,所述目标对象的元数据包括多个次级元数据,一个次级元数据为所述目标对象中一个范围内数据的元数据,不同所述次级元数据对应的所述范围不同。
  14. 如权利要求13所述的对象存储服务节点,其特征在于,所述处理模块在记录元数据时,具体用于:
    根据所述待修改数据在所述目标对象的偏移量和所述待修改数据的数据长度确定所述待修改数据在所述目标对象中所属的范围,根据所述范围从所述多个次级元数据中确定目标次级元数据;
    在所述目标次级元数据中增加所述元数据。
  15. 如权利要求11至14任一所述的对象存储服务节点,其特征在于,所述数据写入请求还包括时间信息,所述时间信息用于指示发送所述数据写入请求的时间。
  16. 如权利要求11至15任一所述的对象存储服务节点,其特征在于,所述数据写入请求还包括鉴权信息,所述鉴权信息用于指示所述对象存储客户端访问所述对象存储服务节点的权限。
  17. 如权利要求11至16任一所述的对象存储服务节点,其特征在于,所述对象存储服务节点还包括发送模块,所述发送模块在所述处理模块将所述目标对象中所述偏移量和所述数据长度对应的所述待修改数据修改为所述修改数据之后,用于:
    向所述对象存储客户端发送数据修改成功响应。
  18. 一种对象存储客户端,其特征在于,所述对象存储客户端包括接收模块、发送模块:
    所述接收模块,用于接收应用程序发送的针对目标对象的数据修改请求;
    所述发送模块,用于根据所述数据修改请求向对象存储服务节点发送数据写入请求,所述数据写入请求用于请求对所述对象存储服务节点中存储的所述目标对象中的待修改数据进行修改,所述数据写入请求包括所述目标对象所在的数据桶的桶域名、所述目标对象的名称、所述待修改数据在所述目标对象的偏移量、所述待修改数据的数据长度、以及修改数据。
  19. 如权利要求18所述的对象存储客户端,其特征在于,所述数据写入请求还包括时间信息,所述时间信息用于指示发送所述数据写入请求的时间。
  20. 如权利要求18或19所述的对象存储客户端,其特征在于,所述数据写入请求还包括鉴权信息,所述鉴权信息用于指示所述对象存储客户端访问对象存储服务节点的权限。
  21. 一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器;
    所述存储器用于存储计算机执行指令;
    所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述计算机设备实现如所述权利要求1至7任一项所述的方法。
  22. 一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器;
    所述存储器用于存储计算机执行指令;
    所述处理器用于执行所述存储器所存储的计算机执行指令,以使所述计算机设备实现如所述权利要求8至10任一项所述的方法。
  23. 一种计算机存储介质,其特征在于,包括计算机可读指令,当所述计算机可读指令被执行时,实现如权利要求1至7任一项所述的方法或8至10任一项所述的方法。
  24. 一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至7任一项所述的方法或8至10任一项所述的方法。
PCT/CN2021/122147 2020-10-10 2021-09-30 对象存储服务的数据修改方法、服务节点、客户端及设备 WO2022073458A1 (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN202011079971 2020-10-10
CN202011079971.1 2020-10-10
CN202110131551.1A CN114327249A (zh) 2020-10-10 2021-01-30 对象存储服务的数据修改方法、服务节点、客户端及设备
CN202110131551.1 2021-01-30

Publications (1)

Publication Number Publication Date
WO2022073458A1 true WO2022073458A1 (zh) 2022-04-14

Family

ID=81044387

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/122147 WO2022073458A1 (zh) 2020-10-10 2021-09-30 对象存储服务的数据修改方法、服务节点、客户端及设备

Country Status (2)

Country Link
CN (1) CN114327249A (zh)
WO (1) WO2022073458A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115587390B (zh) * 2022-12-12 2023-03-10 杭州优云科技有限公司 一种公有云对象存储的实现方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593174A (zh) * 2012-08-13 2014-02-19 Sap股份公司 可修改的业务对象
CN103731489A (zh) * 2013-12-27 2014-04-16 华为技术有限公司 一种数据存储方法、系统和设备
CN106210039A (zh) * 2016-07-08 2016-12-07 乐视控股(北京)有限公司 对象管理方法、客户端和云服务端
US20170091235A1 (en) * 2015-09-25 2017-03-30 Netapp, Inc. Namespace hierarchy preservation with multiple object storage objects
CN108089818A (zh) * 2017-12-12 2018-05-29 腾讯科技(深圳)有限公司 数据处理方法、装置及存储介质
CN109587185A (zh) * 2017-09-28 2019-04-05 华为技术有限公司 云存储系统和云存储系统中的对象处理方法
CN110531933A (zh) * 2019-08-23 2019-12-03 北京浪潮数据技术有限公司 数据处理方法及服务器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103593174A (zh) * 2012-08-13 2014-02-19 Sap股份公司 可修改的业务对象
CN103731489A (zh) * 2013-12-27 2014-04-16 华为技术有限公司 一种数据存储方法、系统和设备
US20170091235A1 (en) * 2015-09-25 2017-03-30 Netapp, Inc. Namespace hierarchy preservation with multiple object storage objects
CN106210039A (zh) * 2016-07-08 2016-12-07 乐视控股(北京)有限公司 对象管理方法、客户端和云服务端
CN109587185A (zh) * 2017-09-28 2019-04-05 华为技术有限公司 云存储系统和云存储系统中的对象处理方法
CN108089818A (zh) * 2017-12-12 2018-05-29 腾讯科技(深圳)有限公司 数据处理方法、装置及存储介质
CN110531933A (zh) * 2019-08-23 2019-12-03 北京浪潮数据技术有限公司 数据处理方法及服务器

Also Published As

Publication number Publication date
CN114327249A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
US11330055B2 (en) Data retrieval in a hybrid cloud
JP6276388B2 (ja) 共有コンテンツのアクセス許可
JP6175181B2 (ja) 同期したオンラインコンテンツ管理システムのためのローカルサーバ
EP3235213B1 (en) No password user account access
JP6186015B2 (ja) コンテンツアイテムの共有
JP6161827B2 (ja) クライアントアプリケーションがコンテンツ管理システム上のユーザアカウントにアクセスすることの予備認証
US10338852B2 (en) Systems and methods for list retrieval in a storage device
JP2016527603A (ja) ライトインストーラ
KR20120010397A (ko) 클라우드 스토리지 서비스 장치 및 방법
CN104468640A (zh) 实现云存储空间共享的方法与装置
WO2022127762A1 (zh) 云平台及其提供的对象存储服务的桶管理方法
WO2022073458A1 (zh) 对象存储服务的数据修改方法、服务节点、客户端及设备
US20140041053A1 (en) Data block access control
US11533377B2 (en) Hybrid cloud
US11509719B2 (en) Blockchain technology in data storage system
US20230076870A1 (en) Protections for sensitive content items in a content management system
CN113806668A (zh) 一种对象存储系统的数据访问方法及对象存储系统
US9626425B2 (en) Storage system, cloud storage system, and computer program product
RU2656739C1 (ru) Способ и система хранения данных
US20200019646A1 (en) Cloud storage aggregator system and method
WO2024032262A1 (zh) 一种基于云计算技术的对象存储服务配置方法及装置
US20220405415A1 (en) Hybrid cloud
CN117435237A (zh) 基于低代码平台的存储配置方法、装置、终端设备及介质
CN118034571A (zh) 一种数据处理方法及装置
CN116684282A (zh) 新增云端服务器初始化方法、装置和计算机设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21876976

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21876976

Country of ref document: EP

Kind code of ref document: A1