WO2012037873A1 - 一种分布式数据存储系统和方法 - Google Patents

一种分布式数据存储系统和方法 Download PDF

Info

Publication number
WO2012037873A1
WO2012037873A1 PCT/CN2011/079879 CN2011079879W WO2012037873A1 WO 2012037873 A1 WO2012037873 A1 WO 2012037873A1 CN 2011079879 W CN2011079879 W CN 2011079879W WO 2012037873 A1 WO2012037873 A1 WO 2012037873A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
process module
service process
module
data
Prior art date
Application number
PCT/CN2011/079879
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 WO2012037873A1 publication Critical patent/WO2012037873A1/zh
Priority to US13/632,427 priority Critical patent/US8930501B2/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Definitions

  • the present invention relates to the field of storage technologies, and in particular, to a distributed data storage system and method. Background of the invention
  • UGC User Generated Content
  • User Generated Content is a new way for users to use the Internet, from the original download to the download and upload.
  • community networks, video sharing, and blogs are all major UGC applications.
  • UGC business is emerging, which has aroused widespread concern in the industry.
  • FIG. 1 shows a system architecture of an existing distributed data storage system, including a storage identification (ID) distribution system (or ID numbering system) 120 and a data storage system 130.
  • ID storage identification
  • ID numbering system or ID numbering system
  • the storage identification distribution system 120 is responsible for allocating storage identifications for the data to be stored when the storage requestor requests storage of data.
  • the storage identifier distribution system 120 guarantees the global uniqueness of the storage identifier, and allows the storage identifier to have a certain randomness in some or some storage identifier segments (within certain range segments), which ensures the data storage system 130 to some extent. Load balancing.
  • the data storage system 130 is responsible for storing data and providing read and write services, including an interface machine process module 131, a plurality of service process modules 132, and a plurality of storage modules 133.
  • the interface machine process module is configured to receive the read/write and storage requests, which are sent by the storage requester 110, and store the read/write and storage requests to the corresponding service process module 132, and simultaneously deploy the service process module 132 to the external service process module 132.
  • each service process module 132 is responsible for one or
  • the data storage in the storage identifier segment receives the storage request sent by the interface machine process module 131 and includes the storage identifier, provides a read/write service for the data, and responds to the storage request 110 with a successful response after successfully storing the data;
  • the module 133 is configured to store, read, and write data according to the indication of the service process module 132.
  • FIG. 2 is a schematic flow chart of a prior art distributed data storage method.
  • the above distributed data storage method includes the following steps:
  • Step 210 The storage identifier distribution system allocates a unique storage identifier to the data to be stored.
  • Step 220 The storage requester submits a request containing the data to the interface machine process module according to the allocated storage identifier.
  • Step 230 The interface machine process module forwards the storage request to the corresponding service process module according to the storage identifier segment to which the storage identifier belongs.
  • Step 240 The service process module instructs the storage module to store data according to the storage identifier, and responds to the storage requester with a successful response.
  • the distributed data storage method may further include the following steps: the storage requester submits a read request including the storage identifier to the interface machine process module, and the interface machine process module according to the storage identifier segment to which the storage identifier belongs The read request is distributed to the corresponding service process module, and the service process module instructs the storage module to return the data to the storage requester according to the storage identifier.
  • the distributed data storage method may further include the following steps: the storage requester submits a write request including a storage identifier and a content to be modified to an interface machine process module, and the interface machine process module belongs according to the storage identifier
  • the storage identifier segment distributes the write request to the corresponding service process module, and the service process module instructs the storage module to write the modified content.
  • the above distributed data storage system has the following deficiencies: 1. High coupling.
  • the data storage system has a dependency on the storage identity allocation system.
  • the storage identifier distribution system needs to ensure the uniformity and randomness of the storage identifier. Once the randomness of the storage identifier distribution system is broken, the process executed by a certain service process module may be crushed due to the sudden increase of the write request amount; Moreover, when a single point of failure occurs in the storage identity distribution system, the storage request of the entire distributed data storage system cannot be completed.
  • the embodiment of the invention provides a distributed data storage system and method, which can provide users with stable, single, efficient, low-cost mass data storage and reading and writing services.
  • a distributed data storage system characterized in that the system comprises: an interface machine process module; at least one service process module; at least one storage module;
  • the interface machine process module is configured to receive, from a storage requester, a storage request that includes data to be stored, and distribute the storage request to one of the at least one service process module;
  • the service process module is configured to receive the storage request from the interface machine process module, and allocate a storage identifier to the data included in the storage request;
  • the at least one storage module is configured to store the data according to the storage identifier allocated by the service process module.
  • a distributed data storage method comprising:
  • the interface machine process module receives and distributes the storage request containing the data to be stored from the storage requestor;
  • At least one storage module stores the data according to the storage identifier.
  • the present invention avoids the use of a dedicated storage identifier distribution system by allocating storage identifiers in each service process module, thereby making the entire distributed storage system unable to work normally due to the failure of the storage identifier distribution system, and Users provide a single, efficient, low-cost storage service.
  • 1 is a system architecture diagram of an existing distributed data storage system
  • FIG. 2 is a schematic flow chart of a conventional distributed data storage method
  • FIG. 3 is a system architecture diagram of a distributed data storage system according to an embodiment of the present invention
  • FIG. 4 is a schematic flowchart of a distributed data storage method according to an embodiment of the present invention
  • FIG. 6 is an exemplary flowchart of a method of selecting an available service process module according to an embodiment of the present invention
  • FIG. 7 is an exemplary flowchart of a method for selecting an available service process module according to another embodiment of the present invention. Mode for carrying out the invention
  • the distributed data storage scheme of the present invention a new method for allocating storage identifiers is proposed, and a distributed background service architecture model is designed.
  • the allocation storage identification scheme of the present invention the storage identifier distribution system is no longer used, and each service process module is directly responsible for the allocation of storage identifiers. Under this scheme, the service performance is not reduced at all, but the overall complexity of the system, Coupling and bandwidth costs are greatly reduced.
  • FIG. 3 illustrates a system architecture of a distributed data storage system 330 in accordance with an embodiment of the present invention, including: an interface machine process module 331, at least one service process module 332, and at least one storage module 333.
  • the interface machine process module 331 is configured to receive a storage request containing data to be stored from the storage requester 310 and distribute the storage request to the service process module 332.
  • Service process module 332 is for allocating storage identities and providing a data storage service that receives storage requests from interface machine process module 331 and assigns storage identities to data contained in the storage requests.
  • the storage module 333 is configured to store data according to the storage identifier assigned by the service process module 332.
  • the list of available service process modules may be maintained in the interface machine process module 331.
  • the interface machine process module 331 maintains a list of available service process modules by determining and deleting a service process module 332 in the list of available service process modules that is not capable of providing new storage services.
  • the interface machine process module 331 can determine whether the service process module 332 is available and update the list of available service process modules by various methods.
  • the interface machine process module 331 can maintain a service with a status of "appendable" A list of service process modules, the "appendable" status of each service process module listed in this list is valid.
  • the "additional" state can be periodically confirmed to the respective service process modules in the interface machine process module 332 in a round robin manner.
  • the interface process module may be periodically advertised from the service process module 332 to indicate whether its "appendable" status is valid.
  • the service process module 332 that cannot provide the newly added storage service in the list may be deleted, but the module is determined to be available according to the status of the service process module 332 recorded in the list.
  • the invention is not limited to the manner in which the list of available service process modules is maintained as described above.
  • the interface machine process module 331 can select an available service process module 332 from the list of available service process modules and forward the storage request to the available service process module 332. For example, when a service process executed by a service process module 332 hangs, the "appendable" state of the service process module 332 is no longer valid, and the interface machine process module 331 no longer distributes new requests to the service process module 332. And distribute the storage requests to the remaining available service process modules 332 to ensure the availability of new services. As another example, when a service process module 332 allocates all of the storage identities for which it is responsible, the interface machine process module 331 considers that the service process module 332 is no longer available and no longer distributes storage requests to it. In addition, when a service process module 332 allocates the storage identifier it is responsible for, its "appendable" state is no longer valid.
  • the interface machine process module 331 can select the available service process modules 332 from a list of "appendable" service process modules in a variety of ways.
  • an exemplary embodiment of the present invention may further record the identity of the service process module 332 selected from the list of available service processes when the data was last stored, and based on the last time the data was stored.
  • the available service process module 332 is selected from the list of available service process modules when the identity of the service process module 332 selected from the list of available service processes is selected. For example, record the service that was last distributed for storage requests.
  • the subscript of the service process module 332 that is, which service process module was distributed to the last storage request), thereby realizing the distribution of new storage requests in the service process module 332 that is valid in all "appendable" states to ensure the service processes.
  • the load of module 332 is balanced.
  • the interface machine process module 331 can also randomly select an available service process module 332 from a list of available service process modules. The invention is not limited to the manner in which the available service process module 332 is selected as described above.
  • Readable indicates that the service process module 332 can provide a data reading service
  • writable indicates that the service process module 332 can provide a data modification service
  • appendable indicates that the service process module 332 can provide a new data service.
  • the status of the service process module 332 may include any one of the three sub-states or a combination of any of the three sub-states according to actual conditions.
  • the service process module 332 also allocates storage identifiers for data contained in the storage request in the order of the storage identifiers or randomly in at least one consecutive storage identifier. For example, the service process module 332 allocates a storage identifier for the data within the storage identification segment that it is responsible for.
  • the specific allocation rule may adopt a method of sequentially assigning storage identifiers from small to large. Assume that the 100,000 contiguous storage identifier is a storage identifier segment.
  • the specific storage identifier allocation example is as follows: Assume that the storage identifier segment responsible for the service process module i is 6 and 8, the first storage identifier released by the process is 500000, and the second The storage identifier is 500001, and so on. When it is placed at 599999, the storage identifier in the storage identifier segment 6 is allocated. The next storage identifier is 700,000, and so on. When all the storage identifier segments are allocated, the service process module i can no longer add data, or its "appendable" status is invalid.
  • the storage module 333 can be various computer storage media such as a Solid State Drive (SSD) and a Hard Disk Drive (HDD). Those skilled in the art will know how the storage module 333 stores data according to the storage identification, and thus its specific technical details will not be described in detail herein.
  • SSD Solid State Drive
  • HDD Hard Disk Drive
  • the service process module 332 may be further configured to: after storing the data in the storage module 333, respond to the storage requestor 310 with a success response message, and the success response message includes the data allocated for the data. Store the ID.
  • the interface machine process module 331 may further receive a read request including the storage identifier from the storage requester 310, and forward the read request to the previously allocated storage according to the storage identifier included in the storage request.
  • the identified service process module 332, the service process module 332 instructs the storage module 333 to return the data stored in the storage module 333 to the storage requestor 310 based on the storage identifier included in the read request.
  • the interface machine process module 331 may further receive a write request including the storage identifier and the content to be modified from the storage requester 310, and write the request according to the storage identifier included in the write request. Forwarding to the service process module 332 that previously assigned the storage identifier, the service process module 332 instructs the storage module 333 to modify the data stored in the storage module 333 according to the storage identifier included in the write request.
  • the distributed data storage system may further include a plurality of interface machine process modules 331.
  • Multiple interface machine process modules 331 can work in concert to complete the receipt and distribution of storage requests.
  • multiple interface machine process modules 331 may employ disaster tolerance design, or may be responsible for distributing storage requests to a portion of available service process modules 332, respectively, or cooperatively distributing storage to all available service process modules 332. Request to increase system reliability and flexibility.
  • FIG. 3 only schematically shows the logical connection relationship of the above various modules of the distributed storage system according to the embodiment of the present invention.
  • the above modules may be located in physically the same or different computers or network systems.
  • a service process module 332 can store data on one or more storage modules 333, and a storage module 333 can also receive data distributed by multiple service process modules 332.
  • the storage requestor 310 can be any form of party that requires a data service, such as a device or system that issues a data service request, such as a network, server, or client.
  • the storage requestor 310 may also be referred to as a read requester when reading data, and the storage requestor 310 may also be referred to as a write requester when writing data.
  • FIG. 4 is a schematic flowchart of a distributed data storage method according to an embodiment of the present invention. See Figure 4, including the following steps:
  • the interface machine process module receives the storage request from the storage requester, and distributes the storage request to one of the at least one service process module, where the data to be stored is included in the storage request.
  • the service process module receives the storage request from the interface machine process module, and allocates a storage identifier for the data included in the storage request.
  • the at least one storage module stores data according to the storage identifier allocated by the service process module.
  • the interface machine process module can distribute the storage request to the service process module in a variety of ways, and the service process module can also allocate the storage identification in a variety of ways. Detailed description will be made hereinafter in conjunction with specific exemplary embodiments.
  • FIG. 5 is an exemplary flowchart of a distributed data storage method according to another embodiment of the present invention. See Figure 5, including the following steps:
  • the interface machine process module receives, from the storage requester, a storage that includes data to be stored. Request.
  • the implementation of the storage request is similar to the storage request in Figure 2, except that the storage request does not contain a storage identifier.
  • the interface machine process module selects an available service process module from the list of available service process modules.
  • the interface machine process module can maintain a list of available service process modules in various manners, for example, the available service process module list can be determined and deleted, and new storage cannot be provided.
  • the service process module of the service maintains a list of available service process check modules.
  • the interface machine process module can record the identifier of the service process module selected from the list of available service processes when the data was last stored, and is based on the identifier of the service process module selected from the list of available service processes when the data was last stored. Select the service process module that can be used to distribute the current storage request in the list of service process modules.
  • the interface machine process module can also randomly select available service process modules from the list of available service process modules.
  • a detailed flowchart of a method for selecting an available service process module in accordance with an embodiment of the present invention is described in detail with respect to FIGS. 6 and 7.
  • the selected available service process module allocates a storage identifier for the data contained in the storage request.
  • the service process module may allocate a storage identification for the data contained in the storage request in the order of the storage identification or randomly within the at least one contiguous storage identification. The specific allocation method is described in detail in the system embodiment of the present invention regarding the allocation of storage identifiers.
  • S550 The storage module stores data according to the storage identifier allocated by the service process module. Those skilled in the art can know how to store data according to the storage identifier, which will not be described in detail herein. The storage and reading and writing service of the data is improved. According to another embodiment of the present invention, the following steps may be further included: S560: The service process module responds to the storage requester with a success response message after storing the data in the storage module. The success response message contains information that can tell the storage requestor that the data has been successfully stored, and can include a storage identification for future read and write data usage.
  • the interface machine process module receives a read request containing the storage identifier from the storage requestor.
  • the interface machine process module forwards the read request to the service process module that previously allocated the storage identifier according to the storage identifier included in the storage request.
  • the interface machine process module reads data from the storage module according to the storage identifier included in the read request.
  • S576 The storage module returns the data to the storage requester according to the storage identifier.
  • the method further includes the following steps:
  • the interface machine process module receives a write request including a storage identifier and data to be modified from the storage requester.
  • the interface machine process module forwards the write request to the service process module that previously allocated the storage identifier according to the storage identifier included in the storage request.
  • the service process module writes data to the storage module according to the storage identifier included in the read request and the content to be modified, so that the storage module can modify the data stored thereon.
  • FIG. 6 is an exemplary flow diagram of a method of selecting an available service process module in accordance with an embodiment of the present invention.
  • the interface machine process module acquires the status of the next service process module.
  • the interface machine process module can periodically query according to the order of the service process module identification in a certain period.
  • the status of each service process module It is also possible for each service process module to report its current state to the interface machine process module.
  • step S620 The interface machine process module determines whether the server process module is available? For example, can I append new data? If yes, step S610 is performed to continue to query whether the next service process module is available. If no, step S630 is performed.
  • Steps S610 through 630 may be performed periodically to maintain a list of available service process modules, ensuring that the service process modules in the list of available service processes are available, or that new data may be appended.
  • the interface process module can perform the following steps:
  • S640 The interface machine process module receives the storage request from the data requester.
  • the interface machine process module assigns a value to the variable ID, making it equal to the identity (ID) of the service process module that last provided the stored data service.
  • ID the identity of the service process module that last provided the stored data service.
  • the service process module can be assigned a contiguous ID, for example a natural number from 1 to n, in which case the ID of the service process module that last stored the data was 0 when the data store was first executed.
  • IDmax represents the ID of the service process module with the largest ID value in the service process module.
  • step 660 Does the interface machine process module confirm that the service process module identified as ID is in the list? If not, step 660 is performed to continue to check whether the next service process module (identified as ID+1) is in the list. If yes, proceed to step 690.
  • S690 Select a service process module identified as an ID as a service process module that receives the storage request.
  • the above method of selecting the available service process module can ensure the load balancing of each service process module, but the method of the present invention for selecting the available service process module is not limited thereto.
  • FIG. 7 is an exemplary flowchart of a method of selecting an available service process module according to another embodiment of the present invention.
  • S710 The interface machine process module acquires the status of the next service process module.
  • step S720 The interface machine process module determines whether the server process module is available? For example, can I append new data? If yes, step S710 is performed to continue to query whether the next service process module is available. If no, step S730 is performed.
  • Steps S710 to 730 are similar to steps S610 to 630, and may be periodically executed to maintain a list of available service process modules, ensuring that the service process modules in the list of available service processes are available, or that new data can be appended.
  • the interface process module can perform the following steps:
  • the interface module receives the storage request from the data requester.
  • S750 The interface module randomly selects available service process modules from the list of available service process modules.
  • each interface machine process module can also receive and distribute storage requests in cooperation with other interface machine process modules.
  • Multiple interface machine process modules can be designed with disaster tolerance and can be responsible for maintaining the columns of some available service process modules. Tables can also maintain a list of the same available service process modules together to increase system reliability and flexibility.
  • the split data storage scheme adopted by the above embodiment of the present invention no longer uses a dedicated storage identifier distribution system, so that the distributed data storage system no longer has external dependent modules, and is completely decoupled, so that it is not allocated due to storage identifiers. The system fails and the entire distributed storage system is not working properly.
  • the solution of the distributed data storage system or method proposed by the present invention has the following advantages: 1) because the dedicated storage identifier distribution system is no longer used, and thus the disaster recovery design is no longer needed, Design the package; 2) Since there is no coupling with the dedicated storage identification distribution system and the design of the package, the operation and maintenance costs are reduced; 3) Since only the new storage request can be distributed to the available service process modules, There is a problem of a single point of failure of the service process module; and 4) the bandwidth cost is reduced because the interaction with the storage identity allocation system is no longer performed.

Landscapes

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

Abstract

本发明公开了一种分布式数据存储系统和方法。该分布式数据存储系统包括:接口机进程模块;至少一个服务进程模块;至少一个存储模块;所述接口机进程模块,用于从存储请求方接收包含待存储的数据的存储请求,并向所述至少一个服务进程模块中的一个分发所述存储请求;所述服务进程模块,用于从所述接口机进程模块接收所述存储请求,并为所述存储请求中包含的所述数据分配存储标识;所述至少一个存储模块,用于根据所述服务进程模块分配的所述存储标识存储所述数据。本发明的分布式存储方法和系统可以为用户提供稳定、简单、高效、低成本的海量数据存储、读写服务。

Description

一种分布式数据存储系统和方法
技术领域
本发明涉及存储技术领域, 尤其是涉及一种分布式数据存储系统和 方法。 发明背景
UGC (用户生成内容, Users Generate Content )是一种用户使用互 联网的新方式, 即由原来的以下载为主变成下载和上传并重。 例如, 社 区网络、 视频分享和博客等都是 UGC的主要应用形式。 随着全球互联 网业务的不断发展, UGC业务正在日渐崛起, 引起了业界的广泛关注。
由于数据是用户产生的, 海量的用户催生出海量的数据, 同时又会 带来海量的读写量。 如何存储这些数据, 如何提供高并发的读写服务, 是技术领域必然面临的问题。
图 1示出了现有的分布式数据存储系统的系统架构, 包括存储标识 ( ID )分配系统(或称 ID放号系统) 120和数据存储系统 130。
存储标识分配系统 120系统负责在存储请求方请求存储数据时为待 存储的数据分配存储标识。 存储标识分配系统 120保证存储标识的全局 唯一性, 并让存储标识在某个或某些存储标识段(在某些号段范围) 内 有一定的随机性, 一定程度上保证了数据存储系统 130的负载均衡。
数据存储系统 130负责数据的存储并提供读写服务, 其包括接口机 进程模块 131、 多个服务进程模块 132和多个存储模块 133。 接口机进 程模块用于接收存储请求方 110发送的包含存储标识的读写、存储请求, 并把读写、 存储请求分发到对应的服务进程模块 132上, 同时把服务进 程模块 132的部署细节对外屏蔽掉; 每个服务进程模块 132负责某个或 某些存储标识段内的数据存储, 其接收接口机进程模块 131发送的包含 存储标识的存储请求, 提供这些数据的读写服务, 并在将数据成功存储 后向存储请求 110响应成功应答; 存储模块 133 , 用于根据服务进程模 块 132的指示存储、 读写数据。
图 2是现有技术的分布式数据存储方法的示意性流程图。
参见图 2, 当增加一条新数据时, 上述分布式数据存储方法包括如 下步骤:
步骤 210: 存储标识分配系统为待存储的数据分配唯一的存储标识; 步骤 220: 存储请求方根据分配的存储标识提交包含数据的请求至 接口机进程模块;
步骤 230: 接口机进程模块根据存储标识所属的存储标识段转发存 储请求至对应的服务进程模块;
步骤 240: 服务进程模块根据存储标识指示存储模块存储数据, 并 向存储请求方响应成功应答。
另外, 当读取一条数据时, 上述分布式数据存储方法还可以包括如 下步骤: 存储请求方提交包含存储标识的读取请求至接口机进程模块, 接口机进程模块根据存储标识所属的存储标识段分发读取请求至对应 的服务进程模块, 服务进程模块根据存储标识指示存储模块向存储请求 方返回该数据。
进一步, 当写入一条数据时, 上述分布式数据存储方法还可以包括 如下步骤: 存储请求方提交包含存储标识和待修改内容的写入请求至接 口机进程模块, 接口机进程模块根据存储标识所属的存储标识段分发写 入请求至对应的服务进程模块, 服务进程模块指示存储模块写入修改的 内容。
以上分布式数据存储系统具有如下不足之处: 1.耦合性高。数据存储系统对存储标识分配系统有依赖关系。首先, 存储标识分配系统需要保证存储标识的均匀性和随机性, 一旦存储标识 分配系统的随机性被打破, 可能导致某个服务进程模块所执行的进程因 写请求量突增而被压垮; 而且当存储标识分配系统出现单点故障时, 整 个分布式数据存储系统的存储请求都无法完成。
2. 设计复杂。 两个系统同等重要, 为了保证对外的正常服务, 两者 都需要进行各种容灾设计。
3. 耦合性和设计的复杂度直接导致运维成本增加。
4. 针对新增请求, 存在单点故障。 当某个服务进程模块所执行的进 程挂掉时, 其针对所负责的存储标识段的新增请求会失败。
5. 增加了带宽成本。 每次新增数据时, 都要先获取存储标识后才能 进行实际存储, 比直接存储多了一次交互, 带宽成本倍增。
可见, 需要有一种筒单、 高效、 低成本的存储服务模型来解决上述 技术问题, 以便为用户提供稳定、 高并发的海量数据存储、 读写服务。 而这样的存储服务模型也将为该技术领域带来意义深远的变革。 发明内容
本发明实施例提供一种分布式数据存储系统和方法, 可以为用户提 供稳定、 筒单、 高效、 低成本的海量数据存储、 读写服务。
本发明实施例的技术方案是这样实现的:
一种分布式数据存储系统, 其特征在于, 该系统包括: 接口机进程 模块; 至少一个服务进程模块; 至少一个存储模块;
所述接口机进程模块, 用于从存储请求方接收包含待存储的数据的 存储请求, 并向所述至少一个服务进程模块中的一个分发所述存储请 求; 所述服务进程模块,用于从所述接口机进程模块接收所述存储请求, 并为所述存储请求中包含的所述数据分配存储标识;
所述至少一个存储模块, 用于根据所述服务进程模块分配的所述存 储标识存储所述数据。
一种分布式数据存储方法, 该方法包括:
接口机进程模块从存储请求方接收并分发包含待存储数据的存储请 求;
至少一个服务进程模块中的一个从所述接口机进程模块接收所述存 储请求, 并为所述存储请求中包含的所述数据分配存储标识;
至少一个存储模块根据所述存储标识存储所述数据。
从上述方案可以看出, 本发明通过在各个服务进程模块中分配存储 标识避免了使用专门的存储标识分配系统, 从而因为存储标识分配系统 的故障而使整个分布式存储系统无法正常工作, 并且为用户提供了筒 单、 高效、 低成本的存储服务。 附图简要说明
图 1为现有的分布式数据存储系统的系统架构图;
图 2为现有的分布式数据存储方法的示意性流程图;
图 3为本发明实施例的分布式数据存储系统的系统架构图; 图 4为本发明实施例的分布式数据存储方法的示意性流程图; 图 5为本发明另一实施例的分布式数据存储方法的示例性流程图; 图 6为本发明实施例的选择可用服务进程模块的方法的示例性流程 图;
图 7为本发明另一实施例的选择可用服务进程模块的方法的示例性 流程图。 实施本发明的方式
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例, 并参照附图, 对本发明进一步详细说明。
在本发明的分布式数据存储方案中, 提出了一种新的分配存储标识 的方法, 并设计了一种分布式的后台服务架构模型。 在本发明的分配存 储标识方案中, 不再使用存储标识分配系统, 改由各个服务进程模块直 接负责存储标识的分配, 在这种方案下, 服务性能没有丝毫降低, 但系 统的整体复杂度、 耦合性、 带宽成本都大幅降低。
以上是本发明的总体构思, 下面将详细给出示例性的实施方案, 以 便于本领域人员理解本发明。
图 3示出了本发明实施例的分布式数据存储系统 330的系统架构, 包括: 接口机进程模块 331、 至少一个服务进程模块 332和至少一个存 储模块 333。
其中, 接口机进程模块 331用于从存储请求方 310接收包含待存储 的数据的存储请求, 并向服务进程模块 332分发存储请求。 服务进程模 块 332用于分配存储标识并提供数据存储服务,其从接口机进程模块 331 接收存储请求,并为存储请求中包含的数据分配存储标识。存储模块 333 用于根据服务进程模块 332分配的存储标识存储数据。
为了使得分布式数据存储系统 330在增加新数据时不会因为服务进 程模块 332不能接收新数据而存储失败, 可以在接口机进程模块 331中 维护可用服务进程模块列表。 例如, 接口机进程模块 331通过确定并删 除可用服务进程模块列表中不能够提供新增存储服务的服务进程模块 332来维护可用服务进程模块列表。 实际上, 接口机进程模块 331可以 通过多种方法判断服务进程模块 332是否可用并更新可用服务进程模块 列表。 例如, 接口机进程模块 331可以维护一个状态为 "可追加" 的服 务进程模块的列表, 在该列表里列出的每个服务进程模块的 "可追加" 状态都是有效的。 可以在接口机进程模块 332中采用轮循方式周期性地 向各服务进程模块确认其 "可追加"状态是否是有效的。 可替代地, 可以 从服务进程模块 332周期性地向接口机进程模块报 331告其 "可追加" 状态是否是有效的。 当然, 可替代地, 也可以不删除该列表中不能提供 新增储服务的服务进程模块 332, 而是根据该列表中记录的服务进程模 块 332的状态来确定该模块是否可用。 本发明并不限于上述维护可用服 务进程模块列表的方式。
接口机进程模块 331在接收到存储请求时, 可以从上述可用服务进 程模块列表中选择一个可用的服务进程模块 332, 并将存储请求转发给 该可用的服务进程模块 332。 例如, 当某个服务进程模块 332执行的服 务进程挂掉时, 该服务进程模块 332的 "可追加" 状态不再有效, 接口 机进程模块 331便不再分发新增请求至该服务进程模块 332 , 并把存储 请求均摊到其余可用的服务进程模块 332上,以保证新增服务的可用性。 再例如,当某个服务进程模块 332分配完毕其所负责的所有存储标识时, 接口机进程模块 331认为该服务进程模块 332不再可用, 并且不再向其 分发存储请求。 另外, 当某个服务进程模块 332分配完其所负责的存储 标识时, 其 "可追加" 状态也不再有效。
进一步, 接口机进程模块 331可以采用多种方式从 "可追加" 服务 进程模块列表中选择可用服务进程模块 332。
例如, 为了使得各服务进程模块 332的负载均衡, 根据本发明的示 例性实施例可以进一步记录上一次存储数据时从可用服务进程列表中 选择的服务进程模块 332的标识, 并基于上一次存储数据时从可用服务 进程列表中选择的服务进程模块 332的标识, 从可用服务进程模块列表 中选择可用的服务进程模块 332。 例如, 记录上次被分发存储请求的服 务进程模块 332 的下标 (即上一次存储请求分发给了哪个服务进程模 块), 从而实现在所有 "可追加" 状态有效的服务进程模块 332 中逐次 分发新增存储请求, 以保证各服务进程模块 332的负载均衡。 另外, 接 口机进程模块 331还可以随机从可用服务进程模块列表中选择可用的服 务进程模块 332。 本发明并不限于上述选择可用服务进程模块 332的方 式。
每个服务进程模块 332可以各自负责某个或某些存储标识段(或号 段) 的存储标识的分配和数据服务, 各个服务进程模块 332之间相互独 立。 例如, 规定十万个连续存储标识为一个存储标识段, 则存储标识段 和存储标识的计算公式可以表示为: UnitID=[ID/100000]+l,其中, UnitID 表示存储标识段, ID表示具体存储标识。 例如 1至 99999的存储标识属 于存储标识段 1。 可以为每个服务进程模块 332定义三种子状态: 可读、 可写、 可追加。 "可读" 表明该服务进程模块 332可以提供数据读取服 务, "可写"表明该服务进程模块 332可以提供数据修改服务, "可追加" 表明该服务进程模块 332可以提供新增数据服务。 服务进程模块 332的 状态可以根据实际情况, 包含这三种子状态中的任意一种或任意多种的 组合。
具体来说, 服务进程模块 332除了提供正常的读写功能外, 还在至 少一段连续存储标识内按照存储标识的顺序或随机地为存储请求中包 含的数据分配存储标识。 例如, 服务进程模块 332在自己负责的存储标 识段内为数据分配存储标识。 具体分配规则可以采用从小到大逐次分配 存储标识的方式。 假设十万的连续存储标识为一个存储标识段, 具体存 储标识分配举例如下: 假设服务进程模块 i负责的存储标识段为 6和 8, 则该进程放出的第一个存储标识为 500000, 第二个存储标识为 500001 , 依次类推, 当放到 599999时, 存储标识段 6内的存储标识分配完毕, 下一个存储标识为 700000, 依次类推, 当所有的存储标识段都分配完毕 时, 该服务进程模块 i不能再新增数据, 或者说其 "可追加" 状态失效。
存储模块 333可以是各种计算机存储介质, 例如固态硬盘(SSD, Solid State Disk )和硬盘驱动器(Hard Disk Drive, HDD )等等。 本领域 技术人员知道存储模块 333是如何根据存储标识存储数据的, 因此这里 不再详细描述其具体的技术细节。
进一步, 作为本发明的另一实施例, 服务进程模块 332可以进一步 用于在将数据存储在存储模块 333之后, 向存储请求方 310响应成功应 答消息, 并且该成功应答消息包含为该数据分配的存储标识。
作为本发明的又一实施例, 接口机进程模块 331可以进一步从存储 请求方 310接收包含存储标识的读取请求, 并根据包含在存储请求中的 存储标识将读取请求转发给之前分配该存储标识的服务进程模块 332, 服务进程模块 332根据包含在读取请求中的存储标识指示存储模块 333 将存储在存储模块 333中的数据返回给存储请求方 310。
作为本发明的再一实施例, 接口机进程模块 331可以进一步从存储 请求方 310接收包含存储标识及待修改的内容的写入请求, 并根据包含 在写入请求中的存储标识将写入请求转发给之前分配该存储标识的服 务进程模块 332, 服务进程模块 332根据包含在写入请求中的存储标识 指示存储模块 333对存储在存储模块 333中的数据进行修改。
在上述方案中, 虽然图 3仅仅示出了一个接口机进程模块 331 , 但 本发明并不限于此。 作为本发明的另一实施例, 分布式数据存储系统还 可以包括多个接口机进程模块 331。 多个接口机进程模块 331可以协同 工作, 以完成存储请求的接收和分发。 例如, 多个接口机进程模块 331 可以采用容灾设计, 也可以分别负责向一部分可用的服务进程模块 332 分发存储请求, 或者协同起来向所有可用的服务进程模块 332分发存储 请求, 以增加系统的可靠性和灵活性。
另外, 图 3仅仅示意性地示出了本发明实施例的分布式存储系统的 上述各个模块在逻辑上的连接关系, 实际上, 上述模块可以位于物理上 相同或不同的计算机或网络系统中。 一个服务进程模块 332可以将数据 存储在一个或多个存储模块 333上, 一个存储模块 333也可以接收多个 服务进程模块 332分配的数据。
还需要说明的是, 存储请求方 310可以是各种形式的需要数据服务 的一方, 例如可以是网络、 服务器或客户端等等发出数据服务请求的设 备或系统。 在读取数据时, 存储请求方 310也可以称为读取请求方, 而 在写入数据时, 存储请求方 310也可以称为写入请求方。
图 4为本发明实施例的分布式数据存储方法的示意性流程图。 参见图 4, 包括如下步骤:
S410: 接口机进程模块从存储请求方接收存储请求, 并向至少一个 服务进程模块中的一个服务进程模块分发存储请求, 其中在存储请求中 包含待存储的数据。
S420: 该服务进程模块从接口机进程模块接收存储请求, 并为存储 请求中包含的数据分配存储标识。
S430: 至少一个存储模块根据该服务进程模块分配的存储标识存储 数据。
在本发明的实施例中, 接口机进程模块可以采用多种方式向服务进 程模块分发存储请求, 而服务进程模块也可以采用多种方式分配存储标 识。 下文中将结合具体的示例性实施例进行详细的说明。
图 5为本发明另一实施例的分布式数据存储方法的示例性流程图。 参见图 5 , 包括如下步骤:
S510: 接口机进程模块从存储请求方接收包含待存储的数据的存储 请求。 该存储请求的实现类似于图 2中的存储请求, 所不同的是该存储 请求中不包含存储标识。
S520: 接口机进程模块从可用服务进程模块列表中选择一个可用服 务进程模块。 如上述分布式数据存储系统的实施例中描述的那样, 接口 机进程模块可以通过多种方式维护可用服务进程模块列表, 例如, 可以 确定并删除所述可用服务进程模块列表中不能提供新增存储服务的服 务进程模块来维护可用服务进程查模块列表。 进一步, 接口机进程模块 可以记录上一次存储数据时从可用服务进程列表中选择的服务进程模 块的标识, 并且基于上一次存储数据时从可用服务进程列表中选择的服 务进程模块的标识, 从可用服务进程模块列表中选择可用于分发当前存 储请求的服务进程模块。 另外, 接口机进程模块也可以随机地从可用服 务进程模块列表中选择可用的服务进程模块。 根据本发明的实施例的选 择可用服务进程模块的具体方法流程图详见对图 6和图 7的描述。
S530: 接口机进程模块将存储请求转发给选中的该可用服务进程模 块。
S540: 被选中的可用服务进程模块为该存储请求中包含的数据分配 存储标识。 服务进程模块可以在至少一段连续存储标识内按照存储标识 的顺序或随机地为存储请求中包含的数据分配存储标识。 具体的分配方 法详见本发明的系统实施例中关于存储标识的分配的描述。
S550: 存储模块根据该服务进程模块分配的存储标识存储数据。 本 领域技术人员可以知道如何根据存储标识存储数据, 这里不再详细描 述。 完善数据的存储、 读写服务, 根据本发明的另一实施例可以进一步包括 如下步骤: S560: 服务进程模块在将数据存储在存储模块之后, 向存储请求方 响应成功应答消息。 该成功应答消息包含可以告诉存储请求方已经成功 存储数据的信息, 并且可以包括存储标识, 以供将来读取和写入数据使 用。
当读取数据时, 还可以进一步包括如下步骤:
S570: 接口机进程模块从存储请求方接收包含存储标识的读取请 求。
S572: 接口机进程模块根据包含在存储请求中的存储标识将读取请 求转发给之前分配该存储标识的服务进程模块。
S574: 接口机进程模块根据包含在读取请求中的存储标识向存储模 块读取数据。
S576: 存储模块根据存储标识将数据返回给存储请求方。
当写入数据时, 还可以进一步包括如下步骤:
S580: 接口机进程模块从存储请求方接收包含存储标识和待修改的 数据的写入请求。
S582: 接口机进程模块根据包含在存储请求中的存储标识将写入请 求转发给之前分配该存储标识的服务进程模块。
S584: 该服务进程模块根据包含在读取请求中的存储标识和待修改 的内容向存储模块写入数据, 以使得存储模块可以修改存储在其上的数 据。
图 6为本发明实施例的选择可用服务进程模块的方法的示例性流程 图。
参见图 6, 包括如下步骤:
S610: 接口机进程模块获取下一服务进程模块的状态。 接口机进程 模块可以按照服务进程模块的标识的顺序, 以一定的周期, 循环地查询 各个服务进程模块的状态。 也可以由各个服务进程模块向接口机进程模 块报告其当前的状态。
S620: 接口机进程模块确定服务器进程模块是否可用? 例如, 是否 可追加新数据? 如果是, 则执行步骤 S610, 继续查询下一个服务进程模 块是否可用。 如果否, 则执行步骤 S630。
S630: 从可用服务进程列表中删除不可用的服务进程模块。
步骤 S610至步骤 630可以周期性地执行, 以维护可用服务进程模 块列表, 保证可用服务进程列表中的服务进程模块是可用的, 或者说是 可追加新数据的。
另外, 当存储请求方发出存储请求时, 接口进程模块可以执行下列 步骤:
S640: 接口机进程模块从数据请求方接收存储请求。
S650: 接口机进程模块给变量 ID赋值, 使它等于上一次提供存储 数据服务的服务进程模块的标识(ID )。 例如, 可以为服务进程模块分 配连续的 ID, 例如可以是 1到 n的自然数, 在这种情况下, 当第一次执 行数据存储时, 上一次存储数据的服务进程模块的 ID是 0。
S660: 使得 ID=ID+1。 执行这一步的目的是为了能够按照顺序依次 选择可用服务进程模块。
S670: 如果 ID>IDmax, 则执行步骤 S695, 否则继续执行步骤 680。 在这里, IDmax表示服务进程模块中 ID值最大的服务进程模块的 ID。
S680: 接口机进程模块确认标识为 ID的服务进程模块是否在列表 中? 如果不在, 则执行步骤 660, 继续查看下一个(标识为 ID+1 )的服 务进程模块是否在列表中。 如果在, 则继续执行步骤 690。
S690: 选择标识为 ID的服务进程模块作为接收存储请求的服务进 程模块。 S695: 使得 ID=0并执行步骤 660。 如果标识变量 ID>IDmax, 说明 接口机进程模块已经完成一轮向标识为从 1至 n的服务进程模块分发存 储请求, 因此, 可以开始下一轮向标识为从 1至 n的服务进程模块分发 存储请求。
上述选择可用服务进程模块的方法可以保证各服务进程模块的负 载均衡, 但本发明选择可用服务进程模块的方法并不限于此。
图 7为本发明另一实施例的选择可用服务进程模块的方法的示例性 流程图。
参见图 7, 包括如下步骤:
S710: 接口机进程模块获取下一服务进程模块的状态。
S720: 接口机进程模块确定服务器进程模块是否可用? 例如, 是否 可追加新数据? 如果是, 则执行步骤 S710, 继续查询下一个服务进程模 块是否可用。 如果否, 则执行步骤 S730。
S730: 从可用服务进程列表中删除不可用的服务进程模块。
步骤 S710至步骤 730与步骤 S610至步骤 630类似, 可以周期性地 执行, 以维护可用服务进程模块列表, 保证可用服务进程列表中的服务 进程模块是可用的, 或者说是可追加新数据的。
另外, 当存储请求方发出存储请求时, 接口进程模块可以执行下列 步骤:
S740: 接口模块从数据请求方接收存储请求。
S750: 接口模块随机地从可用服务进程模块列表中选择可用的服务 进程模块。
另外, 在存在多个接口机进程模块时, 各个接口机进程模块也可以 与其它接口机进程模块协同接收和分发存储请求。 多个接口机进程模块 可以采用容灾设计, 可以分别负责维护一部分可用服务进程模块的列 表, 还可以共同维护同一可用服务进程模块列表, 以增加系统的可靠性 和灵活性。
本发明的上述实施例采用的这种分存式数据存储方案不再使用专 门的存储标识分配系统, 这样分布式数据存储系统不再有外部依赖模 块, 彻底解耦合, 从而不会因为存储标识分配系统故障而使整个分布式 存储系统无法正常工作。
另外, 运用本发明提出的这种分存式数据存储系统或方法的方案还 具有如下优点: 1 ) 因为不再使用专门的存储标识分配系统, 进而也不 再需要为其进行容灾设计, 所以设计筒单; 2 ) 由于不存在与专门的存 储标识分配系统的耦合性并且设计筒单, 因此运行维护成本降低; 3 ) 由于可以仅将新增存储请求分发给可用的服务进程模块, 因此不存在服 务进程模块单点故障的问题; 以及 4 ) 由于不再进行与存储标识分配系 统的交互, 所以带宽成本减降低。
以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明, 凡 在本发明的精神和原则之内, 所做的任何修改、 等同替换、 改进等, 均 应包含在本发明保护的范围之内。

Claims

权利要求书
1、 一种分布式数据存储系统, 其特征在于, 该系统包括: 接口机进 程模块; 至少一个服务进程模块; 至少一个存储模块;
所述接口机进程模块, 用于从存储请求方接收包含待存储的数据的 存储请求, 并向所述至少一个服务进程模块中的一个分发所述存储请 求;
所述服务进程模块,用于从所述接口机进程模块接收所述存储请求, 并为所述存储请求中包含的所述数据分配存储标识;
所述至少一个存储模块, 用于根据所述服务进程模块分配的所述存 储标识存储所述数据。
2、根据权利要求 1所述的分布式数据存储系统, 其特征在于, 所述 接口机进程模块进一步用于维护可用服务进程模块列表;
在将所述存储请求分发给所述至少一个服务进程模块中的一个时, 从所述可用服务进程模块列表中选择所述至少一个服务进程模块中的 一个进行分发。
3、根据权利要求 2所述的分布式数据存储系统, 其特征在于, 所述 接口机进程模块通过确定并删除所述可用服务进程模块列表中不能够 提供新增存储服务的服务进程模块来维护可用服务进程模块列表。
4、 根据权利要求 2或 3所述的分布式数据存储系统, 其特征在于, 所述接口机进程模块进一步用于记录上一次存储数据时从所述可用服 务进程列表中选择的服务进程模块的标识, 并基于所述标识, 从所述可 用服务进程模块列表中选择所述至少一个服务进程模块中的一个。
5、 根据权利要求 2或 3所述的分布式数据存储系统, 其特征在于, 所述接口机进程模块随机从所述可用服务进程模块列表中选择所述至 少一个服务进程模块中的一个。
6、根据权利要求 1所述的分布式数据存储系统, 其特征在于, 所述 服务进程模块进一步用于在所述至少一个数据存储模块根据所述服务 进程模块分配的所述存储标识存储所述数据之后, 向所述存储请求方响 应成功应答, 所述成功应答包括所述存储标识。
7、根据权利要求 6所述的分布式数据存储系统, 其特征在于, 所述 接口机进程模块进一步用于从所述存储请求方接收包含所述存储标识 的读取请求, 并根据包含在所述存储请求中的所述存储标识将所述读取 请求转发给所述至少一个服务进程模块中的一个, 所述至少一个服务进 程模块中的一个根据包含在所述读取请求中的所述存储标识指示所述 至少一个存储模块将存储的所述数据返回给所述存储请求方。
8、根据权利要求 6所述的分布式数据存储系统, 其特征在于, 所述 接口机进程模块进一步用于从所述存储请求方接收包含所述存储标识 和待修改的内容的写入请求, 并根据包含在所述写入请求中的所述存储 标识将所述写入请求转发给所述至少一个服务进程模块中的一个, 所述 至少一个服务进程模块中的一个根据包含在所述写入请求中的所述存 储标识和待改的内容指示所述至少一个存储模块修改存储的所述数据。
9、根据权利要求 1所述的分布式数据存储系统, 其特征在于, 所述 服务进程模块在至少一段连续标识内按照存储标识的顺序或随机为所 述存储请求中包含的所述数据分配所述存储标识。
10、 根据权利要求 1所述的分布式数据存储系统, 其特征在于, 该 系统进一步包括: 另一接口机进程模块, 用于与所述接口机进程模块协 同接收和分发所述存储请求。
11、 一种分布式数据存储方法, 其特征在于, 该方法包括: 接口机进程模块从存储请求方接收并分发包含待存储数据的存储请 求;
至少一个服务进程模块中的一个从所述接口机进程模块接收所述存 储请求, 并为所述存储请求中包含的所述数据分配存储标识;
至少一个存储模块根据所述存储标识存储所述数据。
12、根据权利要求 11所述的分布式数据存储方法, 其特征在于, 该 方法进一步包括:
所述接口机进程模块维护可用服务进程模块列表, 其中分发所述存 储请求包括:
从所述可用服务进程模块列表中选择所述至少一个服务进程模块中 的一个, 并将所述存储请求转发给所述选择的服务进程模块。
13、根据权利要求 12所述的分布式数据存储方法, 其特征在于, 所 述维护可用服务模块列表包括:
确定并删除所述可用服务进程模块列表中不能提供新增存储服务的 服务进程模块。
14、根据权利要求 13所述的分布式数据存储方法, 其特征在于, 该 方法进一步包括:
所述接口机进程模块记录上一次存储数据时从所述可用服务进程列 表中选择的服务进程模块的标识;
所述从可用服务进程模块列表中选择所述至少一个服务进程模块中 的一个包括:
基于上一次存储数据时从所述可用服务进程列表中选择的服务进程 模块的标识, 从所述可用服务进程模块列表中选择所述至少一个服务进 程模块中的一个。
15、根据权利要求 12所述的分布式数据存储方法, 其特征在于, 所 述从可用服务进程模块列表中选择所述至少一个服务进程模块中的一 个包括:
随机从所述可用服务进程模块列表中选择所述至少一个服务进程模 块中的一个。
16、根据权利要求 11所述的分布式数据存储方法, 其特征在于, 该 方法进一步包括:
所述至少一个服务进程模块中的一个在将所述数据存储在所述至少 一个存储模块之后, 向所述存储请求方响应成功应答, 并且所述成功应 答包含所述存储标识。
17、根据权利要求 16所述的分布式数据存储方法, 其特征在于, 该 方法进一步包括:
所述接口机进程模块从所述存储请求方接收包含所述存储标识的读 取请求, 并根据包含在所述读取请求中的所述存储标识将所述读取请求 转发给所述至少一个服务进程模块中的一个;
所述至少一个服务进程模块中的一个根据包含在所述读取请求中的 所述存储标识指示所述至少一个存储模块将包含在所述读取请求中的 所述存储标识对应的数据返回给所述存储请求方。
18、根据权利要求 16所述的分布式数据存储方法, 其特征在于, 该 方法进一步包括:
所述至少一个接口机进程模块中的一个从所述存储请求方接收包含 所述存储标识和待修改的内容的写入请求, 并根据包含在所述写入请求 中的所述存储标识将所述写入请求转发给所述至少一个服务进程模块 中的一个;
所述至少一个服务进程模块中的一个根据包含在所述写入请求中的 所述存储标识和待修改的内容指示所述至少一个存储模块对包含在所 述写入请求中的所述存储标识对应的数据进行修改。
19、根据权利要求 11所述的分布式数据存储方法, 其特征在于, 为 所述存储请求中包含的所述数据分配存储标识包括:
在至少一段标识内, 按照存储标识的顺序或随机为所述存储请求中 包含的所述数据分配所述存储标识。
20、根据权利要求 11所述的分布式数据存储方法, 其特征在于, 该 方法进一步包括:
所述接口机进程模块与另一接口机进程模块协同接收和分发所述存 储请求。
PCT/CN2011/079879 2010-09-21 2011-09-20 一种分布式数据存储系统和方法 WO2012037873A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/632,427 US8930501B2 (en) 2010-09-21 2012-10-01 Distributed data storage system and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201010291566.6 2010-09-21
CN201010291566.6A CN102413156B (zh) 2010-09-21 2010-09-21 一种分布式数据存储系统和方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/632,427 Continuation US8930501B2 (en) 2010-09-21 2012-10-01 Distributed data storage system and method

Publications (1)

Publication Number Publication Date
WO2012037873A1 true WO2012037873A1 (zh) 2012-03-29

Family

ID=45873438

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2011/079879 WO2012037873A1 (zh) 2010-09-21 2011-09-20 一种分布式数据存储系统和方法

Country Status (3)

Country Link
US (1) US8930501B2 (zh)
CN (1) CN102413156B (zh)
WO (1) WO2012037873A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103634350B (zh) * 2012-08-24 2017-05-17 阿里巴巴集团控股有限公司 一种存储系统及其实现方法
CN103678008B (zh) * 2012-09-24 2017-12-22 腾讯科技(深圳)有限公司 数据读取方法及相应的数据读取装置
CN103034698B (zh) * 2012-12-05 2016-03-30 北京奇虎科技有限公司 数据存储方法及装置
CN103177080B (zh) * 2013-02-07 2016-03-30 华为技术有限公司 文件预读的方法和装置
CN103257930B (zh) * 2013-05-14 2016-04-06 北京经纬恒润科技有限公司 一种基于dds的数据读、写方法及系统
CN103617007B (zh) * 2013-12-04 2017-06-23 深圳市华云中盛科技有限公司 多级智能存储实现方法和系统
KR102507837B1 (ko) * 2017-11-14 2023-03-07 주식회사 케이티 데이터의 품질 관리 방법 및 장치
CN109327550B (zh) * 2018-11-30 2022-02-18 网宿科技股份有限公司 一种访问请求的分配方法、装置、存储介质和计算机设备
CN111258560B (zh) * 2018-11-30 2024-04-16 顺丰科技有限公司 数据存储装置、系统及方法
CN111277634B (zh) * 2020-01-14 2021-12-21 北京金山云网络技术有限公司 一种数据id分配方法、装置、系统以及服务器
CN114281578B (zh) * 2021-11-13 2024-01-16 苏州浪潮智能科技有限公司 分布式文件存储系统交互方法、装置、计算机设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027718A1 (en) * 2003-07-29 2005-02-03 Akihiko Sakaguchi File management method in a distributed storage system
CN101047610A (zh) * 2007-04-30 2007-10-03 华为技术有限公司 数据存储、读取、传输方法和管理服务器及网络节点
CN101075864A (zh) * 2007-07-16 2007-11-21 腾讯科技(深圳)有限公司 数据同步方法及处理方法、客户端设备、服务器
CN101340327A (zh) * 2008-08-21 2009-01-07 腾讯科技(深圳)有限公司 实现网络服务器负载均衡的方法、系统和域名解析服务器
US20090327306A1 (en) * 2008-06-30 2009-12-31 Microsoft Corporation Arrangement for anonymous api downloaded resources for advanced content

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577806B2 (en) * 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
US7287133B2 (en) * 2004-08-24 2007-10-23 Symantec Operating Corporation Systems and methods for providing a modification history for a location within a data store
US7239581B2 (en) * 2004-08-24 2007-07-03 Symantec Operating Corporation Systems and methods for synchronizing the internal clocks of a plurality of processor modules
TWI244081B (en) * 2003-09-24 2005-11-21 Mediatek Inc Error compensation method and apparatus for optical disk drive
US7421549B2 (en) * 2004-03-02 2008-09-02 Hitachi, Ltd. Method and apparatus of remote copy for multiple storage subsystems
JP4446839B2 (ja) * 2004-08-30 2010-04-07 株式会社日立製作所 ストレージ装置及びストレージ管理装置
WO2011001476A1 (en) * 2009-07-03 2011-01-06 Hitachi, Ltd. Configuration management system and configuration management method for storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050027718A1 (en) * 2003-07-29 2005-02-03 Akihiko Sakaguchi File management method in a distributed storage system
CN101047610A (zh) * 2007-04-30 2007-10-03 华为技术有限公司 数据存储、读取、传输方法和管理服务器及网络节点
CN101075864A (zh) * 2007-07-16 2007-11-21 腾讯科技(深圳)有限公司 数据同步方法及处理方法、客户端设备、服务器
US20090327306A1 (en) * 2008-06-30 2009-12-31 Microsoft Corporation Arrangement for anonymous api downloaded resources for advanced content
CN101340327A (zh) * 2008-08-21 2009-01-07 腾讯科技(深圳)有限公司 实现网络服务器负载均衡的方法、系统和域名解析服务器

Also Published As

Publication number Publication date
US20130031221A1 (en) 2013-01-31
CN102413156A (zh) 2012-04-11
US8930501B2 (en) 2015-01-06
CN102413156B (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
WO2012037873A1 (zh) 一种分布式数据存储系统和方法
JP4068473B2 (ja) ストレージ装置、分担範囲決定方法及びプログラム
CN103999031B (zh) 云服务器的虚拟私有存储阵列服务
TWI224440B (en) System and method for managing storage resources in a clustered computing environment
US6845431B2 (en) System and method for intermediating communication with a moveable media library utilizing a plurality of partitions
JP4285058B2 (ja) ネットワーク管理プログラム、管理計算機及び管理方法
WO2014183708A1 (zh) 一种实现分布式文件系统块存储的方法及系统
JP2010277289A (ja) 管理プログラム、管理装置および管理方法
JP6222227B2 (ja) ストレージノード、ストレージノード管理装置、ストレージノード論理容量設定方法、プログラム、記録媒体および分散データストレージシステム
JP2003248611A (ja) 記憶管理統合システム、および、その記憶管理制御方法
JPWO2005001700A1 (ja) ストレージ容量管理方法、そのサーバ、記録媒体
CN101330431B (zh) 一种即时信息存储方法和系统
CN104102742A (zh) 一种高性能海量存储系统及存储方法
CN101370027A (zh) 网络存储系统、方法及应用服务器
US11966614B2 (en) Object tiering in a distributed storage system
CN101329691B (zh) 一种冗余磁盘阵列共享文件系统及其读写方法
CN102523105B (zh) 一种数据存储的故障恢复方法及其适用的数据分布架构
WO2014153931A1 (zh) 文件存储方法、装置、访问客户端及元数据服务器系统
WO2014063474A1 (zh) 数据库扩展方法、数据库扩展装置和数据库系统
JP5280342B2 (ja) 小型コンピューター用周辺機器インターフェース入出力リファラルのスケーリング
JP7212093B2 (ja) ストレージシステム、ストレージシステムの移行方法
KR101589122B1 (ko) 네트워크 분산 파일 시스템 기반 iSCSI 스토리지 시스템에서의 장애 복구 방법 및 시스템
CN107168645B (zh) 一种分布式系统的存储控制方法及系统
CN112398668A (zh) 一种基于IaaS集群的云平台和节点的切换方法
KR102285759B1 (ko) 분산 스토리지 기반 메시지 저장 방법 및 이를 위한 장치

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: 11826400

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC OF 140813

122 Ep: pct application non-entry in european phase

Ref document number: 11826400

Country of ref document: EP

Kind code of ref document: A1