CN108322459B - EPaxos-based decentralized network domain name service method and system - Google Patents

EPaxos-based decentralized network domain name service method and system Download PDF

Info

Publication number
CN108322459B
CN108322459B CN201810094595.XA CN201810094595A CN108322459B CN 108322459 B CN108322459 B CN 108322459B CN 201810094595 A CN201810094595 A CN 201810094595A CN 108322459 B CN108322459 B CN 108322459B
Authority
CN
China
Prior art keywords
domain name
request
application
name server
cluster
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810094595.XA
Other languages
Chinese (zh)
Other versions
CN108322459A (en
Inventor
蒋文保
章峰
朱国库
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Information Science and Technology University
Original Assignee
Beijing Information Science and Technology University
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 Beijing Information Science and Technology University filed Critical Beijing Information Science and Technology University
Priority to CN201810094595.XA priority Critical patent/CN108322459B/en
Publication of CN108322459A publication Critical patent/CN108322459A/en
Application granted granted Critical
Publication of CN108322459B publication Critical patent/CN108322459B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

The invention provides a decentralized network domain name service method and a decentralized network domain name service system based on EPaxos, wherein the method comprises the following steps: the client generates a request command and sends the request command to the sub-cluster; the method comprises the steps that a sub-cluster obtains a request type of a request command and sends the request type to a first domain name server in a backbone network, the server sends an application and verification request to other domain name servers in the backbone network, the other domain name servers judge whether an override problem exists or not, after the override problem does not exist, an application and verification response is sent to the first domain name server, the first domain name server receives at least F application and verification responses, performs proposition operation and sends a proposition submission request to the other domain name servers, each of the other domain name servers performs proposition operation, and the first domain name server at least sends updating information to the sub-cluster; each domain name server in the sub-cluster executes the proposed operation and at least sends update information to the client; the client confirms the update information.

Description

EPaxos-based decentralized network domain name service method and system
Technical Field
The invention relates to the field of communication, in particular to a decentralized network domain name service method and a decentralized network domain name service system based on EPaxos.
Background
EPaxos is a leader's coherency protocol. EPaxos provide a paxos variant without a leader (leader less paxos). EPaxos allow all copies to be concurrently available as applicants' proposer (command leader) and client clients can submit commands to any one copy.
However, the EPaxos protocol is very complex, is not suitable for a scenario with many conflicts, and the interface behavior is not suitable for the current software stack, for example, the division of the commit and execution phases is more definite, the success commit and the success execution are two different responses to the client, or the commit and execution are waited for one inside the system, and the commit order and the execution order may also be different, the execution logic is very complex, and the read operation is also very complex.
Disclosure of Invention
The present invention at least overcomes one of the above defects and provides a decentralized network domain name service method and system based on EPaxos to realize equal interconnection of networks.
In order to achieve the purpose, the technical scheme of the invention is realized as follows:
one aspect of the present invention provides a decentralized network domain name service method based on EPaxos, including: the client generates a request command and sends the request command to a sub-cluster corresponding to the client; the method comprises the steps that a sub-cluster receives a request command, analyzes the request command, obtains the request type of the request command, generates an application request and sends the application request to a first domain name server in a backbone network area, wherein the first domain name server is a domain name server which processes the application request corresponding to the request type of the request command in the backbone network area; the first domain name server receives the application request, and sends an application and verification request to some or all of the other domain name servers in the backbone network, wherein the application and verification request at least comprises: proposing a command and an execution sequence number, wherein the proposing the command comprises: the node name, the proposal number of the current node and the proposal content; after receiving the request for applying for checking, any one of the other domain name servers judges whether an override problem exists, and sends an application checking response to the first domain name server after the override problem does not exist, wherein the application checking response at least comprises: proposing a command, an execution sequence number and an audit result; the first domain name server receives application audit responses sent by at least F other domain name servers, executes an offer operation according to an application command, and sends an offer submission request to each of the other domain name servers, wherein the offer submission request at least comprises: proposing a command; after each of the other domain name servers receives the proposal submission request, the proposal operation is executed according to the proposal command, and a proposal success response is sent to the first domain name server, wherein the proposal success response at least comprises: updating the information; the first domain name server receives the proposal success response and sends the update information to at least the sub-cluster; each domain name server in the sub-cluster receives the update information, executes the proposed operation and at least sends the update information to the client; and the client receives the updating information and confirms the updating information.
In addition, the sending of the request for checking application to some domain name servers in other domain name servers in the backbone network by the first domain name server includes: the first domain name server judges whether the number of the online effective domain name servers in the backbone network area is more than or equal to N/2, if the number of the online effective domain name servers is more than or equal to N/2, the first domain name server sends an application audit request to N/2 domain name servers in the online effective domain name servers, and if the number of the online effective domain name servers is less than N/2, the first domain name server sends an application audit request to all domain name servers in the online effective domain name servers; wherein N is the number of domain name servers in the backbone network region; the first domain name server receiving the application audit response sent by at least F other domain name servers comprises: the first domain name server receives application audit responses sent by N/2 domain name servers in the online effective domain name servers, or receives application audit responses sent by all the domain name servers in the online effective domain name servers.
In addition, the sending of the request for application and verification by the first domain name server to N/2 domain name servers in the online valid domain name servers includes: the first domain name server selects N/2 domain name servers meeting preset rules from the online effective domain name servers, and sends an application auditing request to the N/2 domain name servers meeting the preset rules.
In addition, the sending of the application request generated by the sub-cluster to the first domain name server in the backbone network area comprises: the sub-cluster sends the application request to a backbone network; any domain name server in the backbone network receives the application request, analyzes the application request, acquires the request type of the application request, and sends the application request to the first domain name server according to the request type.
In addition, the method further comprises: the client sends an analysis request to the sub-cluster; the sub-cluster judges whether the analysis request belongs to a self-cluster management range or not, if the analysis request belongs to the self-cluster management range, the analysis result is returned, if the analysis result does not belong to the self-cluster management range, the suffix domain name is analyzed, and the analysis request is sent to a domain name server belonging to a backbone network area; the domain name server judges whether a cache exists, if so, an analysis result is returned, and if not, an analysis request is sent to a sub-cluster of the domain name server; the sub-cluster of the domain name server analyzes according to the analysis request to obtain an analysis result, and the analysis result is sent to the domain name server in the backbone network area; a domain name server of the backbone network region receives the analysis result and sends the analysis result to the sub-cluster; the sub-cluster receives the analysis result and sends the analysis result to the client; and the client receives the analysis result and executes corresponding operation according to the analysis result.
In addition, the parsing according to the parsing request includes: waiting for the domain name server to perform the proposed operation; constructing a dependency graph, wherein a domain name server in the dependency graph is a node, a dependency is used as a directed edge, and a command of an offer command and a dependent command are repeatedly processed from the offer command; solving a strongly connected branch of the dependency graph; and sequentially executing the domain name servers in one communication branch according to the reverse topological sequence of the strongly-connected branch, sequencing according to the execution sequence number, and executing each proposal command which is not executed yet from small to large.
In another aspect, the present invention provides a decentralized network domain name service system based on EPaxos, including: the client is used for generating a request command and sending the request command to the sub-cluster corresponding to the client; the sub-cluster is used for receiving the request command, analyzing the request command, acquiring the request type of the request command, generating an application request and sending the application request to a first domain name server in the backbone network area, wherein the first domain name server is a domain name server which processes the application request corresponding to the request type of the request command in the backbone network area; the first domain name server is used for receiving an application request and sending an application and verification request to some or all of other domain name servers in a backbone network, wherein the application and verification request at least comprises: proposing a command and an execution sequence number, wherein the proposing the command comprises: the node name, the proposal number of the current node and the proposal content; any one of the other domain name servers is used for judging whether an override problem exists after receiving the application and verification request, and sending an application and verification response to the first domain name server after the override problem does not exist, wherein the application and verification response at least comprises: proposing a command, an execution sequence number and an audit result; the first domain name server is further configured to receive application audit responses sent by at least F other domain name servers, execute an offer operation according to the application command, and send an offer submission request to each of the other domain name servers, where the offer submission request includes at least: proposing a command; each of the other domain name servers is configured to, after receiving the proposed submission request, perform a proposed operation according to the proposed command, and send a proposed success response to the first domain name server, where the proposed success response at least includes: updating the information; the first domain name server is also used for receiving an offer success response and sending update information to at least the sub-cluster; each domain name server in the sub-cluster is used for receiving the updating information, executing the proposing operation and at least sending the updating information to the client; and the client is also used for receiving the updating information and confirming the updating information.
In addition, the first domain name server sends an application audit request to some domain name servers in other domain name servers in the backbone network in the following way: the first domain name server is also used for judging whether the number of the online effective domain name servers in the backbone network area is more than or equal to N/2, if so, sending an application audit request to N/2 domain name servers in the online effective domain name servers, and if not, sending the application audit request to all domain name servers in the online effective domain name servers; wherein N is the number of domain name servers in the backbone network region; the first domain name server receives application audit responses sent by at least F other domain name servers in the following modes: the first domain name server is further configured to receive application and audit responses sent by N/2 domain name servers in the online effective domain name servers, or receive application and audit responses sent by all domain name servers in the online effective domain name servers.
In addition, the first domain name server sends an application audit request to N/2 domain name servers in the online effective domain name servers in the following way: the first domain name server is also used for selecting N/2 domain name servers meeting the preset rules from the online effective domain name servers and sending an application auditing request to the N/2 domain name servers meeting the preset rules.
In addition, the sub-cluster generates an application request and sends the application request to a first domain name server in the backbone network region in the following mode: the sub-cluster is also used for sending the application request to a backbone network; any one of the domain name servers in the backbone network is further configured to receive the application request, analyze the application request, obtain a request type of the application request, and send the application request to the first domain name server according to the request type.
In addition, the client is also used for sending a resolution request to the sub-cluster; the sub-cluster is also used for judging whether the analysis request belongs to the self-cluster management range or not, if the analysis request belongs to the self-cluster management range, returning an analysis result, if the analysis request does not belong to the self-cluster management range, analyzing the suffix domain name and sending the analysis request to the domain name server belonging to the backbone network area; the domain name server is also used for judging whether cache exists or not, if so, returning an analysis result, and if not, sending an analysis request to the sub-cluster of the domain name server; the sub-cluster of the domain name server is also used for analyzing according to the analysis request to obtain an analysis result and sending the analysis result to the domain name server in the backbone network area; the domain name server of the backbone network area is also used for receiving the analysis result and sending the analysis result to the sub-cluster; the sub-cluster is also used for receiving the analysis result and sending the analysis result to the client; and the client is also used for receiving the analysis result and executing corresponding operation according to the analysis result.
And in addition, the sub-cluster of the domain name server performs the resolving operation according to the resolving request in the following way: waiting for the domain name server to perform the proposed operation; constructing a dependency graph, wherein a domain name server in the dependency graph is a node, a dependency is used as a directed edge, and a command of an offer command and a dependent command are repeatedly processed from the offer command; solving a strongly connected branch of the dependency graph; and sequentially executing the domain name servers in one communication branch according to the reverse topological sequence of the strongly-connected branch, sequencing according to the execution sequence number, and executing each proposal command which is not executed yet from small to large.
According to the technical scheme provided by the invention, the decentralization and consistency of domain name management are realized through the EPaxos-based decentralization network domain name service method and the EPaxos-based decentralization network domain name service system provided by the embodiment of the invention; improve throughput and availability, and ensure data privacy.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings needed to be used in the description of the embodiments are briefly introduced below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings based on the drawings without creative efforts.
Fig. 1 is a flowchart of a method for decentralized network domain name service based on EPaxos according to an embodiment of the present invention;
FIG. 2 is a flowchart of a request in a method for decentralized network domain name service based on EPaxos according to an embodiment of the present invention;
fig. 3 is a flowchart of domain name resolution in the EPaxos-based decentralized network domain name service method according to the embodiment of the present invention;
fig. 4 is a schematic structural diagram of a decentralized network domain name service system based on EPaxos according to an embodiment of the present invention.
Detailed Description
Embodiments of the present invention will be described in detail below with reference to the accompanying drawings.
At present, top-level domain names are mainly divided into general top-level domains (gTLD) and country and region (ccTLD), the top-level domain names are used as backbone nodes of backbone network regions, other types of domain names are used as sub-clusters under the backbone network regions, and the top-level domain names are automatically responsible for management work in the country.
In the backbone network area, the master rights among all nodes are equal, each backbone node is only responsible for the work of the domain name of the node, and the application, modification or binding of other top-level domain name information is forbidden in principle. Among the sub-clusters, various countries may adopt multi-paxos based cluster management. In the backbone network area node, the rights of all backbone nodes are equal, so that a leader role is not set.
First, a relevant definition may be first performed on the EPaxos-based decentralized network domain name service method provided in the embodiment of the present invention, and the definition is as follows:
(1) defining a domain name server, wherein the domain name server comprises a quadruplet < id, name, isBackbone, pid >, and the id is the unique identifier of the domain name server; name is the name of the domain name server; the isBackbone identifies whether the domain name server is a root domain name server, when the value of the isBackbone is 1, the isBackbone identifies a backbone domain name server, and when the value of the isBackbone is 0, the isBackbone identifies a non-backbone domain name server; pid is the latest proposal number on the domain name server.
Specifically, a domain name server node is defined as D, and the domain name server node is composed of a four-tuple < id, name, isBackbone, pid >, wherein id is the unique identifier of the node D; name is the D node name (which may be set as the top level domain name of the management); the isBackbone identifies whether the D node is a root domain name server node, the value 1 of the isBackbone identifies a backbone node, and the value 0 identifies a non-backbone node; pid is the latest proposal number on the node;
(2) command gamma < name, pid, attribute > is defined, where name is the name of the node, pid is the proposed number of the current node, and attribute is the proposed content.
After the content is defined, the subsequent process can be conveniently and smoothly carried out.
Fig. 1 shows a flowchart of a method for serving a decentralized network domain name based on EPaxos according to an embodiment of the present invention, and referring to fig. 1, the method for serving a decentralized network domain name based on EPaxos according to an embodiment of the present invention includes:
s101, a client generates a request command and sends the request command to a sub-cluster corresponding to the client;
s102, the sub-cluster receives the request command, analyzes the request command, acquires the request type of the request command, generates an application request and sends the application request to a first domain name server in the backbone network area, wherein the first domain name server is the domain name server which processes the application request corresponding to the request type of the request command in the backbone network area;
specifically, the request command may include a plurality of categories, for example, may include: applying for commands, analyzing commands, modifying commands and the like, and correspondingly responding to different types of request commands to execute corresponding changes.
In the backbone network, each node takes its own role, and one node is responsible for the work of one domain name.
As an optional implementation manner of the embodiment of the present invention, after the sub-cluster parses the request command, obtains the request type of the request command, and generates the application request, the sub-cluster may directly determine the domain name server responsible for processing the application request corresponding to the request type of the request command, and directly send the application request to the first domain name server in the backbone network area, thereby simplifying the process and improving the processing efficiency.
As an optional implementation manner of the embodiment of the present invention, sending, by the sub-cluster generation application request to the first domain name server in the backbone network area, the method includes: the sub-cluster sends the application request to a backbone network; any domain name server in the backbone network receives the application request, analyzes the application request, acquires the request type of the application request, and sends the application request to the first domain name server according to the request type. At this time, the sub-cluster can determine a backbone network required to be sent, the sub-cluster can send the application request to any domain name server in the backbone network, and then the backbone network determines the domain name server responsible for processing the application request corresponding to the request type of the request command, so that the routing can be simplified, and the working efficiency of each node of the backbone network can be improved.
S103, the first domain name server receives the application request and sends an application and verification request to part or all of other domain name servers in the backbone network, wherein the application and verification request at least comprises: proposing a command and an execution sequence number, wherein the proposing the command comprises: the node name, the proposal number of the current node and the proposal content;
specifically, the first domain name server may send an application audit request to other domain name servers in the backbone network according to a preset rule, may send the application audit request to only a part of domain name servers in the backbone network, or may send the application audit request to all domain name servers, and the domain name server may be an online effective domain name server in the backbone network area.
As an optional implementation manner of the embodiment of the present invention, the first domain name server determines whether the number of the online effective domain name servers in the backbone network area is greater than or equal to N/2, if so, sends an application audit request to N/2 domain name servers in the online effective domain name servers, and if not, sends an application audit request to all domain name servers in the online effective domain name servers; and N is the number of domain name servers in the backbone network area. Therefore, the first domain name server can follow a minority subject majority principle, and guarantee that the request for applying for the audit can be approved by the majority domain name server.
S104, after receiving the request for applying for checking, any one of other domain name servers judges whether the unauthorized problem exists, and after the unauthorized problem does not exist, sends an application checking response to the first domain name server, wherein the application checking response at least comprises: proposing a command, an execution sequence number and an audit result;
specifically, the audit result is carried in the audit response, and the audit result may be set to a state value, for example, 0 or 1, where 0 represents rejection and 1 represents acceptance.
S105, the first domain name server receives application audit responses sent by at least F other domain name servers, executes an offer operation according to the application command, and sends an offer submission request to each of the other domain name servers, wherein the offer submission request at least comprises: proposing a command;
as an optional implementation manner of the embodiment of the present invention, the first domain name server receives application audit responses sent by N/2 domain name servers in the online effective domain name servers, or receives application audit responses sent by all domain name servers in the online effective domain name servers. When the on-line effective domain name servers are more than or equal to N/2 domain name servers, the first domain name server can select to send application audit requests to N/2 domain name servers in the on-line effective domain name servers, so that the first domain name server can receive application audit responses sent by the N/2 domain name servers in the on-line effective domain name servers, and when the on-line effective domain name servers are less than the N/2 domain name servers, the first domain name server sends application audit requests to all the on-line effective domain name servers, so that the first domain name server needs to receive the application audit responses sent by all the on-line effective domain name servers. Therefore, the application auditing response received by the first domain name server follows a minority obedience majority principle, and the application auditing request can be approved by the majority domain name server. When the number of the application audit responses received by the first domain name server is less than N/2, the first domain name server can continue to send the application audit requests to part or all of the domain name servers in other domain name servers in the backbone network, so that the number of the application audit responses can reach more than N/2.
As an optional implementation manner of the embodiment of the present invention, sending, by the first domain name server, an application audit request to N/2 domain name servers in the online valid domain name servers includes: the first domain name server selects N/2 domain name servers meeting preset rules from the online effective domain name servers, and sends an application auditing request to the N/2 domain name servers meeting the preset rules. In this embodiment, the first domain name server may select N/2 domain name servers to send an application audit request according to a preset rule, where the preset rule may be, for example, a domain name server that is close to the first domain name server, so as to prevent an error and the like from being generated in long-distance data interaction. Of course, other rules may be used, and this is not a limitation of the present invention.
S106, after each domain name server in other domain name servers receives the proposal submission request, the proposal operation is executed according to the proposal command, and a proposal success response is sent to the first domain name server, wherein the proposal success response at least comprises: updating the information;
s107, the first domain name server receives the successful response of the proposal and at least sends updating information to the sub-cluster;
s108, each domain name server in the sub-cluster receives the updating information, executes the proposing operation and at least sends the updating information to the client;
and S109, the client receives the updating information and confirms the updating information.
In the following, the request flow of an embodiment of the present invention is illustrated by fig. 2, but the present invention is not limited thereto:
request flow: (wherein steps (5) - (7) may be generally omitted, see FIG. 2);
first, the country sub-cluster is responsible for handling the management under the top-level domain name of the country.
After that, in particular,
(1) the client declares modifications to the relevant responsible node (node), such as PreAccept;
(2) nodeA sends PreAccept (gamma, seq) to other nodes, wherein gamma is command, seq is a serial number used for breaking the circular dependence in the execution stage, and since only one backbone network area node server is arranged for each top-level domain name, the command conflict condition is not considered.
(3) If NODER receives PreAccept (gamma, seq), judging whether the override problem exists, and if not, replying PreAcceptOK (gamma, seq) to NODEA;
(4) after nodeL receives at least F duplicate responses, preamptok responses, and the FP-committed condition is satisfied, Commit Phase is executed. Where F is a minority of the system tolerance, FP-committed: all commands of the current nodeL are marked as Committed in some responses, i.e., accept (slow phase);
(5) nodeL sends Accept (γ, seq, accepted), at least to [ N/2 ] other replicas, i.e. to satisfy the majority pie.
(6) When the nodER receives the command, the nodER responds AcceptOK (Gamma) to the nodEL after checking the command is not changed;
(7) nodeL performs Commit Phase after receiving AcceptOK for at least [ N/2 ] other copies;
(8) nodeL responds to command γ that γ has committed successfully, to client. Sending Commit (gamma) message to other copies as desired
(9) Upon receipt, nodER updates cmdsR [ L ] [ i ]. No. (r, seq, committed).
Specifically, the sub-cluster is connected to the backbone area, not to a specific machine, and each command is submitted via the Fast Path and broadcasts the dependent attribute along with the command itself to the Fast Quorum. Commit is successful if no copy in FastQuorum object to this order. If Fast Quorum is not reached, but is simply a majority pie, then the two phases of Paxos are followed.
F is the tolerable maximum failure node, namely the node can initiate a communication request to the node copy with a short distance, thereby avoiding the communication problem caused by an over-long distance.
Meanwhile, the invention can ensure the data consistency based on the copy state machine.
In addition, the invention can also ensure the availability of the network based on the heartbeat package and a time-out mechanism.
As an optional implementation manner of the embodiment of the present invention, the method for decentralized network domain name service based on EPaxos further includes:
the client sends an analysis request to the sub-cluster;
the sub-cluster judges whether the analysis request belongs to a self-cluster management range or not, if the analysis request belongs to the self-cluster management range, the analysis result is returned, if the analysis result does not belong to the self-cluster management range, the suffix domain name is analyzed, and the analysis request is sent to a domain name server belonging to a backbone network area;
the domain name server judges whether a cache exists, if so, an analysis result is returned, and if not, an analysis request is sent to a sub-cluster of the domain name server;
the sub-cluster of the domain name server analyzes according to the analysis request to obtain an analysis result, and the analysis result is sent to the domain name server in the backbone network area;
a domain name server of the backbone network region receives the analysis result and sends the analysis result to the sub-cluster;
the sub-cluster receives the analysis result and sends the analysis result to the client;
and the client receives the analysis result and executes corresponding operation according to the analysis result.
The domain name resolution process of one embodiment of the present invention is illustrated by fig. 3, but the present invention is not limited thereto:
a domain name resolution process:
(1) the client sends an analysis request to surrounding sub-cluster nodes;
(2) and the sub-cluster judges whether the domain belongs to the self cluster management range, if so, the result is returned, otherwise, the domain to which the suffix domain belongs is analyzed, and an analysis request is sent to the backbone node to which the backbone network region belongs.
(3) And if the backbone nodes in the backbone network area do not have the cache, sending a request like a sub-cluster of the top-level domain name node, and finally returning a client result.
As an optional implementation manner of the embodiment of the present invention, the parsing according to the parsing request includes:
waiting for the domain name server to perform the proposed operation;
constructing a dependency graph, wherein a domain name server in the dependency graph is a node, a dependency is used as a directed edge, and a command of an offer command and a dependent command are repeatedly processed from the offer command;
solving a strongly connected branch of the dependency graph;
and sequentially executing the domain name servers in one communication branch according to the reverse topological sequence of the strongly-connected branch, sequencing according to the execution sequence number, and executing each proposal command which is not executed yet from small to large.
Specifically, resolving the specifically executed algorithm may be:
(1) waiting for Command gamma of I instance to become committed
(2) Constructing a dependency graph: the command is a node and is used as a directed edge, and the command of the gamma and the dependent command are repeatedly processed from the gamma.
(3) Solving strongly connected branches of a graph
(4) The following operations are sequentially executed on the reverse topological order of the strongly connected branches: 1) nodes in a communication branch are sorted according to seq size, and 2) each command which is not executed is executed in a small-to-large order.
Wherein, the reading process comprises:
to Read an object, the client initiates Read (obj _ id) and then waits for ReadReply. The read operation can be considered a no-op command that conflicts with the update obj _ id.
Therefore, the EPaxos-based decentralized network domain name service method provided by the embodiment of the invention can achieve at least one of the following effects:
1. the decentralization and consistency of domain name management are realized;
2. high throughput and fast processing are realized based on E-paxos;
3. based on the requirement of the DDNS, the command processing flow and the whole flow are changed, and the method can be better adapted to the fast path;
4. high throughput and high availability;
5. the command of the commit must be proposed by a client (except no-op);
6. the Stability that the status can not be changed into the unconommit state after the command of the commit is already carried out;
7. consistenty, for a certain instance, any two copies cannot commit different commands;
8. liveness, as long as most dispatches are still online and messages can be delivered before timeout, the command is finally confirmed;
9. and (3) ensuring data privacy: the national network information security is not managed and controlled by any unilateral backbone Node.
Fig. 4 is a schematic structural diagram illustrating a decentralized network domain name service system based on EPaxos according to an embodiment of the present invention, where the decentralized network domain name service system based on EPaxos according to the embodiment of the present invention is applied to the foregoing method, and only a brief description of the decentralized network domain name service system based on EPaxos according to the embodiment of the present invention is provided below, and other matters are not considered to be the best, which refer to the related description of the foregoing method specifically. Referring to fig. 4, the EPaxos-based decentralized network domain name service system according to the embodiment of the present invention includes:
the client 401 is configured to generate a request command, and send the request command to the sub-cluster 402 corresponding to the client 401;
the sub-cluster 402 is configured to receive the request command, parse the request command, obtain a request type of the request command, generate an application request, and send the application request to a first domain name server 4031 in the backbone network 403 area, where the first domain name server 4031 is a domain name server in the backbone network 403 area that processes the application request corresponding to the request type of the request command;
a first domain name server 4031, configured to receive an application request, and send an application and audit request to some or all of the other domain name servers in the backbone network 403, where the application and audit request at least includes: proposing a command and an execution sequence number, wherein the proposing the command comprises: the node name, the proposal number of the current node and the proposal content;
any one of the other domain name servers is configured to determine whether an override problem exists after receiving the application and review request, and send an application and review response to the first domain name server 4031 after the override problem does not exist, where the application and review response at least includes: proposing a command, an execution sequence number and an audit result;
the first domain name server 4031 is further configured to receive application audit responses sent by at least F other domain name servers, execute an offer operation according to the application command, and send an offer submission request to each of the other domain name servers, where the offer submission request includes at least: proposing a command;
each of the other domain name servers is configured to, after receiving the proposed submission request, perform the proposed operation according to the proposed command, and send a proposed success response to the first domain name server 4031, where the proposed success response at least includes: updating the information;
the first domain name server 4031 is further configured to receive an offer success response and send update information to at least the sub-cluster 402;
each domain name server in the sub-cluster 402 is configured to receive the update information, perform the proposed operation, and send at least the update information to the client 401;
the client 401 is further configured to receive the update information and confirm the update information.
As an optional implementation manner of the embodiment of the present invention, the first domain name server 4031 sends an application audit request to some domain name servers in other domain name servers in the backbone network in the following manner: the first domain name server 4031 is further configured to determine whether the number of the online effective domain name servers in the backbone network area is greater than or equal to N/2, send an application audit request to N/2 domain name servers in the online effective domain name servers if the number of the online effective domain name servers in the backbone network area is greater than or equal to N/2, and send an application audit request to all domain name servers in the online effective domain name servers if the number of the online effective domain name servers in the backbone network area is less than N/2; wherein N is the number of domain name servers in the backbone network region;
the first domain name server 4031 receives application audit responses sent by at least F other domain name servers in the following manner: the first domain name server 4031 is further configured to receive application audit responses sent by N/2 domain name servers in the online active domain name servers, or receive application audit responses sent by all domain name servers in the online active domain name servers.
Thus, the application auditing request can be approved by most domain name servers by following a few majority-compliant principles. When the number of the application audit responses received by the first domain name server is less than N/2, the first domain name server can continue to send the application audit requests to part or all of the domain name servers in other domain name servers in the backbone network, so that the number of the application audit responses can reach more than N/2.
As an optional implementation manner of the embodiment of the present invention, the first domain name server 4031 sends an application audit request to N/2 domain name servers in online valid domain name servers by: the first domain name server 4031 is further configured to select N/2 domain name servers meeting a preset rule from the online valid domain name servers, and send an application audit request to the N/2 domain name servers meeting the preset rule. In this embodiment, the first domain name server 4031 may select N/2 domain name servers to send an application audit request according to a preset rule, where the preset rule may be, for example, a domain name server that is close to the first domain name server 4031, so as to prevent an error and the like from being generated in long-distance data interaction. Of course, other rules may be used, and this is not a limitation of the present invention.
As an optional implementation manner of the embodiment of the present invention, the sub-cluster 402 generates an application request and sends the application request to the first domain name server 4031 in the backbone network area by: a sub-cluster 402, further configured to send an application request to a backbone network 403; any one of the domain name servers in the backbone network 403 is further configured to receive the application request, parse the application request, obtain a request type of the application request, and send the application request to the first domain name server 4031 according to the request type. At this time, the sub-cluster 402 may determine the backbone 403 that needs to be sent, the sub-cluster 402 may send the application request to any domain name server in the backbone 403, and the backbone 403 determines the domain name server responsible for processing the application request corresponding to the request type of the request command, so that the routing may be simplified and the work efficiency of each node of the backbone may be improved.
As an optional implementation manner of the embodiment of the present invention, the client 401 is further configured to send a parsing request to the sub-cluster 402; the sub-cluster 402 is further configured to determine whether the resolution request belongs to a self-cluster management range, return a resolution result if the resolution request belongs to the self-cluster management range, analyze that the suffix domain name belongs to the domain name server in the backbone network 403 area if the resolution request does not belong to the self-cluster management range, and send the resolution request to the domain name server in the backbone network 403 area; the domain name server is also used for judging whether cache exists or not, if so, returning an analysis result, and if not, sending an analysis request to the sub-cluster of the domain name server; the sub-cluster of the domain name server is also used for analyzing according to the analysis request to obtain an analysis result and sending the analysis result to the domain name server in the backbone network 403 area; the domain name server in the backbone network area is further configured to receive an analysis result and send the analysis result to the sub-cluster 402; the sub-cluster 402 is further configured to receive an analysis result and send the analysis result to the client 401; the client 401 is further configured to receive the analysis result, and execute a corresponding operation according to the analysis result.
As an optional implementation manner of the embodiment of the present invention, the sub-cluster of the domain name server performs resolution operation according to the resolution request in the following manner: waiting for the domain name server to perform the proposed operation; constructing a dependency graph, wherein a domain name server in the dependency graph is a node, a dependency is used as a directed edge, and a command of an offer command and a dependent command are repeatedly processed from the offer command; solving a strongly connected branch of the dependency graph; and sequentially executing the domain name servers in one communication branch according to the reverse topological sequence of the strongly-connected branch, sequencing according to the execution sequence number, and executing each proposal command which is not executed yet from small to large.
Therefore, the EPaxos-based decentralized network domain name service system provided by the embodiment of the invention can achieve at least one of the following effects:
1. the decentralization and consistency of domain name management are realized;
2. high throughput and fast processing are realized based on E-paxos;
3. based on the requirement of the DDNS, the command processing flow and the whole flow are changed, and the method can be better adapted to the fast path;
4. high throughput and high availability;
5. the command of the commit must be proposed by a client (except no-op);
6. the Stability that the status can not be changed into the unconommit state after the command of the commit is already carried out;
7. consistenty, for a certain instance, any two copies cannot commit different commands;
8. liveness, as long as most dispatches are still online and messages can be delivered before timeout, the command is finally confirmed;
9. and (3) ensuring data privacy: the national network information security is not managed and controlled by any unilateral backbone Node.
Any process or method descriptions in flow charts or otherwise described herein may be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps of the process, and alternate implementations are included within the scope of the preferred embodiment of the present invention in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present invention.
It will be understood by those skilled in the art that all or part of the steps carried by the method for implementing the above embodiments may be implemented by hardware related to instructions of a program, which may be stored in a computer readable storage medium, and when the program is executed, the program includes one or a combination of the steps of the method embodiments.
In the description herein, references to the description of the term "one embodiment," "some embodiments," "an example," "a specific example," or "some examples," etc., mean that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the invention. In this specification, the schematic representations of the terms used above do not necessarily refer to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples.
The above examples are only for describing the preferred embodiments of the present invention, and are not intended to limit the scope of the present invention, and various modifications and improvements made to the technical solution of the present invention by those skilled in the art without departing from the spirit of the present invention should fall within the protection scope defined by the claims of the present invention.

Claims (10)

1. A decentralized network domain name service method based on EPaxos is characterized by comprising the following steps:
a client generates a request command and sends the request command to a sub-cluster corresponding to the client;
the sub-cluster receives the request command, analyzes the request command, acquires the request type of the request command, generates an application request and sends the application request to a first domain name server in a backbone network area, wherein the first domain name server is the domain name server which processes the application request corresponding to the request type of the request command in the backbone network area;
the first domain name server receives the application request, and sends an application and verification request to some or all of the other domain name servers in the backbone network, wherein the application and verification request at least comprises: proposing a command and an execution sequence number, wherein the proposing command comprises: the node name, the proposal number of the current node and the proposal content;
after receiving the request for applying for checking, any one of the other domain name servers judges whether an override problem exists, and sends an application checking response to the first domain name server after the override problem does not exist, wherein the application checking response at least comprises: the proposal command, the execution sequence number and an audit result;
the first domain name server receives application audit responses sent by at least F other domain name servers, executes an offer operation according to the application command, and sends an offer submission request to each of the other domain name servers, wherein the offer submission request at least comprises: the offer command;
after each of the other domain name servers receives the proposal submission request, executing a proposal operation according to the proposal command, and sending a proposal success response to the first domain name server, wherein the proposal success response at least comprises: updating the information;
the first domain name server receiving the offer success response and sending the update information to at least the sub-cluster;
each domain name server in the sub-cluster receives the update information, executes an offer operation, and sends at least the update information to the client;
the client receives the updating information and confirms the updating information;
further comprising:
the client sends a resolution request to the sub-cluster;
the sub-cluster judges whether the analysis request belongs to a self-cluster management range or not, if the analysis request belongs to the self-cluster management range, an analysis result is returned, if the analysis request does not belong to the self-cluster management range, a suffix domain name is analyzed, and the analysis request is sent to a domain name server belonging to a backbone network area;
the domain name server judges whether a cache exists, if so, an analysis result is returned, and if not, the analysis request is sent to a sub-cluster of the domain name server;
the sub-cluster of the domain name server analyzes according to the analysis request to obtain an analysis result, and the analysis result is sent to the domain name server of the backbone network area;
the domain name server of the backbone network area receives the analysis result and sends the analysis result to the sub-cluster;
the sub-cluster receives the analysis result and sends the analysis result to the client;
and the client receives the analysis result and executes corresponding operation according to the analysis result.
2. The method of claim 1,
the sending, by the first domain name server, an application audit request to some of the other domain name servers in the backbone network includes:
the first domain name server judges whether the number of the online effective domain name servers in the backbone network area is more than or equal to N/2, if so, the first domain name server sends the application auditing request to N/2 domain name servers in the online effective domain name servers, and if not, the first domain name server sends the application auditing request to all the domain name servers in the online effective domain name servers; wherein N is the number of domain name servers in the backbone network region;
the receiving, by the first domain name server, the application audit response sent by at least F of the other domain name servers includes:
and the first domain name server receives application audit responses sent by N/2 domain name servers in the online effective domain name servers, or receives application audit responses sent by all the domain name servers in the online effective domain name servers.
3. The method of claim 2, wherein sending the application audit request to N/2 of the online active domain name servers by the first domain name server comprises:
and the first domain name server selects N/2 domain name servers meeting preset rules from the online effective domain name servers, and sends the application auditing request to the N/2 domain name servers meeting the preset rules.
4. The method of claim 1, wherein the sub-cluster generating an application request to send to a first domain name server in a backbone network area comprises:
the sub-cluster sends the application request to the backbone network;
any domain name server in the backbone network receives the application request, analyzes the application request, acquires the request type of the application request, and sends the application request to a first domain name server according to the request type.
5. The method of claim 1, wherein parsing according to the parsing request comprises:
waiting for the domain name server to perform the proposed operation;
constructing a dependency graph, wherein the domain name server is a node, the dependency is used as a directed edge, and the commands of the proposal command and the dependent commands are repeatedly processed from the proposal command;
solving the strongly connected branches of the dependency graph;
and sequentially executing the domain name servers in one communication branch according to the reverse topological sequence of the strongly-connected branch, sequencing according to the execution sequence number, and executing each proposal command which is not executed yet according to the sequence from small to large.
6. A decentralized network domain name service system based on EPaxos is characterized by comprising:
the client is used for generating a request command and sending the request command to the sub-cluster corresponding to the client;
the sub-cluster is configured to receive the request command, analyze the request command, obtain a request type of the request command, generate an application request, and send the application request to a first domain name server in a backbone network area, where the first domain name server is a domain name server in the backbone network area, which processes the application request corresponding to the request type of the request command;
the first domain name server is configured to receive the application request, and send an application and review request to some or all of the other domain name servers in the backbone network, where the application and review request at least includes: proposing a command and an execution sequence number, wherein the proposing command comprises: the node name, the proposal number of the current node and the proposal content;
any one of the other domain name servers is configured to determine whether an override problem exists after receiving the application audit request, and send an application audit response to the first domain name server after the override problem does not exist, where the application audit response at least includes: the proposal command, the execution sequence number and an audit result;
the first domain name server is further configured to receive application audit responses sent by at least F of the other domain name servers, execute an offer operation according to the application command, and send an offer submission request to each of the other domain name servers, where the offer submission request at least includes: the offer command;
each of the other domain name servers is configured to, after receiving the offer submission request, execute an offer operation according to the offer command, and send an offer success response to the first domain name server, where the offer success response at least includes: updating the information;
the first domain name server is further used for receiving the proposal success response and sending the update information to at least the sub-cluster;
each domain name server in the sub-cluster is used for receiving the updating information, executing proposed operation and at least sending the updating information to the client;
the client is also used for receiving the updating information and confirming the updating information;
the client is also used for sending a resolution request to the sub-cluster;
the sub-cluster is also used for judging whether the analysis request belongs to a self-cluster management range, if the analysis request belongs to the self-cluster management range, returning an analysis result, if the analysis request does not belong to the self-cluster management range, analyzing the suffix domain name and sending the analysis request to a domain name server belonging to a backbone network area;
the domain name server is also used for judging whether cache exists or not, if so, returning an analysis result, and if not, sending the analysis request to the sub-cluster of the domain name server;
the sub-cluster of the domain name server is also used for analyzing according to the analysis request to obtain an analysis result and sending the analysis result to the domain name server of the backbone network area;
the domain name server of the backbone network area is also used for receiving the analysis result and sending the analysis result to the sub-cluster;
the sub-cluster is also used for receiving the analysis result and sending the analysis result to the client;
and the client is also used for receiving the analysis result and executing corresponding operation according to the analysis result.
7. The system of claim 6,
the first domain name server sends an application audit request to some domain name servers in other domain name servers in the backbone network in the following way:
the first domain name server is further configured to determine whether the number of online effective domain name servers in the backbone network area is greater than or equal to N/2, send the application audit request to N/2 domain name servers in the online effective domain name servers if the number of online effective domain name servers in the backbone network area is greater than or equal to N/2, and send the application audit request to all domain name servers in the online effective domain name servers if the number of online effective domain name servers in the backbone network area is less than N/2; wherein N is the number of domain name servers in the backbone network region;
the first domain name server receives application audit responses sent by at least F other domain name servers in the following mode:
the first domain name server is further configured to receive application audit responses sent by N/2 domain name servers in the online effective domain name servers, or receive application audit responses sent by all domain name servers in the online effective domain name servers.
8. The system according to claim 7, wherein the first domain name server sends the request for application audit to N/2 domain name servers of the online active domain name servers by:
the first domain name server is also used for selecting N/2 domain name servers in the online effective domain name servers, which accord with a preset rule, and sending the application auditing request to the N/2 domain name servers which accord with the preset rule.
9. The system of claim 6, wherein the sub-cluster generates the application request to send to the first domain name server in the backbone network zone by:
the sub-cluster is also used for sending the application request to the backbone network;
any one of the domain name servers in the backbone network is further configured to receive the application request, analyze the application request, obtain a request type of the application request, and send the application request to the first domain name server according to the request type.
10. The system according to claim 6, wherein the sub-cluster of domain name servers performs resolution according to the resolution request by:
waiting for the domain name server to perform the proposed operation;
constructing a dependency graph, wherein the domain name server is a node, the dependency is used as a directed edge, and the commands of the proposal command and the dependent commands are repeatedly processed from the proposal command;
solving the strongly connected branches of the dependency graph;
and sequentially executing the domain name servers in one communication branch according to the reverse topological sequence of the strongly-connected branch, sequencing according to the execution sequence number, and executing each proposal command which is not executed yet according to the sequence from small to large.
CN201810094595.XA 2018-01-31 2018-01-31 EPaxos-based decentralized network domain name service method and system Active CN108322459B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810094595.XA CN108322459B (en) 2018-01-31 2018-01-31 EPaxos-based decentralized network domain name service method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810094595.XA CN108322459B (en) 2018-01-31 2018-01-31 EPaxos-based decentralized network domain name service method and system

Publications (2)

Publication Number Publication Date
CN108322459A CN108322459A (en) 2018-07-24
CN108322459B true CN108322459B (en) 2020-10-16

Family

ID=62887856

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810094595.XA Active CN108322459B (en) 2018-01-31 2018-01-31 EPaxos-based decentralized network domain name service method and system

Country Status (1)

Country Link
CN (1) CN108322459B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109542353B (en) * 2018-11-23 2022-04-01 哈尔滨工业大学(深圳) Consistency algorithm for wide area distributed storage system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710905A (en) * 2009-12-17 2010-05-19 中国联合网络通信集团有限公司 Address resolution control method and system based on tactics
CN103164219A (en) * 2013-01-08 2013-06-19 华中科技大学 Distributed transaction processing system using multi-type replica in decentralized schema
CN106789881A (en) * 2016-11-17 2017-05-31 中国互联网络信息中心 A kind of block chain digital identification authentication method and system based on domain name service DNS systems
CN107040618A (en) * 2016-12-06 2017-08-11 北京信息科技大学 The domain names service system and method for a kind of decentralization

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170236123A1 (en) * 2016-02-16 2017-08-17 Blockstack Inc. Decentralized processing of global naming systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710905A (en) * 2009-12-17 2010-05-19 中国联合网络通信集团有限公司 Address resolution control method and system based on tactics
CN103164219A (en) * 2013-01-08 2013-06-19 华中科技大学 Distributed transaction processing system using multi-type replica in decentralized schema
CN106789881A (en) * 2016-11-17 2017-05-31 中国互联网络信息中心 A kind of block chain digital identification authentication method and system based on domain name service DNS systems
CN107040618A (en) * 2016-12-06 2017-08-11 北京信息科技大学 The domain names service system and method for a kind of decentralization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种去中心化的网络域名服务系统模型;朱国库、蒋文保;《网络空间安全》;20170110;第14-18页 *

Also Published As

Publication number Publication date
CN108322459A (en) 2018-07-24

Similar Documents

Publication Publication Date Title
WO2019184116A1 (en) Method and device for automatically building kubernetes main node, terminal device and computer-readable storage medium
US20090222815A1 (en) Fault tolerant virtual machine
US20080250097A1 (en) Method and system for extending the services provided by an enterprise service bus
KR20010099633A (en) Reconfiguration manager for controlling upgrades of electronic devices
KR20010109086A (en) Method, system and program products for managing a clustered computing environment
JP2004246892A (en) Remotely accessible resource management method in multi-node distributed data processing system
US6542929B1 (en) Relaxed quorum determination for a quorum based operation
KR20010110093A (en) Method, system and program products for automatically configuring clusters of a computing environment
CN107688489B (en) Method and system for scheduling tasks
CN114615135B (en) Front-end gray level publishing method, system and storage medium
US6141679A (en) High performance distributed transaction processing methods and apparatus
US11539815B2 (en) Enhanced self-assembling and self-configuring microservices
JPH07210486A (en) Processing method of multiphase commit
WO2021169243A1 (en) Method, apparatus and system for processing distributed transaction
CN114448895A (en) Application access method, device, equipment and medium
CN112783570A (en) Application migration method, system and medium based on service grid
CN114900449B (en) Resource information management method, system and device
CN108322459B (en) EPaxos-based decentralized network domain name service method and system
CN115168031A (en) Fog calculation system, method, electronic equipment and storage medium
CN115017169A (en) Management method and system of multi-cloud management platform
US11522966B2 (en) Methods, devices and systems for non-disruptive upgrades to a replicated state machine in a distributed computing environment
US7028219B2 (en) Hybrid method for flushing transaction state in a fault-tolerant clustered database
CN111835563A (en) Method for modifying configuration of mongodb database cluster parameters on cloud service platform
Stout et al. Kestrel: an XMPP-based framework for many task computing applications
CN110611688A (en) Method, electronic device and computer program product for searching nodes

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant