[go: up one dir, main page]

JP5598017B2 - Judgment program, method and apparatus - Google Patents

Judgment program, method and apparatus Download PDF

Info

Publication number
JP5598017B2
JP5598017B2 JP2010038560A JP2010038560A JP5598017B2 JP 5598017 B2 JP5598017 B2 JP 5598017B2 JP 2010038560 A JP2010038560 A JP 2010038560A JP 2010038560 A JP2010038560 A JP 2010038560A JP 5598017 B2 JP5598017 B2 JP 5598017B2
Authority
JP
Japan
Prior art keywords
identifier
program
data
storage unit
data item
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.)
Expired - Fee Related
Application number
JP2010038560A
Other languages
Japanese (ja)
Other versions
JP2011175422A (en
Inventor
佳秀 野村
敏裕 小高
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010038560A priority Critical patent/JP5598017B2/en
Publication of JP2011175422A publication Critical patent/JP2011175422A/en
Application granted granted Critical
Publication of JP5598017B2 publication Critical patent/JP5598017B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本技術は、レプリケーションによるスケールアウトを実現するための技術に関する。   The present technology relates to a technology for realizing scale-out by replication.

例えばユーザ数や利用頻度が非常に多いウェブ(Web)システムにおいては、Webサーバ(Web層に属するサーバ)やデータベース(DB)サーバ(DB層に属するサーバ)を増やすことによって性能を向上させるスケールアウト(Scale out)が行われる場合がある。Web層のスケールアウトについては、クラスタリング、セッション・レプリケーションなどの手法を採用することが知られている。一方、一般的なRDB(Relational DataBase)を用いたDB層のスケールアウトについては、従来はユーザ数やその利用形態を事前に予測し、よく使われ且つレプリケーションを行っても問題ないと判断された処理ロジックについては、更新用DB(マスタDBと呼ぶ)のレプリカである参照用DB(スレーブDBと呼ぶ)に接続するようにWebアプリケーションを構築する。これによって、マスタDBの負荷を減らし、スケールアウトを実現する。   For example, in a Web (Web) system with a very large number of users and usage frequency, scale-out that improves performance by increasing the number of Web servers (servers belonging to the Web layer) and database (DB) servers (servers belonging to the DB layer) (Scale out) may be performed. It is known to adopt methods such as clustering and session replication for scale-out of the Web layer. On the other hand, regarding the scale-out of the DB layer using a general RDB (Relational DataBase), it was conventionally judged that the number of users and their use form were predicted in advance, and often used for replication. As for the processing logic, a Web application is constructed so as to connect to a reference DB (referred to as a slave DB) that is a replica of an update DB (referred to as a master DB). This reduces the load on the master DB and realizes scale-out.

例えば、図1に示すように、DBサーバをマスタDBサーバに加えて1又は複数のスレーブDBサーバで実現する。マスタDBサーバ内のデータは、定期的にスレーブDBサーバにコピーされて、両方のDBの内容が一致するようにする。そして、Webサーバで実行されているWebアプリケーションのうちある処理については、マスタDBサーバのDBにおけるデータにアクセスし、他のある処理についてはスレーブDBサーバのDBにおけるデータにアクセスするようにする。これによって、負荷が分散されて性能向上が可能になる。   For example, as shown in FIG. 1, the DB server is realized by one or a plurality of slave DB servers in addition to the master DB server. Data in the master DB server is periodically copied to the slave DB server so that the contents of both DBs match. For a certain process in the Web application executed on the Web server, the data in the DB of the master DB server is accessed, and for the other certain process, the data in the DB of the slave DB server is accessed. As a result, the load is distributed and the performance can be improved.

しかし、アプリケーションのログを用いて利用頻度や負荷が高い処理を特定して、当該処理については参照用DBを用いるという手法では、以下のような問題がある。すなわち、マスタDBからスレーブDBへのレプリケーションにタイムラグが発生するため、不適切な処理を参照用DBに割り当てると、それに続く更新処理において、直前の参照とは異なる値を参照又は書き込んでしまい、ユーザから見ると正しくないトランザクション結果を引き起こす。より具体的には、タイムセールなどで単価が変化するような場合、参照用DBを参照して古い単価を確認してショッピングカートに商品を投入した後、実際にショッピングカートに投入されている商品の注文を確定させるために更新用DBにアクセスすると、異なった単価で代金が計算されてしまうというような事態が生じてしまう。   However, the method of specifying a process with high usage frequency and load using an application log and using a reference DB for the process has the following problems. That is, since a time lag occurs in replication from the master DB to the slave DB, if an inappropriate process is assigned to the reference DB, a value different from the previous reference is referred to or written in the subsequent update process, and the user Causes incorrect transaction results. More specifically, when the unit price changes due to a time sale, etc., refer to the reference DB, check the old unit price, put the product into the shopping cart, and then the product actually put into the shopping cart When the update DB is accessed to confirm the order, a situation occurs in which the price is calculated at a different unit price.

なお、オブジェクトへのアクセス履歴と業務役割に応じたオブジェクトへのアクセスルールとの適合性判定を行うことで、オブジェクト自体のデータ処理を行うことなく、ユーザの業務役割の判定を行う技術が存在する。より具体的には、文書データベースに保持されたオブジェクト(例えば文書)へのアクセスユーザ情報とアクセス対象オブジェクト情報とアクセス操作情報とアクセス時間情報とを含んだアクセス履歴を保持する。そして、業務役割に対応したアクセス対象オブジェクト情報及びアクセス操作の振る舞い情報を含むアクセスルールに対して、アクセス履歴が適合するか否かを判定して、ユーザの業務役割を判定する。しかし、ユーザの業務役割が判定されるのであって、マスタDBではなくスレーブDBへアクセスすべきプログラムを特定することはできない。   There is a technology for determining the user's business role without performing data processing of the object itself by determining the compatibility between the access history to the object and the access rule for the object according to the business role. . More specifically, an access history including access user information, access target object information, access operation information, and access time information for an object (for example, a document) held in a document database is held. Then, it is determined whether or not the access history matches the access rule including the access target object information corresponding to the business role and the behavior information of the access operation, and the business role of the user is determined. However, the business role of the user is determined, and the program that should access the slave DB, not the master DB, cannot be specified.

特開2007−12218号公報JP 2007-12218 A

以上のように、スケールアウトを行うには、レプリケーションによる更新遅延の影響をあまり受けないようなデータにアクセスするプログラムのみをスレーブDBに割り当てるようにしなければならない。また、このようなプログラムをソースコードを解析して見つけ出すのは非常に大きな工数がかかり、現実的ではない。   As described above, in order to perform scale-out, it is necessary to assign only a program that accesses data that is not significantly affected by the update delay due to replication to the slave DB. Also, finding such a program by analyzing the source code takes a very large amount of man-hours and is not practical.

従って、本技術の目的は、レプリケーションによるスケールアウトを実現するために、スレーブDBに対するプログラムのアクセスの是非を自動的に判定するための技術を提供することである。   Therefore, an object of the present technology is to provide a technology for automatically determining whether or not a program is accessed to a slave DB in order to realize scale-out by replication.

本判定方法は、(A)セッションの識別子とプログラムの識別子とデータベース内におけるアクセス先のデータ項目を識別するためのデータ項目識別子と参照又は更新を表す処理種別とが関連付けられて履歴データとして格納されているアクセス履歴格納部から、判定対象のプログラム毎に履歴データを読み出し、処理種別に更新が含まれない場合には参照を表す種別データを当該判定対象のプログラムの識別子に対応付けてプログラムデータ格納部に格納するステップと、(B)プログラムデータ格納部において参照を表す種別データが対応付けて登録されている判定対象のプログラムの各々について、アクセス履歴格納部において、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目を識別するための識別子と当該判定対象のプログラムの識別子とが関連付けられている特定の履歴データが存在しており、且つ当該特定の履歴データに含まれるデータ項目識別子及びセッションの識別子と同一のデータ項目識別子及びセッションの識別子と更新を表す処理種別とが関連付けられている履歴データが特定の履歴データの後に存在するという条件を満たすか判断するステップとを含む。   In this determination method, (A) a session identifier, a program identifier, a data item identifier for identifying an access destination data item in the database, and a processing type indicating reference or update are associated and stored as history data. The history data is read from the access history storage unit for each determination target program, and if the processing type does not include an update, the type data representing the reference is associated with the identifier of the determination target program and stored as program data (B) Predetermining that each of the determination target programs registered in association with the type data representing the reference in the program data storage unit is affected by the replication in the access history storage unit. Identification to identify a given data item Data item identifiers and session identifiers that are the same as the data item identifiers and session identifiers included in the specific history data. And determining whether or not the condition that the history data associated with the update processing type exists after the specific history data is satisfied.

スレーブDBに対するプログラムのアクセスの是非を自動的に判定できるようになる。   It is possible to automatically determine whether the program is accessed to the slave DB.

図1は、従来のシステムの問題点を示す図である。FIG. 1 is a diagram illustrating a problem of a conventional system. 図2は、Webアプリケーションの構成例を示す図である。FIG. 2 is a diagram illustrating a configuration example of a Web application. 図3は、本技術の実施の形態におけるシステム概要図である。FIG. 3 is a system outline diagram according to the embodiment of the present technology. 図4は、サーブレットフィルタのWeb.xmlの定義例を示す図である。FIG. 4 is a diagram illustrating a definition example of Web.xml of a servlet filter. 図5は、サーブレットフィルタのログ出力部分の一例を示す図である。FIG. 5 is a diagram illustrating an example of a log output portion of the servlet filter. 図6は、アスペクト適用定義例を示す図である。FIG. 6 shows an example of aspect application definition. 図7は、アスペクト適用定義例を示す図である。FIG. 7 is a diagram illustrating an example of an aspect application definition. 図8は、アスペクト適用定義例を示す図である。FIG. 8 is a diagram illustrating an aspect application definition example. 図9は、アスペクト適用定義例を示す図である。FIG. 9 is a diagram illustrating an example of an aspect application definition. 図10は、アクセス履歴収集処理を説明するためのシーケンス図である。FIG. 10 is a sequence diagram for explaining the access history collection processing. 図11は、アクセス履歴収集処理によって出力されるログデータの一例を示す図である。FIG. 11 is a diagram illustrating an example of log data output by the access history collection process. 図12は、アクセス履歴収集処理によって出力されるログデータの一例を示す図である。FIG. 12 is a diagram illustrating an example of log data output by the access history collection process. 図13は、コントローラアクセス履歴データの一例を示す図である。FIG. 13 is a diagram illustrating an example of controller access history data. 図14は、エンティティアクセス履歴データの一例を示す図である。FIG. 14 is a diagram illustrating an example of entity access history data. 図15は、コントローラマスタの一例を示す図である。FIG. 15 is a diagram illustrating an example of a controller master. 図16は、エンティティマスタの一例を示す図である。FIG. 16 is a diagram illustrating an example of an entity master. 図17は、分析サーバの処理フローを示す図である。FIG. 17 is a diagram illustrating a processing flow of the analysis server. 図18は、コントローラ分類処理の処理フローを示す図である。FIG. 18 is a diagram illustrating a processing flow of the controller classification processing. 図19は、コントローラ分類処理の処理フローを示す図である。FIG. 19 is a diagram illustrating a processing flow of the controller classification processing. 図20は、コントローラ分類処理の処理結果の一例を示す図である。FIG. 20 is a diagram illustrating an example of a processing result of the controller classification processing. 図21は、コントローラ判定処理の処理フローを示す図である。FIG. 21 is a diagram illustrating a process flow of the controller determination process. 図22は、コントローラ判定処理の処理フローを示す図である。FIG. 22 is a diagram illustrating a processing flow of controller determination processing. 図23は、コントローラ判定処理の処理結果の一例を示す図である。FIG. 23 is a diagram illustrating an example of a process result of the controller determination process. 図24は、スレーブDBへの割り当てが不可能なコントローラの例を示す図である。FIG. 24 is a diagram illustrating an example of a controller that cannot be assigned to a slave DB. 図25は、スレーブDBへの割り当てが可能なコントローラの例を示す図である。FIG. 25 is a diagram illustrating an example of a controller that can be assigned to a slave DB. 図26は、スケールアウト後のアクセス態様の一例を示す図である。FIG. 26 is a diagram illustrating an example of an access mode after scale-out. 図27は、コンピュータの機能ブロック図である。FIG. 27 is a functional block diagram of a computer. 図28は、判定装置の機能ブロック図である。FIG. 28 is a functional block diagram of the determination apparatus.

本技術の実施の形態では、図1に示すようなWebシステムを想定する。また、Webサーバでは、Webアプリケーションが実行されており、当該Webアプリケーションは、図2に示すように、業務ロジックが規定されているコントローラと、データベース内のデータ項目に対応付けられており且つ当該データ項目にアクセスするエンティティとを含む。なお、コントローラは、特定のURL(Uniform Resource Locator)に対してメソッドが対応付けられているクラスである。また、エンティティは、データベース内のデータ項目のデータをgetやsetインタフェースで読み書きを行うクラスである。   In the embodiment of the present technology, a Web system as illustrated in FIG. 1 is assumed. In addition, a web application is executed on the web server, and the web application is associated with a controller in which business logic is defined and a data item in the database as shown in FIG. Entity that accesses the item. The controller is a class in which a method is associated with a specific URL (Uniform Resource Locator). An entity is a class that reads and writes data of data items in a database using a get or set interface.

図2の例では、コントローラには、オーダーコントローラ(OrderController)とブックコントローラ(BookController)とが含まれる。エンティティには、オーダー(Order)というエンティティとブック(Book)というエンティティとが含まれる。オーダーコントローラは、オーダー・エンティティを呼び出し、ブックコントローラは、ブック・エンティティを呼び出す。オーダーコントローラは、所定のメソッド(confirm, submit)を実行して、オーダー・エンティティを呼び出す。同様に、ブックコントローラは、所定のメソッド(list, detail, update)を実行して、ブック・エンティティを呼び出す。オーダー・エンティティは、データベースにおける所定のデータ項目(customer, item, amount)のデータにアクセスする。また、ブック・エンティティは、データベースにおけるデータ項目(author, abstract, price)のデータにアクセスする。   In the example of FIG. 2, the controller includes an order controller (OrderController) and a book controller (BookController). The entities include an entity called “Order” and an entity called “Book”. The order controller calls the order entity, and the book controller calls the book entity. The order controller executes a predetermined method (confirm, submit) to call an order entity. Similarly, the book controller executes a predetermined method (list, detail, update) to call a book entity. The order entity accesses data of a predetermined data item (customer, item, amount) in the database. The book entity accesses data of data items (author, abstract, price) in the database.

次に、図3に、本実施の形態のシステム概要図を示す。図1と同様に、Webサーバ100とDBサーバ200とはネットワークで接続されている。また、Webサーバ100では、Webアプリケーション110が実行されており、DBサーバ200は、RDBMS(Relational DataBase Management System)210を管理している。図2に示したように、Webアプリケーション110は、複数のコントローラ111と、複数のエンティティ113と、O/R(Object/Relation)マッパライブラリ(図示せず)とを含み、O/Rマッパライブラリがエンティティ113を通じてDBサーバ200のRDBMS210にアクセスするようになっている。本実施の形態では、Webサーバ100にはアクセス履歴収集部120を導入すると共に、分析サーバ300を導入して、ネットワークを介してWebサーバ100に接続する。   Next, FIG. 3 shows a system outline diagram of the present embodiment. As in FIG. 1, the Web server 100 and the DB server 200 are connected via a network. In the Web server 100, a Web application 110 is executed, and the DB server 200 manages an RDBMS (Relational DataBase Management System) 210. As shown in FIG. 2, the Web application 110 includes a plurality of controllers 111, a plurality of entities 113, and an O / R (Object / Relation) mapper library (not shown). The RDBMS 210 of the DB server 200 is accessed through the entity 113. In the present embodiment, the access history collection unit 120 is introduced into the web server 100 and the analysis server 300 is introduced and connected to the web server 100 via the network.

なお、分析サーバ300の処理には影響がないため、以下ではO/Rマッパライブラリについては説明を省略して、エンティティ113がRDBMS210にアクセスするものとして説明する。   Since the processing of the analysis server 300 is not affected, the description of the O / R mapper library will be omitted below, and the description will be made assuming that the entity 113 accesses the RDBMS 210.

分析サーバ300は、マスタ格納部310と、アクセス履歴格納部320と、コントローラ分類部330と、コントローラ判定部340とを有する。Webサーバ100に導入されたアクセス履歴収集部120は、分析サーバ300のアクセス履歴格納部320にアクセス履歴データを格納する。   The analysis server 300 includes a master storage unit 310, an access history storage unit 320, a controller classification unit 330, and a controller determination unit 340. The access history collection unit 120 installed in the Web server 100 stores access history data in the access history storage unit 320 of the analysis server 300.

アクセス履歴収集部120は、Webサーバ100に対して、例えば図4及び図5で規定されるようなサーブレット(servlet)フィルタを導入すると共に、例えば図6乃至図9で規定されるようなアスペクトをWebアプリケーション110に適用することによって、実現される。図4は、Web.xmlの定義例を示しており、全てのURL(*で表す)についてlogFilterというフィルタ名のフィルタを導入することを示している。また、logFilterはSessionIdLogFilterというクラスとして実装される。さらに、図5に示すように、SessionIDLogFilterでは、スレッドID及びセッションIDを含むログを出力するようになっている。   The access history collection unit 120 introduces, for example, a servlet filter as defined in FIGS. 4 and 5 to the Web server 100, and has an aspect as defined in FIGS. 6 to 9, for example. This is realized by applying to the Web application 110. FIG. An example of the definition of xml is shown, which indicates that a filter having a filter name of logFilter is introduced for all URLs (represented by *). LogFilter is implemented as a class called SessionIdLogFilter. Furthermore, as shown in FIG. 5, SessionIDLogFilter outputs a log including a thread ID and a session ID.

また、図6にコントローラについてのアスペクト適用定義例を示す。ここではオーダーコントローラのconfirmメソッドを実行する際には、ログを生成するために、ControllerLogAroundAdviceというクラスが呼び出されることが規定されている。なお、図6では示していないが、他のコントローラ及びメソッドについても定義するものとする。図7に、ControllerLogAroundAdviceクラスにおいて、ログ出力コードの部分が示されている。ここでは、スレッドID、コントローラのクラス名及びメソッド名を含むログを出力するようになっている。なお、本実施の形態では、コントローラのクラス名及びメソッド名で、1つのプログラムとして特定され、コントローラIDとして識別子(ID)が付与されるものとする。   FIG. 6 shows an example of aspect application definition for the controller. Here, it is specified that when executing the confirm method of the order controller, a class called ControllerLogAroundAdvice is called to generate a log. Although not shown in FIG. 6, other controllers and methods are also defined. FIG. 7 shows a log output code portion in the ControllerLogAroundAdvice class. Here, a log including a thread ID, a controller class name, and a method name is output. In the present embodiment, it is assumed that the controller class name and method name are specified as one program, and an identifier (ID) is assigned as the controller ID.

さらに、図8にエンティティについてのアスペクト適用定義例を示す。ここでは、オーダー・エンティティにおいてamountというデータ項目に値をセットするsetAmountメソッドを実行する際には、ログを生成するために、EntityLogAroundAdviceというクラスが呼び出されることが規定されている。なお、図8では示していないが、他のエンティティ及びメソッドについても定義するものとする。図9に、EntityLogAroundAdviceクラスにおいて、ログ出力コードの部分が示されている。ここでは、スレッドID、エンティティのクラス名、エンティティ・フィールド名及び処理種別(アクセス種別)を含むログを出力するようになっている。なお、本実施の形態では、エンティティのクラス名及びエンティティ・フィールド名で、1つのデータ項目が特定され、エンティティIDとして識別子(ID)が付与されるものとする。   Further, FIG. 8 shows an example of aspect application definition for an entity. Here, it is specified that when executing the setAmount method for setting a value in a data item called amount in the order entity, a class called EntityLogAroundAdvice is called to generate a log. Although not shown in FIG. 8, other entities and methods are also defined. FIG. 9 shows a log output code portion in the EntityLogAroundAdvice class. Here, a log including a thread ID, an entity class name, an entity field name, and a processing type (access type) is output. In this embodiment, it is assumed that one data item is specified by an entity class name and an entity field name, and an identifier (ID) is given as an entity ID.

以上述べたように、アクセス履歴収集部120は、既に知られているアスペクト指向プログラミングAOP(Aspect Oriented Programming)を利用して実現するものであり、これ以上は述べない。なお、以下で述べるようなアクセス履歴データを収集することができるのであれば、他の実現方法を採用するようにしても良い。   As described above, the access history collection unit 120 is realized by using the already known aspect-oriented programming AOP (Aspect Oriented Programming), and will not be described further. It should be noted that other realization methods may be adopted as long as access history data as described below can be collected.

アクセス履歴収集部120は、図10に示すようにアクセス履歴を収集する。ユーザ端末が、Webサーバ100のWebアプリケーション110にリクエストを送信すると(ステップ(1))、Webアプリケーション110は、リクエストを受信し、該当するコントローラ111を呼び出す(ステップ(2))。このコントローラ呼び出しに応答して、アクセス履歴収集部120は、アクセス履歴のログデータ(履歴データとも呼ぶ)を、分析サーバ300のアクセス履歴格納部320に格納する(ステップ(3))。例えば図4乃至図7に基づき、図11に示すようなデータを格納する。図11の例では、セッションID、スレッドID、コントローラクラス名及びコントローラメソッド名が格納される。なお、以下で述べるように、マスタ格納部310では、コントローラのクラスとメソッドの組み合わせ毎にコントローラIDが規定されているので、以後コントローラクラス名及びコントローラメソッド名を対応するコントローラIDに置換した形で示すものとする。   The access history collection unit 120 collects access history as shown in FIG. When the user terminal transmits a request to the web application 110 of the web server 100 (step (1)), the web application 110 receives the request and calls the corresponding controller 111 (step (2)). In response to this controller call, the access history collection unit 120 stores access history log data (also referred to as history data) in the access history storage unit 320 of the analysis server 300 (step (3)). For example, data as shown in FIG. 11 is stored based on FIGS. In the example of FIG. 11, the session ID, thread ID, controller class name, and controller method name are stored. As will be described below, in the master storage unit 310, a controller ID is defined for each combination of a controller class and a method. Hence, the controller class name and the controller method name are replaced with the corresponding controller ID. Shall be shown.

アクセス履歴収集部120は、受信したコントローラ呼び出しに対応する処理呼び出しを出力する(ステップ(4))。該当するコントローラ111は、リクエストに対する処理を実施するため、該当するエンティティ113を呼び出す(ステップ(5))。このエンティティ呼び出しに応答して、アクセス履歴収集部120は、アクセス履歴のログデータ(履歴データとも呼ぶ)を、分析サーバ300のアクセス履歴格納部320に格納する(ステップ(6))。例えば図8及び図9に基づき、図12に示すようなデータを格納する。図12の例では、スレッドID、エンティティ・クラス名、エンティティ・フィールド名及び処理種別(参照(R)/更新(W))が格納される。なお、以下で述べるように、マスタ格納部310では、エンティティのクラスとフィールドの組み合わせ毎にエンティティIDが規定されているので、以後エンティティ・クラス名及びエンティティ・フィールド名を対応するエンティティIDに置換した形で示すものとする。   The access history collection unit 120 outputs a process call corresponding to the received controller call (step (4)). The corresponding controller 111 calls the corresponding entity 113 in order to perform processing for the request (step (5)). In response to this entity call, the access history collection unit 120 stores access history log data (also called history data) in the access history storage unit 320 of the analysis server 300 (step (6)). For example, based on FIGS. 8 and 9, data as shown in FIG. 12 is stored. In the example of FIG. 12, a thread ID, an entity class name, an entity field name, and a processing type (reference (R) / update (W)) are stored. As will be described below, in the master storage unit 310, an entity ID is defined for each combination of an entity class and a field. It shall be shown in shape.

その後、アクセス履歴収集部120は、受信したエンティティ呼び出しに対応するエンティティ呼び出しを出力する(ステップ(7))。該当するエンティティ113は、要求された処理、すなわちDBサーバ200のRDBMS210へのアクセス(参照又は更新)を実施する。   Thereafter, the access history collection unit 120 outputs an entity call corresponding to the received entity call (step (7)). The corresponding entity 113 performs the requested processing, that is, access (reference or update) to the RDBMS 210 of the DB server 200.

このような処理を繰り返し、所定時間後、例えば図13及び図14に示すようなデータが、アクセス履歴格納部320に格納されているものとする。図13は、コントローラアクセス履歴データの一例を示す。図13の例では、レコードIDと、セッションIDと、スレッドIDと、コントローラIDとが登録されるようになっている。なお、図13の状態は、時刻(図示せず)及びセッションIDでソート済みであるものとする。図14は、エンティティアクセス履歴データの一例を示す。図14の例では、レコードIDと、スレッドIDと、エンティティIDと、処理種別とが登録されるようになっている。なお、図14の状態は、時刻(図示せず)及びスレッドIDでソート済みであるものとする。このように、スレッドIDで、セッションIDとエンティティIDとコントローラIDとが関連付けられている。   It is assumed that such processing is repeated, and after a predetermined time, for example, data as illustrated in FIGS. 13 and 14 is stored in the access history storage unit 320. FIG. 13 shows an example of controller access history data. In the example of FIG. 13, a record ID, a session ID, a thread ID, and a controller ID are registered. Note that the state of FIG. 13 has been sorted by time (not shown) and session ID. FIG. 14 shows an example of entity access history data. In the example of FIG. 14, the record ID, thread ID, entity ID, and processing type are registered. Note that the state of FIG. 14 is sorted by time (not shown) and thread ID. Thus, the session ID, the entity ID, and the controller ID are associated with each other by the thread ID.

なお、マスタ格納部310には、図15及び図16のデータが予め格納されている。図15に、コントローラマスタの一例を示す。図15の例では、コントローラマスタには、コントローラIDと、クラス名と、メソッド名とが予め格納されるようになっている。また、コントローラマスタには、参照のみを行うのか否かを表す更新分類と、スレーブDBへアクセスさせることが適切か否かを表す判定結果とが、後の処理にて登録されるようになっている。但し、これらのデータについては、別の記憶装置に格納するようにしても良い。   The master storage unit 310 stores data shown in FIGS. 15 and 16 in advance. FIG. 15 shows an example of the controller master. In the example of FIG. 15, the controller master stores a controller ID, a class name, and a method name in advance. In the controller master, an update classification indicating whether or not only reference is performed and a determination result indicating whether or not access to the slave DB is appropriate are registered in a later process. Yes. However, these data may be stored in another storage device.

また、図16に、エンティティマスタの一例を示す。図16の例では、エンティティマスタには、エンティティIDと、クラス名と、フィールド名と、クリティカルフィールドであるか否かを表すクリティカルフラグとが予め格納されるようになっている。クリティカルフィールドというのは、レプリケーションによる更新遅延などの影響を受けて出力結果が変わってしまうと問題とされるようなデータ項目であって、予め指定されるものである。但し、クリティカルフラグがTrueであるレコードのみをエンティティマスタに登録するようにしても良い。   FIG. 16 shows an example of an entity master. In the example of FIG. 16, the entity master stores in advance an entity ID, a class name, a field name, and a critical flag indicating whether or not the field is a critical field. The critical field is a data item that is considered to be a problem when the output result changes due to the influence of an update delay due to replication, and is designated in advance. However, only the record whose critical flag is True may be registered in the entity master.

次に、図17乃至図26を用いて、分析サーバ300の動作について説明する。まず、分析サーバ300のコントローラ分類部330は、コントローラ分類処理を実施する(ステップS1)。処理結果は、マスタ格納部310のコントローラマスタにおける更新分類の列に登録される。このコントローラ分類処理については後に詳細に説明する。そして、コントローラ分類処理の処理結果を用いて、コントローラ判定部340は、コントローラ判定処理を実施する(ステップS3)。処理結果は、マスタ格納部310のコントローラマスタにおける判定結果の列に登録される。このコントローラ判定処理については後の詳細に説明する。   Next, the operation of the analysis server 300 will be described with reference to FIGS. First, the controller classification unit 330 of the analysis server 300 performs controller classification processing (step S1). The processing result is registered in the update classification column in the controller master of the master storage unit 310. This controller classification process will be described in detail later. And the controller determination part 340 implements a controller determination process using the process result of a controller classification | category process (step S3). The processing result is registered in the determination result column in the controller master of the master storage unit 310. This controller determination process will be described in detail later.

次に、図18乃至図20を用いて、コントローラ分類処理について説明する。まず、コントローラ分類部330は、エンティティアクセス履歴を時刻(図示せず)及びスレッドIDでソートして、アクセス履歴格納部320に格納する(図18:ステップS11)。図14のような状態になる。また、コントローラ分類部330は、コントローラアクセス履歴を時刻(図示せず)及びセッションIDでソートして、アクセス履歴格納部320に格納する(ステップS13)。図13のような状態になる。   Next, the controller classification process will be described with reference to FIGS. First, the controller classification unit 330 sorts the entity access history by time (not shown) and thread ID, and stores them in the access history storage unit 320 (FIG. 18: step S11). It will be in a state like FIG. In addition, the controller classification unit 330 sorts the controller access history by time (not shown) and session ID, and stores them in the access history storage unit 320 (step S13). The state is as shown in FIG.

その後、コントローラ分類部330は、エンティティアクセス履歴において、未処理のスレッドIDを1つ特定する(ステップS15)。また、コントローラ分類部330は、特定されたスレッドIDのレコードの処理種別に「更新」が含まれているか確認する(ステップS17)。図14の例では、スレッドIDが「T001」であるレコードを見てみると、処理種別は参照「R」だけであるので、「更新」は含まれない。一方、スレッドIDが「T002」であるレコードを見てみると、処理種別に更新「W」が含まれている。処理は、端子Aを介して図19の処理に移行する。   Thereafter, the controller classification unit 330 identifies one unprocessed thread ID in the entity access history (step S15). Further, the controller classification unit 330 checks whether “update” is included in the processing type of the record of the identified thread ID (step S17). In the example of FIG. 14, looking at the record with the thread ID “T001”, the processing type is only the reference “R”, so “update” is not included. On the other hand, when looking at the record whose thread ID is “T002”, the processing type includes the update “W”. The processing shifts to the processing in FIG.

図19の処理の説明に移行して、処理種別に「更新」が含まれる場合には(ステップS19:Yesルート)、コントローラ分類部330は、特定されたスレッドIDでコントローラアクセス履歴を検索し、該当するコントローラIDを特定する(ステップS21)。スレッドIDが「T002」の場合、「T002」で図13で示したコントローラアクセス履歴を検索して、該当するレコードにおけるコントローラID「C002」を取得する。その後、コントローラ分類部330は、コントローラマスタにおいて、特定されたコントローラIDに対応付けて、更新分類の値として「更新(W)」を登録する(ステップS23)。そしてステップS29に移行する。   Moving to the explanation of the processing in FIG. 19, when “update” is included in the processing type (step S19: Yes route), the controller classification unit 330 searches the controller access history with the identified thread ID, The corresponding controller ID is specified (step S21). When the thread ID is “T002”, the controller access history shown in FIG. 13 is searched for “T002”, and the controller ID “C002” in the corresponding record is acquired. Thereafter, the controller classification unit 330 registers “update (W)” as the update classification value in association with the identified controller ID in the controller master (step S23). Then, control goes to a step S29.

一方、処理種別に「更新」が含まれない場合には(ステップS19:Noルート)、コントローラ分類部330は、特定されたスレッドIDでコントローラアクセス履歴を検索し、該当するコントローラIDを特定する(ステップS25)。ステップIDが「T001」の場合、「T001」で図13に示したコントローラアクセス履歴を検索して、該当するレコードにおけるコントローラID「C001」を取得する。その後、コントローラ分類部330は、コントローラマスタにおいて、特定されたコントローラIDに対応付けて、更新分類の値として「参照(R)」を登録する(ステップS27)。   On the other hand, when “update” is not included in the process type (step S19: No route), the controller classification unit 330 searches the controller access history with the identified thread ID and identifies the corresponding controller ID ( Step S25). When the step ID is “T001”, the controller access history shown in FIG. 13 is searched for “T001”, and the controller ID “C001” in the corresponding record is acquired. Thereafter, the controller classification unit 330 registers “reference (R)” as the update classification value in association with the identified controller ID in the controller master (step S27).

ステップS23又はS27の後に、コントローラ分類部330は、エンティティアクセス履歴において全てのスレッドIDを処理したか判断する(ステップS29)。未処理のスレッドIDが存在する場合には端子Bを介してステップS15に戻る。一方、全てのスレッドIDを処理した場合には、元の処理に戻る。   After step S23 or S27, the controller classification unit 330 determines whether all thread IDs have been processed in the entity access history (step S29). If there is an unprocessed thread ID, the process returns to step S15 via the terminal B. On the other hand, when all the thread IDs have been processed, the process returns to the original process.

このような処理を実施することによって、図20のようにコントローラマスタが更新される。すなわち、更新分類の列に参照(R)又は更新(W)が登録されるようになる。本実施の形態では、「参照」だけを行う、コントローラのメソッドのうち以下で述べる特徴を有する一部のメソッドを、スレーブDBへアクセスするように変更すれば、スケールアウトの効果をそのまま得ることができるようになる。従って、以下の処理で、参照のみを行う、コントローラのメソッドのみについて、スレーブDBへのアクセスに変更することが適切か否かを判断する。   By performing such processing, the controller master is updated as shown in FIG. That is, reference (R) or update (W) is registered in the update classification column. In this embodiment, if some of the controller methods that perform only “reference” and have the following characteristics are changed to access the slave DB, the effect of scale-out can be obtained as it is. become able to. Therefore, in the following processing, it is determined whether or not it is appropriate to change only the method of the controller that performs only the reference to access to the slave DB.

次に、図21乃至図26を用いてコントローラ判定処理について説明する。コントローラ判定部340は、コントローラマスタにおいて未処理の参照系コントローラ(より具体的には、コントローラ・クラスのメソッド)を1つ特定する(ステップS31)。具体的には、コントローラマスタの更新分類の列に「参照」が登録されている未処理のコントローラのコントローラIDを1つ特定する。   Next, the controller determination process will be described with reference to FIGS. The controller determination unit 340 identifies one unprocessed reference system controller (more specifically, a method of the controller class) in the controller master (step S31). Specifically, one controller ID of an unprocessed controller whose “reference” is registered in the update classification column of the controller master is specified.

そして、コントローラ判定部340は、未処理の参照系コントローラが存在しているか判断する(ステップS33)。未処理の参照系コントローラが存在しない場合には、元の処理に戻る。一方、未処理の参照系コントローラが存在した場合には、コントローラ判定部340は、コントローラアクセス履歴において、特定された参照系コントローラに該当するスレッドIDを特定する(ステップS35)。例えば、ステップS31でコントローラID「C001」が特定された場合、図13のコントローラアクセス履歴においては、スレッドID「T001」が特定される。またステップS31でコントローラID「C003」が特定された場合、図13のコントローラアクセス履歴においては、スレッドID「T003」が特定される。   Then, the controller determination unit 340 determines whether there is an unprocessed reference system controller (step S33). If there is no unprocessed reference system controller, the process returns to the original process. On the other hand, when there is an unprocessed reference system controller, the controller determination unit 340 identifies a thread ID corresponding to the identified reference system controller in the controller access history (step S35). For example, when the controller ID “C001” is specified in step S31, the thread ID “T001” is specified in the controller access history of FIG. When the controller ID “C003” is specified in step S31, the thread ID “T003” is specified in the controller access history of FIG.

その後、コントローラ判定部340は、特定されたスレッドIDで、エンティティアクセス履歴を検索し、該当するレコードを特定する(ステップS37)。スレッドID「T001」の場合には、図14のテーブルの第1及び第2行が特定される。また、スレッドID「T003」の場合、図14のテーブルの第6及び第7行が特定される。そして、コントローラ判定部340は、特定されたレコードのエンティティIDを特定し、エンティティマスタに登録されているクリティカルフィールドへの参照が含まれているか確認する(ステップS39)。エンティティアクセス履歴において第1及び第2行が特定された場合、該当するエンティティIDは「E001」及び「E003」である。一方、エンティティマスタ(図16)からすると、クリティカルフラグが「True」となっているエンティティIDは「E003」及び「E006」である。従って、クリティカルフィールドへの参照が含まれていると判断される。このような場合には、クリティカルフラグが「True」であるエンティティID「E003」を保持しておく。   Thereafter, the controller determination unit 340 searches the entity access history with the specified thread ID, and specifies the corresponding record (step S37). In the case of the thread ID “T001”, the first and second rows of the table of FIG. 14 are specified. For the thread ID “T003”, the sixth and seventh rows of the table of FIG. 14 are specified. Then, the controller determination unit 340 specifies the entity ID of the specified record, and checks whether a reference to the critical field registered in the entity master is included (step S39). When the first and second rows are specified in the entity access history, the corresponding entity IDs are “E001” and “E003”. On the other hand, from the entity master (FIG. 16), the entity IDs whose critical flag is “True” are “E003” and “E006”. Therefore, it is determined that a reference to the critical field is included. In such a case, the entity ID “E003” whose critical flag is “True” is held.

一方、エンティティアクセス履歴において第6及び第7行が特定された場合、該当するエンティティIDは「E004」及び「E006」である。従って、クリティカルフィールドへの参照が含まれていると判断され、クリティカルフラグが「True」であるエンティティID「E006」を保持しておく。   On the other hand, when the sixth and seventh rows are specified in the entity access history, the corresponding entity IDs are “E004” and “E006”. Therefore, it is determined that the reference to the critical field is included, and the entity ID “E006” whose critical flag is “True” is held.

処理は端子Cを介して図22の処理に移行する。図22の処理の説明に移行して、ステップS39でクリティカルフィールドへの参照が存在しないと判断された場合には(ステップS41:Noルート)、コントローラ判定部340は、ステップS31で特定された参照系コントローラに対応付けて、判定結果として「参照可能」を登録する(ステップS43)。すなわち、クリティカルフィールドへの参照がなければ、スレーブDBへアクセスするように変更しても問題は発生しない。従って、ステップS43で、その旨を登録する。そして、端子Dを介してステップS31に戻る。   The processing shifts to the processing in FIG. Moving to the description of the processing in FIG. 22, if it is determined in step S39 that there is no reference to the critical field (step S41: No route), the controller determination unit 340 refers to the reference specified in step S31. In association with the system controller, “referenceable” is registered as a determination result (step S43). That is, if there is no reference to the critical field, no problem occurs even if the slave DB is changed to access. Therefore, that fact is registered in step S43. Then, the process returns to step S31 via the terminal D.

一方、ステップS39でクリティカルフィールドへの参照が存在すると判断された場合には(ステップS41:Yesルート)、コントローラ判定部340は、コントローラアクセス履歴において、ステップS31で特定された参照系コントローラのセッションIDを特定する(ステップS45)。例えば、ステップS31で特定されたコントローラIDが「C001」であれば、セッションID「S001」が特定される。また、ステップS31で特定されたコントローラIDが「C003」であれば、セッションID「S002」が特定される。   On the other hand, when it is determined in step S39 that there is a reference to the critical field (step S41: Yes route), the controller determination unit 340 determines the session ID of the reference controller identified in step S31 in the controller access history. Is specified (step S45). For example, if the controller ID specified in step S31 is “C001”, the session ID “S001” is specified. If the controller ID specified in step S31 is “C003”, the session ID “S002” is specified.

そして、コントローラ判定部340は、特定されたセッションIDと同じセッションにおいて、後続のコントローラが更新系であるかを確認する(ステップS47)。例えば、セッションID「S001」であれば、処理に係るコントローラID「C001」の後に出現するコントローラIDは「C002」である。コントローラマスタを、コントローラID「C002」で検索すれば、当該コントローラIDに対応付けて「更新(W)」が登録されている。従って、後続のコントローラは更新系であることが分かる。一方、セッションID「S002」であれば、処理に係るコントローラID「C003」の後に出現するコントローラIDは「C004」である。コントローラマスタを、コントローラID「C004」で検索すれば、当該コントローラIDは参照系であることが分かる。   Then, the controller determination unit 340 confirms whether the subsequent controller is an update system in the same session as the specified session ID (step S47). For example, if the session ID is “S001”, the controller ID that appears after the controller ID “C001” related to the process is “C002”. If the controller master is searched with the controller ID “C002”, “update (W)” is registered in association with the controller ID. Therefore, it can be seen that the subsequent controller is an update system. On the other hand, if the session ID is “S002”, the controller ID that appears after the controller ID “C003” related to the process is “C004”. If the controller master is searched with the controller ID “C004”, it can be seen that the controller ID is a reference system.

そうすると、後続のコントローラが更新系でなければ(ステップS49:Noルート)、ステップS43に移行する。すなわち、判定結果として「参照可能」が登録される。一方、後続のコントローラが更新系であれば(ステップS49:Yesルート)、コントローラ判定部340は、該当する後続の更新系コントローラのスレッドIDをコントローラアクセス履歴において特定し、エンティティアクセス履歴において当該スレッドIDに該当するレコードを特定する(ステップS51)。上で述べたように、後続の更新系コントローラのコントローラIDが「C002」であれば、スレッドIDは「T002」である。よって、エンティティアクセス履歴において、第3乃至第5行が特定される。   Then, if the subsequent controller is not an update system (step S49: No route), the process proceeds to step S43. That is, “referenceable” is registered as the determination result. On the other hand, if the subsequent controller is an update system (step S49: Yes route), the controller determination unit 340 identifies the thread ID of the corresponding subsequent update system controller in the controller access history, and the thread ID in the entity access history. A record corresponding to is identified (step S51). As described above, if the controller ID of the subsequent update controller is “C002”, the thread ID is “T002”. Therefore, the third to fifth rows are specified in the entity access history.

その後、コントローラ判定部340は、特定されたレコードに、ステップS31で特定された参照系コントローラの参照クリティカルフィールドと同一のフィールドに対する更新が含まれるか確認する(ステップS53)。ステップS39で特定されたクリティカルフィールドに対応するエンティティIDが「E003」であり、エンティティアクセス履歴の第3乃至第5行に、エンティティID「E003」及び処理種別「W」が登録されている行が存在するか判断する。第5行がこの条件を満たしていることが分かる。   Thereafter, the controller determination unit 340 confirms whether the specified record includes an update for the same field as the reference critical field of the reference controller specified in step S31 (step S53). The entity ID corresponding to the critical field identified in step S39 is “E003”, and the rows where the entity ID “E003” and the processing type “W” are registered in the third to fifth rows of the entity access history. Determine if it exists. It can be seen that the fifth row satisfies this condition.

ステップS53で特定されたレコードに、ステップS31で特定された参照系コントローラの参照クリティカルフィールドと同一のフィールドに対する更新が含まれない場合には(ステップS55:Noルート)、ステップS43に移行する。すなわち、判定結果として「参照可能」が登録される。一方、ステップS53で特定されたレコードに、ステップS31で特定された参照系コントローラの参照クリティカルフィールドと同一のフィールドに対する更新が含まれる場合には(ステップS55:Yesルート)、コントローラ判定部340は、コントローラマスタにおいて、特定された参照系コントローラに対応付けて判定結果として「参照不可」を登録する(ステップS57)。コントローラID「C001」の場合、判定結果として「参照不可」が登録される。そして、処理は端子Dを介してステップS31に戻る。   If the record specified in step S53 does not include an update to the same field as the reference critical field of the reference controller specified in step S31 (step S55: No route), the process proceeds to step S43. That is, “referenceable” is registered as the determination result. On the other hand, when the record identified in step S53 includes an update to the same field as the reference critical field of the reference controller identified in step S31 (step S55: Yes route), the controller determination unit 340 In the controller master, “reference impossible” is registered as a determination result in association with the identified reference system controller (step S57). In the case of the controller ID “C001”, “non-referenceable” is registered as the determination result. Then, the process returns to step S31 via the terminal D.

以上の処理を、コントローラマスタに登録されている全ての参照系コントローラについて処理が完了するまで繰り返す。   The above processing is repeated until the processing is completed for all reference system controllers registered in the controller master.

このような処理を実施することによって、コントローラマスタ(図20)は、図23に示すような状態に変化する。すなわち、コントローラID「C001」についてのみ「参照不可」が登録され、コントローラID「C003」及び「C004」については「参照可能」が登録される。   By performing such processing, the controller master (FIG. 20) changes to the state shown in FIG. That is, “cannot be referred to” is registered only for the controller ID “C001”, and “can be referred” is registered for the controller IDs “C003” and “C004”.

図24に示すように、セッション「S001」で、スレッド「T001」において、例えば参照系コントローラ「C001」で実行される注文確認処理でクリティカルフィールド「注文金額」を参照した後に、同一セッション「S001」で、スレッド「T002」において、更新系コントローラ「C002」で実行される注文決済処理で同一クリティカルフィールド「注文金額」を更新するようなケースでは、注文確認処理を実施する参照系コントローラ「C001」については、スレーブDBへのアクセスに変更させることができない。これは、レプリケーションによる更新遅延の影響が、外部からアクセスしてきているユーザに対して現れてしまうからである。   As shown in FIG. 24, in the session “S001”, in the thread “T001”, for example, after referring to the critical field “order amount” in the order confirmation process executed by the reference controller “C001”, the same session “S001” In the case where the same critical field “order amount” is updated in the order settlement process executed by the update controller “C002” in the thread “T002”, the reference controller “C001” that performs the order confirmation process is updated. Cannot be changed to access to the slave DB. This is because the effect of update delay due to replication appears for users who are accessing from outside.

一方、図25に示すように、セッション「S002」で、スレッド「T003」において、例えば参照系コントローラ「C003」で実行されるリスト確認処理でクリティカルフィールド「単価」を参照した後に、同一セッション「S002」で、スレッド「T004」において、参照系コントローラ「C004」で実行される詳細確認処理で同一クリティカルフィールド「単価」を参照するケースでは、参照系コントローラ「C003」を、スレーブDBへのアクセスに変更しても問題がない。   On the other hand, as shown in FIG. 25, in the session “S002”, in the thread “T003”, for example, after referring to the critical field “unit price” in the list confirmation process executed by the reference system controller “C003”, the same session “S002” In the case where the same critical field “unit price” is referred to in the detailed confirmation process executed by the reference system controller “C004” in the thread “T004”, the reference system controller “C003” is changed to access to the slave DB. There is no problem.

以上のように、コントローラ・クラスのメソッド単位で、スケールアウトする際にスレーブDBへのアクセスに変更することができるか否かを、アクセス履歴という比較的容易に取得できるデータにより自動的に判定することができるようになる。   As described above, whether or not the access to the slave DB can be changed when scaling out is automatically determined for each method of the controller class based on data that can be acquired relatively easily such as an access history. Will be able to.

従って、コントローラマスタに登録された判定結果に従って、例えば図26に示すようなアクセス態様に変更しても問題を発生させずに、スケールアウトを行うことができるようになる。図26の例では、図24の状況に基づき、Webアプリケーションにおいて注文確認処理を実行する参照系プログラム及び注文決済処理を実行する更新系プログラムについては、マスタDBサーバで管理されるデータベースにアクセスするが、注文履歴参照を実行する参照系プログラムについては、定期的にレプリケーションが実施されるスレーブDBサーバのデータベースにアクセスするような構成変更が行われるようになる。   Therefore, according to the determination result registered in the controller master, scale-out can be performed without causing a problem even if the access mode is changed as shown in FIG. 26, for example. In the example of FIG. 26, the database managed by the master DB server is accessed for the reference system program for executing the order confirmation process and the update system program for executing the order settlement process in the Web application based on the situation of FIG. Regarding the reference system program for executing the order history reference, a configuration change is performed so as to access the database of the slave DB server on which the replication is periodically performed.

以上本技術の実施の形態について説明したが、本技術はこれに限定されるものではない。例えば、上では良く使用されるフレームワークに従ってコントローラとエンティティに分けられる場合を説明したが、このような前提的な構成に適用範囲が限定されるわけではない。   Although the embodiment of the present technology has been described above, the present technology is not limited to this. For example, the case where the controller and the entity are divided according to a frequently used framework has been described above, but the scope of application is not limited to such a premise configuration.

また、分析サーバ300の機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成が一致しない場合もある。さらに、マスタデータ及びアクセス履歴のテーブル構成についても一例に過ぎず、他の構成を採用するようにしても良い。処理フローについても、処理結果が変わらない限り、処理ステップの順番を入れ替えたり、並列実行するようにしても良い。   The functional block diagram of the analysis server 300 is an example, and the actual program module configuration may not always match. Furthermore, the table configuration of the master data and the access history is only an example, and other configurations may be adopted. As for the processing flow, as long as the processing result does not change, the order of the processing steps may be changed or may be executed in parallel.

また、参照可のみ又は参照不可のみをコントローラマスタに登録するようにしても良い。   Further, only reference possible or only reference impossible may be registered in the controller master.

なお、上で述べた分析サーバ300は、コンピュータ装置であって、図27に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。   The analysis server 300 described above is a computer device, and as shown in FIG. 27, a memory 2501, a CPU 2503, a hard disk drive (HDD) 2505, a display control unit 2507 connected to the display device 2509, and a removable device. A drive device 2513 for the disk 2511, an input device 2515, and a communication control unit 2517 for connecting to a network are connected by a bus 2519. An operating system (OS) and an application program for executing the processing in this embodiment are stored in the HDD 2505, and are read from the HDD 2505 to the memory 2501 when executed by the CPU 2503. If necessary, the CPU 2503 controls the display control unit 2507, the communication control unit 2517, and the drive device 2513 to perform necessary operations. Further, data in the middle of processing is stored in the memory 2501 and stored in the HDD 2505 if necessary. In an embodiment of the present technology, an application program for performing the above-described processing is stored in a computer-readable removable disk 2511 and distributed, and installed from the drive device 2513 to the HDD 2505. In some cases, the HDD 2505 may be installed via a network such as the Internet and the communication control unit 2517. Such a computer apparatus realizes various functions as described above by organically cooperating hardware such as the CPU 2503 and the memory 2501 described above, the OS, and necessary application programs.

以上述べた本実施の形態をまとめると、以下のようになる。   The above-described embodiment can be summarized as follows.

本判定方法は、(A)セッションの識別子とプログラムの識別子とデータベース内におけるアクセス先のデータ項目を識別するためのデータ項目識別子と参照又は更新を表す処理種別とが関連付けられて履歴データとして格納されているアクセス履歴格納部から、判定対象のプログラム毎に履歴データを読み出し、処理種別に更新が含まれない場合には参照を表す種別データを当該判定対象のプログラムの識別子に対応付けてプログラムデータ格納部に格納するステップと、(B)プログラムデータ格納部において参照を表す種別データが対応付けて登録されている判定対象のプログラムの各々について、アクセス履歴格納部において、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目を識別するための識別子と当該判定対象のプログラムの識別子とが関連付けられている特定の履歴データが存在しており、且つ当該特定の履歴データに含まれるデータ項目識別子及びセッションの識別子と同一のデータ項目識別子及びセッションの識別子と更新を表す処理種別とが関連付けられている履歴データが特定の履歴データの後に存在するという条件を満たすか判断するステップとを含む。   In this determination method, (A) a session identifier, a program identifier, a data item identifier for identifying an access destination data item in the database, and a processing type indicating reference or update are associated and stored as history data. The history data is read from the access history storage unit for each determination target program, and if the processing type does not include an update, the type data representing the reference is associated with the identifier of the determination target program and stored as program data (B) Predetermining that each of the determination target programs registered in association with the type data representing the reference in the program data storage unit is affected by the replication in the access history storage unit. Identification to identify a given data item Data item identifiers and session identifiers that are the same as the data item identifiers and session identifiers included in the specific history data. And determining whether or not the condition that the history data associated with the update processing type exists after the specific history data is satisfied.

このようにすれば、上で述べた条件を導入することによって、レプリケーションによる悪影響を最小限に抑えて、レプリケーションによるスケールアウトを行うことができるようになる。   In this way, by introducing the above-mentioned conditions, it is possible to perform scale-out by replication while minimizing the adverse effects of replication.

また、上記判定方法は、上記条件を満たす判定対象のプログラムの識別子に対応付けてレプリケーション先へのアクセスが不適であることを表すデータをプログラムデータ格納部に格納するステップをさらに含むようにしてもよい。また、上記条件を満たさない判定対象のプログラムの識別子に対応付けてレプリケーション先へのアクセスが適切であることを表すデータをプログラムデータ格納部に格納するステップをさらに含むようにしても良い。レプリケーション先へのアクセスが不適なプログラムと適切なプログラムとのうち少なくともいずれかが自動的に特定されるようになる。   The determination method may further include a step of storing in the program data storage unit data indicating that access to the replication destination is inappropriate in association with an identifier of a determination target program that satisfies the above conditions. Further, it may further include a step of storing in the program data storage unit data indicating that the access to the replication destination is appropriate in association with the identifier of the determination target program that does not satisfy the above condition. At least one of the program inappropriate for accessing the replication destination and the appropriate program is automatically identified.

なお、アクセス履歴格納部が、セッションの識別子とプログラムの識別子とスレッドの識別子とを対応付ける第1の履歴データとスレッドの識別子とアクセス先のデータ項目を識別するためのデータ項目識別子と処理種別とを対応付ける第2の履歴データとを格納するようにしてもよい。その際、スレッドの識別子により第1の履歴データと第2の履歴データとが関連付けられているような場合もある。スケールアウトを実施するシステムによっては、上で述べたような2系統の履歴データが取得される場合もある。   The access history storage unit includes first history data that associates a session identifier, a program identifier, and a thread identifier, a thread identifier, a data item identifier for identifying an access destination data item, and a processing type. The second history data to be associated may be stored. At that time, the first history data and the second history data may be associated with each other by the thread identifier. Depending on the system that performs the scale-out, two types of history data as described above may be acquired.

さらに、アクセス先のデータ項目を識別するためのデータ項目識別子が、プログラムから呼び出され且つアクセス先のデータ項目に対応付けられている別のプログラムの識別子である場合もある。データベース内の特定のデータ項目へのアクセスが、特定のプログラムにより行われるような実装の場合にも対処可能である。また、上記プログラムがコントローラであり、上記別のプログラムがエンティティである場合もある。   Furthermore, the data item identifier for identifying the access destination data item may be an identifier of another program called from the program and associated with the access destination data item. It is possible to deal with an implementation in which access to a specific data item in the database is performed by a specific program. In some cases, the program is a controller and the other program is an entity.

本判定装置(図28)は、(A)セッションの識別子とプログラムの識別子とデータベース内におけるアクセス先のデータ項目を識別するためのデータ項目識別子と参照又は更新を表す処理種別とが関連付けられて履歴データとして格納されているアクセス履歴格納部(図28:3010)から、判定対象のプログラム毎に履歴データを読み出し、処理種別に更新が含まれない場合には参照を表す種別データを当該判定対象のプログラムの識別子に対応付けてプログラムデータ格納部(図28:3030)に格納するプログラム分類部(図28:3020)と、(B)プログラムデータ格納部において参照を表す種別データが対応付けて登録されている判定対象のプログラムの各々について、アクセス履歴格納部において、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目を識別するための識別子と当該判定対象のプログラムの識別子とが関連付けられている特定の履歴データが存在しており、且つ当該特定の履歴データに含まれるデータ項目識別子及びセッションの識別子と同一のデータ項目識別子及びセッションの識別子と更新を表す処理種別とが関連付けられている履歴データが特定の履歴データの後に存在するという条件を満たすか判断するプログラム判定部と(図28:3040)とを有する。   The determination apparatus (FIG. 28) is configured to record (A) a session identifier, a program identifier, a data item identifier for identifying an access destination data item in the database, and a processing type indicating reference or update. The history data is read for each determination target program from the access history storage unit (FIG. 28: 3010) stored as data, and if the processing type does not include an update, the type data representing the reference The program classification unit (FIG. 28: 3020) stored in the program data storage unit (FIG. 28: 3030) in association with the program identifier and (B) the type data representing the reference in the program data storage unit are registered in association with each other. For each of the judgment target programs, replication is performed in the access history storage unit. There is specific history data in which an identifier for identifying a predetermined data item that is predetermined as being affected by the identifier of the program to be determined exists, and the specific history data Whether or not the history data associated with the data item identifier and session identifier identical to the data item identifier and session identifier included in the database and the processing type indicating the update exist after the specific history data is satisfied. A program determination unit (FIG. 28: 3040).

なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ(例えばROM)、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、RAM等の記憶装置に一時保管される。   A program for causing a computer to perform the processing described above can be created, such as a flexible disk, a CD-ROM, a magneto-optical disk, a semiconductor memory (for example, ROM), a hard disk, etc. Stored in a computer-readable storage medium or storage device. Note that data being processed is temporarily stored in a storage device such as a RAM.

300 分析サーバ 310 マスタ格納部
320 アクセス履歴格納部 330 コントローラ分類部
340 コントローラ判定部
120 アクセス履歴収集部
300 Analysis Server 310 Master Storage Unit 320 Access History Storage Unit 330 Controller Classification Unit 340 Controller Determination Unit 120 Access History Collection Unit

Claims (5)

セッションの識別子とプログラムの識別子とデータベース内におけるアクセス先のデータ項目を識別するためのデータ項目識別子と参照又は更新を表す処理種別とが関連付けられて履歴データとして格納されているアクセス履歴格納部から、判定対象のプログラム毎に前記履歴データを読み出し、前記処理種別に更新が含まれない場合には参照を表す種別データを、前記処理種別に更新が含まれる場合には更新を表す種別データを、当該判定対象のプログラムの識別子に対応付けてプログラムデータ格納部に格納するステップと、
前記プログラムデータ格納部において前記参照を表す種別データが対応付けて登録されている前記判定対象のプログラムの各々について、
前記アクセス履歴格納部において、当該判定対象のプログラムの識別子に関連付けられたデータ項目識別子を特定し、
特定された前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子であるかを判断し、
特定された前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子である場合には、前記アクセス履歴格納部において、当該判定対象のプログラムの識別子に関連付けられたセッションの識別子を特定し、
前記アクセス履歴格納部において、特定された前記セッションの識別子と同一のセッションの識別子が関連付けられた後続のプログラムの識別子を特定し、
前記プログラムデータ格納部において、特定された前記後続のプログラムの識別子に対応付けて前記更新を表す種別データが対応付けて格納されているか判断し、
前記プログラムデータ格納部において、特定された前記後続のプログラムの識別子に対応付けて前記更新を表す種別データが対応付けて格納されている場合には、前記アクセス履歴格納部において、特定された前記後続のプログラムの識別子に関連付けられた前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子であるかを判断するステップと、
を、コンピュータに実行させるための判定プログラム。
From the access history storage unit in which the session identifier, the program identifier, the data item identifier for identifying the data item of the access destination in the database, and the processing type indicating reference or update are associated and stored as history data, for each determination target program reads the history data, the type data representing a reference in the absence of the update to the process type, the type data indicating an update if that contain updated to the process type, Storing in the program data storage unit in association with the identifier of the determination target program;
For each of the determination target programs registered in association with the type data representing the reference in the program data storage unit,
In the access history storage unit, identify the data item identifier associated with the identifier of the program to be determined,
It said data item identifier is identified, to determine whether the identifier of the predetermined data items are predetermined as affected by replication,
When the identified data item identifier is an identifier of a predetermined data item that is predetermined to be affected by replication, the access history storage unit associates the identified data item identifier with the identifier of the determination target program. Identify the session identifier,
In the access history storage unit, identify an identifier of a subsequent program associated with the same session identifier as the identified session identifier;
In the program data storage unit, it is determined whether type data representing the update is stored in association with an identifier of the identified subsequent program,
In the program data storage unit, when the type data representing the update is stored in association with the identified identifier of the subsequent program, the access history storage unit identifies the subsequent Determining whether the data item identifier associated with the program identifier is an identifier of a predetermined data item that is predetermined to be affected by replication ;
Is a determination program for causing a computer to execute.
特定された前記後続のプログラムの識別子に関連付けられた前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子であると判断された前記判定対象のプログラムの識別子に対応付けて前記レプリケーション先へのアクセスが不適であることを表すデータを前記プログラムデータ格納部に格納するステップ
をさらに前記コンピュータに実行させるための請求項1記載の判定プログラム。
The identifier of the program to be determined that the data item identifier associated with the identified identifier of the subsequent program is determined to be an identifier of a predetermined data item that is predetermined as being affected by replication. The determination program according to claim 1, further causing the computer to execute a step of storing data indicating that access to the replication destination is inappropriate in association with the program data storage unit.
特定された前記後続のプログラムの識別子に関連付けられた前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子であると判断されなかった前記判定対象のプログラムの識別子に対応付けて前記レプリケーション先へのアクセスが適切であることを表すデータを前記プログラムデータ格納部に格納するステップ
を前記コンピュータにさらに実行させるための請求項1又は2記載の判定プログラム。
The identifier of the program to be determined that the data item identifier associated with the identified identifier of the subsequent program is not determined to be an identifier of a predetermined data item that is determined in advance to be affected by replication The determination program according to claim 1 or 2, further causing the computer to execute a step of storing in the program data storage unit data indicating that access to the replication destination is appropriate in association with.
セッションの識別子とプログラムの識別子とデータベース内におけるアクセス先のデータ項目を識別するためのデータ項目識別子と参照又は更新を表す処理種別とが関連付けられて履歴データとして格納されているアクセス履歴格納部から、判定対象のプログラム毎に前記履歴データを読み出し、前記処理種別に更新が含まれない場合には参照を表す種別データを、前記処理種別に更新が含まれる場合には更新を表す種別データを、当該判定対象のプログラムの識別子に対応付けてプログラムデータ格納部に格納するステップと、
前記プログラムデータ格納部において前記参照を表す種別データが対応付けて登録されている前記判定対象のプログラムの各々について、
前記アクセス履歴格納部において、当該判定対象のプログラムの識別子に関連付けられたデータ項目識別子を特定し、
特定された前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子であるかを判断し、
特定された前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子である場合には、前記アクセス履歴格納部において、当該判定対象のプログラムの識別子に関連付けられたセッションの識別子を特定し、
前記アクセス履歴格納部において、特定された前記セッションの識別子と同一のセッションの識別子が関連付けられた後続のプログラムの識別子を特定し、
前記プログラムデータ格納部において、特定された前記後続のプログラムの識別子に対応付けて前記更新を表す種別データが対応付けて格納されているか判断し、
前記プログラムデータ格納部において、特定された前記後続のプログラムの識別子に対応付けて前記更新を表す種別データが対応付けて格納されている場合には、前記アクセス履歴格納部において、特定された前記後続のプログラムの識別子に関連付けられた前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子であるかを判断するステップと、
を含み、コンピュータにより実行される判定方法。
From the access history storage unit in which the session identifier, the program identifier, the data item identifier for identifying the data item of the access destination in the database, and the processing type indicating reference or update are associated and stored as history data, for each determination target program reads the history data, the type data representing a reference in the absence of the update to the process type, the type data indicating an update if that contain updated to the process type, Storing in the program data storage unit in association with the identifier of the determination target program;
For each of the determination target programs registered in association with the type data representing the reference in the program data storage unit,
In the access history storage unit, identify the data item identifier associated with the identifier of the program to be determined,
It said data item identifier is identified, to determine whether the identifier of the predetermined data items are predetermined as affected by replication,
When the identified data item identifier is an identifier of a predetermined data item that is predetermined to be affected by replication, the access history storage unit associates the identified data item identifier with the identifier of the determination target program. Identify the session identifier,
In the access history storage unit, identify an identifier of a subsequent program associated with the same session identifier as the identified session identifier;
In the program data storage unit, it is determined whether type data representing the update is stored in association with an identifier of the identified subsequent program,
In the program data storage unit, when the type data representing the update is stored in association with the identified identifier of the subsequent program, the access history storage unit identifies the subsequent Determining whether the data item identifier associated with the program identifier is an identifier of a predetermined data item that is predetermined to be affected by replication ;
And a determination method executed by a computer.
セッションの識別子とプログラムの識別子とデータベース内におけるアクセス先のデータ項目を識別するためのデータ項目識別子と参照又は更新を表す処理種別とが関連付けられて履歴データとして格納されているアクセス履歴格納部から、判定対象のプログラム毎に前記履歴データを読み出し、前記処理種別に更新が含まれない場合には参照を表す種別データを、前記処理種別に更新が含まれる場合には更新を表す種別データを、当該判定対象のプログラムの識別子に対応付けてプログラムデータ格納部に格納するプログラム分類部と、
前記プログラムデータ格納部において前記参照を表す種別データが対応付けて登録されている前記判定対象のプログラムの各々について、
前記アクセス履歴格納部において、当該判定対象のプログラムの識別子に関連付けられたデータ項目識別子を特定し、
特定された前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子であるかを判断し、
特定された前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子である場合には、前記アクセス履歴格納部において、当該判定対象のプログラムの識別子に関連付けられたセッションの識別子を特定し、
前記アクセス履歴格納部において、特定された前記セッションの識別子と同一のセッションの識別子が関連付けられた後続のプログラムの識別子を特定し、
前記プログラムデータ格納部において、特定された前記後続のプログラムの識別子に対応付けて前記更新を表す種別データが対応付けて格納されているか判断し、
前記プログラムデータ格納部において、特定された前記後続のプログラムの識別子に対応付けて前記更新を表す種別データが対応付けて格納されている場合には、前記アクセス履歴格納部において、特定された前記後続のプログラムの識別子に関連付けられた前記データ項目識別子が、レプリケーションによる影響を受けるとして予め定められている所定のデータ項目の識別子であるかを判断するプログラム判定部と、
を含む判定装置。
From the access history storage unit in which the session identifier, the program identifier, the data item identifier for identifying the data item of the access destination in the database, and the processing type indicating reference or update are associated and stored as history data, for each determination target program reads the history data, the type data representing a reference in the absence of the update to the process type, the type data indicating an update if that contain updated to the process type, A program classification unit that stores the program data storage unit in association with the identifier of the program to be determined;
For each of the determination target programs registered in association with the type data representing the reference in the program data storage unit,
In the access history storage unit, identify the data item identifier associated with the identifier of the program to be determined,
It said data item identifier is identified, to determine whether the identifier of the predetermined data items are predetermined as affected by replication,
When the identified data item identifier is an identifier of a predetermined data item that is predetermined to be affected by replication, the access history storage unit associates the identified data item identifier with the identifier of the determination target program. Identify the session identifier,
In the access history storage unit, identify an identifier of a subsequent program associated with the same session identifier as the identified session identifier;
In the program data storage unit, it is determined whether type data representing the update is stored in association with an identifier of the identified subsequent program,
In the program data storage unit, when the type data representing the update is stored in association with the identified identifier of the subsequent program, the access history storage unit identifies the subsequent A program determination unit that determines whether the data item identifier associated with the program identifier is an identifier of a predetermined data item that is predetermined as being affected by replication ;
A determination device including:
JP2010038560A 2010-02-24 2010-02-24 Judgment program, method and apparatus Expired - Fee Related JP5598017B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010038560A JP5598017B2 (en) 2010-02-24 2010-02-24 Judgment program, method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010038560A JP5598017B2 (en) 2010-02-24 2010-02-24 Judgment program, method and apparatus

Publications (2)

Publication Number Publication Date
JP2011175422A JP2011175422A (en) 2011-09-08
JP5598017B2 true JP5598017B2 (en) 2014-10-01

Family

ID=44688228

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010038560A Expired - Fee Related JP5598017B2 (en) 2010-02-24 2010-02-24 Judgment program, method and apparatus

Country Status (1)

Country Link
JP (1) JP5598017B2 (en)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446653B (en) 2014-08-27 2018-12-14 阿里巴巴集团控股有限公司 A kind of data merging method and equipment
US10359954B2 (en) 2017-05-31 2019-07-23 Alibaba Group Holding Limited Method and system for implementing byte-alterable write cache
US10884926B2 (en) 2017-06-16 2021-01-05 Alibaba Group Holding Limited Method and system for distributed storage using client-side global persistent cache
US10229003B2 (en) 2017-06-16 2019-03-12 Alibaba Group Holding Limited Method and system for iterative data recovery and error correction in a distributed system
US10303241B2 (en) 2017-06-19 2019-05-28 Alibaba Group Holding Limited System and method for fine-grained power control management in a high capacity computer cluster
US10423508B2 (en) 2017-08-11 2019-09-24 Alibaba Group Holding Limited Method and system for a high-priority read based on an in-place suspend/resume write
US10303601B2 (en) 2017-08-11 2019-05-28 Alibaba Group Holding Limited Method and system for rearranging a write operation in a shingled magnetic recording device
US10496829B2 (en) 2017-09-15 2019-12-03 Alibaba Group Holding Limited Method and system for data destruction in a phase change memory-based storage device
US10503409B2 (en) 2017-09-27 2019-12-10 Alibaba Group Holding Limited Low-latency lightweight distributed storage system
US10860334B2 (en) 2017-10-25 2020-12-08 Alibaba Group Holding Limited System and method for centralized boot storage in an access switch shared by multiple servers
US10445190B2 (en) 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
US10891239B2 (en) 2018-02-07 2021-01-12 Alibaba Group Holding Limited Method and system for operating NAND flash physical space to extend memory capacity
US10496548B2 (en) 2018-02-07 2019-12-03 Alibaba Group Holding Limited Method and system for user-space storage I/O stack with user-space flash translation layer
US10402112B1 (en) 2018-02-14 2019-09-03 Alibaba Group Holding Limited Method and system for chunk-wide data organization and placement with real-time calculation
WO2019222958A1 (en) 2018-05-24 2019-11-28 Alibaba Group Holding Limited System and method for flash storage management using multiple open page stripes
US10921992B2 (en) 2018-06-25 2021-02-16 Alibaba Group Holding Limited Method and system for data placement in a hard disk drive based on access frequency for improved IOPS and utilization efficiency
CN111902804B (en) 2018-06-25 2024-03-01 阿里巴巴集团控股有限公司 Systems and methods for managing resources of storage devices and quantifying I/O request costs
US10871921B2 (en) 2018-07-30 2020-12-22 Alibaba Group Holding Limited Method and system for facilitating atomicity assurance on metadata and data bundled storage
US10747673B2 (en) * 2018-08-02 2020-08-18 Alibaba Group Holding Limited System and method for facilitating cluster-level cache and memory space
US10996886B2 (en) * 2018-08-02 2021-05-04 Alibaba Group Holding Limited Method and system for facilitating atomicity and latency assurance on variable sized I/O
US11327929B2 (en) 2018-09-17 2022-05-10 Alibaba Group Holding Limited Method and system for reduced data movement compression using in-storage computing and a customized file system
US10852948B2 (en) 2018-10-19 2020-12-01 Alibaba Group Holding System and method for data organization in shingled magnetic recording drive
US10795586B2 (en) 2018-11-19 2020-10-06 Alibaba Group Holding Limited System and method for optimization of global data placement to mitigate wear-out of write cache and NAND flash
US10769018B2 (en) 2018-12-04 2020-09-08 Alibaba Group Holding Limited System and method for handling uncorrectable data errors in high-capacity storage
US10884654B2 (en) 2018-12-31 2021-01-05 Alibaba Group Holding Limited System and method for quality of service assurance of multi-stream scenarios in a hard disk drive
US10977122B2 (en) 2018-12-31 2021-04-13 Alibaba Group Holding Limited System and method for facilitating differentiated error correction in high-density flash devices
US11061735B2 (en) 2019-01-02 2021-07-13 Alibaba Group Holding Limited System and method for offloading computation to storage nodes in distributed system
US10922234B2 (en) 2019-04-11 2021-02-16 Alibaba Group Holding Limited Method and system for online recovery of logical-to-physical mapping table affected by noise sources in a solid state drive
US11169873B2 (en) 2019-05-21 2021-11-09 Alibaba Group Holding Limited Method and system for extending lifespan and enhancing throughput in a high-density solid state drive
US10860223B1 (en) 2019-07-18 2020-12-08 Alibaba Group Holding Limited Method and system for enhancing a distributed storage system by decoupling computation and network tasks
US11126561B2 (en) 2019-10-01 2021-09-21 Alibaba Group Holding Limited Method and system for organizing NAND blocks and placing data to facilitate high-throughput for random writes in a solid state drive
US11042307B1 (en) 2020-01-13 2021-06-22 Alibaba Group Holding Limited System and method for facilitating improved utilization of NAND flash based on page-wise operation
US11449455B2 (en) 2020-01-15 2022-09-20 Alibaba Group Holding Limited Method and system for facilitating a high-capacity object storage system with configuration agility and mixed deployment flexibility
US10923156B1 (en) 2020-02-19 2021-02-16 Alibaba Group Holding Limited Method and system for facilitating low-cost high-throughput storage for accessing large-size I/O blocks in a hard disk drive
US10872622B1 (en) 2020-02-19 2020-12-22 Alibaba Group Holding Limited Method and system for deploying mixed storage products on a uniform storage infrastructure
US11150986B2 (en) 2020-02-26 2021-10-19 Alibaba Group Holding Limited Efficient compaction on log-structured distributed file system using erasure coding for resource consumption reduction
US11144250B2 (en) 2020-03-13 2021-10-12 Alibaba Group Holding Limited Method and system for facilitating a persistent memory-centric system
US11200114B2 (en) 2020-03-17 2021-12-14 Alibaba Group Holding Limited System and method for facilitating elastic error correction code in memory
US11385833B2 (en) 2020-04-20 2022-07-12 Alibaba Group Holding Limited Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources
US11281575B2 (en) 2020-05-11 2022-03-22 Alibaba Group Holding Limited Method and system for facilitating data placement and control of physical addresses with multi-queue I/O blocks
US11494115B2 (en) 2020-05-13 2022-11-08 Alibaba Group Holding Limited System method for facilitating memory media as file storage device based on real-time hashing by performing integrity check with a cyclical redundancy check (CRC)
US11461262B2 (en) 2020-05-13 2022-10-04 Alibaba Group Holding Limited Method and system for facilitating a converged computation and storage node in a distributed storage system
US11218165B2 (en) 2020-05-15 2022-01-04 Alibaba Group Holding Limited Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
US11507499B2 (en) 2020-05-19 2022-11-22 Alibaba Group Holding Limited System and method for facilitating mitigation of read/write amplification in data compression
US11556277B2 (en) 2020-05-19 2023-01-17 Alibaba Group Holding Limited System and method for facilitating improved performance in ordering key-value storage with input/output stack simplification
US11263132B2 (en) 2020-06-11 2022-03-01 Alibaba Group Holding Limited Method and system for facilitating log-structure data organization
US11354200B2 (en) 2020-06-17 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating data recovery and version rollback in a storage device
US11422931B2 (en) 2020-06-17 2022-08-23 Alibaba Group Holding Limited Method and system for facilitating a physically isolated storage unit for multi-tenancy virtualization
US11354233B2 (en) 2020-07-27 2022-06-07 Alibaba Group Holding Limited Method and system for facilitating fast crash recovery in a storage device
US11372774B2 (en) 2020-08-24 2022-06-28 Alibaba Group Holding Limited Method and system for a solid state drive with on-chip memory integration
US11734115B2 (en) 2020-12-28 2023-08-22 Alibaba Group Holding Limited Method and system for facilitating write latency reduction in a queue depth of one scenario
US11416365B2 (en) 2020-12-30 2022-08-16 Alibaba Group Holding Limited Method and system for open NAND block detection and correction in an open-channel SSD
US11726699B2 (en) 2021-03-30 2023-08-15 Alibaba Singapore Holding Private Limited Method and system for facilitating multi-stream sequential read performance improvement with reduced read amplification
US11461173B1 (en) 2021-04-21 2022-10-04 Alibaba Singapore Holding Private Limited Method and system for facilitating efficient data compression based on error correction code and reorganization of data placement
US11476874B1 (en) 2021-05-14 2022-10-18 Alibaba Singapore Holding Private Limited Method and system for facilitating a storage server with hybrid memory for journaling and data storage

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164659A (en) * 2003-12-09 2004-06-10 Shimane Pref Gov Information management system
JP3902188B2 (en) * 2004-03-26 2007-04-04 株式会社エヌ・ティ・ティ・データ Database security system

Also Published As

Publication number Publication date
JP2011175422A (en) 2011-09-08

Similar Documents

Publication Publication Date Title
JP5598017B2 (en) Judgment program, method and apparatus
US11487745B2 (en) Workflow dependency management system
CN109766345B (en) Metadata processing method and device, equipment and readable storage medium
US8671084B2 (en) Updating a data warehouse schema based on changes in an observation model
US8065323B2 (en) Offline validation of data in a database system for foreign key constraints
US9135071B2 (en) Selecting processing techniques for a data flow task
CN107704597A (en) Relevant database to Hive ETL script creation methods
US12455806B2 (en) Runtime error attribution for database queries specified using a declarative database query language
US11513876B2 (en) Resolving data location for queries in a multi-system instance landscape
CN112613792A (en) Data processing method, system, computer device and storage medium
US20090030880A1 (en) Model-Based Analysis
WO2024039562A1 (en) Sharing events and other metrics in native applications
US12130789B1 (en) Data lineage tracking service
CN110019182B (en) A data tracing method and device
US11238077B2 (en) Auto derivation of summary data using machine learning
CN110851515A (en) Big data ETL model execution method and medium based on Spark distributed environment
US20250005192A1 (en) Implementing inherited grants using secure schemas
CN113722333A (en) Data checking method, device, electronic equipment, storage medium and program product
US20200301922A1 (en) Multiform persistence abstraction
CN118838700A (en) Distributed data mining task scheduling method and system
CN101013426A (en) Information management system using connection relation
CN101639783B (en) Configuration to order software deployment and management
US20120323840A1 (en) Data flow cost modeling
US9916339B2 (en) Efficient sorting in a relational database
JP2018181121A (en) Analyzer, analysis program and analysis method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140313

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: 20140715

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140728

R150 Certificate of patent or registration of utility model

Ref document number: 5598017

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees