WO2025009012A1 - 最適化装置、最適化方法、および最適化プログラム - Google Patents
最適化装置、最適化方法、および最適化プログラム Download PDFInfo
- Publication number
- WO2025009012A1 WO2025009012A1 PCT/JP2023/024599 JP2023024599W WO2025009012A1 WO 2025009012 A1 WO2025009012 A1 WO 2025009012A1 JP 2023024599 W JP2023024599 W JP 2023024599W WO 2025009012 A1 WO2025009012 A1 WO 2025009012A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- application
- data
- time required
- attribute values
- access
- 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.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Definitions
- the present invention relates to an optimization device, an optimization method, and an optimization program.
- Non-Patent Document 1 is a technology that attempts to match data between the RDB and graph DB in real time, and does not take into account data flow from the two databases to the application.
- the technology in Patent Document 1 is limited to data searches, and does not anticipate a method for designing the RDB and graph DB. Therefore, it is difficult to optimize data flow between the database and the application and speed up the application using conventional technologies.
- the present invention has been made in consideration of the above, and aims to optimize data flow between a database and an application in a database in which an RDB and a graph DB coexist, thereby speeding up the application.
- the optimization device is characterized by having an acquisition unit that acquires data to be processed by a specified application, an arrangement unit that arranges attribute values of the data in each of a relational database area of a storage unit, a node area of a graph database, and an area of relationships between nodes of the graph database, a measurement unit that measures the time required for the application to access each of the attribute values arranged in each of the areas, a calculation unit that uses the measured time required for access to each of the attribute values to calculate the total time required for the application to access each attribute value in a combination of all different attribute values in the arranged areas, and a selection unit that selects the area in which each attribute value is arranged when the calculated total time required for access by the application is the smallest.
- FIG. 1 is a diagram for explaining an overview of an optimization device.
- FIG. 2 is a schematic diagram illustrating a schematic configuration of the optimization device.
- FIG. 3 is a flowchart showing the optimization process procedure.
- FIG. 4 is a diagram illustrating an example of a computer that executes an optimization program.
- FIG. 1 is a diagram for explaining an overview of an optimization device.
- data referenced by an application is stored in the reference system area of a database.
- data for displaying graphs is placed in the reference system area of the graph DB, and other data such as data for forms and data for tables is placed directly in the reference system of the RDB.
- data attribute values are arranged in columns (see (1)), in the graph DB node reference system 14b area, node attribute values (see (2)), and in the graph DB relationship reference system 14c area, attribute values of relationships between nodes (see (3)).
- An application that displays a graph references the attribute values of the nodes in the graph DB node reference system 14b and the attribute values of the relationships between the nodes in the graph DB relationship reference system 14c (see (5)).
- An application that displays data in a table or report format references the attribute values of the columns in the RDB reference system 14a (see (6)).
- data placement based solely on the data type as described above does not necessarily result in faster applications in terms of performance.
- data placed in a graph DB may be processed faster if it is left in an RDB.
- the optimization device 10 of this embodiment speculatively executes an application and determines the data placement and the area from which the data is referenced so that the application can run at the fastest speed. In this way, the optimization device 10 optimizes data flow between the database and the application based on performance.
- [Configuration of optimization device] 2 is a schematic diagram illustrating a schematic configuration of an optimization device 10.
- the optimization device 10 is realized by a general-purpose computer such as a personal computer, and includes an input unit 11, an output unit 12, a communication control unit 13, a storage unit 14, and a control unit 15.
- the input unit 11 is realized using input devices such as a keyboard and a mouse, and inputs various instruction information such as a command to start processing to the control unit 15 in response to input operations by an operator.
- the output unit 12 is realized by a display device such as a liquid crystal display, a printing device such as a printer, etc.
- the communication control unit 13 is realized by a NIC (Network Interface Card) or the like, and controls communication between the control unit 15 and external devices such as a server via a network.
- the communication control unit 13 controls communication between the control unit 15 and a database device of another system that manages data that is the subject of optimization processing described below, a user terminal on which an application is installed, etc.
- the storage unit 14 is realized by a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory, or a storage device such as a hard disk or an optical disk.
- the storage unit 14 stores in advance the processing program that operates the optimization device 10 and data used during execution of the processing program, or stores the data temporarily each time processing is performed.
- the storage unit 14 may be configured to communicate with the control unit 15 via the communication control unit 13.
- the storage unit 14 stores an RDB reference system 14a, a graph DB node reference system 14b, and a graph DB relationship reference system 14c that are generated in an optimization process described below, and are used by applications as databases.
- the control unit 15 is realized using a CPU (Central Processing Unit) or the like, and executes a processing program stored in memory. As a result, the control unit 15 functions as an acquisition unit 15a, a placement unit 15b, a measurement unit 15c, a calculation unit 15d, and a selection unit 15e, as illustrated in FIG. 2, to execute the optimization process. Note that each or some of these functional units may be implemented in different hardware. For example, the acquisition unit 15a may be implemented in a device separate from the other functional units. The control unit 15 may also include other functional units.
- CPU Central Processing Unit
- the acquisition unit 15a acquires data to be processed by a specific application. For example, the acquisition unit 15a acquires data of an application to be subjected to optimization processing, which will be described later, from a database of another system via the input unit 11 or the communication control unit 13. Specifically, the acquisition unit 15a replicates the database of the other system by snapshot. The acquisition unit 15a may also store the acquired data in the storage unit 14 as master data or initial data. The acquisition unit 15a may also transfer this data to the placement unit 15b, which will be described later, without storing it in the storage unit 14.
- the data to be processed may be, for example, data related to communication equipment.
- optimization processing is effective when the data is related to cables, such as the date of manufacture of the cable, the type of use, etc.
- the placement unit 15b places the attribute values of the data in each of the relational database area of the storage unit 14, the area of the graph database nodes, and the area of the relationships between the nodes of the graph database. Specifically, the placement unit 15b places all attribute values of the data to be processed in each of the RDB reference system 14a, the graph DB node reference system 14b, and the graph DB relationship reference system 14c, regardless of the form of each attribute value. In other words, the same attribute value is placed in each of the three areas.
- the measurement unit 15c measures the time required for the application to access each of the attribute values placed in each of the areas. Specifically, for each attribute value, the measurement unit 15c measures three access times required for the application to access the attribute value placed in three areas: the RDB reference system 14a, the graph DB node reference system 14b, and the graph DB relationship reference system 14c. In other words, the measurement unit 15c measures an access time three times the number of types of attribute values.
- the calculation unit 15d uses the time required to access each of the measured attribute values to calculate the total time required for the application to access each attribute value in the combination of all attribute values with different layout areas. In other words, the calculation unit 15d calculates the total time required for accessing all types of attribute values to be processed by the application (total access time).
- the calculation unit 15d selects, for each attribute value, an attribute value that is placed in one of the three types of areas, and calculates the total time required to access each attribute value. Therefore, the number of combinations of areas in which each attribute value is placed is the number of types of attribute values to the power of the number of areas, or the cube of the number of types of attribute values.
- the calculation unit 15d speculatively calculates the total access time to all attribute values by the application for each combination of the cube of (the number of types of attribute values).
- the calculation unit 15d may further weight the amount of data flowing between the application and the database, and calculate the total time required to access each attribute value in a combination of all attribute values with different layout areas. For example, weighting may be performed according to the length (amount of data) of each attribute value in the specifications. Alternatively, weighting may be performed according to the number of times each attribute value is accessed by the application. In this way, the calculation unit 15d calculates the total access time by the application, taking into account the amount of data flowing between the database and the application.
- the selection unit 15e selects an area in which each attribute value is placed when the calculated time required for access by the application is the shortest. Specifically, the selection unit 15e identifies the placement area for each attribute value when the total access time calculated by the calculation unit 15d is the shortest, and selects the placement area as the optimal data placement for each attribute value. This optimizes the amount of data flow between the application and the database. As a result, it becomes possible to speed up the application.
- the attribute values of the point facilities and the nodes that include the point facilities are optimized and arranged, without being limited to the graph DB node reference system 14b. Also, the attribute values of the spans and relationships that include the spans are optimized and arranged, without being limited to the graph DB relationship reference system 14c.
- the optimization device 10 can also be applied to systems that display data from a graph DB as a line diagram, such as a GIS (Geographic Information System).
- GIS Geographic Information System
- Fig. 3 is a flowchart showing the procedure of the optimization process.
- the flowchart in Fig. 3 is started, for example, when an operational input is made to instruct the start of the optimization process.
- the acquisition unit 15a acquires data to be processed by a specific application (step S1). For example, the acquisition unit 15a acquires data of the application to be subjected to optimization processing from a database of another system, etc.
- the placement unit 15b places all attribute values of the data to be processed in three areas: the RDB reference system 14a, the graph DB node reference system 14b, and the graph DB relationship reference system 14c, regardless of the form of the attribute values (step S2).
- the measurement unit 15c measures the time required for the application to access each of the attribute values placed in each of the three areas (step S3).
- the calculation unit 15d also uses the time required to access each of the measured attribute values to calculate the total access time by the application to each attribute value in the combination of all the different attribute values in the placed areas (step S4).
- the calculation unit 15d may further weight the data according to the amount of data flowing between the application and the database, and calculate the total time required to access all combinations of different attribute values in the allocated areas. For example, weighting may be performed according to the length (amount of data) of each attribute value in the specifications. Alternatively, weighting may be performed according to the number of times each attribute value is accessed by the application.
- the selection unit 15e selects an area in which each attribute value is placed when the calculated total access time by the application is the shortest (step S5). Specifically, the selection unit 15e identifies the placement area for each attribute value when the total access time calculated by the calculation unit 15d is the shortest, and selects the placement area as the optimal data placement for each attribute value. This completes the series of optimization processes.
- the acquisition unit 15a acquires data to be processed by a predetermined application.
- the placement unit 15b places attribute values of the data in each of the relational database area, the node area of the graph database, and the area of the relationship between the nodes of the graph database in the storage unit 14.
- the measurement unit 15c measures the time required for the application to access each of the attribute values placed in each of the areas.
- the calculation unit 15d uses the measured time required for accessing each of the attribute values to calculate the total time required for the application to access each attribute value in a combination of all different attribute values in the placed areas.
- the selection unit 15e selects the area in which each attribute value is placed when the calculated total time required for access by the application is the smallest.
- the data to be processed may be data related to communication equipment. Furthermore, the data to be processed may be data related to cables, in particular, among communication equipment.
- the optimization device 10 speculatively calculates the total access time to different attribute values of all types of placement areas to be processed by the application, and identifies the data placement that results in the minimum access time as the optimal data placement. This optimizes the amount of data flow between the application and the database, making it possible to speed up the application.
- the calculation unit 15d also weights the amount of data flow between the application and the storage unit 14, and calculates the total time required for the application to access each attribute value in the combination of all attribute values with different layout areas. This makes it possible to calculate the total access time by the application, taking into account the amount of data flow between the database and the application. This further optimizes the amount of data flow between the application and the database, making it possible to speed up the application.
- a program in which the process executed by the optimization device 10 according to the above embodiment is written in a language executable by a computer can also be created.
- the optimization device 10 can be implemented by installing an optimization program that executes the above optimization process as package software or online software on a desired computer.
- the information processing device can function as the optimization device 10 by executing the above optimization program on the information processing device.
- the information processing device also includes mobile communication terminals such as smartphones, mobile phones, and PHS (Personal Handyphone System), as well as slate terminals such as PDA (Personal Digital Assistant).
- the function of the optimization device 10 may also be implemented on a cloud server.
- FIG. 4 is a diagram showing an example of a computer that executes an optimization program.
- the computer 1000 has, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. These components are connected by a bus 1080.
- the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012.
- the ROM 1011 stores a boot program such as a BIOS (Basic Input Output System).
- BIOS Basic Input Output System
- the hard disk drive interface 1030 is connected to a hard disk drive 1031.
- the disk drive interface 1040 is connected to a disk drive 1041.
- a removable storage medium such as a magnetic disk or optical disk is inserted into the disk drive 1041.
- the serial port interface 1050 is connected to a mouse 1051 and a keyboard 1052, for example.
- the video adapter 1060 is connected to a display 1061, for example.
- the hard disk drive 1031 stores, for example, an OS (Operating System) 1091, application programs 1092, program modules 1093, and program data 1094. Each piece of information described in the above embodiment is stored, for example, in the hard disk drive 1031 or memory 1010.
- OS Operating System
- the optimization program is stored in the hard disk drive 1031, for example, as a program module 1093 in which instructions to be executed by the computer 1000 are written.
- the program module 1093 in which each process executed by the optimization device 10 described in the above embodiment is written is stored in the hard disk drive 1031.
- data used for information processing by the optimization program is stored as program data 1094, for example, in the hard disk drive 1031.
- the CPU 1020 reads the program module 1093 and program data 1094 stored in the hard disk drive 1031 into the RAM 1012 as necessary, and executes each of the procedures described above.
- the program module 1093 and program data 1094 related to the optimization program are not limited to being stored in the hard disk drive 1031, but may be stored in a removable storage medium, for example, and read by the CPU 1020 via the disk drive 1041 or the like.
- the program module 1093 and program data 1094 related to the optimization program may be stored in another computer connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network), and read by the CPU 1020 via the network interface 1070.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
最適化装置(10)において、取得部(15a)が、所定のアプリケーションの処理対象のデータを取得する。配置部(15b)が、記憶部(14)のリレーショナルデータベースの領域と、グラフデータベースのノードの領域と、グラフデータベースのノード間の関係性の領域とのそれぞれに、データの属性値を配置する。計測部(15c)が、アプリケーションによる、領域のそれぞれに配置された属性値のそれぞれに対するアクセスに要する時間を計測する。算出部(15d)が、計測された属性値のそれぞれに対するアクセスに要する時間を用いて、配置された領域の異なる全属性値の組み合わせにおける各属性値に対するアプリケーションによるアクセスに要する時間の合計を算出する。選択部(15e)が、算出されたアプリケーションによるアクセスに要する時間の合計のうち、最小となる場合に各属性値が配置された領域を選択する。
Description
本発明は、最適化装置、最適化方法、および最適化プログラムに関する。
情報システムの開発において、アプリケーションによりデータベースを高速に参照したり、データ改ざんに対応したりすることが必要である。そこで近年は、データの参照元として、従来のリレーショナルデータベース(RDB)に加え、データ相互の接続関係をより高速に出力・表示が可能なグラフデータベース(グラフDB)が注目されている。ここで、グラフDBは図形表示に特化しており、関数処理・統計処理・帳票出力が可能なRDBの代替とはならないため、RDBとグラフDBとを並存させて利用する技術が提案されている(特許文献1、非特許文献1参照)。
杉本 昌司、他3名、「リレーショナルデータベースとグラフデータベースのハイブリッドシステム構築手法の提案」、信学技報、ICM2021-44、電子情報通信学会、2022年3月3日、p.12-17
しかしながら、従来の技術では、RDBおよびグラフDBとアプリケーションとの間のデータ流通が必ずしも最適化されるとは限らず、アプリケーションの高速化が困難な場合がある。例えば、非特許文献1の技術は、RDBとグラフDBをリアルタイムでデータの整合を図る技術であり、2つのデータベースからアプリケーションへのデータ流通は考慮されていない。また、特許文献1の技術は、データ検索に限定され、RDBとグラフDBの設計方法が想定されていない。そのため、従来技術により、データベースとアプリケーションとの間のデータ流通を最適化して、アプリケーションを高速化することは困難である。
本発明は、上記に鑑みてなされたものであって、RDBとグラフDBとが並存して構成されるデータベースにおいて、データベースとアプリケーションとの間のデータ流通を最適化して、アプリケーションを高速化することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係る最適化装置は、所定のアプリケーションの処理対象のデータを取得する取得部と、記憶部のリレーショナルデータベースの領域と、グラフデータベースのノードの領域と、グラフデータベースのノード間の関係性の領域とのそれぞれに、前記データの属性値を配置する配置部と、前記アプリケーションによる、前記領域のそれぞれに配置された前記属性値のそれぞれに対するアクセスに要する時間を計測する計測部と、計測された前記属性値のそれぞれに対するアクセスに要する時間を用いて、配置された領域の異なる全属性値の組み合わせにおける各属性値に対する前記アプリケーションによるアクセスに要する時間の合計を算出する算出部と、算出された前記アプリケーションによるアクセスに要する時間の合計のうち、最小となる場合に各属性値が配置された領域を選択する選択部と、を有することを特徴とする。
本発明によれば、RDBとグラフDBとが並存して構成されるデータベースにおいて、データベースとアプリケーションとの間のデータ流通を最適化して、アプリケーションを高速化することが可能となる。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[最適化装置の概要]
図1は、最適化装置の概要を説明するための図である。従来、アプリケーションが参照するデータは、データベースの参照系の領域に格納される。例えば、RDBとグラフDBとが並存して構成されるデータベースにおいて、原始的にRDBに配置されるマスターデータのうち、グラフ表示用データがグラフDBの参照系の領域に配置され、それ以外の帳票用データや表用データはRDBの参照系にそのまま配置される。
図1は、最適化装置の概要を説明するための図である。従来、アプリケーションが参照するデータは、データベースの参照系の領域に格納される。例えば、RDBとグラフDBとが並存して構成されるデータベースにおいて、原始的にRDBに配置されるマスターデータのうち、グラフ表示用データがグラフDBの参照系の領域に配置され、それ以外の帳票用データや表用データはRDBの参照系にそのまま配置される。
ここで、RDBとグラフDBとが並存するデータベースに配置されるデータの形態には、マスターデータと同様に属性値がカラムに配置される形態、ノードの属性値が配置される形態、ノード間の関係性の属性値が配置される形態の3種類がある。
従来、データの形態に応じて、図1(a)に例示するように、RDB参照系14aの領域には、データの属性値がカラムに配置され((1)参照)、グラフDBノード参照系14bの領域には、ノードの属性値((2)参照)が配置され、グラフDB関係性参照系14cの領域には、ノード間の関係性の属性値((3)参照)が配置されている。
グラフ表示を行うアプリケーションは、グラフDBノード参照系14bの領域のノードの属性値とグラフDB関係性参照系14cのノード間の関係性の属性値とを参照する((5)参照)。また、表形式や帳票形式でデータ表示を行うアプリケーションは、RDB参照系14aの領域のカラムの属性値を参照する((6)参照)。
一方、上記のようなデータの形態のみに応じた配置では、性能面で必ずしもアプリケーションが高速になるとは限らない。例えば、グラフDBに配置されているデータでも、RDBに配置されたままの方が高速に処理可能な場合がある。
そこで、図1(b)に例示する本実施形態の最適化装置10は、投機的にアプリケーションを実行し、アプリケーションが最も高速になるように、データの配置とデータの参照元の領域とを決定する。これにより、最適化装置10は、性能に基づいてデータベースとアプリケーションとの間のデータ流通の最適化を実現する。
[最適化装置の構成]
図2は、最適化装置の概略構成を例示する模式図である。図2に例示するように、最適化装置10は、パソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、記憶部14、および制御部15を備える。
図2は、最適化装置の概略構成を例示する模式図である。図2に例示するように、最適化装置10は、パソコン等の汎用コンピュータで実現され、入力部11、出力部12、通信制御部13、記憶部14、および制御部15を備える。
入力部11は、キーボードやマウス等の入力デバイスを用いて実現され、操作者による入力操作に対応して、制御部15に対して処理開始などの各種指示情報を入力する。出力部12は、液晶ディスプレイなどの表示装置、プリンター等の印刷装置等によって実現される。
通信制御部13は、NIC(Network Interface Card)等で実現され、ネットワークを介したサーバ等の外部の装置と制御部15との通信を制御する。例えば、通信制御部13は、後述する最適化処理の対象となるデータを管理する他システムのデータベース装置やアプリケーションがインストールされたユーザ端末等と、制御部15との通信を制御する。
記憶部14は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部14には、最適化装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが予め記憶され、あるいは処理の都度一時的に記憶される。なお、記憶部14は、通信制御部13を介して制御部15と通信する構成でもよい。
本実施形態において、記憶部14には、後述する最適化処理で生成されるRDB参照系14a、グラフDBノード参照系14b、グラフDB関係性参照系14cが記憶され、データベースとしてアプリケーションに利用される。
制御部15は、CPU(Central Processing Unit)等を用いて実現され、メモリに記憶された処理プログラムを実行する。これにより、制御部15は、図2に例示するように、取得部15a、配置部15b、計測部15c、算出部15d、および選択部15eとして機能して、最適化処理を実行する。なお、これらの機能部は、それぞれあるいは一部が異なるハードウェアに実装されてもよい。例えば、取得部15aは、他の機能部とは別の装置に実装されてもよい。また、制御部15は、その他の機能部を備えてもよい。
取得部15aは、所定のアプリケーションの処理対象のデータを取得する。例えば、取得部15aは、後述する最適化処理の対象のアプリケーションのデータを、入力部11あるいは通信制御部13を介して、他のシステムのデータベースから取得する。具体的には、取得部15aは、他システムのデータベースをスナップショットにより複製する。また、取得部15aは、取得したデータをマスターデータあるいは初期データとして記憶部14に記憶させてもよい。なお、取得部15aは、これらのデータを記憶部14に記憶させずに、後述する配置部15bに転送してもよい。
ここで、処理対象のデータは、例えば、通信設備に関するデータであってもよい。特に、ケーブルの製造時期、使用形態等のケーブルに関するデータである場合に、最適化処理が有効である。
配置部15bは、記憶部14のリレーショナルデータベースの領域と、グラフデータベースのノードの領域と、グラフデータベースのノード間の関係性の領域とのそれぞれに、データの属性値を配置する。具体的には、配置部15bは、処理対象のデータの全ての属性値を、各属性値の形態にかかわらずに、RDB参照系14a、グラフDBノード参照系14b、グラフDB関係性参照系14cのそれぞれに配置する。つまり、同一の属性値が3つの領域のそれぞれに配置される。
計測部15cは、アプリケーションによる、領域のそれぞれに配置された属性値のそれぞれに対するアクセスに要する時間を計測する。具体的には、計測部15cは、各属性値について、アプリケーションによりRDB参照系14a、グラフDBノード参照系14b、グラフDB関係性参照系14cの3種の領域に配置された属性値へのアクセスに要する3つのアクセス時間を計測する。すなわち、計測部15cは、属性値の種類数の3倍のアクセス時間を計測する。
算出部15dが、計測された属性値のそれぞれに対するアクセスに要する時間を用いて、配置された領域の異なる全属性値の組み合わせにおける各属性値に対するアプリケーションによるアクセスに要する時間の合計を算出する。つまり、算出部15dは、アプリケーションの処理対象の全種類の属性値へのアクセスに要する時間の合計(合計アクセス時間)を算出する。
その際に、算出部15dは、各属性値について、3種の領域のいずれか1つに配置された属性値を選択し、各属性値へのアクセスに要する時間の合計を算出する。したがって、各属性値が配置された領域の組み合わせの数は、(属性値の種類数)の(領域数)乗すなわち(属性値の種類数)の3乗だけ存在する。
つまり、算出部15dは、投機的に、(属性値の種類数)の3乗の組み合わせのそれぞれについて、アプリケーションによる全属性値への合計アクセス時間を算出する。
また、算出部15dは、さらにアプリケーションとデータベースとの間のデータ流通量に応じて重み付けして、配置された領域の異なる全属性値の組み合わせにおける各属性値に対するアクセスに要する時間の合計を算出してもよい。例えば、仕様上の各属性値の長さ(データ量)に応じた重み付けを行う。あるいは、アプリケーションによる各属性値へのアクセス回数に応じて重み付けを行ってもよい。このように、算出部15dは、データベースとアプリケーションとの間のデータ流通量を加味して、アプリケーションによる合計アクセス時間を算出する。
選択部15eは、算出されたアプリケーションによるアクセスに要する時間のうち、最小となる場合に各属性値が配置された領域を選択する。具体的には、選択部15eは、算出部15dが算出した合計アクセス時間が最小となる場合の各属性値の配置領域を特定し、当該配置領域を各属性値の最適なデータ配置として選択する。これにより、アプリケーションとデータベースとの間のデータ流通量が最適化される。その結果、アプリケーションの高速化が可能となる。
なお、処理対象のデータが、通信設備に関するデータである場合には、最適化処理の結果、点設備と、その点設備を包含するノードの属性値が、グラフDBノード参照系14bに限定されず、最適化して配置される。また、スパンとそのスパンを含む関係性の属性値が、グラフDB関係性参照系14cに限定されず、最適化されて配置される。
また、最適化装置10は、GIS(Geographic Information System)等、グラフDBのデータを直線図として表示させるシステムに適用可能である。
[最適化処理]
次に、図3を参照して、本実施形態に係る最適化装置10による最適化処理について説明する。図3は、最適化処理手順を示すフローチャートである。図3のフローチャートは、例えば、最適化処理の開始を指示する操作入力があったタイミングで開始される。
次に、図3を参照して、本実施形態に係る最適化装置10による最適化処理について説明する。図3は、最適化処理手順を示すフローチャートである。図3のフローチャートは、例えば、最適化処理の開始を指示する操作入力があったタイミングで開始される。
まず、取得部15aが、所定のアプリケーションの処理対象のデータを取得する。(ステップS1)。例えば、取得部15aは、他システムのDB等から最適化処理の対象のアプリケーションのデータを取得する。
また、配置部15bが、処理対象のデータの全ての属性値を、属性値の形態にかかわらずに、RDB参照系14a、グラフDBノード参照系14b、グラフDB関係性参照系14cの3つの領域に配置する(ステップS2)。
次に、計測部15cが、アプリケーションによる、3つの領域のそれぞれに配置された属性値のそれぞれに対するアクセスに要する時間を計測する(ステップS3)。
また、算出部15dが、計測された属性値のそれぞれに対するアクセスに要する時間を用いて、配置された領域の異なる全属性値の組み合わせにおける各属性値に対するアプリケーションによる合計アクセス時間を算出する(ステップS4)。
その際に、算出部15dは、さらにアプリケーションとデータベースとの間のデータ流通量に応じて重み付けして、配置された領域の異なる全属性値の組み合わせに対するアクセスに要する時間の合計を算出してもよい。例えば、仕様上の各属性値の長さ(データ量)に応じた重み付けを行う。あるいは、アプリケーションによる各属性値へのアクセス回数に応じて重み付けを行う。
そして、選択部15eが、算出されたアプリケーションによる合計アクセス時間のうち、最小となる場合に各属性値が配置された領域を選択する(ステップS5)。具体的には、選択部15eは、算出部15dが算出した合計アクセス時間が最小となる場合の各属性値の配置領域を特定し、当該配置領域を各属性値の最適なデータ配置として選択する。これにより、一連の最適化処理が終了する。
[効果]
以上、説明したように、最適化装置10において、取得部15aが、所定のアプリケーションの処理対象のデータを取得する。配置部15bが、記憶部14のリレーショナルデータベースの領域と、グラフデータベースのノードの領域と、グラフデータベースのノード間の関係性の領域とのそれぞれに、データの属性値を配置する。計測部15cが、アプリケーションによる、領域のそれぞれに配置された属性値のそれぞれに対するアクセスに要する時間を計測する。算出部15dが、計測された属性値のそれぞれに対するアクセスに要する時間を用いて、配置された領域の異なる全属性値の組み合わせにおける各属性値に対するアプリケーションによるアクセスに要する時間の合計を算出する。選択部15eが、算出されたアプリケーションによるアクセスに要する時間の合計のうち、最小となる場合に各属性値が配置された領域を選択する。
以上、説明したように、最適化装置10において、取得部15aが、所定のアプリケーションの処理対象のデータを取得する。配置部15bが、記憶部14のリレーショナルデータベースの領域と、グラフデータベースのノードの領域と、グラフデータベースのノード間の関係性の領域とのそれぞれに、データの属性値を配置する。計測部15cが、アプリケーションによる、領域のそれぞれに配置された属性値のそれぞれに対するアクセスに要する時間を計測する。算出部15dが、計測された属性値のそれぞれに対するアクセスに要する時間を用いて、配置された領域の異なる全属性値の組み合わせにおける各属性値に対するアプリケーションによるアクセスに要する時間の合計を算出する。選択部15eが、算出されたアプリケーションによるアクセスに要する時間の合計のうち、最小となる場合に各属性値が配置された領域を選択する。
具体的には、処理対象のデータは、通信設備に関するデータであってもよい。また、処理対象のデータは、通信設備のうち特に、ケーブルに関するデータであってもよい。
このように、最適化装置10は、投機的に、アプリケーションの処理対象の全種類の配置領域の異なる属性値への合計アクセス時間を算出し、最小となるデータ配置を、最適なデータ配置として特定する。これにより、アプリケーションとデータベースとの間のデータ流通量が最適化され、アプリケーションの高速化が可能となる。
また、算出部15dは、さらにアプリケーションと記憶部14との間のデータ流通量に応じて重み付けして、配置された領域の異なる全属性値の組み合わせにおける各属性値に対するアプリケーションによるアクセスに要する時間の合計を算出する。これにより、データベースとアプリケーションとの間のデータ流通量を加味して、アプリケーションによる合計アクセス時間を算出することが可能となる。したがって、アプリケーションとデータベースとの間のデータ流通量がさらに最適化され、アプリケーションの高速化が可能となる。
[プログラム]
上記実施形態に係る最適化装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、最適化装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の最適化処理を実行する最適化プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の最適化プログラムを情報処理装置に実行させることにより、情報処理装置を最適化装置10として機能させることができる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。また、最適化装置10の機能を、クラウドサーバに実装してもよい。
上記実施形態に係る最適化装置10が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。一実施形態として、最適化装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の最適化処理を実行する最適化プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の最適化プログラムを情報処理装置に実行させることにより、情報処理装置を最適化装置10として機能させることができる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。また、最適化装置10の機能を、クラウドサーバに実装してもよい。
図4は、最適化プログラムを実行するコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010と、CPU1020と、ハードディスクドライブインタフェース1030と、ディスクドライブインタフェース1040と、シリアルポートインタフェース1050と、ビデオアダプタ1060と、ネットワークインタフェース1070とを有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1031に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1041に接続される。ディスクドライブ1041には、例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が挿入される。シリアルポートインタフェース1050には、例えば、マウス1051およびキーボード1052が接続される。ビデオアダプタ1060には、例えば、ディスプレイ1061が接続される。
ここで、ハードディスクドライブ1031は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093およびプログラムデータ1094を記憶する。上記実施形態で説明した各情報は、例えばハードディスクドライブ1031やメモリ1010に記憶される。
また、最適化プログラムは、例えば、コンピュータ1000によって実行される指令が記述されたプログラムモジュール1093として、ハードディスクドライブ1031に記憶される。具体的には、上記実施形態で説明した最適化装置10が実行する各処理が記述されたプログラムモジュール1093が、ハードディスクドライブ1031に記憶される。
また、最適化プログラムによる情報処理に用いられるデータは、プログラムデータ1094として、例えば、ハードディスクドライブ1031に記憶される。そして、CPU1020が、ハードディスクドライブ1031に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して、上述した各手順を実行する。
なお、最適化プログラムに係るプログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1031に記憶される場合に限られず、例えば、着脱可能な記憶媒体に記憶されて、ディスクドライブ1041等を介してCPU1020によって読み出されてもよい。あるいは、最適化プログラムに係るプログラムモジュール1093やプログラムデータ1094は、LAN(Local Area Network)やWAN(Wide Area Network)等のネットワークを介して接続された他のコンピュータに記憶され、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例および運用技術等は全て本発明の範疇に含まれる。
10 最適化装置
11 入力部
12 出力部
13 通信制御部
14 記憶部
14a RDB参照系
14b グラフDBノード参照系
14c グラフDB関係性参照系
15 制御部
15a 取得部
15b 配置部
15c 計測部
15d 算出部
15e 選択部
11 入力部
12 出力部
13 通信制御部
14 記憶部
14a RDB参照系
14b グラフDBノード参照系
14c グラフDB関係性参照系
15 制御部
15a 取得部
15b 配置部
15c 計測部
15d 算出部
15e 選択部
Claims (6)
- 所定のアプリケーションの処理対象のデータを取得する取得部と、
記憶部のリレーショナルデータベースの領域と、グラフデータベースのノードの領域と、グラフデータベースのノード間の関係性の領域とのそれぞれに、前記データの属性値を配置する配置部と、
前記アプリケーションによる、前記領域のそれぞれに配置された前記属性値のそれぞれに対するアクセスに要する時間を計測する計測部と、
計測された前記属性値のそれぞれに対するアクセスに要する時間を用いて、配置された領域の異なる全属性値の組み合わせにおける各属性値に対する前記アプリケーションによるアクセスに要する時間の合計を算出する算出部と、
算出された前記アプリケーションによるアクセスに要する時間の合計うち、最小となる場合に各属性値が配置された領域を選択する選択部と、
を有することを特徴とする最適化装置。 - 前記算出部は、さらに前記アプリケーションと前記記憶部との間のデータ流通量に応じて重み付けして、前記アクセスに要する時間の合計を算出することを特徴とする請求項1に記載の最適化装置。
- 前記処理対象のデータは、通信設備に関するデータであることを特徴とする請求項1に記載の最適化装置。
- 前記処理対象のデータは、ケーブルに関するデータであることを特徴とする請求項3に記載の最適化装置。
- 記憶部を有する最適化装置が実行する最適化方法であって、
所定のアプリケーションの処理対象のデータを取得する取得工程と、
前記記憶部のリレーショナルデータベースの領域と、グラフデータベースのノードの領域と、グラフデータベースのノード間の関係性の領域とのそれぞれに、前記データの属性値を配置する配置工程と、
前記アプリケーションによる、前記領域のそれぞれに配置された前記属性値のそれぞれに対するアクセスに要する時間を計測する計測工程と、
計測された前記属性値のそれぞれに対するアクセスに要する時間を用いて、配置された領域の異なる全属性値の組み合わせにおける各属性値に対する前記アプリケーションによるアクセスに要する時間の合計を算出する算出工程と、
算出された前記アプリケーションによるアクセスに要する時間の合計うち、最小となる場合に各属性値が配置された領域を選択する選択工程と、
を含んだことを特徴とする最適化方法。 - 所定のアプリケーションの処理対象のデータを取得する取得ステップと、
記憶部のリレーショナルデータベースの領域と、グラフデータベースのノードの領域と、グラフデータベースのノード間の関係性の領域とのそれぞれに、前記データの属性値を配置する配置ステップと、
前記アプリケーションによる、前記領域のそれぞれに配置された前記属性値のそれぞれに対するアクセスに要する時間を計測する計測ステップと、
計測された前記属性値のそれぞれに対するアクセスに要する時間を用いて、配置された領域の異なる全属性値の組み合わせにおける各属性値に対する前記アプリケーションによるアクセスに要する時間の合計を算出する算出ステップと、
算出された前記アプリケーションによるアクセスに要する時間の合計うち、最小となる場合に各属性値が配置された領域を選択する選択ステップと、
をコンピュータに実行させるための最適化プログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2025530812A JPWO2025009012A1 (ja) | 2023-07-03 | 2023-07-03 | |
| PCT/JP2023/024599 WO2025009012A1 (ja) | 2023-07-03 | 2023-07-03 | 最適化装置、最適化方法、および最適化プログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/024599 WO2025009012A1 (ja) | 2023-07-03 | 2023-07-03 | 最適化装置、最適化方法、および最適化プログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025009012A1 true WO2025009012A1 (ja) | 2025-01-09 |
Family
ID=94171296
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/024599 Ceased WO2025009012A1 (ja) | 2023-07-03 | 2023-07-03 | 最適化装置、最適化方法、および最適化プログラム |
Country Status (2)
| Country | Link |
|---|---|
| JP (1) | JPWO2025009012A1 (ja) |
| WO (1) | WO2025009012A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05151036A (ja) * | 1991-11-27 | 1993-06-18 | Nec Corp | データベース運用制御方式 |
| JP2001154995A (ja) * | 1999-11-26 | 2001-06-08 | Toshiba Corp | データ配置最適化サーバ、ネットワークシステムおよび記録媒体 |
-
2023
- 2023-07-03 JP JP2025530812A patent/JPWO2025009012A1/ja active Pending
- 2023-07-03 WO PCT/JP2023/024599 patent/WO2025009012A1/ja not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05151036A (ja) * | 1991-11-27 | 1993-06-18 | Nec Corp | データベース運用制御方式 |
| JP2001154995A (ja) * | 1999-11-26 | 2001-06-08 | Toshiba Corp | データ配置最適化サーバ、ネットワークシステムおよび記録媒体 |
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2025009012A1 (ja) | 2025-01-09 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5852677B2 (ja) | レジスタ・マッピング方法 | |
| US20220128372A1 (en) | Method for path planning, electronic device and storage medium | |
| JP7088897B2 (ja) | データアクセス方法、データアクセス装置、機器及び記憶媒体 | |
| CN114091589B (zh) | 模型训练方法、装置、电子设备及介质 | |
| CN118535332A (zh) | 基于算子选择与细粒度融合的深度学习推理方法及装置 | |
| CN115906720B (zh) | 存储器的设计方法、装置、电子设备和存储介质 | |
| US20150161062A1 (en) | Method, device and computer program for dynamic control of memory access distances in a numa type system | |
| US11954510B2 (en) | Native-image in-memory cache for containerized ahead-of-time applications | |
| CN113694523A (zh) | 基于移动端app的h5游戏显示方法、装置及计算机设备 | |
| CN121187753A (zh) | 面向低gpu资源卡群计算系统的大模型计算方法及装置 | |
| CN119961040A (zh) | 一种嵌入式系统的异常处理方法、装置、设备及存储介质 | |
| CN118055064A (zh) | 路由信息同步方法、装置、计算设备及存储介质 | |
| JP2024015239A (ja) | データ処理装置、データ処理方法、電子機器および記憶媒体 | |
| CN115658324B (zh) | 一种进程调度方法、计算设备及存储介质 | |
| CN116150048B (zh) | 一种内存优化方法、装置、设备及介质 | |
| JP2021022370A (ja) | コンピューティングデバイスによって実行される方法、装置、機器及びコンピュータ読み取り可能な記憶媒体 | |
| CN121387917B (zh) | 数据库配置更新方法 | |
| CN116108782B (zh) | 一种mcu外设控制寄存器行为模拟方法与相关装置 | |
| CN116339937B (zh) | 任务迁移方法、装置、电子设备以及存储介质 | |
| CN120780360B (zh) | 训练数据的预加载方法、装置、计算机设备及存储介质 | |
| WO2024121892A1 (ja) | データベース管理装置、データベース管理方法およびデータベース管理プログラム | |
| US20240320035A1 (en) | Task analysis device and operating method thereof | |
| CN114721725B (zh) | 一种分支指令执行方法、装置、电子设备及存储介质 | |
| CN120255897A (zh) | 代码编译方法、装置、电子设备以及存储介质 | |
| CN118939369A (zh) | 一种cpu超分比的更新方法、装置及电子设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23944266 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2025530812 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2025530812 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |