JP5919529B2 - Data storage system - Google Patents
Data storage system Download PDFInfo
- Publication number
- JP5919529B2 JP5919529B2 JP2011203488A JP2011203488A JP5919529B2 JP 5919529 B2 JP5919529 B2 JP 5919529B2 JP 2011203488 A JP2011203488 A JP 2011203488A JP 2011203488 A JP2011203488 A JP 2011203488A JP 5919529 B2 JP5919529 B2 JP 5919529B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- virtual server
- stored
- storage
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
本発明は、分散データベースにデータを格納するデータ格納システムに関するものである。 The present invention relates to a data storage system for storing data in a distributed database.
従来から、インターネットのような電気通信回線を通してアクセスする様々なデータベースが運営されている。この種のデータベースには、地球上の多地点の気象に関する観測データを集約するデータベースや、電気やガスなどの需要家から検針データを収集するデータベースのように、多数台の端末からデータを繰り返して収集することが必要なものがある。 Conventionally, various databases accessed through a telecommunication line such as the Internet have been operated. In this type of database, data from many terminals is repeated, such as a database that collects observation data related to weather at multiple points on the earth, and a database that collects meter reading data from consumers such as electricity and gas. Some things need to be collected.
この種のデータベースが扱うデータの量は膨大であるから、1台のコンピュータシステムでデータベースを構築するのではなく、複数台のコンピュータシステムにデータを分散させて格納することが考えられている(たとえば、特許文献1参照)。したがって、この種のデータベースを管理するデータベース管理システムは、物理的に実在している多数台のコンピュータシステムにデータを分散させて保存する機能と、複数台のコンピュータシステムを統合して1台のコンピュータシステムのように扱う機能とを備えている必要がある。すなわち、データが分散して記憶されるにもかかわらず、利用者に複数台のコンピュータを意識させないようにする必要がある。この種の技術は分散データーベースと呼ばれている。 Since the amount of data handled by this type of database is enormous, it is conceived that the database is distributed and stored in a plurality of computer systems instead of constructing the database with one computer system (for example, , See Patent Document 1). Therefore, a database management system for managing this kind of database integrates a function of storing data in a large number of physically existing computer systems and a plurality of computer systems into one computer. It is necessary to have a function to handle like a system. That is, it is necessary to prevent the user from being conscious of a plurality of computers even though the data is stored in a distributed manner. This type of technology is called a distributed database.
上述した分散データベースには、ハードウェア資源の異なるコンピュータシステムが混在していることがある。データベースシステムでは、ハードウェア資源のうち、とくにCPU(Central Processing Unit)の性能と記憶装置の記憶容量との相違がスループットに大きく影響する。そのため、分散データベースシステムを構成しているコンピュータシステムにおけるハードウェア資源のばらつきに起因して、データを格納する際の書込時間やデータを提供する際の応答時間にばらつきが生じることがある。 In the distributed database described above, computer systems having different hardware resources may be mixed. In the database system, among the hardware resources, the difference between the performance of a CPU (Central Processing Unit) and the storage capacity of the storage device greatly affects the throughput. Therefore, due to variations in hardware resources in computer systems constituting the distributed database system, variations may occur in the writing time when storing data and the response time when providing data.
また、分散データベースシステムを構成している複数のコンピュータシステムにデータを格納する際に、単一のコンピュータシステムにアクセスが集中する場合があり、この場合には該当するコンピュータシステムがボトルネックになる。すなわち、分散データベースシステムの全体としてのスループットが低下することになる。 Further, when data is stored in a plurality of computer systems constituting a distributed database system, access may be concentrated on a single computer system. In this case, the corresponding computer system becomes a bottleneck. That is, the overall throughput of the distributed database system is reduced.
本発明は、分散データベースシステムを構成している複数のコンピュータシステムにハードウェア資源のばらつきがあってもボトルネックの発生が抑制されるようにし、結果的に、ハードウェア資源の劣るコンピュータシステムが混在していてもスループットの低下が生じにくい分散データベースを構築することを可能にしたデータ格納システムを提供することを目的とする。 The present invention makes it possible to suppress the occurrence of a bottleneck even if there are variations in hardware resources among a plurality of computer systems constituting a distributed database system. As a result, computer systems with inferior hardware resources are mixed. It is an object of the present invention to provide a data storage system that makes it possible to construct a distributed database that is unlikely to cause a decrease in throughput.
本発明に係るデータ格納システムは、複数台のコンピュータシステムを用いて構成した分散データベースにデータを格納するデータ格納システムであって、分散データベースの構成単位となる互いに記憶容量が等しい複数の仮想サーバと、仮想サーバの中からデータを格納する仮想サーバを決定する選別手段とを備え、仮想サーバは、データを格納する記憶領域を互いに等しい単位サイズである複数のテーブルに分割したデータ格納部を備え、仮想サーバの記憶容量は、複数台のコンピュータの記憶容量のうちの最小の記憶容量を上限とするようにデータ格納部の記憶容量を定めてあり、選別手段は、データが属する集合を識別するように数値で表されたデータIDを用いて、同じ集合に属するデータが同じ仮想サーバかつ同じテーブルに格納されるように、データを格納する仮想サーバとテーブルとを決定し、分散データベースに格納するデータを、仮想サーバに分散させ、かつテーブルに分散させて格納することを特徴とする。 A data storage system according to the present invention is a data storage system for storing data in a distributed database configured using a plurality of computer systems, and includes a plurality of virtual servers having the same storage capacity as constituent units of the distributed database, Selecting means for determining a virtual server for storing data from the virtual server, the virtual server including a data storage unit that divides a storage area for storing data into a plurality of tables having the same unit size, The storage capacity of the virtual server is determined so that the minimum storage capacity of the storage capacity of the plurality of computers is the upper limit, and the selecting means identifies the set to which the data belongs. Data belonging to the same set is stored in the same virtual server and the same table using the data ID expressed numerically. As will be, to determine a virtual server and a table for storing data, the data to be stored in distributed databases, is dispersed in the virtual server, and is dispersed in the table, characterized in that stored.
このデータ格納システムにおいて、データ格納部は、データを種類ごとに記憶する複数の種類別記憶部を備えることが好ましい。 In this data storage system, the data storage unit preferably includes a plurality of types of storage units that store data for each type.
このデータ格納システムにおいて、分散データベースは、データ格納部へのデータの格納、データ格納部からのデータの提供、データ格納部のデータの削除を行う管理機能部を備えることが好ましい。 In this data storage system, distributed database, storing data in the data storage unit, provides the data from the data storage unit, it is preferable to provide a management function unit that performs deletion of data in the data storage unit.
このデータ格納システムにおいて、データには、当該データが属する集合を識別するデータIDが付加されており、選別手段は、データIDに対して、データIDを仮想サーバの個数で除した剰余で仮想サーバを特定し、かつデータIDをテーブルの個数で除した剰余でテーブルを特定することにより、同じデータIDを持つデータが同じテーブルに格納されるように、データを分散させて格納することが好ましい。 In this data storage system, a data ID for identifying a set to which the data belongs is added to the data, and the selecting means uses the remainder obtained by dividing the data ID by the number of virtual servers with respect to the data ID. And by specifying the table by the remainder obtained by dividing the data ID by the number of tables, it is preferable to store the data in a distributed manner so that data having the same data ID is stored in the same table.
本発明の構成によれば、分散データベースシステムを構成している複数のコンピュータシステムにハードウェア資源のばらつきがあってもボトルネックの発生が抑制され、結果的に、ハードウェア資源の劣るコンピュータシステムが混在していてもスループットの低下が生じにくい分散データベースを構築することが可能になる。 According to the configuration of the present invention, even if there are variations in hardware resources among a plurality of computer systems constituting a distributed database system, occurrence of a bottleneck is suppressed, resulting in a computer system with inferior hardware resources. It is possible to construct a distributed database that is less likely to cause a decrease in throughput even if they are mixed.
以下に説明する実施形態は、データベースシステムが、電気、ガス、水道などの需要家に設置されたメータの検針値を電気通信回線を通して収集した検針データを格納し、格納されたデータを提供する遠隔検針システムに用いられる場合を想定する。遠隔検針システムでは、一定時間(たとえば、10分)ごとに得られる検針データを格納することが要求され、また、検針データを需要家ごとに仕分けて管理する必要がある。そのため、本実施形態は、一定時間毎に収集される検針データがレコードとして格納される多数個のテーブルをデータベースシステムが備え、1つの需要家に対応するレコードは、1つのテーブルにまとめて格納されるようにしている。各テーブルの記憶領域は互いに等しい単位サイズにしてある。また、1つのテーブルには複数の需要家のレコードが登録される。すなわち、各需要家の検針データがテーブルに仕分けられる。 In an embodiment described below, a database system stores meter reading data obtained by collecting meter reading values of meters installed in consumers such as electricity, gas, and water through an electric communication line, and provides stored data. The case where it is used for a meter-reading system is assumed. In the remote meter reading system, it is required to store meter reading data obtained every certain time (for example, 10 minutes), and it is necessary to sort and manage meter reading data for each customer. Therefore, in this embodiment, the database system includes a large number of tables in which meter-reading data collected at regular intervals is stored as records, and records corresponding to one customer are stored together in one table. I try to do it. The storage area of each table has the same unit size. In addition, a plurality of customer records are registered in one table. That is, meter reading data of each customer is sorted into a table.
なお、以下に説明する実施形態は、データベースシステムの用途を遠隔検針システムに限定する趣旨ではなく、1つのテーブルに同種のレコードが多数個格納され、かつレコードの仕分けが必要な用途であれば、同様の技術を採用可能である。このようなデータを扱う用途には、たとえば、多数の観測点について気象条件の観測データを格納する用途、多数の設備について動作状態の監視データを格納する用途、防災や防犯のために多箇所の監視データを格納する用途などがある。これらの用途では、いずれもデータを定期的ないし不定期的にサンプリングして格納する必要がある。これらの用途は一例であってデータの定点観測を行う用途では、本実施形態において説明する技術でデータを格納することにより後述する効果が期待できる。 The embodiment described below is not intended to limit the use of the database system to a remote meter-reading system, but is a use in which many records of the same type are stored in one table and the sorting of records is necessary. Similar techniques can be employed. Applications that handle such data include, for example, the storage of meteorological observation data for a large number of observation points, the storage of operating status monitoring data for a large number of facilities, and multiple locations for disaster prevention and crime prevention. There are uses for storing monitoring data. In these applications, it is necessary to sample and store data regularly or irregularly. These applications are examples, and in applications where fixed point observation of data is performed, the effects described later can be expected by storing data using the technology described in this embodiment.
いま、データベースシステムに、多数個(たとえば、2500個)のテーブルが設けられ、各テーブルに、多数個(たとえば、100万個)のレコードが格納される場合を想定する。この数値例では、10分毎に検針データを収集し、1個の検針データを1レコードに対応付けている場合であって、100万の需要家に対応するとすれば、1つの需要家に対して2500レコードの検針データを格納することが可能である。つまり、約17日間の検針データが格納される。テーブルの容量の上限を2GBとすると、1レコードについて2kBを使用することが可能である。したがって、データベースシステムの全体で、検針データの格納に必要な容量は5TB(25億レコード)になる。 Assume that a large number (for example, 2500) tables are provided in the database system, and a large number (for example, 1 million) records are stored in each table. In this numerical example, meter reading data is collected every 10 minutes, and one meter reading data is associated with one record, and if it corresponds to 1 million customers, Thus, the meter reading data of 2500 records can be stored. That is, meter reading data for about 17 days is stored. If the upper limit of the table capacity is 2 GB, 2 kB can be used for one record. Therefore, the capacity required for storing meter-reading data in the entire database system is 5 TB (2.5 billion records).
上述のように、比較的短い時間間隔で大量のデータが発生する場合、1つのコンピュータシステムで対応しようとすると、データの収集や提供のための入出力がボトルネックになる上に、排他制御が行われる頻度が高くなる。そのため、入出力の速度や内部の処理能力が高い高性能のコンピュータシステムが必要になるという問題が生じる。この種の問題に対処する技術としては、分散データベースが知られている。すなわち、分散データベースは、複数のコンピュータシステムでそれぞれ構築されているデータベースを、1つのデータベースとみなしてアクセスするデータベース管理システムを備える。分散データベースを用いると、複数のコンピュータシステムにデータが分散して格納されるから、1つのコンピュータシステムで構築されたデータベースにおけるボトルネックを回避することが可能になる。 As described above, when a large amount of data is generated at a relatively short time interval, if one computer system tries to cope with it, input / output for collecting and providing data becomes a bottleneck, and exclusive control is performed. Increased frequency. Therefore, there arises a problem that a high-performance computer system having high input / output speed and high internal processing capability is required. A distributed database is known as a technique for dealing with this type of problem. That is, the distributed database includes a database management system that accesses a database constructed by a plurality of computer systems as a single database. When a distributed database is used, data is distributed and stored in a plurality of computer systems, so that it is possible to avoid a bottleneck in a database constructed with one computer system.
しかしながら、分散データベースを構築している物理的実体としてのコンピュータシステム(以下では、「実体システム」という)が複数存在している場合に、ハードウェア資源が異なる実体システムが混在することがある。データベースシステムでは、ハードウェア資源のうち、とくにCPU(Central Processing Unit)の性能と記憶装置の記憶容量との相違はスループットに大きく影響する。そのため、分散データベースシステムを構成している実体システムのハードウェア資源のばらつきに起因して、データを格納する際の書込時間やデータを提供する際の応答時間にばらつきが生じる。 However, when there are a plurality of computer systems (hereinafter referred to as “entity systems”) as physical entities constructing a distributed database, entity systems having different hardware resources may be mixed. In a database system, the difference between the performance of a CPU (Central Processing Unit) and the storage capacity of a storage device among hardware resources greatly affects the throughput. For this reason, due to variations in hardware resources of the entity systems constituting the distributed database system, variations occur in the writing time when storing data and the response time when providing data.
また、分散データベースシステムを構成している複数の実体システムにデータを格納する際に、単一の実体システムにアクセスが集中する場合があり、この場合には該当する実体システムがボトルネックになる。すなわち、分散データベースシステムの全体としてのスループットが低下することになる。 In addition, when data is stored in a plurality of entity systems constituting a distributed database system, access may be concentrated on a single entity system. In this case, the corresponding entity system becomes a bottleneck. That is, the overall throughput of the distributed database system is reduced.
本実施形態は、分散データベースシステムを構成している複数の実体システムにハードウェア資源のばらつきがあってもボトルネックの発生が抑制されるように、以下の構成を採用している。すなわち、以下の構成を採用することによって、ハードウェア資源の劣る実体システムが混在していてもスループットの低下が生じにくい分散データベースの提供が可能になる。 This embodiment employs the following configuration so that the occurrence of bottlenecks is suppressed even if there are variations in hardware resources among a plurality of entity systems that constitute the distributed database system. In other words, by adopting the following configuration, it is possible to provide a distributed database that is unlikely to cause a decrease in throughput even when a substantial system with inferior hardware resources is mixed.
本実施形態は、図2に示すように、複数台(図示例は3台)の実体システム21,22,23を備え、少なくとも1つの実体システム21と他の実体システム22,23とが電気通信回線NT1を通して通信する構成を用いて説明する。電気通信回線NT1はインターネットのような広域網である公衆網を想定しているが、専用網や構内網であってもよい。各実体システム21,22,23は、ハードディスク装置のような大容量の記憶装置と、プログラムを実行するCPUと、電気通信回線NT1を通して他装置と通信するための通信インターフェイス装置を備える。
As shown in FIG. 2, the present embodiment includes a plurality of (three in the illustrated example)
図1に示すように、実体システム21,22,23は、一体となってサーバ20として機能し、電気通信回線NT1に接続された利用者端末31をクライアントとしたクライアントサーバシステムを構築する。このクライアントサーバシステムは、プレゼンテーション層とアプリケーション層とデータ層とからなる3層アーキテクチャを有し、プレゼンテーション層は利用者端末31により実現されている。
As shown in FIG. 1, the
サーバ20はデータ層に対応し、図示例において、アプリケーション層に相当するサーバ32はサーバ20とは別に設けられている。サーバ32は、利用者端末31から要求された処理に対応した依頼をサーバ20に対して行い、サーバ20の応答を利用者端末31に返す機能を備える。
The
また、後述するように、サーバ20は、複数台の仮想的なサーバ(以下、「仮想サーバ」という)10に分割されており、サーバ32は、複数台の仮想サーバ10を統合して1台のサーバ20として動作させる機能を備える。この機能はサーバ32に設けられるAPI(Application Program Interface)により実現される。すなわち、サーバ32のAPIは、利用者端末31からの要求に対応する仮想サーバ10を選択する機能を実現するための関数ないし命令を備える。また、サーバ32のAPIは、複数台の実体システム21,22,23を1台のサーバ20として扱う機能も備える。
As will be described later, the
言い換えると、サーバ20は複数台の実体システム21,22,23により構成された分散データベースであって、仮想サーバ10は、このサーバ20の構成単位になる。本実施形態において、各仮想サーバ10は互いに記憶容量を等しくしてある。
In other words, the
本実施形態は遠隔検針システムを想定しているから、検針データを収集してサーバ20に格納させるための収集サーバ33も電気通信回線NT1に接続される。収集サーバ33には、複数の仮想サーバ10の中から検針データを格納する仮想サーバ10を決定する選別機能部(選別手段)331を実現するためのAPIが設けられる。選別機能部331の動作については後述する。
Since the present embodiment assumes a remote meter reading system, a
仮想サーバ10は、それぞれデータを格納するデータ格納部101と、データベース管理システムの機能を付与する管理機能部102とを備える。管理機能部102は、実体システム21,22,23に設けたAPIにより実現されている。管理機能部102は、データ格納部101へのデータの格納、記憶装置から読み出したデータの提供、記憶装置に格納されているデータの削除などのデータの操作を行う機能のほか、トランザクション管理を行う機能などを備える。管理機能部102におけるこの種の機能は一般的なデータベース管理システムが備えている機能と同様である。ただし、管理機能部102は、トランザクション管理を行うインターフェイス層1021、データベース制御を行う上位層1022、データベース操作を行う下位層1023を備えた3層で構成されている。
The
上述したようにサーバ20は、複数台(たとえば、100台)の仮想サーバ10に分割されているから、データ格納部101も分割される。また、仮想サーバ10ごとに管理機能部102を備えている。ここでは、説明を簡単にするために、データ格納部101と管理機能部102とが一対一に対応していると仮定する。言い換えると、仮想サーバ10ごとに、データ格納部101と管理機能部102とが1つずつ設けられていることになる。
As described above, since the
また、本実施形態では、仮想サーバ10において、データ格納部101の記憶容量が互いに等しく設定される。したがって、仮想サーバ10を構成する実体システム21,22,23の記憶装置の記憶容量にかかわらず、各仮想サーバ10のデータ格納部101の記憶容量は等しくなる。実体システム21,22,23では、一般的な傾向としては、処理能力が高いほど記憶装置の記憶容量が大きくなっている。このことから、仮想サーバ10においてデータ格納部101の記憶容量を等しくしたことにより、実体システム21,22,23の処理能力にかかわらず仮想サーバ10のスループットはほぼ等しくなると考えられる。
In the present embodiment, the storage capacities of the
1つの仮想サーバ10のデータ格納部101は、図3に示すように、記憶領域が互いに等しい単位サイズに分割され、各単位サイズの記憶領域がそれぞれテーブル1011を形成している。したがって、データ格納部101は、複数個(図示例では、100個)のテーブル1011を備える。図示例では、テーブル1011ごとに識別用の4桁の番号が割り当ててある。図示例では、テーブル1011を識別する番号は「0001」〜「2500」になっている。テーブル1011を識別する番号の下二桁は、仮想サーバ10を識別する番号に相当し、「01」…「99」「00」が用いられている。なお、「00」は100番に対応する。
As illustrated in FIG. 3, the
また、需要家には個別に識別情報(以下、「データID」という)が設定され、図示例は100万の需要家が存在している場合を想定している。すなわち、テーブル1011に登録されるレコードには100万種類のデータIDが付与される。ここに、同じデータIDのレコードは、同じテーブル1011に格納される。また、データIDは数値で設定されるか、適宜に数値に変換され、1番から順に1000000番まで付与される。ここでは、データが検針データであるから、データIDは需要家に対応しているが、一般化すれば、データIDは、データが属する集合を識別するために付与されていると言える。 Further, identification information (hereinafter referred to as “data ID”) is individually set for each consumer, and the illustrated example assumes a case where 1 million consumers exist. That is, 1 million kinds of data IDs are assigned to records registered in the table 1011. Here, records with the same data ID are stored in the same table 1011. Further, the data ID is set as a numerical value or is appropriately converted into a numerical value, and assigned from 1 to 1000000 in order. Here, since the data is meter reading data, the data ID corresponds to the customer. However, if generalized, it can be said that the data ID is given to identify the set to which the data belongs.
上述のような仮想サーバ10を構築するには、仮想サーバ10の個数、1つの仮想サーバ10の記憶容量、1つのテーブル1011の記憶容量などを定める必要がある。
In order to construct the
以下では、仮想サーバ10を適正に構築する手順を説明する。まず、データベースシステムの規模を定めるために、想定される需要家の数、すなわち、想定されるデータIDの最大数が必要である。
Hereinafter, a procedure for properly constructing the
また、仮想サーバ10は、実体システム21,22,23により構成されているから、1つの仮想サーバ10が複数の実体システム21,22,23に跨って構成されることは好ましくない。そのため、仮想サーバ10を構築するにあたっては、実体システム21,22,23ごとの記憶容量を知る必要がある。
Further, since the
仮想サーバ10におけるデータ格納部101の記憶容量は、実体システム21,22,23が備えている記憶装置のうちの最小の記憶容量が上限になる。したがって、実体システム21,22,23における記憶装置について想定される記憶容量の最小値を求め、この最小値を用いて仮想サーバ10におけるデータ格納部101の記憶容量が定められる。
The storage capacity of the
さらに、1つのテーブル1011に格納するデータ量(レコード数)およびテーブル1011の記憶容量は設計値であって、需要家から取得して格納するデータ量に応じて適宜に定められることになる。1つのテーブル1011に格納されるデータ量の上限値は、仮想サーバ10におけるデータ格納部101の記憶容量として定めた値になる。ただし、実際には、データ格納部101の記憶容量よりも十分に小さくすることが好ましい。
Furthermore, the amount of data (number of records) stored in one table 1011 and the storage capacity of the table 1011 are design values, and are appropriately determined according to the amount of data acquired and stored from a consumer. The upper limit value of the data amount stored in one table 1011 is a value determined as the storage capacity of the
以上のように、仮想サーバ10を用いた分散データベースを構築するには、設計条件として以下の情報が必要である。すなわち、想定されるデータIDの最大数、データIDごとに格納するレコード数、実体システムの記憶容量、仮想サーバ10の記憶容量、テーブル1011の記憶容量、テーブル1011に格納するレコードの最大数が必要である。
As described above, in order to construct a distributed database using the
これらのパラメータが得られると、仮想サーバ10の個数、テーブル1011の総数の最大値、1つの仮想サーバ10におけるテーブル1011の個数が求められる。また、実体システム21,22,23に対する仮想サーバ10の対応付けが可能になる。
When these parameters are obtained, the number of
いま、1つの仮想サーバ10の記憶容量をQ、テーブル1011の記憶容量をqとすると、1つの仮想サーバ10におけるテーブル1011の個数はQ/qになる。さらに、想定されるデータIDの最大数をN、1つのデータIDに関して格納するレコード数をm、1つのテーブル1011に格納するレコード数をnとすれば、必要なテーブル1011の個数はN×m/nになる。このことから、仮想サーバ10の個数は、(N×m/n)/(Q/q)=Nmq/nQになる。
If the storage capacity of one
図3に示す構成例は、想定される需要家(データID)の最大数Nを100万、テーブル1011の記憶容量qを2GB、テーブル1011に格納するレコード数nを100万としている。さらに、1つの需要家に関して格納するレコード数mは2500個にしている。図3に示す構成例では、複数台の実体システムにおける記憶容量の最小値を50GBとしている。そのため、仮想サーバ10の記憶容量Qも50GBとしている。なお、図2の構成例では3台の実体システム21,22,23を用いているが、図3の構成例は、さらに多くの実体システムを用いることになる。
In the configuration example shown in FIG. 3, the assumed maximum number N of customers (data IDs) is 1 million, the storage capacity q of the table 1011 is 2 GB, and the number of records n stored in the table 1011 is 1 million. Furthermore, the number of records m stored for one consumer is 2500. In the configuration example shown in FIG. 3, the minimum value of the storage capacity in a plurality of physical systems is 50 GB. Therefore, the storage capacity Q of the
これらの数値を上述した関係式に当てはめると、1つの仮想サーバ10に設けるテーブル1011の個数は、50GB/2GB=25個になる。また、データベースシステムを構成する仮想サーバ10の個数は、(1000000個×2500レコード×2GB)/(1000000×50GB)=100個になる。
When these numerical values are applied to the relational expression described above, the number of tables 1011 provided in one
ここで、データベースシステムを構成する実体システムとして、記憶容量が100GBの実体システムと、記憶容量が50GBの実体システムとを用いている場合を想定する。仮想サーバ10の記憶容量が50GBであるとすれば、1個の仮想サーバ10のみを構成する実体システムと、2個の仮想サーバ10を構成する実体システムとが混在することになる。
Here, it is assumed that an entity system having a storage capacity of 100 GB and an entity system having a storage capacity of 50 GB are used as the entity system constituting the database system. If the storage capacity of the
上述した構成例において、データベースシステムが、100GBの実体システムを40台用い、50GBの実体システムを20台用いて構成されていると仮定する。このように仮定すると、100個の仮想サーバ10のうち、20個が50GBの実体システムに割り当てられ、80個が100GBの実体システムに割り当てられる。この構成では、仮想サーバ10の識別に用いる番号は、複数個の仮想サーバ10を含む実体システムで構成された仮想サーバ10の間に、1個の仮想サーバ10のみを含む実体システムで構成された仮想サーバ10が並ぶように割り当てることが好ましい。
In the configuration example described above, it is assumed that the database system is configured using 40 100 GB entity systems and 20 50 GB entity systems. Assuming this, 20 of the 100
たとえば、複数の仮想サーバ10を含む実体システムを用いた仮想サーバ10を識別する番号に「01」〜「40」、「61」〜「99」「00」を用い、単体の仮想サーバ10を含む実体システムを用いた仮想サーバ10を識別する番号に「41」〜「60」を用いる。ここに、複数の仮想サーバ10を含む実体システムにおいて、仮想サーバ10を識別する番号は必ずしも連続していなくてもよいが、以下の説明では連続していると仮定して説明する。
For example, “01” to “40”, “61” to “99”, “00” are used as numbers for identifying the
ところで、上述の構成を備えるデータベースシステムを用いて検針データを格納する際に、検針データを格納するテーブル1011を決定する必要がある。すなわち、収集サーバ33の選別機能部331は、以下に説明する手順で、検針データを格納するための仮想サーバ10を求め、その仮想サーバ10に対応する実体システムを決定し、さらに、検針データを格納するテーブル1011を決定する。
By the way, when storing meter reading data using the database system having the above-described configuration, it is necessary to determine the table 1011 for storing meter reading data. That is, the
検針データを格納する仮想サーバ10は、数値で表されているデータIDを用いることにより簡単に決定することができる。すなわち、データIDをXとし、仮想サーバ10の個数をKとすると、当該需要家に対応する検針データを格納する仮想サーバ10を識別する番号は、XをKで除した剰余で求められる(つまり、X mod K)。ただし、剰余が0になる場合は、「00」の仮想サーバ10に割り当てられる。
The
たとえば、データID=50であれば、(50 mod 100)=50であるから、該当する検針データは50番の仮想サーバ10に格納される。また、たとえば、データID=36935であれば、(36935 mod 100)=35であるから、該当する検針データは35番の仮想サーバ10に格納される。仮想サーバ10の番号は、収集サーバ33の選別機能部331において、ルックアップテーブルなどによって、実体システムとの対応付けがなされているから、どの実体システムにアクセスするかが決められる。
For example, if the data ID = 50, (50 mod 100) = 50, so the corresponding meter reading data is stored in the 50th
次に、仮想サーバ10の中のどのテーブル1011に検針データを格納するかを決定する必要がある。上述した構成では、検針データを格納するテーブル1011の決定も容易であって、テーブル1011の総数をLとすると、データIDがXであるとき、XをLで除した剰余がテーブル1011の番号になる(つまり、X mod L)。ただし、剰余が0になる場合は、2500番のテーブル1011が割り当てられる。
Next, it is necessary to determine which table 1011 in the
たとえば、データID=50であれば、(50 mod 2500)=50であるから、該当する検針データは0050番のテーブル1011に格納される。また、たとえば、データID=36935であれば、(36935 mod 2500)=1935であるから、該当する検針データは1935番のテーブル1011に格納される。 For example, if the data ID = 50, (50 mod 2500) = 50, so the corresponding meter reading data is stored in the table 511 of the number 0050. Further, for example, if the data ID = 36935, (36935 mod 2500) = 1935, the corresponding meter reading data is stored in the 1935 table 1011 .
上述したように、検針データを格納する仮想サーバ10を定めることにより、検針データを格納する実体システムが求められるから、該当する実体システムの範囲で、仮想サーバ10およびテーブル1011に相当する記憶領域を抽出することができる。すなわち、検針データを適正なテーブル1011に格納することができる。
As described above, by defining the
このような手順で検針データを格納するテーブル1011を選択すると、データIDが連続した数値であるときには、図3に矢印で示しているように、各需要家の検針データが異なる仮想サーバ10に順に格納される。 When the table 1011 for storing meter reading data is selected in such a procedure, when the data ID is a continuous numerical value, as shown by arrows in FIG. Stored.
すなわち、1番の需要家の検針データは1番の仮想サーバ10に設けた0001番のテーブルに格納され、2番の需要家の検針データは2番の仮想サーバ10に設けた0002番のテーブルに格納される。同様にして、101番の需要家の検針データは1番の仮想サーバ10に設けた0101番のテーブル1011に格納され、2500番の需要家の検針データは100番の仮想サーバ10の2500番のテーブル1011に格納される。ここに、2501番の需要家の検針データは、1番の仮想サーバ10における0001番のテーブル1011に格納される。要するに、データIDを2500で除した剰余が1である検針データは、0001番のテーブル1011に格納される。このようにして、100万の需要家に対して、1つのテーブル1011には400の需要家の検針データが格納される。
That is, meter reading data of the first customer is stored in a table 0001 provided in the first
上述の動作により、あたかも複数台のハードディスクを用いてストライピングを行う場合のように、各需要家の検針データが異なる仮想サーバ10に振り分けて格納される。すなわち、アクセスが単一の仮想サーバ10に集中しなくなり、検針データの格納が高速化される。また、1つの仮想サーバ10の処理能力が比較的低い場合でもボトルネックが生じにくい分散データベースを構築することが可能になる。すなわち、本実施形態では、仮想サーバ10の記憶容量を等しくし、各仮想サーバ10の処理能力を平準化したことにより、検針データを格納する際の処理速度も平準化されることになる。
With the above-described operation, the meter reading data of each consumer is distributed and stored in different
上述した構成例では、需要家の検針データを扱うデータベースの例について説明したが、1つの計測点において複数種類のデータを取得して格納する用途もある。たとえば、需要家における電気の検針データだけではなく、ガスの検針データと水道の検針データとを併せて格納することが可能であり、また、需要家における防犯や防災に関連する情報を格納することなども可能である。つまり、データベースの用途は遠隔検針の用途に限定されず、数値データのほか、テキストデータ、音声データ、画像データなどの複数種類のデータを格納する場合もある。このように、種類の異なるデータを収集する場合は、データの種類が識別可能となるように、データが得られた場所などに関するデータIDだけではなくデータの種別名がデータに付加される。 In the above-described configuration example, an example of a database that handles customer meter reading data has been described. However, there is a use in which a plurality of types of data are acquired and stored at one measurement point. For example, it is possible to store not only electricity meter reading data at consumers but also gas meter data and water meter reading data together, and store information related to crime prevention and disaster prevention at consumers. Etc. are also possible. That is, the use of the database is not limited to the use of remote meter reading, and in addition to numerical data, a plurality of types of data such as text data, audio data, and image data may be stored. Thus, when collecting different types of data, not only the data ID relating to the location where the data is obtained but also the data type name is added to the data so that the data type can be identified.
ところで、この種のデータは、データの種類によって情報量が異なるから、複数種類のデータが混在している場合にデータを一括して扱うと、一括されたデータに含まれているデータの種類に応じて情報量に大きなばらつきが生じる。そのため、複数種類のデータが混在した状態で、この種のデータを一括して一つのテーブル1011に格納すると、仮想サーバ10のアクセス時間に大きなばらつきが生じる。
By the way, this type of data has a different amount of information depending on the type of data. Therefore, when multiple types of data are mixed, if the data is handled in a batch, the type of data included in the batched data is changed. Correspondingly, a large variation occurs in the amount of information. For this reason, when this type of data is stored in one table 1011 in a state where a plurality of types of data are mixed, the access time of the
そこで、図4に示すように、仮想サーバ10のデータ格納部101に、データの種類ごとに振り分けてデータを格納する複数個(図示例では3個)の種類別記憶部1012,1013,1014を設けることが望ましい。この場合、仮想サーバ10には、データの種類を振り分けるための分類機能部103が設けられる。分類機能部103は、管理機能部102と同様にAPIを用いて構成される。すなわち、収集サーバ33から仮想サーバ10に転送されたデータは、仮想サーバ10の分類機能部103においてデータの種類ごとに振り分けられ、それぞれの種類別記憶部1012,1013,1014に格納される。
Therefore, as shown in FIG. 4, in the
このように、異なる種類のデータが種類別記憶部1012,1013,1014に振り分けて格納される。したがって、データIDごとに情報量が異なっていても、種類別記憶部1012,1013,1014に格納されるデータについては、情報量(データ量)のばらつきが抑制される。すなわち、データIDごとに、種類別記憶部1012,1013,1014に格納するデータが対応付けられる場合と、データが対応付けられない場合があるが、データIDに格納するデータが対応付けられている場合、当該データの情報量のばらつきは少ない。したがって、各種類別記憶部1012,1013,1014にデータを格納する処理の負荷は、種類別記憶部1012,1013,1014ごとに、それぞれ平準化されることになる。
Thus, Ru stored different kinds of data are distributed by
なお、図4の構成例では、1つの仮想サーバ10に複数の種類別記憶部1012,1013,1014を設けているが、種類別記憶部1012,1013,1014ごとに異なる仮想サーバ10に分散させたり、種類別記憶部1012,1013,1014の一部を異なる仮想サーバ10に分散させてもよい。
In the configuration example of FIG. 4, a plurality of type-
ところで、データIDが増加し、予想したデータIDの最大数を上回るときには、データベースシステムの拡張が必要になる。上述の例では、データIDの最大数を100万としているが、さらに大規模にデータを収集しようとすれば、データIDの最大数を増加させることが必要になる。このような場合、上述した構成を1単位とし、必要なだけ単位数を増加させればよい。たとえば、1単位ごとにグループ名を付与し、グループ名として0から順に与えられる数値を用いる。上述した構成例では、100万個のデータIDについて、合計で25億レコードを格納することができるから、1グループ増加させると、200万個のデータIDについて、合計で50億レコードを格納することが可能になる。つまり、データIDが1〜1000000の範囲のデータはグループ「0」に格納し、データIDが1000001〜2000000の範囲のデータはグループ「1」に格納すればよい。この例において、グループ名は、データIDを1000000で除した商になる。
By the way, when the data ID increases and exceeds the predicted maximum number of data IDs, it is necessary to expand the database system. In the above example, the maximum number of data IDs is 1 million. However, in order to collect data on a larger scale, it is necessary to increase the maximum number of data IDs. In such a case, the above-described configuration may be one unit and the number of units may be increased as necessary. For example, a group name is assigned to each unit, and numerical values given in order from 0 are used as the group name. In the configuration example described above, a total of 2.5 billion records can be stored for 1 million data IDs, so when one group is added, a total of 5 billion records are stored for 2 million data IDs. Is possible. That is, data in the range of
上述のように1つのグループを単位として、グループ単位でデータベースを拡張することにより、収集サーバ33の選別機能部331は、グループを識別する手順を付加するだけで、他の手順を変更することなくデータを振り分けることが可能になる。なお、収集サーバ33の前段に、グループを分けるサーバを別に設けてもよい。すなわち、グループの仕分けを行う機能を専用に設け、収集サーバ33も含めてグループを追加することによって、データベースシステムの拡張を図ってもよい。
As described above, by expanding the database in units of one group, the
データベースシステムを拡張が必要になるか否かは、データIDの総数によるから、収集サーバ33あるいはサーバ32において、データIDの総数を取得する機能を設けておけばよい(通常は、キーボードなどの入力装置が操作されることにより取得する)。収集サーバ33あるいはサーバ32では、取得したデータIDの総数からデータの格納に必要なグループ数を算出し、算出したグループ数が現状のグループ数よりも多ければ、データベースの拡張を利用者端末31に指示するようにすればよい。
Whether or not the database system needs to be expanded depends on the total number of data IDs. Therefore, the
ところで、一般的には、データベースを拡張した場合、新規に設けられた実体システムにデータが格納されるから、新規の実体システムにアクセスが集中すると考えられる。しかしながら、本実施形態では、データIDを用いて複数の仮想サーバ10にデータを分散させて格納しているので、データベースを拡張した場合であっても、新規に設けられた実体システムにアクセスが集中することがない。つまり、実体システムへのアクセスが集中することがなく、仮想サーバ10へのアクセスが平準化され、結果的に仮想サーバ10の記憶容量やアクセスによる負荷が平準化できるのである。
By the way, in general, when the database is expanded, data is stored in a newly provided entity system, so that it is considered that access concentrates on the new entity system. However, in this embodiment, since data is distributed and stored in a plurality of
なお、上述の例においてデータを格納する際に、仮想サーバ10およびテーブル1011を決定し、該当する実体システムにデータを引き渡す技術について説明したが、データを抽出する際にも同様の手順を用いる。たとえば、特定のデータIDに関するデータが必要であれば、データIDを与えて仮想サーバ10およびテーブル1011を決定し、該当する実体システムのテーブル1011からデータを抽出すればよい。
In the above-described example, a technique has been described in which the
上述した構成例では、格納するデータの収集および格納されたデータの使用にあたり電気通信回線を用い、複数台の実体システムの間で電気通信回線を通して通信することにより実体システムを連携させているが、電気通信回線を用いて通信することは必須ではない。つまり、データの収集あるいは使用を実体システムに付設した入力装置や出力装置によって行うことが可能であり、また、複数の実体システムを空間的に近接させて配置するとともに連携可能となるように適宜のインターフェイス装置を介して接続してもよい。 In the above-described configuration example, the collection of data to be stored and the use of the stored data use the telecommunication line, and the entity system is linked by communicating through the telecommunication line between the plurality of entity systems. It is not essential to communicate using a telecommunication line. In other words, data can be collected or used by an input device or an output device attached to the entity system, and a plurality of entity systems can be arranged in close proximity and can be linked appropriately. You may connect via an interface apparatus.
なお、管理機能部102を構成するAPIに、上述したデータベースシステムに関する種々のパラメータを受け付ける機能を持たせてもよい。この場合、管理機能部102にパラメータを設定することによって、管理機能部102が、仮想サーバ10におけるデータ格納部101の記憶容量、テーブル1011の総数、テーブル1011の記憶容量などを定めるようにしてもよい。
Note that the API constituting the
また、上述の例ではデータを格納する仮想サーバ10およびテーブル1011を決めるために、選別機能部331において、データIDの除算を行っているが、乱数などの他の関係を用いて分散させてもよい。
In the above example, in order to determine the
10 仮想サーバ
20 サーバ(分散データベース)
21,22,23 実体システム(コンピュータシステム)
101 データ格納部
102 管理機能部
331 選別機能部(選別手段)
1011 テーブル
1012,1013,1014 種類別記憶部
10
21, 22, 23 Entity system (computer system)
101
1011 Table 1012, 1013, 1014 Type storage unit
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011203488A JP5919529B2 (en) | 2011-09-16 | 2011-09-16 | Data storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011203488A JP5919529B2 (en) | 2011-09-16 | 2011-09-16 | Data storage system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013065203A JP2013065203A (en) | 2013-04-11 |
JP5919529B2 true JP5919529B2 (en) | 2016-05-18 |
Family
ID=48188638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011203488A Active JP5919529B2 (en) | 2011-09-16 | 2011-09-16 | Data storage system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5919529B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5718990B2 (en) * | 2013-08-21 | 2015-05-13 | 日本電信電話株式会社 | Database device |
JP2015049542A (en) * | 2013-08-29 | 2015-03-16 | パナソニックIpマネジメント株式会社 | Distributed database system and selection unit |
CN108255855B (en) * | 2016-12-29 | 2021-10-08 | 北京国双科技有限公司 | Data storage method and device |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001337850A (en) * | 2000-05-25 | 2001-12-07 | Hitachi Ltd | Storage and method for controlling the same |
JP4227035B2 (en) * | 2004-02-03 | 2009-02-18 | 株式会社日立製作所 | Computer system, management device, storage device, and computer device |
JP4891657B2 (en) * | 2006-05-29 | 2012-03-07 | 株式会社野村総合研究所 | Data storage system, file search device and program |
US8090792B2 (en) * | 2007-03-08 | 2012-01-03 | Nec Laboratories America, Inc. | Method and system for a self managing and scalable grid storage |
JP5203733B2 (en) * | 2008-02-01 | 2013-06-05 | 株式会社東芝 | Coordinator server, data allocation method and program |
JP2009295127A (en) * | 2008-06-09 | 2009-12-17 | Nippon Telegr & Teleph Corp <Ntt> | Access method, access device and distributed data management system |
US8219750B2 (en) * | 2008-06-30 | 2012-07-10 | Pivot3 | Method and system for execution of applications in conjunction with distributed RAID |
JP4705982B2 (en) * | 2008-12-11 | 2011-06-22 | 株式会社日立製作所 | Information processing system, information processing method, and management apparatus |
-
2011
- 2011-09-16 JP JP2011203488A patent/JP5919529B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013065203A (en) | 2013-04-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12105703B1 (en) | System and method for interacting with a plurality of data sources | |
CN105074724B (en) | Effective query processing is carried out using the histogram in columnar database | |
US9280381B1 (en) | Execution framework for a distributed file system | |
US9489233B1 (en) | Parallel modeling and execution framework for distributed computation and file system access | |
US9158843B1 (en) | Addressing mechanism for data at world wide scale | |
JP2020177581A (en) | Topological map presentation system, topological map presentation method, and computer program | |
CN105408857A (en) | Generating a multi-column index for relational databases by interleaving data bits for selectivity | |
JP4733461B2 (en) | Computer system, management computer, and logical storage area management method | |
JP2004334561A (en) | Storage operation management system | |
US8904144B1 (en) | Methods and systems for determining at risk index for storage capacity | |
US10067704B2 (en) | Method for optimizing storage configuration for future demand and system thereof | |
CN108664555A (en) | Deduplication in distributed file system | |
US11381506B1 (en) | Adaptive load balancing for distributed systems | |
US9235814B2 (en) | Machine learning memory management and distributed rule evaluation | |
JP5919529B2 (en) | Data storage system | |
US7792966B2 (en) | Zone control weights | |
US10990627B1 (en) | Sharing character data across lookups to identify matches to a regular expression | |
CN110502586A (en) | A kind of database software and hardware all-in-one machine | |
Priya et al. | Cloud computing and big data: A comprehensive analysis | |
CN106527960A (en) | Management method for multi-memory disk loads, device, document system and memory network system | |
CN116566990A (en) | Position allocation method, position allocation device, computer equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140613 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20141008 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20141218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150106 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150309 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150707 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150907 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160202 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160226 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5919529 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |