Disclosure of Invention
In order to solve the problem that the performance of a distributed database system in the related art is affected, the invention provides a processing method, a management system and a server for an ID in a distributed database, so as to at least solve the problem.
According to one aspect of the present invention, there is provided a method for processing an identifier ID in a distributed database, including: sending an ID generation request to an ID server according to ID demand information of a client, wherein the ID demand information comprises session identification information and ID quantity information; receiving N IDs returned by the ID server, wherein N is an integer and is larger than the quantity value in the ID quantity information; and caching the N IDs into a session area corresponding to the session identification information according to the session identification information.
Optionally, before sending the ID generation request to the ID server according to the ID requirement information of the client, the method further includes: according to the ID demand information, whether the ID meeting the demand exists in the session area corresponding to the session identification information is inquired; and if so, allocating the ID to the client.
Optionally, after assigning the ID to the client, the method further includes: and updating the ID information cached in the session area.
Optionally, in a case that the session is ended, the method further includes: and when the unused ID exists in the session area, sending a recovery notification message to the ID server, wherein the recovery notification message comprises the unused ID information.
According to another aspect of the present invention, there is also provided a method for processing an identifier ID in a distributed database, including: receiving an ID generation request sent by a distributed database management system, wherein the ID generation request comprises ID number information; inquiring whether available IDs exist in an ID storage table according to the ID generation request; if yes, returning the available ID to the distributed database management system; wherein the usable ID is written back to the ID storage table when the N IDs are cached in the session area corresponding to the session identification information and are not used.
Optionally, after querying whether there is an available ID in the ID storage table according to the ID generation request, the method further includes: if not, generating a corresponding ID according to the ID generation request; the ID is returned to the distributed database management system.
Optionally, in a case that the session is ended, the method further includes: receiving a recovery notification message sent by a distributed database management system, wherein the recovery notification message comprises unused ID information; and according to the recovery notification message, writing back the unused ID into the ID storage table.
Optionally, writing back the unused ID to the ID storage table includes: inquiring whether a queue matched with the unused ID exists according to the recovery notification message; if so, writing back the unused ID to the queue; if not, a queue is newly built in the ID storage table and the unused ID is written back to the newly built queue.
Optionally, the ID is a sequence value generated sequentially.
According to still another aspect of the present invention, there is provided a distributed database management system including: the system comprises a control module, a session identification module and a client, wherein the control module is used for sending an ID generation request to an ID server according to ID demand information of the client, and the ID demand information comprises session identification information and ID quantity information; the receiving module is used for receiving N IDs returned by the ID server, wherein N is an integer and is greater than the quantity value in the ID quantity information; and the caching module is used for caching the N IDs into the session areas corresponding to the session identification information according to the session identification information.
Optionally, the system further comprises: the query module is used for querying whether the ID meeting the requirement exists in the session area corresponding to the session identification information according to the ID requirement information before sending an ID generation request to the ID server according to the ID requirement information of the client; and the distribution module is used for distributing the ID meeting the requirement to the client.
Optionally, the system further comprises: and the updating module is used for updating the ID information cached in the session area after the distributing module distributes the ID meeting the requirement to the client.
Optionally, the system further comprises: and the recovery notification module is used for sending a recovery notification message to the ID server when the session is ended and an unused ID exists in the session area, wherein the recovery notification message comprises unused ID information.
According to still another aspect of the present invention, there is also provided an ID server including:
the system comprises a receiving request module, a sending module and a receiving module, wherein the receiving request module is used for receiving an ID generating request sent by a distributed database management system, and the ID generating request comprises ID number information; the pre-check module inquires whether an available ID exists in an ID storage table according to the ID generation request; a feedback module for returning the available ID to the distributed database management system when the available ID exists in the ID storage table; wherein the usable ID is written back to the ID storage table when the N IDs are cached in the session area corresponding to the session identification information and are not used.
Optionally, the server further comprises: a generation module, configured to generate a corresponding ID according to the ID generation request when there is no available ID in the ID storage table; and the feedback module is also used for returning the ID to the distributed database management system.
Optionally, the server further comprises: the system comprises a recovery monitoring module, a recovery monitoring module and a recovery monitoring module, wherein the recovery monitoring module is used for receiving a recovery notification message sent by a distributed database management system under the condition that a session is ended, and the recovery notification message comprises unused ID information; and the write-back module is used for writing back the unused ID into the ID storage table according to the recovery notification message.
Optionally, the write-back module further comprises: a matching unit, configured to query whether a queue matching an unused ID exists in the ID storage table according to the recycle notification message; a write-back unit for writing back the unused ID into a queue when the queue matching the unused ID exists; when there is no queue matching the unused ID, the matching unit is further configured to create a new queue in the ID storage table, and the write-back unit is further configured to write back the unused ID to the new queue.
Optionally, the ID is a sequence value generated sequentially.
According to the method and the device, an ID generation request is sent to an ID server according to ID demand information of a client, wherein the ID demand information comprises session identification information and ID quantity information; receiving N IDs returned by the ID server, wherein N is an integer and is larger than the quantity value in the ID quantity information; and caching the N IDs into a session area corresponding to the session identification information according to the session identification information. A certain number of pre-fetching IDs are cached in the corresponding session area, the ID application frequency is reduced, and the performance consumption of the distributed database system is reduced to a greater extent.
Detailed Description
The invention will be described in detail hereinafter with reference to the accompanying drawings in conjunction with embodiments. It should be noted that the embodiments and features of the embodiments in the present application may be combined with each other without conflict.
An embodiment of the present invention provides an ID processing method in a distributed database, where fig. 1 is a first flowchart of an ID processing method in a distributed database according to an embodiment of the present invention, and as shown in fig. 1, the method includes:
s102, an ID generation request is sent to an ID server according to ID demand information of a client, wherein the ID demand information of the client comprises session identification information and ID quantity information, and the quantity of the client is not limited;
the session identification information and the ID number information may be carried by the client when sending the ID application to the distributed database management system, or may be added by the distributed database management system when sending the ID generation request to the ID server according to the ID application.
S104, receiving N IDs returned by the ID server, wherein N is an integer and is larger than the quantity value in the ID quantity information;
in this step, two situations are distinguished: firstly, after knowing the number of IDs actually required by a client, for example, 10 IDs, a distributed database management system applies for 10 IDs from an ID server, but the ID server returns 100 IDs; secondly, after knowing the number of IDs actually required by the client, for example, 10 IDs, the distributed database management system applies for 100 IDs from the ID server, and the ID server returns exactly 100 IDs.
S106, caching the N IDs into a session area corresponding to the session identification information according to the session identification information; the session area corresponding to the session identification information, namely the session area matched with the client side which provides the ID application, is on the uniform side of the distributed database system, wherein the distributed database system comprises the distributed database management system.
After the N IDs are cached in the session zone, there are various ways to enable the client to obtain the required ID, for example, the client may actively detect the ID in the session zone or actively obtain the ID required by the client in the session zone after receiving the relevant notification message; the distributed database management system can also distribute the IDs according to the number of the IDs required by the client. After the requirement of the client is met, the rest IDs are taken as the pre-fetching IDs to be continuously cached in the session area and are distributed when the next requirement is met.
According to the embodiment of the invention, an ID generation request is sent to an ID server according to the ID demand information of a client, wherein the ID demand information comprises session identification information and ID quantity information; receiving N IDs returned by the ID server, wherein N is an integer and is larger than the quantity value in the ID quantity information; and caching the N IDs into a session area corresponding to the session identification information according to the session identification information. A certain number of pre-fetching IDs are cached in the corresponding session area, the ID application frequency is reduced, and the performance consumption of the distributed database system is reduced to a greater extent.
In an embodiment of the present invention, before step S102, that is, before sending the ID generation request to the ID server according to the ID requirement information of the client, it may also be selected to query whether there is an ID meeting the requirement in the session area corresponding to the session identification information according to the ID requirement information. In this embodiment, the session area corresponding to the session identifier information, that is, the session area matched with the client side, is generally in a current link state, and the session area is on the unified side of the distributed database.
When the ID meeting the requirement is inquired, the ID is directly allocated to the client for use.
If the ID satisfying the requirement is not found, the step S102 is restarted.
In one embodiment of the invention, when the existence of the ID meeting the requirement is inquired in the session area, the ID is directly allocated to the client for use. And updating the session area, specifically, updating the ID information in the session area, and no longer reserving or marking the ID that has been allocated for use.
In one embodiment of the present invention, when a session is ended, if an unused ID is cached in the session area, the distributed database management system sends a recovery notification message to the ID server to notify the ID server to recover the unused ID, so as to avoid ID waste; especially, when the ID is a continuous sequence value, the sequence hole phenomenon can be avoided. The recovery notification message includes information related to the applied ID but not the ID.
An embodiment of the present invention further provides an ID processing method in a distributed database, where fig. 2 is a flowchart of a ID processing method in a distributed database according to an embodiment of the present invention, and as shown in fig. 2, the method includes:
s202, receiving an ID generation request sent by a distributed database management system, wherein the ID generation request comprises ID number information;
the ID number information may be carried by the client when sending the ID application to the distributed database management system, or may be added by the distributed database management system when sending the ID generation request to the ID server according to the ID application.
S204, inquiring whether available IDs exist in an ID storage table according to the ID generation request;
the usable ID to be inquired in the step is the part of ID which is written back to the ID storage table when the N IDs are cached in the session area but are not used; the write-back process is generally performed by the ID server after the ID server receives the recovery notification message sent by the distributed database management system, the ID storage table is stored at the ID server side, and the type of the ID storage table may be various and is determined by the manner of generating the ID.
S206, if the available ID exists in the ID storage table, directly returning the available ID to the distributed database management system, and generating the ID according to the ID generation request is not needed; the ID in the present embodiment is preferably a sequence value generated sequentially, and may be an identifier of another format.
According to the embodiment of the invention, an ID generation request sent by a distributed database management system is received, wherein the ID generation request comprises ID number information; inquiring whether available IDs exist in an ID storage table according to the ID generation request; if so, returning the available ID to the distributed database management system; wherein the available ID is written back to the ID storage table if the N IDs are cached to a session zone corresponding to the session identification information and are unused. The ID server can return the recovered ID to the distributed database system again for use, so that ID waste is avoided, and particularly when the ID is a continuous sequence value, a sequence cavity phenomenon can be avoided.
In one embodiment of the present invention, if it is found that there is no available ID after querying the ID storage table according to the ID generation request, the ID server generates a corresponding ID according to the ID generation request, and returns the generated ID to the distributed database management system.
The number of IDs generated by the ID server may be equal to or greater than the number required in the ID generation request.
In one embodiment of the invention, when a session is ended, if unused IDs are cached in the session area, the distributed database management system sends a recovery notification message to the ID server to notify the ID server to recover the unused IDs; correspondingly, the ID server receives a recovery notification message sent by the distributed database management system, where the recovery notification message includes information related to the applied ID but not used. The ID server writes the unused ID back to the ID storage table according to the recovery notification message so as to avoid ID waste; especially, when the ID is a continuous sequence value, the sequence hole phenomenon can be avoided.
In an embodiment of the present invention, after receiving a recovery notification message sent by a distributed database management system, an ID server first queries whether a queue matching the unused ID already exists in an ID storage table of the ID server, and the two cases are distinguished according to the query: first, if there is a queue matching the unused ID, the unused ID may be written into the queue according to a rule; if not, a new queue is created in the ID storage table and the unused ID is written into the new queue according to the rule.
Fig. 3 is a schematic diagram of a networking architecture of a distributed database system and an ID server according to an embodiment of the present invention, where the distributed database system includes the distributed database management system; fig. 4 is a block diagram of a distributed database management system according to an embodiment of the present invention, and as shown in fig. 3 and 4, the system includes:
the control module 402 is a main control module of the distributed database management system in this embodiment, and after obtaining ID requirement information of the client, the control module 402 may select to send an ID generation request to the ID server, where the ID requirement information of the client includes session identification information and ID number information, and the number of the clients is not limited;
the session identification information and the ID number information may be carried by the client when sending the ID application to the distributed database management system, or may be added by the distributed database management system when sending the ID generation request to the ID server according to the ID application.
A receiving module 404, configured to execute a receiving task when the ID server returns N IDs, where N is an integer and is greater than a quantity value in the ID quantity information;
the receiving module 404 receives the returned N IDs and distinguishes two cases: firstly, after knowing the number of IDs actually required by the client, for example, 10 IDs are requested from the ID server, the control module 402 applies for 10 IDs, but the ID server returns 100 IDs, and the receiving module 404 receives the 100 IDs; secondly, after learning the number of IDs actually required by the client, for example, the number is 10, the control module 402 applies for 100 IDs from the ID server, and the ID server returns exactly 100 IDs, and the receiving module 404 receives the 100 IDs.
A caching module 406, configured to cache the N IDs in a session area corresponding to the session identification information according to the session identification information; the session area corresponding to the session identification information, namely the session area matched with the client side which provides the ID application, is on the uniform side of the distributed database system, wherein the distributed database system comprises the distributed database management system.
After the N IDs are cached in the session zone, there are various ways to enable the client to obtain the required ID, for example, the client may actively detect the ID in the session zone or actively obtain the ID required by the client in the session zone after receiving the relevant notification message; the distributed database management system can also distribute the IDs according to the number of the IDs required by the client. After the requirement of the client is met, the rest IDs are taken as the pre-fetching IDs to be continuously cached in the session area and are distributed when the next requirement is met.
Through the embodiment of the present invention, the control module 402 sends an ID generation request to the ID server according to the ID requirement information of the client, where the ID requirement information includes session identification information and ID number information; the receiving module 404 receives N IDs returned by the ID server, where N is an integer and is greater than the quantity value in the ID quantity information; the caching module 406 caches the N IDs in the session area corresponding to the session identification information according to the session identification information. A certain number of pre-fetching IDs are cached in the corresponding session area, the ID application frequency is reduced, and the performance consumption of the distributed database system is reduced to a greater extent.
In an embodiment of the present invention, fig. 5 is a block diagram of a distributed database management system according to an embodiment of the present invention, and as shown in fig. 3 and fig. 5, the system further includes:
the query module 508, that is, before sending the ID generation request to the ID server according to the ID requirement information of the client, the query module 508 may also select to query whether there is an ID meeting the requirement in the session area corresponding to the session identification information according to the ID requirement information. In this embodiment, the session area corresponding to the session identifier information, that is, the session area matched with the client side, is generally in a current link state, and the session area is on the unified side of the distributed database.
When it is found that there is an ID that satisfies the requirement, the ID is directly assigned to the client for use by the assignment module 510.
In one embodiment of the present invention, as shown in fig. 3 and 5, the system further includes:
and an updating module 512, when the query module 508 queries that there is an ID meeting the requirement in the session area, the allocating module 510 directly allocates the ID to the client for use. At this time, the session area is updated by the update module 512, specifically, the ID information in the session area is updated, and the update module 512 may not reserve or mark the ID that has been allocated for use.
In one embodiment of the present invention, as shown in fig. 3 and 5, the system further includes:
a recycling notification module 514, when a session is ended, if an unused ID is cached in the session area, the recycling notification module 514 sends a recycling notification message to the ID server to notify the ID server to recycle the unused ID, so as to avoid ID waste; especially, when the ID is a continuous sequence value, the sequence hole phenomenon can be avoided. The recovery notification message includes information related to the applied ID but not the ID.
An embodiment of the present invention further provides an ID server, fig. 6 is a first structural block diagram of the ID server according to the embodiment of the present invention, and as shown in fig. 3 and fig. 6, the ID server includes:
a request receiving module 602, configured to receive an ID generation request when the ID generation request is sent by the distributed database management system, where the ID generation request includes ID number information; the ID number information may be carried by the client when sending the ID application to the distributed database management system, or may be added by the distributed database management system when sending the ID generation request to the ID server according to the ID application.
A preview module 604, wherein when the ID generation request is received by the request receiving module 602, the preview module 604 queries whether an available ID exists in an ID storage table according to the ID generation request, and the ID storage table is on the side of the ID server;
the usable ID to be queried by the preview module 604 is the part of ID that is written back to the ID storage table when the N IDs are cached in the session area but are not used; the write-back process is generally performed by the ID server after the ID server receives the recovery notification message sent by the distributed database management system, and the type of the ID storage table may be various, and is determined by the manner of generating the ID.
A feedback module 606, if the available ID exists in the ID storage table, the feedback module 606 directly returns the available ID to the distributed database management system, and the ID server does not generate an ID according to the ID generation request; the ID in the present embodiment is preferably a sequence value generated sequentially, and may be an identifier of another format.
Through the embodiment of the present invention, the receiving request module 602 receives an ID generation request sent by a distributed database management system, where the ID generation request includes ID number information; the preview module 604 queries whether there is an available ID in the ID storage table according to the ID generation request; if so, the feedback module 606 returns the available ID to the distributed database management system; wherein the available ID is written back to the ID storage table if the N IDs are cached to a session zone corresponding to the session identification information and are unused. The ID server can return the recovered ID to the distributed database system again for use, so that ID waste is avoided, and particularly when the ID is a continuous sequence value, a sequence cavity phenomenon can be avoided.
In an embodiment of the present invention, fig. 7 is a block diagram of a second ID server structure according to an embodiment of the present invention, and as shown in fig. 3 and 7, the server further includes:
after the preview module 704 queries the ID storage table according to the ID generation request, the generation module 708 finds that there is no available ID, and then the generation module 708 generates a corresponding ID according to the ID generation request, and then the feedback module 706 returns the generated ID to the distributed database management system.
The number of IDs generated by the ID server may be equal to or greater than the number required in the ID generation request.
In an embodiment of the present invention, as shown in fig. 3 and 7, the server further includes:
a recycling monitoring module 710, when a session is over, if unused ID is cached in the session area, the distributed database management system sends a recycling notification message to the ID server, notifying the ID server to recycle the unused ID; correspondingly, the recycling monitoring module 710 in the ID server receives a recycling notification message sent by the distributed database management system, where the recycling notification message includes information related to the applied ID but not used.
A write-back module 708, wherein after the recovery monitoring module 710 receives the recovery notification message, the write-back module 708 writes back the unused ID into the ID storage table according to the recovery notification message, so as to avoid ID waste; especially, when the ID is a continuous sequence value, the sequence hole phenomenon can be avoided.
In one embodiment of the present invention, as shown in fig. 3 and fig. 7, the write-back module 708 in the server includes:
a matching unit 7002 and a write-back unit 7004;
after the recovery snooping module 710 in the ID server receives the recovery notification message sent by the distributed database management system, the matching unit 7002 in the write-back module 708 firstly queries whether a queue matching the unused ID already exists in the ID storage table of the ID server, and the two cases are distinguished according to the query condition: first, if there is a queue matching the unused ID, the write-back unit 7004 may write the unused ID in the queue according to a rule; if not, the matching unit 7002 newly creates a queue in the ID storage table, and the write-back unit 7004 writes the unused ID in the newly created queue according to the rule.
The process of the invention will be described in more detail below with reference to the accompanying drawings and examples:
example one
Fig. 8 is a schematic diagram of an ID generation flow according to a first embodiment of the present invention, where the ID in the first embodiment is a sequence value generated sequentially, as shown in fig. 3 and fig. 8, the ID generation flow includes:
an ID server receives an ID generation request sent by a distributed database management system, wherein the ID generation request comprises ID number information;
the ID number information may be carried by the client when sending the ID application to the distributed database management system, or may be added by the distributed database management system when sending the ID generation request to the ID server according to the ID application.
The ID server inquires whether available IDs exist in an ID storage table stored locally according to the ID generation request;
the usable ID to be inquired in the step is the part of ID which is written back to the ID storage table when the N IDs are cached in the session area but are not used; the write-back process is generally performed by the ID server after the ID server receives the recovery notification message sent by the distributed database management system, the ID storage table is stored at the ID server side, and the type of the ID storage table may be various and is determined by the manner of generating the ID.
If available IDs exist in the ID storage table and the number can meet the requirement, the available IDs are directly returned to the distributed database management system.
If the ID server finds that no available ID exists or the number of available IDs can not meet the requirement after querying the ID storage table according to the ID generation request, the ID server generates a certain number of sequence values in sequence according to the ID generation request, the sequence values are obtained through Hash calculation, and the generated sequence values are returned to the distributed database management system as the IDs.
The number of sequence values generated by the ID server may be equal to or greater than the number required in the ID generation request.
Example two
Fig. 9 is a schematic diagram of an ID application flow according to a second embodiment of the present invention, where the ID in the second embodiment is a sequentially generated sequence value, and the sequence value is obtained by hash calculation, as shown in fig. 3 and fig. 9, the application flow includes:
the distributed database management system receives the ID application sent by the client and acquires the requirement information of the client, and the distributed database management system inquires whether the ID meeting the requirement exists in the currently linked session area or not, namely the sequence value, according to the ID requirement information. The session zone is on the distributed database system side.
When the available sequence value exists in the session area of the current link and can meet the requirement of the current service, the sequence value is directly distributed to the client for use. And then updating the sequence value range in the current linked session area, namely updating the ID information in the session area, and keeping or marking the sequence value which is allocated for use.
When inquiring that no available sequence value exists in a currently linked session area or the existing sequence value cannot meet the requirement of the current service, the distributed database management system sends an ID generation request to an ID server according to ID requirement information of a client, wherein the ID requirement information of the client comprises session identification information and ID quantity information, and the quantity of the client is not limited;
the session identification information and the ID number information may be carried by the client when sending the ID application to the distributed database management system, or may be added by the distributed database management system when sending the ID generation request to the ID server according to the ID application.
Then, the distributed database management system receives N sequence values returned by the ID server, and the sequence values are obtained through Hash calculation, wherein N is an integer and is larger than the quantity value in the ID quantity information;
in this step, two situations are distinguished: firstly, after knowing the number of IDs actually required by a client, for example, 10 IDs, a distributed database management system applies for 10 IDs from an ID server, but the ID server returns 100 IDs; secondly, after knowing the number of IDs actually required by the client, for example, 10 IDs, the distributed database management system applies for 100 IDs from the ID server, and the ID server returns exactly 100 IDs.
The distributed database management system caches the N IDs to a currently linked session area, namely, a session area matched with a client side which proposes an ID application, wherein the session area is on a uniform side of a distributed database, and the distributed database management system comprises the distributed database management system.
After the N IDs are cached in the session zone, there are various ways to enable the client to obtain the required ID, for example, the client may actively detect the ID in the session zone or actively obtain the ID required by the client in the session zone after receiving the relevant notification message; the distributed database management system can also distribute the IDs according to the number of the IDs required by the client. After the requirement of the client is met, the rest IDs are taken as the pre-fetching IDs to be continuously cached in the session area and are distributed when the next requirement is met.
Then, the distributed database management system updates the sequence value range in the current linked session area, that is, updates the ID information in the session area, and no longer reserves or marks the sequence value that has been allocated for use.
EXAMPLE III
Since in the embodiment of the present invention, the number of cached IDs in the currently linked session area is likely to exceed the number actually needed, if the redundant and unused IDs are not returned to the ID server at the end of the session, the IDs will be lost in the distributed database system. In order to prevent the waste caused by ID loss and possible sequence holes, the embodiment of the invention provides a solution. Fig. 10 is a schematic diagram of an ID recovery process according to a third embodiment of the present invention, where the ID in the third embodiment is a sequentially generated sequence value, and the sequence value is obtained by hash calculation, as shown in fig. 3 and fig. 10, the process includes:
when the ID server receives the recovery notification message sent by the distributed database management system, it is first queried whether a queue matching the unused ID (i.e., the sequence value) already exists in the ID storage table of the ID server, which is the hash table in this embodiment. Specifically, the ID server extracts a sequence name from the recovery notification message, performs hash calculation on the sequence name to generate a hash VALUE, and performs a query on a hash table to determine whether a corresponding queue exists, using the hash VALUE as a KEY (KEY) and using a linked list address storing the hash VALUE as a VALUE (VALUE).
Two cases are distinguished according to the query situation: first, if there is a queue matching the unused ID, the unused ID may be written into the queue according to a rule; specifically, the list is subjected to reverse sorting according to the maximum value of the sequence range in the hash table, and the sequence value range needing to be written back is inserted into the list.
If not, a new queue is created in the ID storage table and the unused ID is written into the new queue according to the rule.
It will be apparent to those skilled in the art that the modules or steps of the present invention described above may be implemented by a general purpose computing device, they may be centralized on a single computing device or distributed across a network of multiple computing devices, and alternatively, they may be implemented by program code executable by a computing device, such that they may be stored in a storage device and executed by a computing device, and in some cases, the steps shown or described may be performed in an order different than that described herein, or they may be separately fabricated into individual integrated circuit modules, or multiple ones of them may be fabricated into a single integrated circuit module. Thus, the present invention is not limited to any specific combination of hardware and software.
The above description is only a preferred embodiment of the present invention and is not intended to limit the present invention, and various modifications and changes may be made by those skilled in the art. Any modification, equivalent replacement, or improvement made within the spirit and principle of the present invention should be included in the protection scope of the present invention.