Sign In to Follow Application
View All Documents & Correspondence

Method And Apparatus For Data Compression And Decompression In A Database

Abstract: The present invention provides a method and an apparatus for data compression and decompression in a database. The method for data compression comprises: acquiring (101) a compression word that corresponds to a text item of an original SQL statement, wherein the original SQL statement is to be compressed, the text item is a SQL keyword or an object name, and the length of the compression word is smaller than the length of the corresponding text item; replacing (102) the corresponding text item of the original SQL statement by using the compression word in order to obtain a compressed SQL statement. Compared with existing technology, the compression ratio of the invention is higher and also the cost of compression in the master and the cost of decompression in the subscriber are lower. Figure 1

Get Free WhatsApp Updates!
Notices, Deadlines & Correspondence

Patent Information

Application #
Filing Date
27 November 2013
Publication Number
22/2015
Publication Type
INA
Invention Field
COMPUTER SCIENCE
Status
Email
Parent Application
Patent Number
Legal Status
Grant Date
2022-06-20
Renewal Date

Applicants

HUAWEI TECHNOLOGIES INDIA PVT. LTD.
NO. 23, LEVEL 3 & 4, LEELA GALLERIA, AIRPORT ROAD, BANGALORE - 560 017

Inventors

1. VENKATESH, R PRASANNA
GROUND FLOOR, SOLITAIRE, 139/26, AMAR JYOTHI LAYOUT, INTERMEDIATE RING ROAD, DOMLUR, BANGALORE - 560 017
2. SREEKANTAIAH, NIRMALA
GROUND FLOOR, SOLITAIRE, 139/26, AMAR JYOTHI LAYOUT, INTERMEDIATE RING ROAD, DOMLUR, BANGALORE - 560 017

Specification

FIELD OF THE TECHNOLOGY

The present invention relates to field of data storage technology, especially relates to method and apparatus for data compression and decompression in a
database, belongs to data storage and replication/transmission technology.

BACKGROUND

Availability of database is one of the main concerns when database is deployed over a network. One of the methods to achieve availability is to use a hot-standby mechanism which supports failover of a main database server deployed in a site to a secondary server which may or may not reside in the same site. The main database server is often termed as a master, and the secondary server is termed as a subscriber. Irrespective of the configuration, subscriber maintains a mirror image of data. The mirror image is generated by shipping operation logs known as redo-logs from the master to the subscriber. In most of the cases, applications operate on the master, and the subscriber is generally a read-only server. Whenever the master fails, subscriber is to be promoted to a new master, all the redo-logs which have not been replayed on subscriber, will be replayed to bring their states as close as possible to the master before failure occurs and then the subscriber is promoted to the master.

Mirroring of data is often termed as replication. One way is to ship the Structured Query Language (SQL) statement of each operation for each transaction run in the master, to the subscriber over the network. To reduce the lag, the data sent over the network from the master to the subscriber needs to be optimized. At the same time, such optimization cannot take up too much processing cost at the master or the subscriber. The existing prior art falls mainly into one category: by compressing the SQL statement using generic algorithms like Lempel-Ziv-Markov chain-Algorithm (LZMA) or Lempel-Ziv (LZ) or Inflate/Deflate and shipping it over the network. However, these compression algorithms are generic and do not take into cognizance the fact that SQL statement is transmitted across 2 databases. This reduces the compression ratio of these compression algorithms and also increases the cost of compression in the master and the cost of decompression in the subscriber.

SUMMARY

A first aspect of the present invention is to provide a method for data compression in a database, comprising: acquiring a compression word that corresponds to a text item of an original language description statement in the database, wherein the original language description statement is to be compressed, the text item is a keyword or an object name of the original language description statement, and the length of the compression word is smaller than the length of the corresponding text item; replacing the corresponding text item of the original language description statement by using the compression word in order to obtain a compressed language description statement. A second aspect of the present invention is to provide a method for data decompression in a database, comprising: determining whether a received language description statement is a compressed language description statement; acquiring a text item that corresponds to a compression word of the received language description statement, when the received language description statement is a compressed language description statement, wherein the text item is a keyword or an object name; replacing the corresponding compression word of the received language description statement by using the text item in order to obtain an original language description statement.

A third aspect of the present invention is to provide a device for data compression in a database, comprising: an acquiring module, configured to acquire a compression word that corresponds to a text item of an original language description statement in the database, wherein the original language description statement is to be compressed, the text item is a keyword or an object name of the original language description statement, and the length of the compression word is smaller than the length of the corresponding text item;
a replacing module, configured to replace the corresponding text item of the original language description statement by using the compression word in order to obtain a compressed language description statement. A fourth aspect of the present invention is to provide a device for data decompression in a database, comprising: a determining module, configured to determine whether a received language description statement is a compressed language description statement;
an acquiring module, configured to acquire a text item that corresponds to a compression word of the received language description statement, when the received language description statement is a compressed language description statement, wherein the text item is a keyword or an object name; a replacing module, configured to replace the corresponding compression word of the received language description statement by using the text item in order to obtain an original language description statement.

A fifth aspect of the present invention is to provide a device for data compression in a database, comprising: a processor and a memory coupled to the processor;
wherein the processor is configured to: acquire a compression word that corresponds to a text item of an original language description statement in the database, and replace the corresponding text item of the original language description statement by using the compression word in order to obtain a compressed language description statement, wherein the original language description statement is to be compressed, the text item is a keyword or an object name of the original language description statement, and the length of the compression word is smaller than the length of the corresponding text item. A sixth aspect of the present invention is to provide a device for data decompression in a database, comprising: a processor and a memory coupled to the processor; wherein the processor is configured to: determine whether a received language description statement is a compressed language description statement, and acquire a text item that corresponds to a compression word of the received language description statement, when the received language description statement is a compressed language description statement, and replace the corresponding compression word of the received language description statement by using the text item in order to obtain an original language description L statement, wherein the text item is a keyword or an object name.

According to the invention, when an original language description statement is to be compressed, the mechanism acquires a compression word corresponding to each text item of the original language description statement, and replaces the corresponding text item by using the compression word, wherein the length of the compression word is smaller than the length of the corresponding text item. Compared with existing technology, the mechanism compresses text item one by one, since the length of the compression word is smaller than the length of the corresponding text item, the compressed language description statement is smaller than the original language description statement, the compression ratio of the invention is higher and also the cost of compression in the master and the cost of decompression in the subscriber is lower.

BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS

Fig. la is a flow diagram of an embodiment of a method for data compression in a database;

Fig. lb is a schematic structural view of a device for data compression for executing the procedure of the method provided by the embodiment shown in Fig. la;

Fig. 2a is a flow diagram of another embodiment of a method for data compression in a database;

Fig. 2b is a flow diagram of an embodiment of a method for data transmission in a database

Fig. 3a is a flow diagram of an embodiment of method for data decompression in a database;

Fig. 3b is a schematic structural view of a device for data decompression for executing the procedure of the method provided by the embodiment shown in Fig. 3 a;

Fig. 3c is a flow diagram of an embodiment of a method for data reception in a database;

Fig. 4 is a schematic structural view of a device for data compression in a database provided by the present invention;

Fig. 5 is another schematic structural view of the device for data compression shown in Fig. 4;

Fig. 6 is still another schematic structural view of the device for data compression in a database provided by the present invention;

Fig. 7 is a schematic structural view of a device for data decompression in a database provided by the present invention;

Fig. 8 is another schematic structural view of the device for data decompression shown in Fig. 7;

Fig. 9 is still another schematic structural view of the device of data decompression in a database provided by the present invention.

DETAILED DESCRIPTION

In the following detailed description of the preferred embodiments, reference is made to the accompanying drawings which form a part hereof, and in which are shown by way of illustration specific embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural changes may be made without departing from the scope of the present invention. In a master-subscriber (or active-standby) database system, data could be transferred from the master to the subscriber in multiple ways. One of the common ways is to transmit the data to the subscriber system when any write-transaction is performed on the master. This is termed as database replication. The data which is transmitted from the master to the subscriber could be SQL statements without any conversion. This kind of replication is called logical replication, the transmission efficiency is low. To increase transmission efficiency, one way is to compress the data using generic algorithms like LZMA or LZ or Inflate/Deflate and then ship it over the network. But the compression ratio of these compression algorithms is low, and the cost of compression in the master and the cost of decompression in the subscriber is high. This invention offers a mechanism to effectively compress the transmitted data using two principles: 1. Nature and structure of language used by the database; 2. The objects created in the databases (i.e. using the concept of database operations). At present, language used by most databases is SQL, thus the embodiments of the present invention take SQL language as an example. However, other languages, which may come out in the future, may inherit the characteristics of SQL, such as comprising the two principles above. Therefore, the language used by the embodiments of the present invention is not limited to SQL.

Principle 1: Nature and structure of SQL. This principle represents standard keywords of SQL standard (refer to ANSI SQL standard), abbreviate as SQL keyword. Examples of SQL keywords are SELECT, FROM, WHERE, INSERT etc. Principle 2: The objects created in the databases. All the SQL statements refer to objects which are created in the databases. Objects are created in databases using SQL statements called DB Definition Language (DDL). Once these objects are created, these objects are referred in all subsequent query statements (SELECT) or in DB Manipulation Language (DML) statements or in subsequent DDL. This invention can apply the two principles for the following SQL statement and analyze the structure of the SQL statement: SELECT emp_name FROM employee WHERE emp_id='100'. The components of this SQL statement can be broken in the following way: SELECT; emp_name; FROM; employee; WHERE; empid; 100. herein, SELECT belongs to SQL keyword, empname belongs to object name such as, created during DDL operations, etc. We can see in the example of the above SQL statement that except the value '100' all other information is covered by either of the two principles. For ease of description, the SQL keyword and object name are called text item.

This invention proposes a method for data compression based on these two principles. Fig. la is a flow diagram of an embodiment of a method for data compression in a database. As shown in Fig. la, the method comprises:
steplOl. acquiring a compression word that corresponds to a text item of an original language description statement in a database, wherein the original language description statement is to be compressed, the text item is a keyword or an object name of the original language description statement, and the length of the compression word is smaller than the length of the corresponding text item. step 102. replacing the corresponding text item of the original language description statement by using the compression word in order to obtain a compressed language description statement. The executive subject of the present embodiment can be a device for data compression, abbreviated as data compression device. The data compression device can be any device which can compress data, such as a computer, a server, a terminal device and a master in a master-subscriber (or active-standby) database system etc. The terminal device can be a smartphone.

Fig. lb is a schematic structural view of a device for data compression for executing the procedure of the method provided by the embodiment shown in Fig. la. As shown in Fig. lb, the hardware layer of the data compression device comprises Central Processing Unit (CPU), memory and disk etc, and further comprises input/output device, memory controller, network interface etc; the input device can comprise keyboard, mouse and touch screen etc; the output device can comprise display device such as Liquid Crystal Display (LCD), Cathode Ray Tube (CRT), Holographic and Projector etc. An operating system such as Linux or other application programs can be operated above the hardware layer. The application program comprises process which is configured to carry out the method provided by the embodiment of the invention. In addition, the data compression device further comprises a driver layer. The driver layer can comprise CPU driver, display controller driver and network driver etc. It should be noted that, the database in the embodiments of the present invention can be oracle, MySQL, SyBase, DB2 etc. The statement in the database is generally described by programming language, which is called "language description statement". For ease of distinguishing the language description statement to be compressed and the language description statement after compression, the language description statement to be compressed is called original language description statement, the language description statement after compression is called compressed language description statement. The language used by the database can be SQL, but it is not limited to this. The embodiments of the present invention as follows take SQL as an example for detailed illustration. On the basis of this, the original language description statement is an original SQL statement, the compressed language description statement is a compressed SQL statement.

The original SQL statement could be any SQL statement. For example, the original SQL statement could be a DDL statement like CREATE, ALTER etc. Another example, the original SQL statement could be a DML statement like INSERT, UPDATE etc. The original SQL statement contains at least one text item, and each text item is a SQL keyword or an object name. The present invention adopts text item as a compression unit to compress the original SQL statement. When the original SQL statement is sure to be compressed, the data compression device firstly confirms the text item contained in the original SQL statement, then acquires a compression word that corresponds to a text item, in fact the compression word refers to the bytes corresponding to the compressed text item, the length of the compression word is less than the corresponding text item, such that a compression process is achieved. For example, in a master-subscriber (or active-standby) database system, when the master need to transmit data to the subscriber, the master needs to compress the data first, and the data to be compressed is the original SQL statement. After acquiring the compression word of each text item, the data compression device replaces the corresponding text item of the original SQL statement by using the compression word in order to obtain a compressed SQL statement. It should be noted that, in the present embodiment, the implementing form of the compression word should not be limited, which can be any form as long as the length of the compression word is smaller than the length of the text item.

Further, as shown in Fig. 2a,, the method also comprises: steplOla. acquiring a compression word that corresponds to a text item of an original SQL statement in a database, wherein the original SQL statement is to be compressed, the text item is a keyword or an object name of the original SQL statement, and the length of the compression word is smaller than the length of the corresponding text item. step 102a. replacing the corresponding text item of the original SQL statement by using the compression word in order to obtain a compressed SQL statement.step 103. sending the compressed SQL statement to a terminal device of a subscriber in order to achieve a replication of the original SQL statement. After obtaining the compressed SQL statement, the data compression device can send the compressed SQL statement to the terminal device of the subscriber, such that to achieve a replication or backup of the original SQL statement.
According to the invention, when an original language description statement is to be compressed, the mechanism acquires a compression word corresponding to each text item of the original language description statement, and replaces the corresponding text item by using the compression word, wherein the length of the compression word is smaller than the length of the corresponding text item. Compared with existing technology, the mechanism compresses text item one by one, since the length of the compression word is smaller than the length of the corresponding text item, the compressed language description statement is smaller than the original language description statement, the compression ratio of the invention is higher and also the cost of compression in the master and the decompression in the subscriber is lower.

In an alternative implementing mode, the data compression device can adopt a dictionary to manage the text item and the ID of the text item, and wherein the compression word contains an ID that corresponds to the corresponding text item. The ID that corresponds to the corresponding text item represents the corresponding text item. In detail, the data compression device can create multiple dictionaries to manage the ID of different text items. When the data compression device (such as a master) comes up, it creates one dictionary with at least one SQL keyword, which is called a first dictionary, also known as "a SQL dictionary". This dictionary is used to support SQL keywords of the SQL statement. In addition, the data comression device can further create an additional dictionary, which is called second dictionary, also known as "DDL dictionary", to support object names like table names, index names. For example, during each create DDL execution, the data compression device can store the newly created object names into the DDL dictionary. This dictionary is used to support object names of the SQL statement. In another implementing manner, a dictionary is a set of Name-ID pairs. Each item in the dictionary is a very simple mapping of a small ID of the text item, the text item could be a SQL keyword or the name of the object. That is to say, the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords.

Correspondingly, the second dictionary includes one or more object names and one or more IDs of the one or more object names. For example, the first dictionary may have a mapping of the keyword "SELECT" (keyword) with an ID '0'; "WHERE" (keyword) with an ID T. For another example, the first dictionary may have a mapping of the keyword "SELECT" (keyword) with an ID '00'; "WHERE" (keyword) with an ID '01'. The length of the ID of the keyword can be 1 bit, 2 bits or even more bits. For example, the second dictionary may have a mapping of a table name "employee" (object name) with an ID '0', a column name "empid" (object name) with an ID T. For another example, the second dictionary may have a mapping of a table name "employee" (object name) with an ID '01', a column name "emp_id" (object name) with an ID '11'. The length of the ID of the object name can be 1 bit, 2 bits or even more bits. Based on above, before steplOl, the method also comprises: precreating the first dictionary and the second dictionary. Then the process of steplOl comprises: steplOll. Determining whether the text item is a SQL keyword or the text item is an object name; when the text item is a SQL keyword, go to steplOl2, when the text item is an object name, go to stepl013. steplOl2. searching a first dictionary by using the SQL keyword that corresponds to the text item as a search key in order to obtain the corresponding compression word; steplOl3. searching a second dictionary by using the object name that corresponds to the text item as a search key in order to obtain the corresponding compression word.

As there are likely to be at least 2 dictionaries in the system, each dictionary also has an ID which acts as the identifier of the dictionary. Hence a text item can be uniquely referred by "dictionary ID" + "the text item ID". Correspondingly, the ID that corresponds to the corresponding text item contains the ID of the dictionary and the ID of the corresponding text item. That is to say, the compression word could contain the ID of the dictionary and the ID of the corresponding text item.
In one embodiment, wherein the process of precreating the first dictionary comprises: when the data compression device starts, it creates a first empty dictionary, and generates an ID of the first empty dictionary, then generates an ID for a SQL keyword, and places the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary. This dictionary is a static dictionary holding at least one SQL keyword. This dictionary is the "SQL dictionary" described above, and its ID could be 0, but it is not limited to this. It is considered static because the SQL keywords are from a standard document (ANSI SQL Standard) and will not change with time. So once this dictionary is created, it will not be changed. It is populated fully when it is created. Hence this dictionary contains a small ID mapping of all possible SQL standard keywords. In one embodiment, wherein the process of precreating the second dictionary comprises: the data compression device creates a second empty dictionary, and generates an ID of the second empty dictionary, when objects are created, generates IDs for the names of the objects, and then places the names of the objects and the IDs of the names of the objects into the second empty dictionary to form the second dictionary. This dictionary is the "DDL dictionary" described above. Alternatively, the data compression device could create the second empty dictionary during start time, and the ID of the second empty dictionary could be 1, but it is not limited to this. This is a dynamic dictionary.

This dictionary will contain the names of objects when these objects are created. If the objects are destroyed, the name of the objects will be removed from the dictionary. Specifically, when the data compression device encounters a SQL statement, it checks if the SQL statement is a DDL statement, and checks if a new object is created, like a table, a column in a table, an index. If so, the data compression device stores the new object into the second dictionary. The storage involves generation of an unique ID for this object name and then placing the "object name" and the ID into the second dictionary. Assuming we have 3 SQL keywords (SELECT, FROM, WHERE) and 3 objects (employee, empid, employeename), we could organize the dictionary according to table 1 and table 2: table 1 In the first dictionary, the keyword "SELECT" can be uniquely identified by 00, the keyword "FROM" can be uniquely identified by 01, the keyword "WHERE" can be uniquely identified by 02. In the second dictionary, the object "employee" can be uniquely identified by 10, the object "emp_id" can be uniquely identified by 11, the object "employeename" can be uniquely identified by 12. The combination of the "dictionary ID" + the "text item ID" is called as a "compression word". For another example, the ID of the first dictionary is 127 (01111111), and the ID of the second dictionary is 126 (01111110), we could organize the first dictionary and the second dictionary according to table 3 and table 4:

In the first dictionary, the keyword "SELECT" can be uniquely identified by 127124 (01111111 01111100), the keyword "FROM" can be uniquely identified by 127125 (01111111 01111101), the keyword "WHERE" can be uniquely identified by 127126 (01111111 01111110). In the second dictionary, the object "employee" can be uniquely identified by 126124 (01111110 01111101), the object "emp_id" can be uniquely identified by 126125 (01111110 01111101), the object "employeename" can be uniquely identified by 126126(01111110 01111110). In the concrete implementation, the ID of the dictionary could occupy one byte, but it is not limited to this. For example, the ID of the dictionary also could occupy two bytes, or even more bytes. Correspondingly, the ID of the text item (object name or SQL keyword) also could occupy one byte, two bytes, or even more bytes. Based on above, the data compression device could compress the original SQL statement using these two dictionaries. The compression logic involves replacing the text items with the corresponding IDs (compression word). Wherein the corresponding IDs are determined as follows: For each text item of the original SQL statement, first determining whether the text item is a SQL keyword or the text item is an object name or the text item is others. When the text item is a SQL keyword, searching the first dictionary by using the SQL keyword that corresponds to the text item as a search key to find the ID of the SQL keyword that corresponds to the text item, then combining the ID of the first dictionary and the ID of the SQL keyword that corresponds to the text item as the corresponding IDs (the corresponding compression word). When the text item is an object name, searching the second dictionary by using the object name that corresponds to the text item as a search key to find the ID of the object name that corresponds to the text item, then combining the ID of the second dictionary and the ID of the object name that corresponds to the text item as the corresponding IDs (the corresponding compression word). When the text item is others, the text item can directly be deemed as the corresponding compression word, but it is not limited to this.

In an alternative implementing mode, the process of combining the ID of the first dictionary and the ID of the SQL keyword that corresponds to the text item comprises: placing the ID of the SQL keyword that corresponds to the text item concatenated after the ID of the first dictionary. On the basis of this, if a compression word contains the ID of the first dictionary and the ID of the SQL keyword that corresponds to the corresponding text item, then the compression word will start with the ID of the first dictionary, and the remaining bytes of the compression word will be the ID of the SQL keyword that corresponds to the corresponding text item. In an alternative implementing mode, the process of combining the ID of the second dictionary and the ID of the object name that corresponds to the text item comprises: placing the ID of the object name that corresponds to the text item concatenated after the ID of the second dictionary. On the basis of this, if a compression word contains the ID of the second dictionary and the ID of the object name that corresponds to the corresponding text item, then the compression word will start with the ID of the second dictionary, and the remaining bytes of the compression word will be the ID of the object name corresponding to the corresponding text item.

Based on above description, in a master-subscriber (or active-standby) database system, the master transmits data to the subscriber by adopting the method above. As shown in Fig. 2b, the method for data transmission comprises: step201. the master startups. step202. the master loads the first dictionary, wherein the ID of the first dictionary is 0. step203. the master creates a SQL statement. The SQL statement is issued. step204. the master determines whether the SQL statement is a DDL statement or a DML statement. When the SQL statement is a DDL statement, go to step205, when the SQL statement is a DML statement, go to step206. step205. the master creates a new object, and generates ID for the name of the created object, then places the name of the created object and the ID of the names of the created object into the second dictionary, wherein the ID of the first dictionary is 1. step206. the master compress the SQL statement using the first dictionary and the second dictionary, then transmits the compressed SQL statement to the subscriber. The master transmits data to the subscriber by adopting the method above, the compression ratio of the data is higher and also the cost of compression in the master and the decompression in the subscriber is lower.

[0100] Using the principles and the example dictionary provided by table 1 and table 2, let us compress a SQL statement: SQL statement: SELECT employeename FROM employee WHERE empid > 100 Compressed statement: 00 12 01 10 02 11 "> 100" In the example, there are only 3 entries in each dictionary, the 3 entries includes dictionary ID, name of text item and ID of the name. 255 entries can be represented o by one byte (2 -1). Hence the compression word can be of length 2 bytes, including dictionary ID (1 byte) and ID of the name (1 byte). If there are more than 255 entries and less than 64K entries (28 to 216-1), two bytes are required to represent the compression word. Hence the replacement can be done with 2 bytes. This length is called as compression word length. Thus it can be seen, the present invention improves the compression ratio significantly, which is beneficial to reduce compression cost and decompression cost. Further, if a SQL statement uses more objects or standard keywords, then the compression is much better than any standards compression algorithm. Accordingly, the present invention further provides a data decompression method in the following embodiments, the data decompression method is also based on the two principles in relation to the above embodiments of data compression method. Fig. 3 a is a flow diagram of an embodiment of method for data decompression in a database. As shown in Fig. 3a, the method comprises: step301. determining whether a received language description statement is a compressed language description statement; step302. acquiring a text item that corresponds to a compression word of the received language description statement, when the received language description statement is a compressed language description statement, wherein the text item is a keyword or an object name.

step303. replacing the corresponding compression word of the received language description statement by using the text item in order to obtain an original language description statement. The executive subject of the present embodiment can be a device for data decompression, abbreviated as data decompression device. The data decompression device can be any device which needs to decompress data, such as a computer, a server, a terminal device and a subscriber in a master-subscriber (or active-standby) database system etc. The terminal device can be a smartphone. Fig. 3b is a schematic structural view of a device for data decompression for executing the procedure of the method provided by the embodiment shown in Fig. 3a. As shown in Fig. 3b, the hardware layer of the data decompression device comprises CPU, memory and disk etc, and further comprises input/output device, memory controller, network interface etc; the input device can comprise keyboard, mouse and touch screen etc; the output device can comprise display device such as LCD, CRT, Holographic and Projector etc. An operating system such as Linux or other application programs can be operated above the hardware layer. The application program comprises process which is configured to carry out the method provided by the embodiment of the invention. In addition, the data decompression device further comprises a driver layer. The driver layer can comprise CPU driver, display controller driver and network driver etc. It should be noted that, the database in the embodiments of the present invention can be oracle, MySQL, SyBase, DB2 etc. The statement in the database is generally described by programming language, which is called "language description statement". The language used by the database can be SQL, but it is not limited to this. The embodiments of the present invention as follows take SQL as an example for detailed illustration.

On the basis of this, the received language description statement is a received SQL statement, the original language description statement is an original SQL statement. When the data decompression device receives a SQL statement, it firstly determines whether the received SQL statement is a compressed SQL statement; when the received SQL statement is a compressed SQL statement, the data decompression device acquires a text item that corresponds to a compression word of the received SQL statement; lastly replaces the corresponding compression word of the received SQL statement by using the text item in order to obtain an original SQL statement. Wherein the length of the text item is smaller than the length of the corresponding compression word, and the text item is a SQL keyword or an object name. But the length of the text item is not known to the data decompression device, and the data decompression device does not need to worry about the length of text item. The data decompression device can determine whether the received SQL statement is a compressed SQL statement by many mechanisms. Two example mechanisms are given here for reference. In consideration that all SQL statements are ASCII-Text based statements and start with an ASCII value of 65-90 or with an ASCII value of 97-122, thus an example mechanism is used to determine whether the first character of the received SQL statement matches a default value range, if the first character of the received SQL statement does not match the default value range, determining that the received SQL statement is a compressed SQL statement, if the first character of the received SQL statement matches the default value range , determining that the received SQL statement is not a compressed SQL statement. Wherein the default value range can be an ASCII value of 65-90 or an ASCII value of 97-122, but it is not limited to this.

Another example mechanism is to check whether the pattern of at least one designated byte of the received SQL statement is a default pattern, if the pattern of at least one designated byte of the received SQL statement is the default pattern,, determining that the received SQL statement is a compressed SQL statement, if the pattern of at least one designated byte of the received SQL statement is not the default pattern, determining that the received SQL statement is not a compressed SQL statement. This mechanism is predefined to adopt an explicit identifier pattern like OxaBaCaDaE in at least one designated byte of a compressed message. The at least one designated bytes can be the first 4 bytes of a compressed message, but it is not limited to this. Based on above background, before the data compression device sends a compressed message, it needs to set the pattern of at least one designated byte of the compressed message to the default pattern. In an alternative implementing mode, the data decompression device can adopt a dictionary to manage the text item and the ID of the text item. In detail, the data decompression device can create multiple dictionaries to manage the ID of different text items. When the data decompression device (such as the subscriber) comes up, it creates one dictionary with at least one SQL keyword, called first dictionary, also known as "SQL dictionary". This dictionary is used to support SQL keywords of the SQL statement. In addition, the data decompression can further creates an additional dictionary to support object names like table names, index names, called second dictionary, also known as "DDL dictionary". This dictionary is used to support object names of the SQL statement.

In an implementing form, a dictionary is a set of Name-ID pairs. Each item in the dictionary is a very simple mapping of a small ID with the text item, the text item could be a keyword or the name of the object. That is to say, the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords. Correspondingly, the second dictionary includes one or more object names and one or more IDs of the one or more object names. For example, the first dictionary may have a mapping of the keyword "SELECT" (keyword) with an ID '0', "WHERE" (keyword) with an ID T. For example, the second dictionary may have a mapping of a table name "employee" (object name) with an ID '0', a column name "empid" (object name) with an ID '1'.
As there are likely to be at least 2 dictionaries in the system, each dictionary also has an ID which acts as the identifier for the dictionary. Hence a text item can be uniquely referred by "dictionary ID" + "the text item ID". Correspondingly, the compression word could contain the ID of the dictionary and the ID of the corresponding text item. That is to say, the compression word contains an ID of dictionary that corresponds to the compression word and an ID of the corresponding text item. Wherein the ID of dictionary that corresponds to the compression word represents the dictionary, and the ID of the corresponding text item represents the corresponding text item. Based on above, before step302, the method further comprises: precreating the first dictionary. In one embodiment, the process of precreating the first dictionary comprises: when the data decompression device starts, it creates a first empty dictionary, and generates an ID of the first empty dictionary, then generates an ID for a SQL keyword, and places the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary.

This dictionary is a static dictionary holding at least one SQL keyword. This dictionary is the "SQL dictionary" described above, and its ID could be 0, but it is not limited to this. It is considered static because the SQL keywords are from a standard document (ANSI SQL Standard) and will not change with time. So once this dictionary is created, it will not be changed. It is populated fully when it is created. Hence this dictionary contains a small ID mapping of all possible SQL standard keywords. Based on above, the process of step302 further comprises: picking the compression word of the received SQL statement according to the length of the compression word, and acquiring the corresponding dictionary according to the ID of the corresponding dictionary contained in the compression word; searching the corresponding dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the corresponding text item. wherein the process of searching the corresponding dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the corresponding text item comprises:

when the corresponding dictionary is a first dictionary, searching the first dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the SQL keyword that corresponds to the ID of the corresponding text item contained in the compression word, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords; when the corresponding dictionary is a second dictionary, searching the second dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the object name that corresponds to the ID of the corresponding text item contained in the compression word, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.
In detail, if the received SQL statement is compressed, the data decompression device invokes decompression algorithm. The decompression algorithm is a simple algorithm which replaces all the compression words within the corresponding text items, the text item can be a SQL keyword or an object name. In the decompression algorithm, according to the length of the compression word, the data decompression device picks the compression word of the compressed SQL statement, and checks whether the compression word starts with the ID of a dictionary. If the compression word starts with the ID of a dictionary, according to the ID of the corresponding dictionary contained in the compression word, the data decompression device acquires the corresponding dictionary; then uses the ID of the corresponding text item contained in the compression word to search the corresponding dictionary to acquire the corresponding text item. In an alternative implementing mode, if the ID of the corresponding text item concatenated with the ID of the corresponding dictionary, in the algorithm, the data decompression device takes the first byte of the compression word and finds the corresponding dictionary, then takes the remaining bytes of the compression word and searches the found dictionary to locate the text item. By this process all the compression words are replaced by the required text items which are either SQL keywords or object names.

Further, after decompression, that is, after obtaining the original SQL statement, if the original SQL statement is a DDL statement and the original SQL statement is used to create a new object, the data decompression device creates a new object and generates an ID for the name of the created object, and inserts the name of the created object and the ID of the name of the created object into the second dictionary. According to the data compression method provided in above embodiments, in the data decompression method, after a compressed language description statement is received, acquiring a text item corresponding to each compression word of the compressed language description statement; lastly replacing the corresponding compression word of the compressed language description statement by using the text item in order to obtain an original language description statement, the compression ratio of the invention is higher and also the cost of compression in the master and the cost of decompression in the subscriber is lower. Based on above description, in a master-subscriber (or active-standby) database system, the subscriber receives the data transmitted from the master by adopting above method. As shown in Fig. 3c, the method for data reception comprises: step401. the subscriber startups.

step402. the subscriber loads the first dictionary, wherein the ID of the first dictionary isO. step403. the subscriber receives a SQL statement from the master. step404. the subscriber determines whether the SQL statement is a compressed SQL statement. When the SQL statement is a compressed SQL statement, go to step405, when the SQL statement is not a compressed SQL statement, go to step408. step405. the subscriber decompresses the compressed SQL statement to obtain an original SQL statement. step406. the subscriber determines whether the original SQL statement is a DDL statement or a DML statement. When the SQL statement is a DDL statement, go to step407, when the SQL statement is a DML statement, go to step408. step407. the subscriber creates a new object and generates an ID for the name of the created object, and inserts the name of the created object and the ID of the name of the created object into the second dictionary, wherein the ID of th second dictionary is l,then go to step408. step408. the subscriber applies the received SQL statement/the original SQL statement. Fig. 4 is a schematic structural view of a device for data compression in a database provided by the present invention. As shown in Fig. 4, the device comprises: an acquiring module 41 and a replacing module 42. The acquiring module 41 is configured to acquire a compression word that corresponds to a text item of an original language description statement in the database, wherein the original language description statement is to be compressed, the text item is a keyword or an object name of the original language description statement, and the length of the compression word is smaller than the length of the corresponding text item; the replacing module 42 is configured to replace the corresponding text item of the original language description statement by using the compression word in order to obtain a compressed language description statement.

In an alternative implementing embodiment, wherein the original language description statement is an original SQL statement, the compressed language description statement is a compressed SQL statement. Further, as shown in Fig. 5, the device also comprises: a sending module 43. The sending module 43 is configured to send the compressed SQL statement to a terminal device of a subscriber in order to achieve a replication of the original SQL statement. In an alternative implementing embodiment, the compression word contains an ID that corresponds to the corresponding text item, wherein the ID that corresponds to the corresponding text item represents the corresponding text item. On the basis of this, as shown in Fig. 5, an implementation of the acquiring module 41 comprises: a determining unit 411, a first acquiring unit 412 and a second acquiring unit 413. The determining unit 411 is configured to determine whether the text item is a SQL keyword or the text item is an object name; the first acquiring unit 412 is configured to search a first dictionary by using the SQL keyword that corresponds to the text item as a search key in order to obtain the corresponding compression word, when the text item is a SQL keyword, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords; the second acquiring unit 413 is configured to search a second dictionary by using the object name that corresponds to the text item as a search key in order to obtain the corresponding compression word, when the text item is an object name , wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.

Further, the first acquiring unit 412 is specifically configured to search the first dictionary by using the SQL keyword that corresponds to the text item as a search key to find the ID of the SQL keyword that corresponds to the text item, and combine the ID of the first dictionary and the ID of the SQL keyword that corresponds to the text item as the corresponding compression word; the second acquiring unit 413 is specifically configured to search the second dictionary by using the object name that corresponds to the text item as a search key to find the ID of the object name that corresponds to the text item, then combine the ID of the second dictionary and the ID of the object name that corresponds to the text item as the corresponding compression word. Further, as shown in Fig. 5, the device also comprises: a first precreating module 44 and a second precreating module 45. The first precreating module 44 is configured to precreate the first dictionary; the second precreating module 45 is configured to precreate the second dictionary. Further, the first precreating module 44 is specifically configured to create a first empty dictionary, and generate an ID of the first empty dictionary, and generate an ID for a SQL keyword, and then place the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary. Further, the second precreating module 45 is specifically configured to create a second empty dictionary, and generate an ID of the second empty dictionary, and generate IDs for the names of objects, when the objects are created, and then place the names of the objects and the IDs of the names of the objects into the second empty dictionary to form the second dictionary.

According to the invention, the device adopts text item as a compression unit to compress the original language description statement. When an original language description statement is to be compressed, the device acquires a compression word that corresponds to a text item of the original language description statement, and replaces the corresponding text item by using the compression word, wherein the length of the compression word is smaller than the length of the corresponding text item. Compared with existing technology, the device compresses text item one by one, since the length of the compression word is smaller than the length of the corresponding text item, the compressed language description statement is smaller than the original language description statement, the compression ratio of the invention is higher and also the cost of compression in the master and the cost of decompression in the subscriber is lower. Fig. 6 is still another schematic structural view of the device for data compression in a database provided by the present invention. As shown in Fig. 6, the device comprises: a processor 61 and a memory 62 coupled to the processor 61. The memory 62 is configured to store program. Specifically, the program can include program code which comprises computer operating instruction. The processor 61 is configured to: acquire a compression word that corresponds to a text item of an original language description statement in the database, and replace the corresponding text item of the original language description statement by using the compression word in order to obtain a compressed language description statement, wherein the original language description statement is to be compressed, the text item is a keyword or an object name of the original language description statement, and the length of the compression word is smaller than the length of the corresponding text item. The memory 62 includes High speed RAM and non-volatile memory. In an alternative implementing embodiment, if the device is a master in a master-subscriber (or active-standby) database system, the memory 62 can be configured to: store the database. The processor 61 can be a CPU, or can be an Application Specific Integrated Circuit (ASIC), or can be configured to one or more ASIC.
In an alternative implementing embodiment, wherein the original language description statement is an original SQL statement, the compressed language description statement is a compressed SQL statement. Further, as shown in Fig. 6, the device further comprises: a transmitter 63. The transmitter 63 is configured to send the compressed SQL statement to a terminal device of a subscriber in order to achieve a replication of the original SQL statement. In an alternative implementing embodiment, the compression word contains an ID that corresponds to the corresponding text item, wherein the ID that corresponds to the corresponding text item represents the corresponding text item. On the basis of this, wherein in the step of acquiring a compression word that corresponds to a text item of an original SQL statement in the database, the processor 61 is specifically configured to: determine whether the text item is a SQL keyword or the text item is an object name; when the text item is a SQL keyword, search a first dictionary by using the SQL keyword that corresponds to the text item as a search key in order to obtain the corresponding compression word, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords; when the text item is an object name, search a second dictionary by using the object name that corresponds to the text item as a search key in order to obtain the corresponding compression word, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.

Further, in the step of searching a first dictionary by using the SQL keyword that corresponds to the text item as a search key in order to obtain the corresponding compression word, the processor 61 is specifically configured to: search the first dictionary by using the SQL keyword that corresponds to the text item as a search key to find the ID of the SQL keyword that corresponds to the text item, and combine the ID of the first dictionary and the ID of the SQL keyword that corresponds to the text item as the corresponding compression word. Further, in the step of searching a second dictionary by using the object name that corresponds to the text item as a search key in order to obtain the corresponding compression word, the processor 61 is specifically configured to:
search the second dictionary by using the object name that corresponds to the text item as a search key in order to find the ID of the object name that corresponds to the text item, and combine the ID of the second dictionary and the ID of the object name that corresponds to the text item as the corresponding compression word. On the basis of this, wherein the processor 61 is further configured to: precreate the first dictionary and the second dictionary.

Further, in the step of precreating the first dictionary, the processor 61 is specifically configured to: create a first empty dictionary, and generate an ID of the first empty dictionary; generate an ID for a SQL keyword, and place the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary. Further, in the step of precreating the second dictionary, the processor 61 is specifically configured to: create a second empty dictionary, and generate an ID of the second empty dictionary; when objects are created, generate IDs for the names of the objects, and then place the names of the objects and the IDs of the names of the objects into the second empty dictionary to form the second dictionary. Further, as shown in Fig. 6, the device further comprises: a receiver 64, configured to complete the communication between the device and other devices. Alternatively, in a specific implementation, if the processor 61, the memory 62, the transmitter 63 and the receiver 64 can be implemented individually, then the processor 61, the memory 62, the transmitter 63 and the receiver 64 can be in communication connection via a BUS. The BUS can be a Industry Standard Architecture (ISA) BUS, a Peripheral Component (PCI) BUS or an Extended Industry Standard Architecture (EISA) BUS etc. The BUS can be divided into address BUS, data BUS and control BUS etc. For convenient representation, the BUS is only represented by a single thick line in the figures, but does not mean there is only one BUS or one kind of BUS
Alternatively, in specific implementation, if the processor 61, the memory 62, the transmitter 63 and the receiver 64 can be integrated in a single chip, then the processor 61, the memory 62, the transmitter 63 and the receiver 64 can be in communication connection via an internal interface.

According to the invention, the device adopts text item as a compression unit to compress the original language description statement. When an original language description statement is to be compressed, the device acquires a compression word that corresponds to a text item of the original language description statement, and replaces the corresponding text item by using the compression word, wherein the length of the compression word is smaller than the length of the corresponding text item. Compared with existing technology, the device compresses text item one by one, since the length of the compression word is smaller than the length of the corresponding text item, the compressed language description statement is smaller than the original language description statement, the compression ratio of the invention is higher and also the cost of compression in the master and the cost of decompression in the subscriber is lower. Fig. 7 is a schematic structural view of a device for data decompression in a database provided by the present invention. As shown in Fig. 7, the device comprises: a determining module 71, an acquiring module 72 and a replacing module 73. The determining module 71 is configured to determine whether a received language description statement is a compressed language description statement; the acquiring module 72 is configured to acquire a text item that corresponds to a compression word of the received language description statement, when the received language description statement is a compressed language description statement, wherein the text item is a keyword or an object name; the replacing module 73 is configured to replace the corresponding compression word of the received language description statement by using the text item in order to obtain an original language description statement. In an alternative implementing embodiment, wherein the received language description statement is a received SQL statement, and the original language description statement is an original SQL statement.

In an alternative implementing embodiment, the determining module 71 is specifically configured to determine whether the first character of the received SQL statement matches a default value range, if the first character of the received SQL statement does not match the default value range, determine that the received SQL statement is a compressed SQL statement. In an alternative implementing embodiment, the determining module 71 is specifically configured to check whether the pattern of at least one designated byte of the received SQL statement is a default pattern, if the pattern of at least one designated byte of the received SQL statement is the default pattern, determine that the received SQL statement is a compressed SQL statement. Based on above, in an alternative implementing embodiment, the compression word contains an ID of dictionary that corresponds to the compression word and an ID of the corresponding text item, wherein the ID of dictionary that corresponds to the compression word represents the dictionary, and the ID of the corresponding text item represents the corresponding text item. On the basis of this, as shown in Fig. 8, an implementation of the acquiring module 72 comprises: a first acquiring unit 721 and a second acquiring unit 722. The first acquiring unit 721 is configured to pick the compression word of the received SQL statement according to the length of the compression word, and acquire the corresponding dictionary according to the ID of the corresponding dictionary contained in the compression word; the second acquiring unit 722 is configured to search the corresponding dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the corresponding text item.

Further, the second acquiring unit 722 is specifically configured to search a first dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the SQL keyword that corresponds to the ID of the corresponding text item contained in the compression word, when the corresponding dictionary is the first dictionary, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords, or The second acquiring unit 722 is specifically configured to search a second dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the object name that corresponds to the ID of the corresponding text item contained in the compression word, when the corresponding dictionary is the second dictionary, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names. In an alternative implementing embodiment, as shown in Fig. 8, the device further comprises: a creating module 74.

The creating module 74 is configured to create a new object and then generate an ID for the name of the created object, and insert the name of the created object and the ID of the name of the created object into the second dictionary, when the original SQL statement is a DDL statement and the original SQL statement is used to create a new object. Based on the first dictionary discussed above, as shown in Fig. 8, the device also comprises: a precreating module 75.
The precreating module 75 is configured to precreate the first dictionary. Further, the precreating module 75 is specifically configured to create a first empty dictionary, and generate an ID of the first empty dictionary, then generate an ID for a SQL keyword, and place the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary. According to the invention, the device of data decompression cooperates with the device of data compression, after the device receives a compressed language description statement, the device acquires a text item that corresponds to a compression word of the compressed language description statement; lastly replaces the corresponding compression word of the compressed language description statement by using the text item in order to obtain an original language description statement, since the compression ratio of the compressed language description statement is higher, the cost of compression and the cost of decompression is lower. Fig. 9 is still another schematic structural view of the device of data decompression in a database provided by the present invention. As shown in Fig. 9, the device comprises: a processor 91 and a memory 92 coupled to the processor 91.

The memory 92 is configured to store program. Specifically, the program can includes program code which comprises computer operating instruction. The processor 91 is configured to: determine whether a received language description statement is a compressed language description statement, and acquire a text item that corresponds to a compression word of the received language description statement, when the received language description statement is a compressed language description statement, and replace the corresponding compression word of the received language description statement by using the text item in order to obtain an original language description statement, wherein the text item is a keyword or an object name. The memory 92 includes a High speed RAM and non-volatile memory. In an alternative implementing embodiment, if the device is a subscriber in a master-subscriber (or active-standby) database system, the memory 92 can be configured to: store the database. The processor 91 can be a CPU, or can be an ASIC, or can be configured to one or more ASIC. In an alternative implementing embodiment, wherein the received language description statement is a received SQL statement, and the original language description statement is an original SQL statement. Further, in the step of determining whether the received SQL statement is a compressed SQL statement, the processor 91 is specifically configured to: determine whether the first character of the received SQL statement matches a default value range, if the first character of the received SQL statement does not match the default value range, determine that the received SQL statement is a compressed SQL statement; or in the step of determining whether the received SQL statement is a compressed SQL statement, the processor 91 is specifically configured to: check whether the pattern of at least one designated byte of the received SQL statement is a default pattern, if the pattern of at least one designated byte of the received SQL statement is the default pattern, determine that the received SQL statement is a compressed SQL statement.

In an alternative implementing embodiment, wherein the compression word contains an ID of dictionary that corresponds to the compression word and an ID of the corresponding text item, wherein the ID of dictionary that corresponds to the compression word represents the dictionary, and the ID of the corresponding text item represents the corresponding text item. On the basis of this, in the step of acquiring a text item that corresponds to a compression word of the received SQL statement, the processor 91 is specifically configured to: pick the compression word of the received SQL statement according to the length of the compression word, and acquire the corresponding dictionary according to the ID of the corresponding dictionary contained in the compression word; search the corresponding dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the corresponding text item.
Based on above, in the step of searching the corresponding dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the corresponding text item, the processor 91 is specifically configured to: when the corresponding dictionary is a first dictionary, search the first dictionary by using the ID of the corresponding text item contained in the compression word as a search key to acquire the SQL keyword that corresponds to the ID of the corresponding text item contained in the compression word, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords; or when the corresponding dictionary is a second dictionary, search the second dictionary by using the ID of the corresponding text item contained in the compression word as a search key to acquire the object name that corresponds to the ID of the corresponding text item contained in the compression word, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.

In an alternative implementing embodiment, the processor 91 is further configured to: create a new object and then generate an ID for the name of the created object, and insert the name of the created object and the ID of the name of the created object into the second dictionary, when the original SQL statement is a DDL statement and the original SQL statement is used to create a new object. In an alternative implementing embodiment, the processor 91 is further configured to: precreate the first dictionary. Further, in the step of precreating the first dictionary, the processor 91 is specifically configured to: create a first empty dictionary, and generate an ID of the first empty dictionary; generate an ID for a SQL keyword, and place the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary. Further, as shown in Fig. 9, the device further comprises: a transmitter 93 and a receiver 94. The transmitter 93 and the receiver 94 cooperate with each other, configured to complete the communication between the device and other devices. Alternatively, in specific implementation, if the processor 91, the memory 92, the transmitter 93 and the receiver 94 can be implemented individually, then the processor 91, the memory 92, the transmitter 93 and the receiver 94 can be in communication connection via a BUS. The BUS can be ISA BUS, PCI BUS or EISA BUS etc. The BUS can be divided into address BUS, data BUS and control BUS etc. For convenient representation, the BUS is only represented by a single thick line in the figures, but does not mean there is only one BUS or one kind of BUS. Alternatively, in specific implementation, if the processor 91, the memory 92, the transmitter 93 and the receiver 94 can be integrated in a single chip, then the processor 91, the memory 92, the transmitter 93 and the receiver 94 can be in communication connection via an internal interface.

According to the invention, the device of data decompression cooperates with the device of data compression, after the device receives a compressed language description statement, the device acquires a text item that corresponds to a compression word of the compressed language description statement; lastly replaces the corresponding compression word of the compressed language description statement by using the text item in order to obtain an original language description statement, since the compression ratio of the compressed language description statement is higher, the cost of compression and the cost of decompression is lower. Many variations of the above described embodiments will be available to one skilled in the art without deviating from the essence of the invention as set out herein and in the claims. In particular, some operations could be reordered, combined, or interleaved, or executed in parallel, and many of the data structures could be implemented differently. When one element, step, or object is specified, in many cases several elements, steps, or objects could equivalently occur. Steps in flowcharts could be implemented, e.g., as state machine states, logic circuits, or optics in hardware components, as instructions, subprograms, or processes executed by a processor, or as a combination of these and other techniques. It is to be understood that the aspects and embodiments of the invention described herein may be used in any combination with each other. Several of the aspects and embodiments may be combined together to form a further embodiment of the invention, and not all features, elements, or characteristics of an embodiment necessarily appear in other embodiments. A method, a computer, or a computer program product which is an aspect of the invention may comprise any number of the embodiments or elements of the invention described herein. Separate references to "an embodiment" or "one embodiment" refer to particular embodiments or classes of embodiments (possibly different embodiments in each case), not necessarily all possible embodiments of the invention.

WE CLAIM :

1. A method for data compression in a database, comprising: acquiring a compression word that corresponds to a text item of an original language description statement in the database, wherein the original language description statement is to be compressed, the text item is a keyword or an object name of the original language description statement, and the length of the compression word is smaller than the length of the corresponding text item; replacing the corresponding text item of the original language description statement by using the compression word in order to obtain a compressed language description statement.

2. The method as claimed in claim 1, wherein the original language description statement is an original Structured Query Language SQL statement, the compressed language description statement is a compressed SQL statement.

3. The method as claimed in claim 2, further comprising: sending the compressed SQL statement to a terminal device of a subscriber in order to achieve a replication of the original SQL statement.

4. The method as claimed in claim 2 or 3, wherein the compression word contains an ID that corresponds to the corresponding text item, wherein the ID that corresponds to the corresponding text item represents the corresponding text item; wherein the process of acquiring a compression word that corresponds to a text item of an original SQL statement in the database comprises: determining whether the text item is a SQL keyword or an object name; when the text item is a SQL keyword, searching a first dictionary by using the SQL keyword that corresponds to the text item as a search key in order to obtain the corresponding compression word, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords;
when the text item is an object name, searching a second dictionary by using the object name that corresponds to the text item as a search key in order to obtain the corresponding compression word, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.

5. The method as claimed in claim 4, wherein the process of searching a first dictionary by using the SQL keyword that corresponds to the text item as a search key in order to obtain the corresponding compression word comprises: searching the first dictionary by using the SQL keyword that corresponds to the text item as a search key to find the ID of the SQL keyword that corresponds to the text item; and combining the ID of the first dictionary and the ID of the SQL keyword that corresponds to the text item as the corresponding compression word; wherein the process of searching a second dictionary by using the object name that corresponds to the text item as a search key in order to obtain the corresponding compression word comprises: searching the second dictionary by using the object name that corresponds to the text item as a search key to find the ID of the object name that corresponds to the text item; and combining the ID of the second dictionary and the ID of the object name that corresponds to the text item as the corresponding compression word.

6. The method as claimed in claim 4 or 5, further comprising: procreating the first dictionary and the second dictionary.

7. The method as claimed in claim 6, wherein the process of precreating the first dictionary comprises: creating a first empty dictionary, and generating an ID of the first empty dictionary; generating an ID for a SQL keyword, and placing the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary.

8. The method as claimed in claim 6 or 7, wherein the process of precreating the second dictionary comprises: creating a second empty dictionary, and generating an ID of the second empty dictionary; when objects are created, generating IDs for the names of the objects, and then placing the names of the objects and the IDs of the names of the objects into the second empty dictionary to form the second dictionary.

9. A method for data decompression in a database, comprising: determining whether a received language description statement is a compressed language description statement; acquiring a text item that corresponds to a compression word of the received language description statement, when the received language description statement is a compressed language description statement, wherein the text item is a keyword or an object name; replacing the corresponding compression word of the received language description statement by using the text item in order to obtain an original language description statement.

10. The method as claimed in claim 9, wherein the received language description statement is a received Structured Query Language SQL statement, and the original language description statement is an original SQL statement.

11. The method as claimed in claim 10, wherein the process of determining whether the received SQL statement is a compressed SQL statement comprises:
determining whether the first character of the received SQL statement matches a default value range, if the first character of the received SQL statement does not match the default value range, determining that the received SQL statement is a compressed SQL statement; or, checking whether the pattern of at least one designated byte of the received SQL statement is a default pattern, if the pattern of at least one designated byte of the received SQL statement is the default pattern, determining that the received SQL statement is a compressed SQL statement.

12. The method as claimed in claim 10 or 11, wherein the compression word contains an ID of dictionary that corresponds to the compression word and an ID of the corresponding text item, wherein the ID of dictionary that corresponds to the compression word represents the dictionary, and the ID of the corresponding text item represents the corresponding text item; wherein the process of acquiring a text item that corresponds to a compression word of the received SQL statement comprises: picking the compression word of the received SQL statement according to the length of the compression word, and acquiring the corresponding dictionary according to the ID of the corresponding dictionary contained in the compression word; searching the corresponding dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the corresponding text item.

13. The method as claimed in claim 12, wherein the process of searching the corresponding dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the corresponding text item comprises: when the corresponding dictionary is a first dictionary, searching the first dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the SQL keyword that corresponds to the ID of the corresponding text item contained in the compression word, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords; or when the corresponding dictionary is a second dictionary, searching the second dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the object name that corresponds to the ID of the corresponding text item contained in the compression word, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.

14. The method as claimed in claim 13, further comprising: after obtaining the original SQL statement, if the original SQL statement is a Database Definition Language DDL statement and the original SQL statement is used to create a new object, creating the new object and generating an ID for the name of the created object, and inserting the name of the created object and the ID of the name of the created object into the second dictionary.

15. The method as claimed in claim 13 or 14, further comprising: precreating the first dictionary.

16. The method as claimed in claim 15, wherein the process of precreating the first dictionary comprises: creating a first empty dictionary, and generating an ID of the first empty dictionary; generating an ID for a SQL keyword, and placing the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary.

17. A device for data compression in a database, comprising: an acquiring module, configured to acquire a compression word that corresponds to a text item of an original language description statement in the database, wherein the original language description statement is to be compressed, the text item is a keyword or an object name of the original language description statement, and the length of the compression word is smaller than the length of the corresponding text item; a replacing module, configured to replace the corresponding text item of the original language description statement by using the compression word in order to obtain a compressed language description statement.

18. The device as claimed in claim 17, wherein the original language description statement is an original Structured Query Language SQL statement, the compressed language description statement is a compressed SQL statement.

19. The device as claimed in claim 18, characterized in that, further comprising: a sending module, configured to send the compressed SQL statement to a terminal device of a subscriber in order to achieve a replication of the original SQL statement.

20. The device as claimed in claim 18 or 19, wherein the compression word contains an ID that corresponds to the corresponding text item, wherein the ID that corresponds to the corresponding text item represents the corresponding text item; the acquiring module comprises: a determining unit, configured to determine whether the text item is a SQL keyword or the text item is an object name; a first acquiring unit, configured to search a first dictionary by using the SQL keyword that corresponds to the text item as a search key in order to obtain the corresponding compression word, when the text item is a SQL keyword, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords; a second acquiring unit, configured to search a second dictionary by using the object name that corresponds to the text item as a search key in order to obtain the corresponding compression word, when the text item is an object name, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.

21. The device as claimed in claim 20, characterized in that, the first acquiring unit is specifically configured to search the first dictionary by using the SQL keyword that corresponds to the text item as a search key to find the ID of the SQL keyword that corresponds to the text item, and combine the ID of the first dictionary and the ID of the SQL keyword that corresponds to the text item as the corresponding compression word; the second acquiring unit is specifically configured to search the second dictionary by using the object name that corresponds to the text item as a search key to find the ID of the object name corresponding to the text item, and combine the ID of the second dictionary and the ID of the object name that corresponds to the text item as the corresponding compression word.

22. The device as claimed in claim 20 or 21, characterized in that, further comprising: a first precreating module, configured to precreate the first dictionary; a second precreating module, configured to precreate the second dictionary.

23. The device as claimed in claim 22, characterized in that, the first precreating module is specifically configured to create a first empty dictionary, and generate an ID of the first empty dictionary, and generate an ID for a SQL keyword, and then place the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary.

24. The device as claimed in claim 22 or 23, characterized in that, the second precreating module is specifically configured to create a second empty dictionary, and generate an ID of the second empty dictionary, and generate IDs for the names of objects, when the objects are created, and then place the names of the objects and the IDs of the names of the objects into the second empty dictionary to form the second dictionary.

25. A device for data decompression in a database, comprising: a determining module, configured to determine whether a received language description statement is a compressed language description statement; an acquiring module, configured to acquire a text item that corresponds to a compression word of the received language description statement, when the received language description statement is a compressed language description statement, wherein the text item is a keyword or an object name; a replacing module, configured to replace the corresponding compression word of the received language description statement by using the text item in order to obtain an original language description statement.

26. The device as claimed in claim 25, wherein the received language description statement is a received Structured Query Language SQL statement, and the original language description statement is an original SQL statement.

27. The device as claimed in claim 26, characterized in that, the determining module is specifically configured to determine whether the first character of the received SQL statement matches a default value range, if the first character of the received SQL statement does not match the default value range, determine that the received SQL statement is a compressed SQL statement; or, the determining module is specifically configured to check whether the pattern of at least one designated byte of the received SQL statement is a default pattern, if the pattern of at least one designated byte of the received SQL statement is the default pattern, determine that the received SQL statement is a compressed SQL statement.

28. The device as claimed in claim 26 or 27, wherein the compression word contains an ID of dictionary that corresponds to the compression word and an ID of the corresponding text item, wherein the ID of dictionary that corresponds to the compression word represents the dictionary, and the ID of the corresponding text item represents the corresponding text item; the acquiring module comprises: a first acquiring unit, configured to pick the compression word of the received SQL statement according to the length of the compression word, and acquire the corresponding dictionary according to the ID of the corresponding dictionary contained in the compression word; a second acquiring unit, configured to search the corresponding dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the corresponding text item.

29. The device as claimed in claim 28, characterized in that, the second acquiring unit is specifically configured to search a first dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the SQL keyword that corresponds to the ID of the corresponding text item contained in the compression word, when the corresponding dictionary is the first dictionary, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords; or the second acquiring unit is specifically configured to search a second dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the object name that corresponds to the ID of the corresponding text item contained in the compression word, when the corresponding dictionary is the second dictionary, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.

30. The device as claimed in claim 29, characterized in that, further comprising: a creating module, configured to create a new object and then generate an ID for the name of the created object, and insert the name of the created obj ct and the ID of the name of the created object into the second dictionary, when the original SQL statement is a DDL statement and the original SQL statement is used to create a new object.

31. The device as claimed in claim 29 or 30, characterized in that, further comprising: a precreating module, configured to precreate the first dictionary.

32. The device as claimed in claim 31, characterized in that, the precreating module is specifically configured to create a first empty dictionary, and generate an ID of the first empty dictionary, then generate an ID for a SQL keyword, and place the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary.

33. A device for data compression in a database, comprising: a processor and a memory coupled to the processor; wherein the processor is configured to: acquire a compression word that corresponds to a text item of an original language description statement in the database, and replace the corresponding text item of the original language description statement by using the compression word in order to obtain a compressed language description statement, wherein the original language description statement is to be compressed, the text item is a keyword or an object name of the original language description statement, and the length of the compression word is smaller than the length of the corresponding text item.

34. The device as claimed in claim 33, wherein the original language description statement is an original Structured Query Language SQL statement, the compressed language description statement is a compressed SQL statement.

35. The device as claimed in claim 34, characterized in that, further comprising: a transmitter, configured to send the compressed SQL statement to a terminal device of a subscriber in order to achieve a replication of the original SQL statement.

36. The device as claimed in claim 34 or 35, wherein the compression word contains an ID that corresponds to the corresponding text item, wherein the ID that corresponds to the corresponding text item represents the corresponding text item; in the step of acquiring a compression word that corresponds to a text item of an original SQL statement in the database, the processor is specifically configured to: determine whether the text item is a SQL keyword or the text item is an object name; when the text item is a SQL keyword, search a first dictionary by using the SQL keyword that corresponds to the text item as a search key in order to obtain the corresponding compression word, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords; when the text item is an object name, search a second dictionary by using the object name that corresponds to the text item as a search key in order to obtain the corresponding compression word, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.

37. The device as claimed in claim 36, wherein in the step of searching a first dictionary by using the SQL keyword that corresponds to the text item as a search key in order to obtain the corresponding compression word, the processor is specifically configured to: search the first dictionary by using the SQL keyword that corresponds to the text item as a search key to find the ID of the SQL keyword that corresponds to the text item, and combine the ID of the first dictionary and the ID of the SQL keyword that corresponds to the text item as the corresponding compression word; in the step of searching a second dictionary by using the object name that corresponds to the text item as a search key in order to obtain the corresponding compression word, the processor is specifically configured to: search the second dictionary by using the object name that corresponds to the text item as a search key to find the ID of the object name that corresponds to the text item, and combine the ID of the second dictionary and the ID of the object name that corresponds to the text item as the corresponding compression word.

38. The device as claimed in claim 36 or 37, wherein the processor is further configured to: precreate the first dictionary and the second dictionary.

39. The device as claimed in claim 38, wherein in the step of precreating the first dictionary, the processor is specifically configured to: create a first empty dictionary, and generate an ID of the first empty dictionary; generate an ID for a SQL keyword, and place the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary.

40. The device as claimed in claim 38 or 39, wherein in the step of precreating the second dictionary, the processor is specifically configured to: create a second empty dictionary, and generate an ID of the second empty dictionary; when objects are created, generate IDs for the names of the objects, and then place the names of the objects and the IDs of the names of the objects into the second empty dictionary to form the second dictionary.

41. A device for data decompression in a database, comprising: a processor and a memory coupled to the processor; wherein the processor is configured to: determine whether a received language description statement is a compressed language description statement, and acquire a text item that corresponds to a compression word of the received language description statement, when the received language description statement is a compressed language description statement, and replace the corresponding compression word of the received language description statement by using the text item in order to obtain an original language description L statement, wherein the text item is a keyword or an object name.

42. The device as claimed in claim 41, wherein the received language description statement is a received Structured Query Language SQL statement, and the original language description statement is an original SQL statement.

43. The device as claimed in claim 42, wherein in the step of determining whether the received SQL statement is a compressed SQL statement, the processor is specifically configured to determine whether the first character of the received SQL statement matches a default value range, if the first character of the received SQL statement does not match the default value range, determine that the received SQL statement is a compressed SQL statement; or, check whether the pattern of at least one designated byte of the received SQL statement is a default pattern, if the pattern of at least one designated byte of the received SQL statement is the default pattern, determine that the received SQL statement is a compressed SQL statement.

44. The device as claimed in claim 42 or 43, wherein the compression word contains an ID of dictionary that corresponds to the compression word and an ID of the corresponding text item, wherein the ID of dictionary that corresponds to the compression word represents the dictionary, and the ID of the corresponding text item represents the corresponding text item; in the step of acquiring a text item that corresponds to a compression word of the received SQL statement, the processor is specifically configured to: pick the compression word of the received SQL statement according to the length of the compression word, and acquire the corresponding dictionary according to the ID of the corresponding dictionary contained in the compression word; search the corresponding dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the corresponding text item.

45. The device as claimed in claim 44, wherein in the step of searching the corresponding dictionary by using the ID of the corresponding text item contained inthe compression word as a search key to obtain the corresponding text item, the processor is specifically configured to: when the corresponding dictionary is a first dictionary, search the first dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the SQL keyword that corresponds to the ID of the corresponding text item contained in the compression word, wherein the first dictionary includes one or more SQL keywords and one or more IDs of the one or more SQL keywords; or when the corresponding dictionary is a second dictionary, search the second dictionary by using the ID of the corresponding text item contained in the compression word as a search key to obtain the object name that corresponds to the ID of the corresponding text item contained in the compression word, wherein the second dictionary includes one or more object names and one or more IDs of the one or more object names.

46. The device as claimed in claim 45, wherein the processor is further configured to: create a new object and then generate an ID for the name of the created object, and insert the name of the created object and the ID of the name of the created object into the second dictionary, when the original SQL statement is a DDL statement and the original SQL statement is used to create a new object.

47. The device as claimed in claim 45 or 46, wherein the processor is further configured to: precreate the first dictionary.

48. The device as claimed in claim 47, wherein in the step of precreating the first dictionary, the processor is specifically configured to: create a first empty dictionary, and generate an ID of the first empty dictionary; generate an ID for a SQL keyword, and place the SQL keyword and the ID of the SQL keyword into the first empty dictionary to form the first dictionary.

Documents

Orders

Section Controller Decision Date

Application Documents

# Name Date
1 5461-CHE-2013 POWER OF ATTORNEY 27-11-2013.pdf 2013-11-27
1 5461-CHE-2013-IntimationOfGrant20-06-2022.pdf 2022-06-20
2 5461-CHE-2013 FORM-3 27-11-2013.pdf 2013-11-27
2 5461-CHE-2013-PatentCertificate20-06-2022.pdf 2022-06-20
3 5461-CHE-2013-Response to office action [14-03-2022(online)].pdf 2022-03-14
3 5461-CHE-2013 FORM-2 27-11-2013.pdf 2013-11-27
4 5461-CHE-2013-8(i)-Substitution-Change Of Applicant - Form 6 [03-03-2022(online)].pdf 2022-03-03
4 5461-CHE-2013 FORM-1 27-11-2013.pdf 2013-11-27
5 5461-CHE-2013-ASSIGNMENT DOCUMENTS [03-03-2022(online)].pdf 2022-03-03
5 5461-CHE-2013 DRAWINGS 27-11-2013.pdf 2013-11-27
6 5461-CHE-2013-PA [03-03-2022(online)].pdf 2022-03-03
6 5461-CHE-2013 DESCRIPTION (COMPLETE) 27-11-2013.pdf 2013-11-27
7 5461-CHE-2013-Written submissions and relevant documents [10-01-2022(online)].pdf 2022-01-10
7 5461-CHE-2013 CORRESPONDENCE OTHERS 27-11-2013.pdf 2013-11-27
8 5461-CHE-2013-Correspondence to notify the Controller [24-12-2021(online)].pdf 2021-12-24
8 5461-CHE-2013 CLAIMS 27-11-2013.pdf 2013-11-27
9 5461-CHE-2013 ABSTRACT 27-11-2013.pdf 2013-11-27
9 5461-CHE-2013-US(14)-ExtendedHearingNotice-(HearingDate-27-12-2021).pdf 2021-12-03
10 5461-CHE-2013 FORM-18 17-12-2013.pdf 2013-12-17
10 5461-CHE-2013-US(14)-HearingNotice-(HearingDate-27-12-2021).pdf 2021-12-03
11 5461-CHE-2013 CORRESPONDENCE OTHERS 17-12-2013.pdf 2013-12-17
11 5461-CHE-2013-CLAIMS [20-02-2020(online)].pdf 2020-02-20
12 5461-CHE-2013 FORM-1 23-05-2014.pdf 2014-05-23
12 5461-CHE-2013-DRAWING [20-02-2020(online)].pdf 2020-02-20
13 5461-CHE-2013 CORRESPONDENCE OTHERS 23-05-2014.pdf 2014-05-23
13 5461-CHE-2013-FER_SER_REPLY [20-02-2020(online)].pdf 2020-02-20
14 5461-CHE-2013-OTHERS [20-02-2020(online)].pdf 2020-02-20
14 abstract5461-CHE-2013.jpg 2014-07-17
15 5461-CHE-2013 FORM-13 20-02-2015.pdf 2015-02-20
15 5461-CHE-2013-FER.pdf 2019-10-15
16 Correspondence by Agent_Deed Of Assignment_17-04-2018.pdf 2018-04-17
16 FORM NO. INC-22.pdf ONLINE 2015-02-25
17 FORM 13 _Applicant Address Change_.pdf ONLINE 2015-02-25
17 5461-CHE-2013-8(i)-Substitution-Change Of Applicant - Form 6 [06-04-2018(online)].pdf 2018-04-06
18 5461-CHE-2013-ASSIGNMENT DOCUMENTS [06-04-2018(online)].pdf 2018-04-06
18 FORM NO. INC-22.pdf 2015-03-13
19 5461-CHE-2013-PA [06-04-2018(online)].pdf 2018-04-06
19 FORM 13 _Applicant Address Change_.pdf 2015-03-13
20 5461-CHE-2013 CORRESPONDENCE OTHERS 24-06-2015.pdf 2015-06-24
21 5461-CHE-2013-PA [06-04-2018(online)].pdf 2018-04-06
21 FORM 13 _Applicant Address Change_.pdf 2015-03-13
22 5461-CHE-2013-ASSIGNMENT DOCUMENTS [06-04-2018(online)].pdf 2018-04-06
22 FORM NO. INC-22.pdf 2015-03-13
23 5461-CHE-2013-8(i)-Substitution-Change Of Applicant - Form 6 [06-04-2018(online)].pdf 2018-04-06
23 FORM 13 _Applicant Address Change_.pdf ONLINE 2015-02-25
24 FORM NO. INC-22.pdf ONLINE 2015-02-25
24 Correspondence by Agent_Deed Of Assignment_17-04-2018.pdf 2018-04-17
25 5461-CHE-2013-FER.pdf 2019-10-15
25 5461-CHE-2013 FORM-13 20-02-2015.pdf 2015-02-20
26 5461-CHE-2013-OTHERS [20-02-2020(online)].pdf 2020-02-20
26 abstract5461-CHE-2013.jpg 2014-07-17
27 5461-CHE-2013 CORRESPONDENCE OTHERS 23-05-2014.pdf 2014-05-23
27 5461-CHE-2013-FER_SER_REPLY [20-02-2020(online)].pdf 2020-02-20
28 5461-CHE-2013 FORM-1 23-05-2014.pdf 2014-05-23
28 5461-CHE-2013-DRAWING [20-02-2020(online)].pdf 2020-02-20
29 5461-CHE-2013 CORRESPONDENCE OTHERS 17-12-2013.pdf 2013-12-17
29 5461-CHE-2013-CLAIMS [20-02-2020(online)].pdf 2020-02-20
30 5461-CHE-2013 FORM-18 17-12-2013.pdf 2013-12-17
30 5461-CHE-2013-US(14)-HearingNotice-(HearingDate-27-12-2021).pdf 2021-12-03
31 5461-CHE-2013 ABSTRACT 27-11-2013.pdf 2013-11-27
31 5461-CHE-2013-US(14)-ExtendedHearingNotice-(HearingDate-27-12-2021).pdf 2021-12-03
32 5461-CHE-2013 CLAIMS 27-11-2013.pdf 2013-11-27
32 5461-CHE-2013-Correspondence to notify the Controller [24-12-2021(online)].pdf 2021-12-24
33 5461-CHE-2013 CORRESPONDENCE OTHERS 27-11-2013.pdf 2013-11-27
33 5461-CHE-2013-Written submissions and relevant documents [10-01-2022(online)].pdf 2022-01-10
34 5461-CHE-2013 DESCRIPTION (COMPLETE) 27-11-2013.pdf 2013-11-27
34 5461-CHE-2013-PA [03-03-2022(online)].pdf 2022-03-03
35 5461-CHE-2013 DRAWINGS 27-11-2013.pdf 2013-11-27
35 5461-CHE-2013-ASSIGNMENT DOCUMENTS [03-03-2022(online)].pdf 2022-03-03
36 5461-CHE-2013 FORM-1 27-11-2013.pdf 2013-11-27
36 5461-CHE-2013-8(i)-Substitution-Change Of Applicant - Form 6 [03-03-2022(online)].pdf 2022-03-03
37 5461-CHE-2013-Response to office action [14-03-2022(online)].pdf 2022-03-14
37 5461-CHE-2013 FORM-2 27-11-2013.pdf 2013-11-27
38 5461-CHE-2013-PatentCertificate20-06-2022.pdf 2022-06-20
38 5461-CHE-2013 FORM-3 27-11-2013.pdf 2013-11-27
39 5461-CHE-2013-IntimationOfGrant20-06-2022.pdf 2022-06-20
39 5461-CHE-2013 POWER OF ATTORNEY 27-11-2013.pdf 2013-11-27

Search Strategy

1 search_new_03-10-2019.pdf

ERegister / Renewals

3rd: 23 Jun 2022

From 27/11/2015 - To 27/11/2016

4th: 23 Jun 2022

From 27/11/2016 - To 27/11/2017

5th: 23 Jun 2022

From 27/11/2017 - To 27/11/2018

6th: 23 Jun 2022

From 27/11/2018 - To 27/11/2019

7th: 23 Jun 2022

From 27/11/2019 - To 27/11/2020

8th: 23 Jun 2022

From 27/11/2020 - To 27/11/2021

9th: 23 Jun 2022

From 27/11/2021 - To 27/11/2022

10th: 19 Oct 2022

From 27/11/2022 - To 27/11/2023

11th: 10 Oct 2023

From 27/11/2023 - To 27/11/2024

12th: 10 Oct 2024

From 27/11/2024 - To 27/11/2025

13th: 09 Oct 2025

From 27/11/2025 - To 27/11/2026