WO2012081131A1 - Key-value index store type database system - Google Patents

Key-value index store type database system Download PDF

Info

Publication number
WO2012081131A1
WO2012081131A1 PCT/JP2010/073265 JP2010073265W WO2012081131A1 WO 2012081131 A1 WO2012081131 A1 WO 2012081131A1 JP 2010073265 W JP2010073265 W JP 2010073265W WO 2012081131 A1 WO2012081131 A1 WO 2012081131A1
Authority
WO
WIPO (PCT)
Prior art keywords
field
information
key
client
server
Prior art date
Application number
PCT/JP2010/073265
Other languages
French (fr)
Japanese (ja)
Inventor
健人 吉田
裕介 大久保
圭隆 坂本
Original Assignee
株式会社 東雲
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社 東雲 filed Critical 株式会社 東雲
Priority to PCT/JP2010/073265 priority Critical patent/WO2012081131A1/en
Publication of WO2012081131A1 publication Critical patent/WO2012081131A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data

Definitions

  • the present technology relates to a client-server type computer system in which data required by a client computer is supplied by a server computer, and more particularly to a method for retaining data in a database management system of the server computer.
  • RDBMS Relational DataBase Management System
  • KVS Key Value Store
  • RDBMS is a method for managing database information, which is called a relational database, associated with each other using a language called SQL.
  • data is represented as a set (record) of a plurality of fields, and the set of records is represented by a table called a table.
  • Each record uses key data such as an ID number and a name, and data can be combined and extracted relatively easily in the SQL language. This is a widely used database.
  • KVS is a simple database expressed only with a key and a value (value).
  • a key When a key is given, the value associated with the key can be acquired and stored. For this reason, it is difficult to express a complicated data structure, but the processing is fast because of the simple data structure. Since distributed processing is also possible, it is possible to ensure extremely high throughput and scalability as compared to SQL of a relational database.
  • KVS it is difficult to perform simple search from value, so it is necessary to perform data analysis of value represented by Map-Reduce simultaneously or frequently and maintain index information separately from the database itself. When is implemented, the system configuration becomes complicated. In addition, it is difficult to maintain the immediacy of data.
  • the problem to be solved by the present invention is a computer having a high KVS throughput and scalability and a distributed processing function in a database management of a client-server computer system, and a high operability and additional function of an RDBMS. ⁇
  • the system is to be realized. Furthermore, the specification of a complex client / server type software application is clarified to provide an efficient computer system development environment and maintenance environment.
  • the KVS system is constructed in such a manner that the server computer adds key information for individually recognizing the data and connects the key and the object.
  • the server does not need to recognize the contents of the object, so there is no need to configure a field for storing individual data in the object, and a text object can be stored in one field. Therefore, the structure of the database is simplified.
  • a system is constructed in which the server side does not recognize the data contents, but recognizes the data contents only on the client side.
  • the client server type computer system of the present invention has the database table structure described in claims 1 to 3 in order to directly communicate the object information held by the client with the server in the database management. Have realized its function.
  • the client server type computer system of the present invention information existing in the main memory of the client computer is communicated directly with the server as an object, and there is no need to define its structure on the server side. This is possible and has the effect of reducing the load of database management on the server side.
  • the database table is a two-dimensional table composed of columns and rows, and basically there are physical length and type restrictions for each field, and an array or multi-dimensional array is stored.
  • the object information is stored as it is, so there is no particular limitation.
  • JOIN join
  • the data communication efficiency between the client and the server is dramatically improved, and in particular, the throughput when acquiring data can be expected to be improved by about 10 times.
  • changes in specifications have little effect on the database structure, so specifications can be easily added and maintainability is excellent.
  • the usage amount of the CPU and the main memory on the server side is limited, an efficient server operation can be realized.
  • the best mode for carrying out the present invention is that the data communication speed between the client and server is sufficiently high, and the client computer has sufficient processing capability for the server computer. This is the case. Recent improvements in network technology and computer performance sufficiently satisfy this situation.
  • FIG. 1 is a conceptual diagram of a client server type computer system using the present invention.
  • Reference numeral 1 denotes a database table according to the present invention, which stores data in KVS.
  • Reference numeral 2 denotes a server computer, which is equipped with the database system indicated by reference numeral 1.
  • Reference numeral 3 denotes a hash table developed on the main memory of the client, and reference numeral 4 denotes a client computer.
  • the hash table indicated by reference numeral 3 has a reference relationship indicated by reference numeral 5.
  • Each hash table is paired with the corresponding database table on the server, and is connected by a network connection denoted by reference numeral 6 to read and write data necessary and sufficient for operations on the client computer. It can be done synchronously or asynchronously.
  • the communication between the client computer and the server computer has a very simple configuration such as INDEX (key acquisition), GET (read), PUT (write), and SELECT (selection), and can easily realize high throughput.
  • INDEX key acquisition
  • GET read
  • PUT write
  • SELECT selection
  • the client computer once acquired data is stored in a hash table using the key, and the data once called is reused. Especially for tables with many references, it is possible to maintain the data structure without increasing the amount of memory used.
  • the client system operates with JavaScript, and the server side operates with PHP.
  • the client performs AJAX (abbreviation of Asynchronous Javascript XML) communication with the server.
  • Object data developed in the main memory of the client is converted into text efficiently by converting it into JSON (Java Script Object Notation).
  • the text information is transferred to the server by AJAX communication.
  • the server generates a centralized key, adds it to the object, stores it in the database, and converts the object including the obtained key into text and passes it to the client.
  • the client re-objects the received data through the EVAL () function and expands it in the main memory via a hash table. By repeating this, it is possible to create the same situation as if the data having the reference structure is expanded on the main memory of the client computer.
  • FIG. 2 is an example of database access according to the present invention.
  • Reference numerals 7, 9, and 11 indicate requests (requests) from the client computer and their responses (responses) divided by arrows ( ⁇ ), and reference numerals 8, 10, and 12 indicate the database on the server side corresponding thereto. Indicates the contents of the table.
  • Reference numerals 7 and 8 indicate basic KVS access. It is assumed that _KEY_, which is the name of the field, is a field for storing a primary key that guarantees unity, and _VALUE_ is a field for storing a value (value), and this name is already defined as a system. Three lines beginning with PUT of reference numeral 7 indicate writing, and three different new data are inserted into the database. A unique key indicated by _KEY_ is assigned before being inserted into the database, and the value is also added to the value. The response including PUT returns the value including the key. In the last three rows starting with GET of reference numeral 7, the value is read using the value of _KEY_.
  • This example is a very simple example, but in practice, it is possible to have complex information such as an array or binary data as an object. At this time, the database table has the structure claimed in claim 1 of the present invention.
  • reference numerals 9 and 10 are examples in which “name” is added as an index to a simple KVS.
  • name is an index for the corresponding table.
  • the three lines starting with PUT of reference numeral 9 are the same as the request of reference numeral 7, and the response is also the same.
  • “name” extracted from the value is added as an index on the database.
  • the SEL request on the fourth line of reference numeral 9 enables selection of records whose “name” starts with “A”, and in this example, two records are acquired.
  • the database table has the structure claimed in claims 2 and 3 of the present invention.
  • reference numerals 11 and 12 are examples in which additional database access is made to reference numerals 9 and 10.
  • the first two lines starting with PUT of reference numeral 11 are examples of record update. Since _KEY_ exists in data sent from the client side to the server, the record in the database is overwritten. In the specification of this embodiment, since PUT is performed by adding an item to existing _VALUE_, the elements “prop1” and “prop2” in the existing object are not deleted. Since the third row does not have _KEY_, it is treated as new data and inserted into the database.
  • FIG. 3 is a schematic diagram of a database automatic generation system using the present invention.
  • PDO abstract database access routine
  • CREATE table generation
  • DROP table deletion
  • INDEX key acquisition
  • GET Implements basic functions such as (data reading), PUT (data writing), SEL (data selection acquisition), and DEL (data deletion).
  • the index element and the key and value field names in each table are described in the definition file 17.
  • AJAX interface 15 is constructed on the client side for the PDO 14, and a Javascript program 16 can be executed.
  • the present invention can be used for a wide range of applications such as business management software such as sales management, financial accounting, and payroll personnel, which conventionally used RDBMS. Compared with a system using conventional RDBMS, Execution speed can be improved while maintaining maintenance performance. Further, it can be used for all or part of a general client-server type computer system or a WEB-based system represented by ASP (Application Service Provider), and its application range is wide.
  • ASP Application Service Provider
  • a KVS database is easy to encapsulate and a discrete database can be constructed.
  • a database with high update capacity and a large capacity can be installed on a cloud computer, and a database containing highly confidential and important information can be installed on an in-house server so that the system can be operated discretely.
  • Database table 2 of the present invention A server computer, which is equipped with a database system 1.
  • Client computer 5 Reference relationship of the hash table of code 3
  • Request from the client computer and its response 1 8 Indicates the state of the database on the server side for reference numeral 7.
  • 9 Requests and responses from client computers 2 10 Indicates the state of the database on the server side for symbol 9.
  • 11 Request from client computer and its response 3 12 Indicates the state of the database on the server side for reference numeral 11.
  • Database and database table having the structure of the present invention 14 Abstract Access routine to database of the present invention 15 AJAX interface for client computer 16 Program 17 operating in client computer described in JavaScript 17 Each database table Definition file describing index information 18 PHP program that operates as a batch on server computer 19 I / O access routine of server computer

Abstract

[Problem] To realize a computer system with the high operability and adding functions of a RDBMS, simplify and clarify the specifications of the complex client-server software application, and provide an efficient computer system development environment and maintenance environment in client-server computer system database management, while ensuring the high throughput, scalability, and distributed processing function of a KVS. [Solution] Provided is a key-value index store type database system in which, during communication between a client and a server according to the KVS method, key information is included in a value and, when storing data, pre-defined elements in a value are indexed on the server end, thereby providing high operability and completing the system only through simple communications.

Description

キー・バリュー・インデックス・ストア方式のデータベース・システムKey-value index store database system
本技術は、クライアント・コンピュータが必要とするデータを、サーバー・コンピュータが供給するクライアント・サーバー型のコンピュータ・システムに関し、特にそのサーバー・コンピュータのデータベース・マネージメント・システムにおけるデータの保持の方法に関する。 The present technology relates to a client-server type computer system in which data required by a client computer is supplied by a server computer, and more particularly to a method for retaining data in a database management system of the server computer.
従来より、クライアント・サーバー型のコンピュータ・システムの大規模なデータ集合体(データベース)を扱う主要な方式として、RDBMS(Relational DataBase Management System)と、KVS(Key Value Store)が存在する。 Conventionally, RDBMS (Relational DataBase Management System) and KVS (Key Value Store) exist as main methods for handling large-scale data aggregates (databases) of client-server type computer systems.
RDBMSは、リレーショナルデータベースとよばれる相互の関連付けがなされたデータベース情報を、SQLと呼ばれる言語を用いて管理する方式である。リレーショナルデータベースでは、データを複数のフィールドの集合(レコード)として表現し、レコードの集合をテーブルと呼ばれる表で表す。各レコードはID番号や名前などのキーとなるデータを用い、SQL言語でデータの結合や抽出を比較的容易に行うことができ、データベースとしては広く普及している方式である。 RDBMS is a method for managing database information, which is called a relational database, associated with each other using a language called SQL. In a relational database, data is represented as a set (record) of a plurality of fields, and the set of records is represented by a table called a table. Each record uses key data such as an ID number and a name, and data can be combined and extracted relatively easily in the SQL language. This is a widely used database.
それに対してKVSはキーと値(バリュー)でのみ表現される単純なデータベースで、キーを与えるとそれに紐づいたバリューを取得・保存できる単純なデータベースである。このため複雑なデータ構造の表現は困難であるが、単純なデータ構造であるがゆえに処理が高速である。また分散処理も可能であることから、リレーショナルデータベースのSQLと比較して非常に高いスループットとスケーラビリティを担保することが可能である。但しKVSにおいては、バリューからの単純検索は困難であるため、Map−Reduceに代表されるバリューのデータ分析を同時にあるいは頻繁に実行し、データベース自体と別にインデックス情報を維持する必要があり、検索機能を実装した場合、システムの構成が複雑になる。またデータの即時性を保持することが困難である。 On the other hand, KVS is a simple database expressed only with a key and a value (value). When a key is given, the value associated with the key can be acquired and stored. For this reason, it is difficult to express a complicated data structure, but the processing is fast because of the simple data structure. Since distributed processing is also possible, it is possible to ensure extremely high throughput and scalability as compared to SQL of a relational database. However, in KVS, it is difficult to perform simple search from value, so it is necessary to perform data analysis of value represented by Map-Reduce simultaneously or frequently and maintain index information separately from the database itself. When is implemented, the system configuration becomes complicated. In addition, it is difficult to maintain the immediacy of data.
US7496589US7496589 再公表07−063945Republication 07-063945
本発明が解決しようとする課題は、クライアント・サーバー型のコンピュータ・システムのデータベース・マネージメントにおいて、KVSの高いスループットとスケーラビリティ及び分散処理機能を確保した上、RDBMSの高い操作性と付加機能をもつコンピュータ・システムを実現しようとするものである。更に、複雑なクライアント・サーバー型のソフトウェア・アプリケーションの仕様を明確化し、効率のよいコンピュータ・システム開発環境と保守環境を提供しようとするものである。 The problem to be solved by the present invention is a computer having a high KVS throughput and scalability and a distributed processing function in a database management of a client-server computer system, and a high operability and additional function of an RDBMS.・ The system is to be realized. Furthermore, the specification of a complex client / server type software application is clarified to provide an efficient computer system development environment and maintenance environment.
本発明のクライアント・サーバー型のコンピュータ・システムのデータベース・マネージメントにおいては、クライアント・コンピュータの主記憶に存在する情報の集合体(オブジェクト)をテキスト情報に変換して、サーバー・コンピュータに逐次保存する手段をとる。 In the database management of the client server type computer system of the present invention, means for converting a collection (object) of information existing in the main memory of the client computer into text information and sequentially storing it in the server computer Take.
この時に、サーバー・コンピュータが、そのデータを個別に認識するためにキー情報を付加し、そのキーとオブジェクトを結びつける形で、KVSシステムが構築される。この方式の場合、サーバー側は、そのオブジェクトの内容を認識する必要がないため、オブジェクト内の個別のデータを格納するフィールドを構成する必要がなく、テキスト化されたオブジェクトを1つのフィールドに格納すればよいため、データベースの構造が単純化される。即ちサーバー側は、データの内容認識を行わず、クライアント側のみでデータ内容を認識するシステムが構築される。 At this time, the KVS system is constructed in such a manner that the server computer adds key information for individually recognizing the data and connects the key and the object. In this method, the server does not need to recognize the contents of the object, so there is no need to configure a field for storing individual data in the object, and a text object can be stored in one field. Therefore, the structure of the database is simplified. In other words, a system is constructed in which the server side does not recognize the data contents, but recognizes the data contents only on the client side.
この時、本発明の請求項1で示すように、オブジェクト自体がサーバー側で生成したキーを包含することで、多少のオーバーヘッドは存在するが、そのオブジェクト自体を自己完結させることができる。つまり、キーを持たずにサーバー側へ送られたデータは、新規データとして扱われデータベースに挿入され、キーを持って送られたデータは、サーバーから読み出された既存データとして、保存の際には同じキーをもつレコードを更新する。この時、レコードの別フィールドとして定義されるプライマリーキーのフィールドにも、同じくサーバー側で生成したキーが保存される。 At this time, as shown in claim 1 of the present invention, by including the key generated on the server side by the object itself, there is some overhead, but the object itself can be self-contained. In other words, data sent to the server without a key is treated as new data and inserted into the database, and data sent with a key is stored as existing data read from the server. Updates a record with the same key. At this time, the key generated on the server side is also stored in the primary key field defined as another field of the record.
保存されたデータをサーバー側から読み出す際は、KVSが構築されているので、プライマリーキーを参照すれば、キーを含んだ形でオブジェクトの情報を取得する事が可能である。
ここで、KVSの問題点として、ある特定のレコード群の選択抽出する場合の手法を考える必要がある。この機能を実現するため、予め定められたオブジェクトの一部の項目を、レコードのフィールドに転記できるようにする。つまりシステムにより予め定められたデータは、データの書込みの際にオブジェクトから抽出され、定められたフィールドに書き込まれる。この状態が請求項2におけるデータベーステーブルの状態である。更に請求項3で示すように定義されたフィールドに対してインデックスを設ければ、高速な検索が可能となる。
When the stored data is read from the server side, since the KVS is constructed, it is possible to obtain object information including the key by referring to the primary key.
Here, as a problem of KVS, it is necessary to consider a method in the case of selectively extracting a specific record group. In order to realize this function, some items of a predetermined object can be transferred to the field of the record. That is, data predetermined by the system is extracted from the object at the time of data writing and written in a predetermined field. This state is the state of the database table in claim 2. Furthermore, if an index is provided for a field defined as shown in claim 3, a high-speed search is possible.
このように本発明のクライアント・サーバー型のコンピュータ・システムは、データベース・マネージメントにおいて、クライアントの持つオブジェクト情報を、直接サーバーと通信するために、請求項1~3で述べるデータベースのテーブル構造を有し、その機能を実現している。 As described above, the client server type computer system of the present invention has the database table structure described in claims 1 to 3 in order to directly communicate the object information held by the client with the server in the database management. Have realized its function.
本発明のクライアント・サーバー型のコンピュータ・システムでは、クライアント・コンピュータの主記憶に存在する情報を直接オブジェクトとしてサーバーと通信し、サーバー側にその構造を定義する必要がないため、高速なデータ通信が可能であるとともに、サーバー側のデータベース・マネージメントの負荷を軽減する効果がある。 In the client server type computer system of the present invention, information existing in the main memory of the client computer is communicated directly with the server as an object, and there is no need to define its structure on the server side. This is possible and has the effect of reducing the load of database management on the server side.
また従来のRDBMSでは、データベーステーブルは、カラムとロウからなる2次元のテーブルであり基本的に各フィールドに対して物理的な長さや型の制限が有り、アレイや多次元配列を格納するのが困難であったが、本発明のデータベース・マネージメントを用いれば、オブジェクトの情報をそのまま保存するので、そのような制限は特にない。この理由から、従来のRDBMSでは、クライアントが要求するオブジェクト構造を生成するために複数のテーブルを結合(JOIN)する必要が有り、データの生成にオーバーヘッドを生じているが、本発明のシステムはその限りに無い。また、新たにオブジェクトに対してデータ項目を追加する場合も、クライアント側の定義の修正のみで、サーバー側に全く影響を与えない。 In the conventional RDBMS, the database table is a two-dimensional table composed of columns and rows, and basically there are physical length and type restrictions for each field, and an array or multi-dimensional array is stored. Although it was difficult, if the database management of the present invention is used, the object information is stored as it is, so there is no particular limitation. For this reason, in the conventional RDBMS, it is necessary to join (JOIN) a plurality of tables in order to generate the object structure required by the client, and there is an overhead in data generation. There is no limit. In addition, when a new data item is added to an object, only the definition on the client side is modified and the server side is not affected at all.
これにより、クライアント・サーバー間のデータ通信効率は飛躍的に向上し、特にデータを取得する際のスループットは、約10倍程度の向上が期待できる。また仕様の変更がデータベース構造に与える影響が少ないため、容易に仕様追加が可能で、保守性にも優れている。
更に、本発明のクライアント・サーバー型のコンピュータ・システムでは、サーバー側のCPU及び主記憶の使用量が限定的なため、効率的なサーバー運用が実現可能となる。
As a result, the data communication efficiency between the client and the server is dramatically improved, and in particular, the throughput when acquiring data can be expected to be improved by about 10 times. In addition, changes in specifications have little effect on the database structure, so specifications can be easily added and maintainability is excellent.
Furthermore, in the client server type computer system of the present invention, since the usage amount of the CPU and the main memory on the server side is limited, an efficient server operation can be realized.
本発明を用いたコンピュータ・システムの概念図である。It is a conceptual diagram of the computer system using this invention. 本発明によるデータベースのアクセスの例である。It is an example of the access of the database by this invention. 本発明によるデータベースを用いた自動データベース構築システムである。1 is an automatic database construction system using a database according to the present invention.
本発明を実施するための最良の形態は、クライアント・サーバー型のコンピュータ・システムにおいて、クライアント・サーバー間のデータの通信速度が充分に高く、クライアント・コンピュータがサーバー・コンピュータに対して充分な処理能力を有している場合である。近年のネットワーク技術並びにコンピュータ性能の向上は充分にこの状況を満たしている。 In the client-server type computer system, the best mode for carrying out the present invention is that the data communication speed between the client and server is sufficiently high, and the client computer has sufficient processing capability for the server computer. This is the case. Recent improvements in network technology and computer performance sufficiently satisfy this situation.
本発明の実施例を、図面を参照して説明する。
図1は、本発明を用いたクライアント・サーバー型のコンピュータ・システムの概念図である。符号1は、本発明のデータベーステーブルであり、KVSでデータを保存する。符号2は、サーバー・コンピュータであり、符号1のデータベースシステムを搭載する。符号3は、クライアントの主記憶上に展開されるハッシュテーブルであり、符号4はクライアント・コンピュータを示す。ここで、符号3で示すハッシュテーブルはそれぞれ符号5で示す参照関係がある。それぞれのハッシュテーブルは、それに対応するサーバー上のデータベーステーブルと対の関係にあり、符号6で示すネットワーク接続で接続され、クライアント・コンピュータでの操作に必要且つ充分なデータの読込み及び書き込みを符号6な介して同期または非同期に行う。
Embodiments of the present invention will be described with reference to the drawings.
FIG. 1 is a conceptual diagram of a client server type computer system using the present invention. Reference numeral 1 denotes a database table according to the present invention, which stores data in KVS. Reference numeral 2 denotes a server computer, which is equipped with the database system indicated by reference numeral 1. Reference numeral 3 denotes a hash table developed on the main memory of the client, and reference numeral 4 denotes a client computer. Here, the hash table indicated by reference numeral 3 has a reference relationship indicated by reference numeral 5. Each hash table is paired with the corresponding database table on the server, and is connected by a network connection denoted by reference numeral 6 to read and write data necessary and sufficient for operations on the client computer. It can be done synchronously or asynchronously.
この時、クライアント・コンピュータとサーバー・コンピュータの通信は、INDEX(キーの取得),GET(読込み),PUT(書込み),SELECT(選択)といった非常にシンプルな構成となり、高いスループットを容易に実現できる。クライアント・コンピュータでは、一度取得したデータをそのキーを用いたハッシュテーブルに格納する事で、一度呼び出されたデータは再利用する。特に参照の多いテーブルでは、特にメモリーの使用量を増やす事無くデータ構造を保持する事が可能である。 At this time, the communication between the client computer and the server computer has a very simple configuration such as INDEX (key acquisition), GET (read), PUT (write), and SELECT (selection), and can easily realize high throughput. . In the client computer, once acquired data is stored in a hash table using the key, and the data once called is reused. Especially for tables with many references, it is possible to maintain the data structure without increasing the amount of memory used.
この実施例の、クライアント・システムは、Javascriptで動作し、サーバー側は、PHPで動作している。この場合、クライアントはサーバーに対してAJAX(Asynchronous Javascript XMLの略)通信を行う。クライアントの主記憶に展開されるオブジェクトデータは、JSON(JavaScript Object Notation)に変換することにより、効率よくテキスト化される。そのテキスト化された情報をAJAX通信により、サーバーに受け渡す。サーバーは一元性のあるキーを生成しオブジェクトに付加してデータベースに保存するとともに、得られたキーを含むオブジェクトをテキスト化して、クライアントに渡す。クライアントは、受け取ったデータをEVAL()関数を通して再度オブジェクト化して、主記憶上にハッシュテーブルを介して展開する。これを繰り返す事により、参照構造をもったデータをあたかも、クライアント・コンピュータの主記憶上で展開していることと同じ状況を作り出す事が可能となる。 In this embodiment, the client system operates with JavaScript, and the server side operates with PHP. In this case, the client performs AJAX (abbreviation of Asynchronous Javascript XML) communication with the server. Object data developed in the main memory of the client is converted into text efficiently by converting it into JSON (Java Script Object Notation). The text information is transferred to the server by AJAX communication. The server generates a centralized key, adds it to the object, stores it in the database, and converts the object including the obtained key into text and passes it to the client. The client re-objects the received data through the EVAL () function and expands it in the main memory via a hash table. By repeating this, it is possible to create the same situation as if the data having the reference structure is expanded on the main memory of the client computer.
図2は、本発明によるデータベースのアクセスの例である。符号7・符号9・符号11はクライアント・コンピュータからの要求(リクエスト)とその返答(レスポンス)を矢印(→)で分割して示し、符号8・符号10・符号12はそれに対するサーバー側のデータベーステーブルの内容を示す。 FIG. 2 is an example of database access according to the present invention. Reference numerals 7, 9, and 11 indicate requests (requests) from the client computer and their responses (responses) divided by arrows (→), and reference numerals 8, 10, and 12 indicate the database on the server side corresponding thereto. Indicates the contents of the table.
符号7及び符号8は、基本的なKVSアクセスを示す。フィールドの名前である_KEY_は、一元性を保証されるプライマリーキーを格納するフィールドであり、_VALUE_はバリュー(値)を格納するフィールドであり、この名前はシステムとして既に定義されているものとする。符号7のPUTで始まる3行は書き込みを表し、異なる3つの新規データをデータベースに挿入している。データベースに挿入される前に_KEY_で示す、ユニークなキーが割り当てられるとともに、バリューにもその値が追加される。PUTによるレスポンスは、キーを含めたバリューが戻る。符号7のGETで始まる後半の3行では、_KEY_の値を使ってバリューを読み出している。この例は非常に単純な例であるが実際には、オブジェクトとして、配列やバイナリーデータ等複雑な情報を持つことが可能である。この時、データベーステーブルは、本発明請求項1で請求する構造をとる。 Reference numerals 7 and 8 indicate basic KVS access. It is assumed that _KEY_, which is the name of the field, is a field for storing a primary key that guarantees unity, and _VALUE_ is a field for storing a value (value), and this name is already defined as a system. Three lines beginning with PUT of reference numeral 7 indicate writing, and three different new data are inserted into the database. A unique key indicated by _KEY_ is assigned before being inserted into the database, and the value is also added to the value. The response including PUT returns the value including the key. In the last three rows starting with GET of reference numeral 7, the value is read using the value of _KEY_. This example is a very simple example, but in practice, it is possible to have complex information such as an array or binary data as an object. At this time, the database table has the structure claimed in claim 1 of the present invention.
次に、符号9・符号10は、単純なKVSに対して″name″をインデックスとして追加した例である。この場合、該当するテーブルに対して、″name″は、インデックスである事はシステムとして既に定義されているものとする。符号9のPUTで始まる3行は、符号7のリクエストと同じであり、レスポンスも同じである。しかしながらデータベース上には、バリューから抽出された″name″がインデックスとして追加される。それにより、符号9の4行目のSELリクエストにより、″name″が″A″で始まるレコードの選択を可能にし、この例では2つのレコードを取得している。つまり、キー・バリュー以外にインデックスを持つ事により、KVSの機能を拡張しているにもかかわらず、予め″name″がインデックスである事を手続きしておけば、クライアント側のリクエストとレスポンスは特に変わる事がない。この時、データベーステーブルは、本発明請求項2及び請求項3で請求する構造をとる。インデックスは、必要に応じて複数個配置する事により、複雑な選択並び替え等の機能が実現される。 Next, reference numerals 9 and 10 are examples in which “name” is added as an index to a simple KVS. In this case, it is assumed that “name” is an index for the corresponding table. The three lines starting with PUT of reference numeral 9 are the same as the request of reference numeral 7, and the response is also the same. However, “name” extracted from the value is added as an index on the database. As a result, the SEL request on the fourth line of reference numeral 9 enables selection of records whose “name” starts with “A”, and in this example, two records are acquired. In other words, even if the function of KVS is expanded by having an index other than the key and value, if the procedure that “name” is an index is processed in advance, the client side request and response are particularly There is no change. At this time, the database table has the structure claimed in claims 2 and 3 of the present invention. By arranging a plurality of indexes as necessary, a function such as a complicated selection rearrangement is realized.
更に、符号11・符号12は、符号9・符号10に対して追加のデータベースアクセスをした例である。符号11のPUTで始まる最初の2行は、レコードの更新の例であり、クライアント側からサーバーに送られるデータに_KEY_が存在しているので、データベースのレコードが上書きされる。この実施例の仕様では、存在する_VALUE_に項目を追加する形でPUTしているため、以前から存在していたオブジェクト内の要素″prop1″,″prop2″は消されない。第3行は_KEY_が存在しないため、新規データとして扱われ、データベースに挿入されている。 Further, reference numerals 11 and 12 are examples in which additional database access is made to reference numerals 9 and 10. The first two lines starting with PUT of reference numeral 11 are examples of record update. Since _KEY_ exists in data sent from the client side to the server, the record in the database is overwritten. In the specification of this embodiment, since PUT is performed by adding an item to existing _VALUE_, the elements “prop1” and “prop2” in the existing object are not deleted. Since the third row does not have _KEY_, it is treated as new data and inserted into the database.
図3は、本発明を使用したデータベース自動生成システムの概略図である。本発明を利用することにより、データベースアクセスは、非常に単純となり、テーブルの生成を含めすべて自動化が可能となる。まず、符号13の本発明のデータベースに対し、符号14の抽象化されたデータベースのアクセスルーチン(PDO)を構築し、CREATE(テーブル生成),DROP(テーブル消去),INDEX(キーの取得),GET(データ読込み),PUT(データ書込み),SEL(データ選択取得),DEL(データ削除)等の基本機能を実装する。この時、各テーブルでインデックスとなる要素並びにキーとバリューのフィールド名は符号17の定義ファイルに記述しておく。符号14のPDOに対して、クライアント側には、符号15のAJAXインターフェスを構築し、符号16のJavascriptプログラムを実行可能にする。このようにすれば、AJAX系のプログラムはすべてクライアント側からの指示で動作させることが可能になり、符号17の定義ファイルに、各テーブルのオブジェクトの要素の詳細情報を記述する事により、データベースの自動生成システムが構築される。さらにサーバー側でバッチシステムとして動作する符号18のPHPプログラムに対しても符号19で示すアクセスルーチンを用意すれば、符号17の定義ファイルを共有することで、クライアント側のAJAXシステムとサーバー側のバッチシステムが等価の環境で動作しうる。 FIG. 3 is a schematic diagram of a database automatic generation system using the present invention. By using the present invention, database access becomes very simple, and everything including table generation can be automated. First, an abstract database access routine (PDO) 14 is constructed for the database 13 according to the present invention, and CREATE (table generation), DROP (table deletion), INDEX (key acquisition), GET Implements basic functions such as (data reading), PUT (data writing), SEL (data selection acquisition), and DEL (data deletion). At this time, the index element and the key and value field names in each table are described in the definition file 17. On the client side, an AJAX interface 15 is constructed on the client side for the PDO 14, and a Javascript program 16 can be executed. In this way, all AJAX-type programs can be operated according to instructions from the client side, and by describing the detailed information of the elements of the objects of each table in the definition file 17, the database An automatic generation system is constructed. Furthermore, if an access routine indicated by reference numeral 19 is also prepared for the PHP program indicated by reference numeral 18 that operates as a batch system on the server side, the definition file indicated by reference numeral 17 is shared so that the client-side AJAX system and the server-side batch can be shared. The system can operate in an equivalent environment.
本発明は、従来RDBMSを使用していた販売管理・財務会計・給与人事等の業務関連ソフトウェア等の広いアプリケーションに利用が可能であり、従来のRDBMSを使用したシステムと比較して、高いカスタマイズ及び保守性能を有した上で、実行速度を向上させることができる。また一般的なクライアント・サーバー型のコンピュータ・システムやASP(Application Service Provider)で代表されるWEBベースのシステムの全体または一部に利用可能で、その応用範囲は広い。 The present invention can be used for a wide range of applications such as business management software such as sales management, financial accounting, and payroll personnel, which conventionally used RDBMS. Compared with a system using conventional RDBMS, Execution speed can be improved while maintaining maintenance performance. Further, it can be used for all or part of a general client-server type computer system or a WEB-based system represented by ASP (Application Service Provider), and its application range is wide.
また、KVS型のデータベースは、カプセル化が容易で、離散的なデータベースの構築が可能である。更新性の高く容量が大きいデータベースはクラウド・コンピュータに設置し、機密性が高く重要な情報を含むデータベースはインハウスのサーバーに設置して、システムを離散的に稼働させることが可能となる。これはデータの結合(JOIN)等を必要とする従来のRDBMSには困難だった問題を解決するものであり、今後アプリケーションのクラウド・コンピューティング化に拍車をかけうる発明である。 A KVS database is easy to encapsulate and a discrete database can be constructed. A database with high update capacity and a large capacity can be installed on a cloud computer, and a database containing highly confidential and important information can be installed on an in-house server so that the system can be operated discretely. This solves a problem that is difficult for a conventional RDBMS that requires data combination (JOIN), and is an invention that can spur the application of cloud computing to applications in the future.
1  本発明のデータベーステーブル
2  サーバー・コンピュータであり、符号1のデータベースシステムを搭載する。
3  クライアントの主記憶上に展開されるハッシュテーブル
4  クライアント・コンピュータ
5  符号3のハッシュテーブルの参照関係
6  ハッシュテーブルとそれに対応するサーバー上のデータベースとのネットワーク接続
7  クライアント・コンピュータからの要求とその返答①
8  符号7に対するサーバー側のデータベースの状態を示す。
9  クライアント・コンピュータからの要求とその返答②
10 符号9に対するサーバー側のデータベースの状態を示す。
11 クライアント・コンピュータからの要求とその返答③
12 符号11に対するサーバー側のデータベースの状態を示す。
13 本発明の構造な有するデータベース及びデータベーステーブル
14 抽象化された本発明のデータベースへのアクセスルーチン
15 クライアント・コンピュータに対するAJAXインターフェス
16 Javascriptで記述されたクライアント・コンピュータで動作するプログラム
17 各データベーステーブルのインデック情報を記述した定義ファイル
18 サーバー・コンピュータでバッチとして動作するPHPプログラム
19 サーバー・コンピュータのI/Oアクセスルーチン
1 Database table 2 of the present invention A server computer, which is equipped with a database system 1.
3 Hash table expanded on the main memory of the client 4 Client computer 5 Reference relationship of the hash table of code 3 6 Network connection between the hash table and the corresponding database on the server 7 Request from the client computer and its response ①
8 Indicates the state of the database on the server side for reference numeral 7.
9 Requests and responses from client computers
10 Indicates the state of the database on the server side for symbol 9.
11 Request from client computer and its response
12 Indicates the state of the database on the server side for reference numeral 11.
13 Database and database table having the structure of the present invention 14 Abstract Access routine to database of the present invention 15 AJAX interface for client computer 16 Program 17 operating in client computer described in JavaScript 17 Each database table Definition file describing index information 18 PHP program that operates as a batch on server computer 19 I / O access routine of server computer

Claims (6)

  1. 複数のフィールドを有するレコードから構成されるデータベーステーブルにおいて、各レコードが少なくとも2個以上のフィールドA・Bから構成され、且つフィールドAが少なくとも1個のキーとそれに対する参照値から構成されるキー・バリュー型の参照構造で記述され、且つ前該レコードのプライマリーキーであるフィールドBの情報を前述のフィールドAの参照構造に有していることを特徴とするデータベーステーブル。 In a database table composed of records having a plurality of fields, each record is composed of at least two or more fields A and B, and field A is composed of at least one key and a reference value corresponding thereto. A database table described in a value type reference structure and having the information of field B, which is the primary key of the previous record, in the reference structure of field A described above.
  2. 複数のフィールドを有するレコードから構成されるデータベーステーブルにおいて、各レコードが少なくとも3個以上のフィールドA・B・Cから構成され、且つその1個のフィールドAが、少なくとも1個のキーとその参照値から構成されるキー・バリュー型の参照構造で記述され、且つ前該レコードのプライマリーキーであるフィールドBの情報、及びフィールドA・フィールドB以外の少なくとも1個以上のフィールドC群の情報を前述のフィールドAの参照構造に有していることを特徴とするデータベーステーブル。 In a database table composed of records having a plurality of fields, each record is composed of at least three fields A, B, and C, and one field A includes at least one key and its reference value. The information of the field B that is described in the key-value type reference structure composed of the above and is the primary key of the previous record, and the information of at least one field C group other than the fields A and B is described above. A database table characterized by having a reference structure of field A.
  3. 複数のフィールドを有するレコードから構成されるデータベーステーブルにおいて、各レコードが少なくとも3個以上のフィールドA・B・Cから構成され、且つフィールドAが、少なくとも1個のキーとその参照値から構成されるキー・バリュー型の参照構造で記述され、且つ前該レコードのプライマリーキーであるフィールドBの情報、及びフィールドA・フィールドB以外の少なくとも1個以上のインデックス情報を有するフィールドC群の情報を前述のフィールドAの参照構造に有していることを特徴とするデータベーステーブル。 In a database table composed of records having a plurality of fields, each record is composed of at least three fields A, B, and C, and field A is composed of at least one key and its reference value. The information of field B, which is described in the key-value type reference structure and is the primary key of the previous record, and the information of field C group having at least one index information other than field A and field B, is described above. A database table characterized by having a reference structure of field A.
  4. 複数のデータベーステーブルを有するデータベース・マネージメント・システムにおいて、請求項2または請求項3のデータベーステーブルを含み、レコードの書込み時に前述のフィールドAの情報から、プライマリーキーであるフィールドBの情報と、フィールドA・フィールドB以外の少なくとも1個以上のフィールドC群の情報を抽出することにより該当するレコード全体の情報を構築すること、且つレコードの選択時にインデックス情報を有するフィールドC群の情報によりフィールドAの情報を選択取得することを特徴とするデータベース・マネージメント・システム。 In a database management system having a plurality of database tables, the database table of claim 2 or claim 3 is included, and when the record is written, the information of the field B as the primary key and the field A from the information of the field A described above are written. -The information of the entire record is constructed by extracting the information of at least one field C group other than the field B, and the information of the field A by the information of the field C group having index information when selecting the record A database management system characterized by selectively acquiring.
  5. クライアント・コンピュータが必要とするデータをサーバー・コンピュータが供給するクライアント・サーバー型のコンピュータ・システムにおいて、請求項4のデータベース・マネージメント・システムをサーバー・コンピュータに有し、且つ前該クライアント・コンピュータと前該サーバー・コンピュータとの間の通信を、(1)書込みの場合請求項3のフィールドAの情報を伝達することで行い、(2)読込みの場合請求項3のフィールドBの情報を伝達することで行い、(3)選択読込みの場合請求項3のフィールドC群の選択に必要な情報を伝達することで行うことを特徴とするクライアント・サーバー型のコンピュータ・システム。 5. A client server type computer system in which a server computer supplies data required by a client computer, wherein the server computer has the database management system according to claim 4, and Communication with the server computer is carried out by (1) transmitting the field A information of claim 3 when writing, and (2) transmitting the field B information of claim 3 when reading. (3) In the case of selective reading, it is performed by transmitting information necessary for selecting the field C group of claim 3.
  6. 請求項5のクライアント・サーバー型のコンピュータ・システムにおいて、クライアント・コンピュータからのデータの書込みの要求の際に、サーバーに送られる請求項3の前該フィールドAに対するバリューの情報に、請求項3の前該フィールドBに書き込まれるべきプライマリーキーの情報が存在しない場合、サーバー・コンピュータが排他的なキーを生成して、バリューの情報に付加するとともに、その情報な前該データベースのレコードに新規レコードとしてその情報を書き込むことを特徴とするクライアント・サーバー型のコンピュータ・システム。 6. In the client server type computer system according to claim 5, the value information for the field A prior to claim 3 is sent to the server when a data write request is made from the client computer. If there is no primary key information to be written in the previous field B, the server computer generates an exclusive key and adds it to the value information. A client-server computer system characterized by writing the information.
PCT/JP2010/073265 2010-12-16 2010-12-16 Key-value index store type database system WO2012081131A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/073265 WO2012081131A1 (en) 2010-12-16 2010-12-16 Key-value index store type database system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/073265 WO2012081131A1 (en) 2010-12-16 2010-12-16 Key-value index store type database system

Publications (1)

Publication Number Publication Date
WO2012081131A1 true WO2012081131A1 (en) 2012-06-21

Family

ID=46244257

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/073265 WO2012081131A1 (en) 2010-12-16 2010-12-16 Key-value index store type database system

Country Status (1)

Country Link
WO (1) WO2012081131A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015526832A (en) * 2012-12-03 2015-09-10 ヴイエムウェア インコーポレイテッドVMware,Inc. Distributed key value store

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005284575A (en) * 2004-03-29 2005-10-13 Fujitsu Ltd Structured document storing system with tag, and program and method therefor
JP2007094733A (en) * 2005-09-28 2007-04-12 Hitachi Ltd Information processing apparatus, schema preparation method, and program

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005284575A (en) * 2004-03-29 2005-10-13 Fujitsu Ltd Structured document storing system with tag, and program and method therefor
JP2007094733A (en) * 2005-09-28 2007-04-12 Hitachi Ltd Information processing apparatus, schema preparation method, and program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KOTARO SUZUMURA: "Ikinokoreru Gijutsusha no Hissu Skill Application/Data/Infrastructure Imadoki no System Sekkei Sokushu Guide", DB MAGAZINE, vol. 19, no. 6, 1 October 2009 (2009-10-01), pages 34 - 41 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015526832A (en) * 2012-12-03 2015-09-10 ヴイエムウェア インコーポレイテッドVMware,Inc. Distributed key value store

Similar Documents

Publication Publication Date Title
US10872093B2 (en) Dynamically switching between data sources
JP6617117B2 (en) Scalable analysis platform for semi-structured data
JP6113693B2 (en) Background format optimization for enhanced SQL-like queries in Hadoop
CA2977042C (en) System and method for generating an effective test data set for testing big data applications
US9805080B2 (en) Data driven relational algorithm formation for execution against big data
JP6416194B2 (en) Scalable analytic platform for semi-structured data
Gorton et al. Distribution, data, deployment: Software architecture convergence in big data systems
Karnitis et al. Migration of relational database to document-oriented database: Structure denormalization and data transformation
US20170351989A1 (en) Providing supply chain information extracted from an order management system
US20070038658A1 (en) Communication optimization for parallel execution of user-defined table functions
CN104767813A (en) Public bank big data service platform based on openstack
CN106104526A (en) The transparent discovery of semi-structured data pattern
WO2010042238A1 (en) System and method for data warehousing and analytics on a distributed file system
US20180253478A1 (en) Method and system for parallelization of ingestion of large data sets
CN104133891A (en) Method for storing massive structural data based on relational database
CN110555178B (en) Data proxy method and device
Bante et al. Big data analytics using hadoop map reduce framework and data migration process
WO2012081131A1 (en) Key-value index store type database system
Raj et al. A Review on Hadoop Eco System for Big Data
Gašpar et al. Integrating Two Worlds: Relational and NoSQL
Dutta Distributed computing technologies in big data analytics
Chai et al. A document-based data warehousing approach for large scale data mining
Singh NoSQL: A new horizon in big data
US11928125B2 (en) Cleaning and organizing schemaless semi-structured data for extract, transform, and load processing
Hassan et al. MapReduce Programs Simplification using a Query Criteria API

Legal Events

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

Ref document number: 10860702

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10860702

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP