JP2011175422A - Determination program, method and device - Google Patents

Determination program, method and device Download PDF

Info

Publication number
JP2011175422A
JP2011175422A JP2010038560A JP2010038560A JP2011175422A JP 2011175422 A JP2011175422 A JP 2011175422A JP 2010038560 A JP2010038560 A JP 2010038560A JP 2010038560 A JP2010038560 A JP 2010038560A JP 2011175422 A JP2011175422 A JP 2011175422A
Authority
JP
Japan
Prior art keywords
data
identifier
program
controller
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.)
Granted
Application number
JP2010038560A
Other languages
Japanese (ja)
Other versions
JP5598017B2 (en
Inventor
Yoshihide Nomura
Toshihiro Odaka
敏裕 小高
佳秀 野村
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
Application status is Expired - Fee Related legal-status Critical
Anticipated expiration legal-status Critical

Links

Images

Abstract

In order to realize scale-out by replication, whether to access a program to a slave DB is automatically determined.
The determination method identifies a reference program that performs only a reference from an access history, and performs a reference to a predetermined data item that is determined to be affected by replication in the access history. There is specific history data for the reference program, and history data indicating that an update access to the predetermined data item has occurred in the same session as the session of the specific history data. It is determined whether or not the condition that data is recorded after the history data is satisfied. If the condition is satisfied, the reference program determines that access to the replication destination is inappropriate.
[Selection] Figure 3

Description

  The present technology relates to a technology for realizing scale-out by replication.

  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.

  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.

  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.

  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.

JP 2007-12218 A

  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.

  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.

  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.

  It is possible to automatically determine whether the program is accessed to the slave DB.

FIG. 1 is a diagram illustrating a problem of a conventional system. FIG. 2 is a diagram illustrating a configuration example of a Web application. FIG. 3 is a system outline diagram according to the embodiment of the present technology. FIG. 4 is a diagram illustrating a definition example of Web.xml of a servlet filter. FIG. 5 is a diagram illustrating an example of a log output portion of the servlet filter. FIG. 6 shows an example of aspect application definition. FIG. 7 is a diagram illustrating an example of an aspect application definition. FIG. 8 is a diagram illustrating an aspect application definition example. FIG. 9 is a diagram illustrating an example of an aspect application definition. FIG. 10 is a sequence diagram for explaining the access history collection processing. FIG. 11 is a diagram illustrating an example of log data output by the access history collection process. FIG. 12 is a diagram illustrating an example of log data output by the access history collection process. FIG. 13 is a diagram illustrating an example of controller access history data. FIG. 14 is a diagram illustrating an example of entity access history data. FIG. 15 is a diagram illustrating an example of a controller master. FIG. 16 is a diagram illustrating an example of an entity master. FIG. 17 is a diagram illustrating a processing flow of the analysis server. FIG. 18 is a diagram illustrating a processing flow of the controller classification processing. FIG. 19 is a diagram illustrating a processing flow of the controller classification processing. FIG. 20 is a diagram illustrating an example of a processing result of the controller classification processing. FIG. 21 is a diagram illustrating a process flow of the controller determination process. FIG. 22 is a diagram illustrating a processing flow of controller determination processing. FIG. 23 is a diagram illustrating an example of a process result of the controller determination process. FIG. 24 is a diagram illustrating an example of a controller that cannot be assigned to a slave DB. FIG. 25 is a diagram illustrating an example of a controller that can be assigned to a slave DB. FIG. 26 is a diagram illustrating an example of an access mode after scale-out. FIG. 27 is a functional block diagram of a computer. FIG. 28 is a functional block diagram of the determination apparatus.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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 described below, in the master storage unit 310, an entity ID is defined for each combination of an entity class and a field. Therefore, the entity class name and the entity field name are replaced with corresponding entity IDs thereafter. It shall be shown in shape.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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).

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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”.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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.

  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).

  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 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)

  1. 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, Reading the history data for each determination target program, and storing the type data representing the reference in the program data storage unit in association with the identifier of the determination target program if the processing type does not include an update; ,
    Predetermined data that is determined in advance as being affected by replication in the access history storage unit for each of the determination target programs registered in association with the type data representing the reference in the program data storage unit There is specific history data in which an identifier for identifying an item and an identifier of the determination target program exist, and the data item identifier and the session identifier included in the specific history data Determining whether or not the history data associated with the same data item identifier and session identifier and the processing type representing the update satisfies a condition that the history data exists after the specific history data;
    Is a determination program for causing a computer to execute.
  2. A method for causing the computer to further execute 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 satisfying the condition. The determination program described.
  3. A method for causing the computer to further execute a step of storing in the program data storage unit data indicating that access to the replication destination is appropriate in association with an identifier of a determination target program that does not satisfy the condition. The determination program according to 1 or 2.
  4. 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, Reading the history data for each determination target program, and storing the type data representing the reference in the program data storage unit in association with the identifier of the determination target program if the processing type does not include an update; ,
    Predetermined data that is determined in advance as being affected by replication in the access history storage unit for each of the determination target programs registered in association with the type data representing the reference in the program data storage unit There is specific history data in which an identifier for identifying an item and an identifier of the determination target program exist, and the data item identifier and the session identifier included in the specific history data Determining whether or not the history data associated with the same data item identifier and session identifier and the processing type representing the update satisfies a condition that the history data exists after the specific history data;
    And a determination method executed by a computer.
  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, A program classification that reads the history data for each determination target program and stores the type data representing the reference in the program data storage unit in association with the identifier of the determination target program when the processing type does not include an update And
    Predetermined data that is determined in advance as being affected by replication in the access history storage unit for each of the determination target programs registered in association with the type data representing the reference in the program data storage unit There is specific history data in which an identifier for identifying an item and an identifier of the determination target program exist, and the data item identifier and the session identifier included in the specific history data A program determination unit for determining whether or not the history data associated with the same data item identifier and session identifier and the processing type representing the update satisfies a condition that the history data exists after the specific history data;
    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 true JP2011175422A (en) 2011-09-08
JP5598017B2 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)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446653A (en) * 2014-08-27 2016-03-30 阿里巴巴集团控股有限公司 Data merging method and device
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
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
US10359954B2 (en) 2017-05-31 2019-07-23 Alibaba Group Holding Limited Method and system for implementing byte-alterable write cache
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
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
US10445190B2 (en) 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
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
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
US10503409B2 (en) 2017-09-27 2019-12-10 Alibaba Group Holding Limited Low-latency lightweight distributed storage system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164659A (en) * 2003-12-09 2004-06-10 Fujitsu Ltd Information management system
JP2005276078A (en) * 2004-03-26 2005-10-06 Ntt Data Corp Database security system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004164659A (en) * 2003-12-09 2004-06-10 Fujitsu Ltd Information management system
JP2005276078A (en) * 2004-03-26 2005-10-06 Ntt Data Corp Database security system

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105446653A (en) * 2014-08-27 2016-03-30 阿里巴巴集团控股有限公司 Data merging method and device
JP2017528794A (en) * 2014-08-27 2017-09-28 アリババ グループ ホウルディング リミテッド Dynamic integration based on load
CN105446653B (en) * 2014-08-27 2018-12-14 阿里巴巴集团控股有限公司 A kind of data merging method and equipment
US10523743B2 (en) 2014-08-27 2019-12-31 Alibaba Group Holding Limited Dynamic load-based merging
US10359954B2 (en) 2017-05-31 2019-07-23 Alibaba Group Holding Limited Method and system for implementing byte-alterable write 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
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
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
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
US10445190B2 (en) 2017-11-08 2019-10-15 Alibaba Group Holding Limited Method and system for enhancing backup efficiency by bypassing encoding and decoding
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

Also Published As

Publication number Publication date
JP5598017B2 (en) 2014-10-01

Similar Documents

Publication Publication Date Title
US9652513B2 (en) Generating data pattern information
US10521404B2 (en) Data transformations with metadata
US10218808B2 (en) Scripting distributed, parallel programs
US20190250965A1 (en) Automatic registration of empty pointers
US9792327B2 (en) Self-described query execution in a massively parallel SQL execution engine
US8881131B2 (en) Method and apparatus for populating a software catalogue with software knowledge gathering
US20150379430A1 (en) Efficient duplicate detection for machine learning data sets
JP6378207B2 (en) Efficient query processing using histograms in the columnar database
CN103748579B (en) Data are handled in MapReduce frame
US8756593B2 (en) Map generator for representing interrelationships between app features forged by dynamic pointers
US8768880B2 (en) Automated data analysis and transformation
US7752299B2 (en) Segmentation and processing of continuous data streams using transactional semantics
US8886654B2 (en) Infrastructure and architecture for development and execution of predictive models
US8443006B1 (en) Data propagation in a multi-shard database system
US5724556A (en) Method and apparatus for defining and configuring modules of data objects and programs in a distributed computer system
CN101971165B (en) Graphic representations of data relationships
US6954758B1 (en) Building predictive models within interactive business analysis processes
US7814459B2 (en) System and method for automated on demand replication setup
CN102918530B (en) Data mart automation
JP2014502762A (en) Filtering query data in the data store
US7401064B1 (en) Method and apparatus for obtaining metadata from multiple information sources within an organization in real time
US20140156683A1 (en) Integrating event processing with map-reduce
KR101117817B1 (en) Method, system, and apparatus for discovering and connecting to data sources
US20110295794A1 (en) System and method for supporting data warehouse metadata extension using an extender
US9031992B1 (en) Analyzing big data

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