WO2012111119A1 - 情報処理方法、情報処理装置、及びプログラム記憶媒体 - Google Patents

情報処理方法、情報処理装置、及びプログラム記憶媒体 Download PDF

Info

Publication number
WO2012111119A1
WO2012111119A1 PCT/JP2011/053329 JP2011053329W WO2012111119A1 WO 2012111119 A1 WO2012111119 A1 WO 2012111119A1 JP 2011053329 W JP2011053329 W JP 2011053329W WO 2012111119 A1 WO2012111119 A1 WO 2012111119A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage area
pointer
unit
processing
Prior art date
Application number
PCT/JP2011/053329
Other languages
English (en)
French (fr)
Inventor
聖平 松浦
菅谷 奈津子
幸生 中野
Original Assignee
株式会社 日立製作所
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社 日立製作所 filed Critical 株式会社 日立製作所
Priority to PCT/JP2011/053329 priority Critical patent/WO2012111119A1/ja
Publication of WO2012111119A1 publication Critical patent/WO2012111119A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Definitions

  • the present invention relates to an information processing method, an information processing apparatus, and a program storage medium.
  • Patent Document 1 a system described in Patent Document 1 has been proposed in a power concentration system that is becoming increasingly important from the viewpoint of protecting the global environment.
  • a large number of clients are connected to a data management system via a network, and each transmits data to the data management system.
  • the data management system receives data insertion requests from a plurality of clients simultaneously.
  • a data management method capable of performing high-speed data insertion processing on a data storage area in a data management system in a situation where a data insertion request is simultaneously received from a plurality of clients in order to realize a stable power concentration system Is required to be realized.
  • a server process that performs data insertion processing in a data storage area Data is inserted into a single block in a data storage area reserved on the apparatus.
  • the data storage area secured on the storage device is divided into units called blocks.
  • the server process that performs data insertion processing must acquire an exclusive lock for a single block.
  • all server processes try to acquire an exclusive lock of the same block.
  • the present invention provides a technique that enables a data insertion process to be executed at a higher speed when a plurality of data insertion process requests are received in parallel. It is aimed.
  • a computer including a storage device provided with a data storage area having a plurality of unit storage areas receives a data processing request.
  • the unit storage area included in the data storage area Creating an insertion pointer which is information indicating the unit storage area having a free area where data can be stored, assigning the created insertion pointer to the plurality of data insertion processing requests,
  • the data to be requested for each data insertion processing is stored in parallel in the plurality of designated unit storage areas.
  • the data insertion processing when a plurality of data insertion processing requests are received in parallel, the data insertion processing can be executed at higher speed.
  • FIG. 1 is an example of a hardware configuration diagram of an information processing system according to an embodiment of the present invention.
  • FIG. 2 is an example of a software configuration diagram of the data management server 105 according to the first embodiment of the present invention.
  • FIG. 3 is a diagram illustrating the contents of the definition information 280 in the first embodiment.
  • FIG. 4 is a diagram illustrating a block configuration of the data storage area 290 according to the first embodiment.
  • FIG. 5 is a schematic diagram showing an outline of data processing in the configuration of the first embodiment of the present invention.
  • FIG. 6 is a schematic diagram showing an outline of data processing in the configuration of the first embodiment of the present invention.
  • FIG. 7 is a flowchart showing the processing contents of the overall control unit 270 in the first embodiment.
  • FIG. 8 is a flowchart showing the processing contents of the initialization processing management unit 200 according to the first embodiment.
  • FIG. 9 is a diagram illustrating a configuration example of the insertion pointer management table 900 according to the first embodiment.
  • FIG. 10 is a flowchart illustrating the processing contents of the end processing management unit 210 according to the first embodiment.
  • FIG. 11 is a flowchart illustrating processing contents of the insertion processing control unit 222 according to the first embodiment.
  • FIG. 12A is a flowchart illustrating the processing contents of the insertion processing leveling unit 224 according to the first embodiment.
  • FIG. 12B is a flowchart illustrating the processing content of the insertion processing leveling unit 224 according to the first embodiment.
  • FIG. 13 is a flowchart showing the processing contents of the new block creation unit 226 in the first embodiment.
  • FIG. 14 is a flowchart showing the processing contents of the free space management unit 228 in the first embodiment.
  • FIG. 15 is an example of a software configuration diagram of the data management server 105 according to the second embodiment of the present invention.
  • FIG. 16 is a schematic diagram showing an outline of data processing in the configuration of the second embodiment of the present invention.
  • FIG. 17 is a schematic diagram showing an outline of data processing in the configuration of the second embodiment of the present invention.
  • FIG. 18 is a flowchart illustrating processing contents of the initialization processing management unit 200 according to the second embodiment.
  • FIG. 19 is a diagram illustrating the configuration of the block management table 1900 according to the second embodiment.
  • FIG. 20 is a flowchart illustrating processing contents of the insertion processing control unit 222 according to the second embodiment.
  • FIG. 21 is a flowchart showing the processing contents of the insertion pointer assigning unit 225 in the second embodiment.
  • FIG. 22 is a flowchart showing the processing contents of the new block creation unit 226 in the second embodiment.
  • FIG. 23 is a flowchart illustrating the processing contents of the free space management unit 228 according to the second embodiment.
  • FIG. 1 illustrates a hardware configuration example of an information processing system 1 including a data management server 105 that is an information processing apparatus according to the first embodiment.
  • the information processing system 1 includes a configuration in which a data management server 105 and a plurality of clients 100 are connected via a communication network 135 so that they can communicate with each other.
  • the information processing system 1 operates as a data management system that stores data input from the client 100 through the communication network 135 in the data management server 105, for example.
  • the client 100 includes a central processing unit 101, a main storage device 102, an auxiliary storage device 103, an input device 104, an output device 105, and a communication interface (hereinafter “communication I / F”) 106.
  • the central processing unit 101 includes, for example, a CPU (Central Processing Unit), an MPU (Micro-Processing Unit), and the like (hereinafter simply referred to as “CPU”).
  • the main storage device 102 is, for example, a RAM (Random Access Memory) or a ROM (Read Only Memory), and provides various computer programs (hereinafter referred to as “programs”) executed by the CPU 101 and storage areas for various data processed by the programs. To do.
  • the auxiliary storage device 103 is a storage device such as a hard disk drive (Hard Disk Drive, HDD), a semiconductor storage drive (Solid State Drive, SSD), and stores various programs and processing data thereof.
  • HDD Hard Disk Drive
  • SSD Solid State Drive
  • the input device 104 is an input device used when executing a data input / output operation according to a function provided by a program described later, and includes, for example, a keyboard or a mouse. As the input device 104, other types of input devices such as a touch panel, a pen tablet, and a voice input device may be provided.
  • the output device 105 is an output device for outputting data processed by the program, and includes an output device of an appropriate format such as a liquid crystal display, a printer, and an audio output device.
  • the communication I / F 106 is an interface circuit for connecting the client 100 to the communication network 135 of FIG. 1 and includes, for example, a NIC (Network Interface Card).
  • the CPU 101, the main storage device 102, the auxiliary storage device 103, the input device 104, the output device 105, and the communication I / F 106 are communicably connected by an internal bus adopting an appropriate communication standard.
  • the data management server 105 includes a central processing unit (CPU) 110, a main storage device 115, a communication I / F 117, an input device 120, an output device 125, and a secondary storage device 130.
  • CPU central processing unit
  • main storage device 115 a communication I / F 117
  • input device 120 an output device 125
  • secondary storage device 130 a secondary storage device 130.
  • the data management server 105 is communicably connected to the plurality of clients 100 through a communication network 135 configured with an appropriate communication standard such as LAN (Local Area Network) or WAN (Wide Area Network).
  • LAN Local Area Network
  • WAN Wide Area Network
  • FIG. 2 schematically shows an example of the software configuration of the data management server 105.
  • the data management server 105 includes an initialization process management unit 200, an end process management unit 210, an insertion process management unit 220, a deletion process management unit 230, a search process management unit 240, An overall control unit 270 is provided.
  • these functional blocks are functional modules such as programs stored in the main storage device 115 and are executed by the CPU 110 in a timely manner.
  • the initialization processing management unit 200, end processing management unit 210, insertion processing management unit 220, deletion processing management unit 230, search processing management unit 240, and overall control unit 270 are data storage provided in the secondary storage device 130.
  • a database management system DataBase Management System, hereinafter referred to as “DBMS”
  • DBMS Database Management System
  • the data management server 105 includes an operating system (hereinafter referred to as “OS”) 280 as basic software for operating the above functional modules, an input device 120, an output device 125, a secondary storage device 130, and a communication network 135.
  • OS operating system
  • a data I / O unit 285 for performing data input / output processing with the main storage device 115 is also provided.
  • the main storage device 115 is provided with a temporary data storage area 250 and a processing information temporary storage area 260.
  • definition information 280 is stored in the secondary storage device 130, and a data storage area 290 and a free area instruction pointer storage area 300 are provided.
  • the initialization process management unit 200 and the end process management unit 210 execute a start process and an end process of the data management server 105 in accordance with instructions from the overall control unit 270 described later.
  • the deletion process management unit 230 executes a deletion process for data stored in the data storage area of the secondary storage device 130 in accordance with an instruction from the overall control unit 270.
  • the search processing management unit 240 executes a search process for data stored in the data storage area of the secondary storage device 130 in accordance with instructions from the overall control unit 270. Note that the search processing and the deletion processing described above are general functions provided in a normal DBMS, and thus individual descriptions are omitted.
  • the insertion processing management unit 220 executes processing for inserting data into the data storage area 290 of the secondary storage device 130 in accordance with an instruction from the overall control unit 270.
  • the “data insertion process” means a process of storing data in an empty area of the data storage area 290.
  • the insertion processing management unit 220 is further provided with an insertion processing control unit 222, an insertion processing leveling unit 224, a new block creation unit 226, and a free space management unit 228.
  • the insertion processing control unit 222 receives a processing request from the end processing management unit 210 or a server process that performs data insertion processing, and executes corresponding processing.
  • the insertion process leveling unit 224 executes a process of leveling and allocating a plurality of parallel data insertion process requests to free areas.
  • the new block creation unit 226 executes processing for creating a new block that can be used for data insertion processing as necessary.
  • the free space management unit 228 executes management of free space that can be used for data insertion processing. Specific processing contents of the insertion processing control unit 222, the insertion processing leveling unit 224, the new block creation unit 226, and the free space management unit 228 will be described later with reference to flowcharts and the like.
  • the definition information 280 is information that is referred to when a server process generated based on a data insertion processing request from the client 100 in the present embodiment executes the processing, and is a data file format in the present embodiment.
  • FIG. 3 shows a configuration example of the definition information 280.
  • the definition information 280 records items of a temporary data storage area size 315, the number of insertion requests / total number of processing requests 320, and a block size 325.
  • the temporary data storage area size 315 the size of the temporary data storage area 250 set in the main storage device 115 of the data management server 105 is recorded.
  • the temporary data storage area 250 includes a plurality of blocks (sub unit storage areas).
  • the number of insertion requests / total number of processing requests 320 records the ratio of data insertion request processing to the total number of data processing requests from the client 100 or input device 120 processed by the data management server 105.
  • the block size 325 the size of a block (unit storage area) which is a data storage unit generated by dividing the data storage area 290 is recorded.
  • the data storage area 290 is an area for storing data to be subjected to data processing by the DBMS executed based on a data processing request from the client 100 or the input device 120.
  • the empty area instruction pointer storage area 300 stores a value of an empty area instruction pointer that is an index indicating the position (address) of an empty area existing in the data storage area 290.
  • FIG. 4 schematically shows a configuration example of the data storage area 290 and the free area instruction pointer storage area 300 in the present embodiment. As shown in FIG. 4, the data storage area 290 is divided into data storage units called blocks. The size of one block is recorded in the item of the block size 325 of the definition information 280. In this embodiment, the size is 4 KB as illustrated in FIG.
  • the server process that performs data insertion processing stores data in the data storage area 290 using the insertion pointer 405 that is a pointer indicating the head address of the block 400 in which a free area exists in the block 400 in the data storage area 290.
  • the free space instruction pointer 410 is a block that is not indicated by the insertion pointer 405 and that indicates the head block of a continuous block 400 in which data is not stored.
  • the free area instruction pointer 410 is stored in a free area instruction pointer storage area 300 provided in the secondary storage device 130.
  • the overall control unit 270 determines whether the processing request is a data insertion request. If it is determined that the processing request is a data insertion processing request, the overall control unit 270 sends the data insertion request to the insertion processing management unit 220. Send. Upon receiving the data insertion processing request, the insertion processing management unit 220 first secures an insertion pointer 405 when the request is the first insertion request, and stores the block 400 of the data storage area 290 indicated by the insertion pointer 405.
  • Data is inserted into the temporary data storage area 250 after being read. Thereafter, each time a data insertion processing request is transmitted, the insertion processing management unit 220 inserts data into the block 400 read into the temporary data storage area 250. Finally, in response to the insertion confirmation notification (COMMIT) transmitted from the server process, the insertion processing management unit 220 releases the insertion pointer 405 and ends the data insertion processing.
  • the block 400 read to the temporary data storage area 250 is separately stored in the data storage area 290 asynchronously.
  • insertion pointer 405 Since the insertion pointer 405 is occupied by a single server process during the period from the first data insertion (INSERT) to the insertion confirmation (COMMIT) in this data insertion sequence, data cannot be used by other server processes. An insertion processing request waits. In the present embodiment, in order to avoid this waiting, a plurality of insertion pointers 405 are provided so that a plurality of server processes can execute data insertion processing in parallel.
  • the multiple processing capability of the data insertion processing does not improve. Even if the number of insertion pointers 405 exceeding the number of blocks that can be read is provided in the temporary data storage area 250, if there is no block 400 including an empty area in the temporary data storage area 250, temporary data storage is started from the data storage area 290. A wait occurs at the time of block read to the area 250. Since the temporary data storage area 250 is also used for block reading for data reference processing from the client 100, when all the temporary data storage areas 250 are used for data insertion processing, the data reference processing The performance will be adversely affected.
  • the number of blocks created in the insertion pointer 405 is limited based on the number of blocks that can be read into the temporary data storage area 250 and the ratio of the number of requests for data reference processing and data insertion processing. With this configuration, the throughput of the entire information processing system 1 can be increased.
  • FIG. 7 shows a processing flow example of data processing executed by the overall control unit 270.
  • the overall control unit 270 receives a data processing request issued from the client 100 or the input device 120, and generates a server process assigned to the execution of each data processing request (S701).
  • the server process determines the assigned data processing request (S710).
  • the server process notifies the initialization processing management unit 200 to perform the data management server activation process. (S712).
  • the server process When it is determined that the received content of the overall control unit 270 is a data management server termination request (S710, termination request), the server process notifies the termination processing management unit 210 to perform termination processing of the data management server 105. (S714). When it is determined that the received content of the overall control unit 270 is a data deletion request (S710, deletion request), the server process notifies the deletion processing management unit 230 to perform data deletion processing (S716). When it is determined that the received content of the overall control unit 270 is a data search request (S710, search request), the server process notifies the search processing management unit 240 to perform data search processing (S718).
  • the server process When it is determined that the received content of the overall control unit 270 is a data insertion request (S710, insertion request), the server process notifies the insertion processing management unit 220 to perform data insertion processing (S720).
  • the data search process and the data deletion process are the same as general functions provided in a normal DBMS, and thus the description thereof is omitted.
  • the configuration and processing content of the initialization processing management unit 200, the configuration and processing content of the end processing management unit 210, and the configuration and processing content of the insertion processing management unit 220 will be described.
  • FIG. 8 shows an example of a data processing flow executed by the initialization processing management unit 200.
  • the initialization process management unit 200 receives the notification from the overall control unit 270 and creates the insertion pointer management table 900 (S800).
  • S800 creates the insertion pointer management table 900
  • FIG. 9 An example of the configuration of the insertion pointer management table 900 of this embodiment is shown in FIG.
  • the insertion pointer management table 900 includes three column elements: an insertion pointer 910, a server process ID 915, and a server process number 920.
  • the head address of the block 400 in which a free area in the data storage area 290 exists is recorded.
  • a process number that is an identification code for uniquely identifying a server process that uses the insertion pointer 405 is recorded.
  • the number of server processes that use the associated insertion pointer 405 is recorded.
  • the insertion pointer management table 900 can be set in, for example, a part of the local memory used by the overall control unit 270 before the operation of the data management server 105 is started.
  • the same insertion pointer A is assigned to the server processes S1, S2,. . . , Sn used for data insertion processing, the server processes S1, S2,. . . , Sn server process ID 915 and server process number 920 as server processes S1, S2,. . . , Sn number n is registered.
  • the value of the server process ID 915 is NULL and the value of the number of server processes 920 is 0 in the row where the insertion pointer A is registered.
  • the initialization process management unit 200 stores the insertion pointer management table 900 created in S800 in the process information temporary storage area 260 (S805).
  • the initialization process management unit 200 calculates the maximum parallelism of the insertion process (S810).
  • the maximum parallelism of insertion processing is an index indicating the maximum number of blocks 400 that can be used for data insertion processing among the blocks 400 provided in the temporary data storage area 250.
  • the maximum parallel degree of insertion processing is an upper limit value of the number of processes that can insert data into the temporary data storage area 250 in parallel with respect to a plurality of server processes performing data insertion processing.
  • the maximum parallelism of the insertion process can be obtained by, for example, the following formula (1).
  • Maximum parallelism of insertion processing ((temporary data storage area size) / block size) ⁇ (number of insertion requests / total number of processing requests) (1)
  • the temporary data storage area size, the block size, the number of insertion requests / the total number of processing requests in Expression (1) are described in advance in the definition information 280 illustrated in FIG.
  • the initialization process management unit 200 reads the definition information 280 into the process information temporary storage area 260 and calculates the maximum parallelism of the insertion process according to Equation (1).
  • the initialization process management unit 200 stores the calculated maximum parallelism of the insertion process in the process information temporary storage area 260 (S815), and sets a free area instruction pointer value (S820).
  • the address of the head block of the data storage area 290 is used as the free area instruction pointer 410.
  • the free area instruction pointer 410 to which the minimum address is assigned among the free area instruction pointers 410 stored in the free area instruction pointer storage area 300 is used. 410.
  • the initialization process management unit 200 stores the free area instruction pointer 410 obtained in S820 in the process information temporary storage area 260 (S825).
  • FIG. 10 shows an example of a data processing flow executed by the end process management unit 210.
  • the termination processing management unit 210 receives a notification from the overall control unit 270 that a termination request has been received from the client 100 or the input device 120
  • the termination processing management unit 210 stores the blank area instruction pointer 410 in the blank area instruction pointer storage area 300 (S1000). , S1010).
  • the termination process management unit 210 issues a termination request to the insertion process management unit 220, the deletion process management unit 230, and the search process management unit 240 (S1020).
  • the termination processing management unit 210 notifies the overall control unit 270 to stop receiving the data processing request from the client 100 or the input device 120 (S1030).
  • FIG. 11 shows an example of a data processing flow executed by the insertion processing control unit 222.
  • the insertion processing control unit 222 receives a data processing request from the end processing management unit 210 or the server process that performs data insertion processing, and determines whether the received processing request is an end request (S1100). If it is determined that the received process request is an end request (S1100, Yes), the insertion process control unit 222 ends the process as it is.
  • the insertion processing control unit 222 determines whether the received processing request is an insertion pointer request (S1105). When it is determined that the received processing request is an insertion pointer request (S1105, Yes), the insertion processing control unit 222 calls the insertion processing leveling unit 224 (S1110). If it is determined that the processing request received in S1105 is not an insertion pointer request (No in S1105), the insertion processing control unit 222 moves the process to S1115.
  • the insertion processing control unit 222 determines whether the received processing request is an insertion processing end request (S1115). If it is determined that the received processing request is an insertion processing end request (S1115, Yes), the insertion processing control unit 222 calls the free space management unit 228 and ends the processing (S1120).
  • the insertion processing leveling unit 224 counts the number of data insertion processing requests received from the overall control unit 270 (S1200).
  • the number of requests for data insertion processing refers to data insertion received by the overall control unit 270 from the client 100 or the input device 120 during a period ⁇ before and after a certain time t, that is, from time (t ⁇ ) to time (t + ⁇ ). The number of requests.
  • the insertion processing leveling unit 224 adds the acquired number of data insertion processing requests to the number of insertions to obtain a new number of insertions (S1205).
  • the number of insertions is, for example, a variable managed by the overall control unit 270 in the local memory, and indicates the total number of data insertion processing requests accepted by the data management server 105.
  • the insertion processing leveling unit 224 stores the number of insertions obtained next in the processing information temporary storage area 260 (S1210). Then, the insertion processing leveling unit 224 compares the number of insertions with the maximum insertion processing parallelism stored in the processing information temporary storage area 300 (S1215).
  • the processes of S1235 to S1250 are repeatedly executed until the insertion pointer assignment to the server process for performing the data insertion process is completed (S1230 loop).
  • the insertion processing leveling unit 224 determines whether or not there is a row entry in which the number of server processes is 0 in the insertion pointer management table 900 (S1235).
  • the insertion processing leveling unit 224 allocates the insertion pointer 405 recorded in the corresponding row entry to the server process. (S1240).
  • assigning the insertion pointer 405 of the corresponding row entry to the server process means assigning the value of the column of the insertion pointer 405 (910) recorded in the corresponding row of the insertion pointer management table 900 to the server process. .
  • the insertion processing leveling unit 224 registers the server process ID 915 and the number of server processes 920 in the insertion pointer management table 900 (S1245).
  • registering the server process ID 915 and the server process number 920 in the insertion pointer management table 900 means that the ID of the server process to which the insertion pointer 405 is allocated in S1240 and the number of server processes are stored in the insertion pointer management table 900. Say to register.
  • the insertion processing leveling unit 224 notifies the new block creation unit 226 to create a new block (S1250). .
  • a new block is a data unstored block in the data storage area 290.
  • the insertion process leveling unit 224 When it is determined in S1220 that the number of insertions exceeds the maximum parallelism of the insertion process (No in S1220), the insertion process leveling unit 224 performs S1260 to S1290 until the assignment of the insertion pointer to the server process that performs the data insertion process is completed. The process is repeatedly executed (S1255 loop). First, the insertion processing leveling unit 224 determines whether or not there is a row entry in which the server process number 920 is 0 in the insertion pointer management table 900 (S1260).
  • the insertion processing leveling unit 224 allocates the insertion pointer 910 of the corresponding row to the server process (S1265).
  • the insertion process leveling unit 224 registers the server process ID 915 and the number of server processes 920 in the corresponding row entry (S1275).
  • the insertion processing leveling unit 224 determines the number of rows in the insertion pointer management table 900 and the maximum parallelism of the insertion processing.
  • the value of -1) is compared (S1275).
  • the number of rows of the insertion pointer management table 900 is the number of rows excluding the heading row 905 of the insertion pointer management table 900.
  • the insertion processing leveling unit 224 determines whether the number of rows in the insertion pointer management table 600 is equal to or less than (maximum parallelism of insertion processing ⁇ 1) (Yes in S1275). If it is determined that the number of rows in the insertion pointer management table 900 exceeds the value of (maximum parallelism of insertion processing ⁇ 1) (No in S1275), the insertion processing leveling unit 224 determines the number of server processes in the insertion pointer management table 900. 920 assigns the smallest insertion pointer 405 to the server process (S1285). Then, the insertion processing leveling unit 224 registers the server process ID 915 and the number of server processes 920 in the insertion pointer management table 900 (S1290).
  • the insertion pointer 405 can be allocated to the server process within the range of the insertion pointer 405 set in the temporary data storage area 250. Further, when the insertion pointer 405 is insufficient with respect to the number of server processes that perform data insertion processing, an instruction can be given to create a new block 400. Therefore, it is possible to prevent the waiting time for the data insertion processing by the server process from occurring and to suppress the waiting time when it occurs.
  • FIG. 13 shows an example of a data processing flow executed by the new block creation unit 226.
  • the new block creation unit 226 changes the empty area instruction pointer 410 to the insertion pointer 405 so that the block 400 indicated by the empty area instruction pointer 410 can be newly used for data insertion processing. (S1300).
  • the new block creation unit 226 changes the value of the free space instruction pointer 410 (S1305).
  • the value of the free area instruction pointer 410 is changed by adding the block size value to the value of the free area instruction pointer 410 in S1300.
  • the new block creation unit 226 stores the free area instruction pointer 410 in the processing information temporary storage area 260 (S1310).
  • the new block creation unit 226 registers the new insertion pointer 405 created from the free space instruction pointer 410 in the insertion pointer management table 900 (S1315).
  • the new block creation unit 226 uses the insertion pointer 405 when the free area instruction pointer 410 is changed to the insertion pointer 405 in S1300 as the insertion pointer of the insertion pointer management table 900.
  • Registered in the column 910 “NULL” is registered in the column of the server process ID 915, and 0 is registered in the column of the server process number 920.
  • the new block creation unit 226 since the insertion pointer 405 that can be newly used for data insertion processing can be created from the free space instruction pointer 410, more data insertion processing can be performed. Can respond.
  • FIG. 14 shows an example of a data processing flow executed by the free space management unit 228.
  • the free area management unit 228 determines whether a free area exists in the block 400 in the data storage area 290 specified by the insertion pointer 405 (S1400). When it is determined that there is a free area in the block 400 in the data storage area 290 specified by the insertion pointer 405 (S1400, Yes), the free area management unit 228 counts the number of server processes 920 recorded in the insertion pointer management table 900. Is subtracted (S1410), and then the number of insertions is subtracted (S1415).
  • the free space management unit 228 stores the number of server processes in the row entry in which the value of the insertion pointer B is registered in the insertion pointer management table 900. Subtract 1 from the value of the column entry at 920. When the number of insertions is subtracted, the free space management unit 228 subtracts 1 from the value of the number of insertions.
  • the free area management unit 228 selects the corresponding insertion pointer row entry from the insertion pointer management table 900. It is deleted (S1420).
  • the free space management unit 228 deletes the insertion pointer row entry, if there is no free space in the data block 400 specified by the insertion pointer C, the row in which the insertion pointer C is registered in the insertion pointer management table 900. Delete the entry. As described above, the presence / absence of an empty area in the block 400 in the data storage area 290 can be managed in a timely manner.
  • data insertion processing can be performed at high speed even when data insertion requests are simultaneously received from a plurality of clients.
  • Example 2 Next, an embodiment of the present invention will be described according to the configuration of Example 2.
  • the data storage area 290 is secured in the secondary storage device 130 such as an HDD.
  • the capacity of a storage device used as the main storage device 115 for example, a DRAM (Dynamic Random Access Memory) increases, The data I / O performance can be further improved by securing the data storage area 290 on the main storage device 115.
  • the data storage area 290 of the information processing system 1 is secured on the main storage device 115.
  • the hardware configuration of the second embodiment is the same as the hardware configuration of the first embodiment illustrated in FIG.
  • FIG. 15 shows a software configuration example of the data management server 105 according to the second embodiment.
  • the data storage area 290 is secured not on the secondary storage device 130 but on the main storage device 115.
  • the data storage area 290 is an area for storing data to be processed. Similar to the first embodiment, also in the second embodiment, the data storage area 290 is divided into unit storage areas called blocks 400.
  • the data management server 105 includes an overall control unit 270, an initialization processing management unit 200, an end processing management unit 210, an insertion processing management unit 220, a deletion processing management unit 230, and a search processing management unit 250. It has been.
  • the main storage device 115 is provided with a data storage area 290 and a processing information temporary storage area 260.
  • the processing information temporary storage area 260 is used by the server process that performs data insertion processing to temporarily store data to be inserted, and the temporary data of the first embodiment.
  • the storage area 250 is omitted.
  • the insertion processing management unit 220 includes an insertion processing control unit 222, an insertion pointer allocation unit 225, a new block creation unit 226, and a free area management unit 228.
  • an empty area instruction pointer storage area 300 is secured and definition information 280 is stored.
  • the contents of the block 400, the insertion pointer 405, and the free space instruction pointer 410 are the same as in the first embodiment. Note that functional blocks equivalent to or corresponding to those of the first embodiment are denoted by the same reference numerals as those of the first embodiment.
  • 16 and 17 schematically show an outline of data processing in the configuration of the second embodiment of the present invention.
  • a server process is generated by the overall control unit 270, an update buffer is assigned to each server process as a temporary storage area for data to be processed. A part of the storage area of the main storage device 115 is used for the update buffer.
  • the server process inserts data into the process specific update buffer.
  • an insertion confirmation notification (COMMIT) is transmitted to the overall control unit 270.
  • the overall control unit 270 transmits the insertion confirmation notification to the insertion processing management unit 220.
  • the insertion processing management unit 220 secures the block 400 indicated by the insertion pointer 405, inserts all the data stored in the update buffer into the block 400, and releases the insertion pointer 405. .
  • the second embodiment can grasp the amount of data inserted when the insertion pointer 405 is secured for the data insertion process. By using this, it is possible to secure the necessary number of blocks in advance and set the insertion pointer 405.
  • the creation process of the insertion pointer 405 using the free area instruction pointer 410 is performed every time the block 400 has no free area. For this reason, in the first embodiment, there is a possibility that contention of the free space instruction pointer 410 may occur, but in the second embodiment, the creation processing of the insertion pointer 405 can be suppressed to the minimum. is there.
  • FIG. 18 shows an example of a data processing flow executed by the initialization processing management unit 200.
  • the initialization process management unit 200 receives the notification from the overall control unit 270 and creates the block management table 1900 (S1800).
  • An example of the configuration of the block management table 1900 of this embodiment is shown in FIG.
  • the block management table 1900 includes three column elements: a server process ID 1905, an insertion pointer 1910, and a block number 1915.
  • a process number which is an identification code for uniquely identifying the server process requesting the block 400 in which the empty area in the data storage area 290 exists is recorded.
  • the element constituting the column of the insertion pointer 1910 is a free area start address in the block 400 where a free area in the data storage area 290 exists, or a start address of a data non-stored block.
  • the data unstored block is a block in the data storage area 290 where no data is stored.
  • a server process that performs data insertion processing uses the insertion pointer 405 to insert data into the block 400 in the data storage area 290.
  • the element constituting the column of the number of blocks 1915 is a value obtained by calculating the size of the unused area of the block in units of blocks or the number of blocks requested by the server process.
  • the unused area of a block is an area in one block in the data storage area 290 where no data is stored.
  • P the server process ID that requests the number of blocks L.
  • F is the head address of a block in which there are L blocks of consecutive free areas.
  • P, F, and L are registered in the same row, P is a column element of the server process ID 1905, F is a column element of the insertion pointer 1910, and L is a column element of the block number 1915.
  • the block management table 1900 can be set in, for example, a part of the local memory used by the overall control unit 270 before the operation of the data management server 105 is started.
  • the initialization process management unit 200 stores the block management table 1900 created in S1800 in the process information temporary storage area 260 (S1805).
  • the initialization process management unit 200 reads the definition information 280 stored in the secondary storage device 130 (S1810) and stores it in the process information temporary storage area 260 (S1815).
  • the definition information 280 describes the size of one block.
  • the initialization processing management unit 200 sets the value of the free area instruction pointer 410 (S1820).
  • the free area instruction pointer 410 is designated as the address of the first block of the data storage area 290 when the data storage area 290 is newly created.
  • the smallest address among the free area instruction pointers 410 stored in the free area instruction pointer storage area 300 is allocated except when the data storage area 290 is newly created.
  • the designated area is designated as an empty area instruction pointer 410.
  • the initialization process management unit 200 stores the obtained free area instruction pointer 410 in the process information temporary storage area 260 (S1825). With the process of the initialization process management unit 200 described above, it is possible to prepare to allocate the block 400 to the server process that executes the data insertion process in parallel.
  • FIG. 20 illustrates an example of a data processing flow executed by the insertion processing control unit 222 according to the second embodiment.
  • the insertion processing control unit 222 receives a data processing request from the end processing management unit 210 or the server process that performs data insertion processing, and determines whether the received processing request is an end request (S2000). If it is determined that the received processing request is an end request (S2000, Yes), the insertion processing control unit 222 ends the processing as it is.
  • the insertion processing control unit 222 determines whether the received processing request is an insertion pointer request (S2005). If it is determined that the received processing request is an insertion pointer request (S2005, Yes), the insertion processing control unit 222 calls the insertion pointer allocation unit 224 (S2010). If it is determined that the processing request received in S2000 is not an insertion pointer request (No in S2005), the insertion processing control unit 222 moves the process to S2015.
  • the insertion processing control unit 222 determines whether the received processing request is an insertion processing end request (S2015). If it is determined that the received processing request is an insertion processing end request (S2015, Yes), the insertion processing control unit 222 ends the processing as it is. When it is determined that the received processing request is not an insertion processing end request (S2015, No), the insertion processing control unit 222 calls the free space management unit 228 and ends the processing (S2020).
  • FIG. 21 shows an example of a data processing flow executed by the insertion pointer assigning unit 225.
  • the insertion pointer allocation unit 225 repeatedly executes the processing of S2105 to S2130 until the allocation of the insertion pointer to the server process is completed (S2100 loop).
  • the insertion pointer allocation unit 225 stores the received data size received from the server process in the processing information temporary storage area 260 (S2105).
  • the insertion pointer allocation unit 225 calculates the number of requested blocks necessary for data insertion (S2110).
  • the requested block number is the number of blocks necessary for the server process that performs the data insertion process to insert data into the data storage area 290.
  • the insertion pointer allocation unit 225 determines whether or not the value of the column of the server process ID 1905 is “NULL” in the block management table 1900 and there is a row entry with the received data size ⁇ the number of blocks. (S2115). When it is determined that the corresponding row entry exists in the block management table 1900 (S2115, Yes), the insertion pointer allocation unit 225 allocates the insertion pointer 405 of the corresponding row to the server process (S2120), and the corresponding in the block management table 1900 The server process ID is registered in the row (S2125).
  • the insertion pointer allocation unit 225 registers the ID of the server process to which the insertion pointer 405 is allocated in the block management table 1500.
  • the insertion pointer management table 1900 a certain insertion pointer 405 and a server process ID 1905 of a server process using the insertion pointer 405 are registered in the same row.
  • the insertion pointer allocation unit 225 notifies the new block creation unit 226 of creation of new blocks for the requested number of blocks.
  • the number of requested blocks is calculated using Equation (2) used in the processing in S2110.
  • FIG. 22 shows an example of a data processing flow executed by the new block creation unit 226.
  • the new block creation unit 226 changes the free area pointer 410 set in the data storage area 290 to the insertion pointer 405 (S2200), and changes the value of the free area instruction pointer 410 (S2205).
  • the change of the value of the free area instruction pointer 410 is an operation of adding the number of requested blocks calculated by Expression (2) to the value of the free area instruction pointer 410 in S2200.
  • the new block creation unit 226 is called from the insertion pointer assignment unit 225.
  • the insertion pointer assigning unit 225 calculates the number of requested blocks using Expression (2), and notifies the new block creating unit 226 of the calculation result.
  • the new block creation unit 226 stores the free area instruction pointer 410 in the processing information temporary storage area 260 (S2210).
  • the new block creation unit 226 registers the insertion pointer 405 in the block management table 1900 (S2215).
  • the new block creation unit 226 sets the free space instruction pointer 410 to the insertion pointer 405 in the block management table 1900 in the column of the insertion pointer 1910 (405) in the process of S2200.
  • the insertion pointer 405 is registered, “NULL” is registered in the column of the server process ID 1905, and the requested block number notified from the insertion pointer allocation unit 226 is registered in the column of the block number 1915.
  • FIG. 23 shows an example of a data processing flow executed by the free space management unit 228.
  • the free space management unit 228 receives an insertion processing end notification from a server process that performs data insertion processing.
  • the free space management unit 228 calculates the free space of the block 400 designated by the insertion pointer 405 assigned to the server process that is the notification source of the insertion processing end (S2300). Assuming that the insertion pointer assigned to the server process that is the notification of the insertion process is A, the free area of the block designated by the insertion pointer A is calculated by the following equation (3).
  • Free area in block [received data size / block size] ⁇ (received data size / 1 block size) Equation (3)
  • the value of (reception data size / 1 block size) is not necessarily an integer value.
  • a minimum integer value equal to or larger than the value of (Received data size / Block size) is determined. The difference between the minimum integer value and (reception data size / block size) can be obtained from Equation (3).
  • the free space management unit 228 determines whether there is a free space in the block 400 designated by the insertion pointer 405 (S2310). When it is determined that there is a free area in the block 400 specified by the insertion pointer 405 (S2310, Yes), the free area management unit 228 changes the number of blocks 1915 in the block management table 1900 (S2315). When the number of blocks 1915 is changed, the free space management unit 228 replaces the value of the column of the number of blocks 1915 in the row in which the insertion pointer A is registered in the block management table 1900 with the value calculated by Expression (3). In step 2320, the free space management unit 228 changes the value of the insertion pointer 1910 in the block management table 1900 (S2320). When changing the value of the insertion pointer 405 of the block management table 1900, the free space management unit 228 adds the received data size to be inserted to the value of the insertion pointer A registered in the block management table 1900. .
  • the free space management unit 228 sets the server process ID 1905 of the block management table 1900 to “NULL” (S2325).
  • the server process ID 1905 of the block management table 1900 is set to “NULL”
  • the free space management unit 228 sets the value of the column of the server process ID 1905 of the row in which the insertion pointer A is registered in the block management table 1900 to “NULL”. Change to
  • the free area management unit 228 selects a line in the block management table 1900 where the insertion pointer A is registered. It is deleted (S2325). As described above, free areas in the block 400 in the data storage area 290 can be managed in a timely manner.
  • the data storage area 290 into which data is inserted from the client 100 or the input device 104 is provided not on the secondary storage device 130 but on the main storage device 115.
  • Each server process that performs data insertion processing is assigned a block in which an empty area that is an unstored data area exists in accordance with the received data size that is the target of data insertion processing.
  • the data insertion processing when a plurality of data insertion processing requests are received in parallel, the data insertion processing can be executed at higher speed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

 データ管理方法で、複数のクライアントより挿入要求を同時に受信しても挿入処理のレスポンスタイム低下を抑制する。複数の単位記憶領域を有するデータ格納領域が設けられている記憶装置を備えたコンピュータが、データ処理要求を受信したときに、当該データ処理要求の種別を判定し、前記データ処理要求が、前記データ格納領域への複数のデータ挿入処理要求を含むと判定した場合に、前記データ格納領域に含まれる前記単位記憶領域のうちでデータ格納が可能な空き領域を有する前記単位記憶領域を指示する情報である挿入ポインタを作成し、前記複数のデータ挿入処理要求に対して前記作成した挿入ポインタを割当て、前記挿入ポインタによって指示される複数の前記単位記憶領域に、各前記データ挿入処理要求の対象であるデータを並行して格納する情報処理方法。

Description

情報処理方法、情報処理装置、及びプログラム記憶媒体
 本発明は、情報処理方法、情報処理装置、及びプログラム記憶媒体に関する。
 近年、大量のデータを処理するためのオンライントランザクションシステムに対する需要が高まり、種々の産業分野で導入されるようになってきている。例えば、地球環境保護の視点から重要性が増しつつある電力集約化システムにおいて、特許文献1に記載されているシステムが提案されている。
 特許文献1に開示されているオンライントランザクションシステムを用いた電力集約化システムでは、多数のクライアントがデータ管理システムにネットワークを介して接続し、それぞれデータ管理システムにデータを送信する。この場合、データ管理システムは複数のクライアントより同時にデータ挿入要求を受信する。安定した電力集約化システムの実現に向けて、複数のクライアントより同時にデータ挿入要求を受信する状況において、データ管理システムにあるデータ格納領域に対して高速にデータ挿入処理を行うことができるデータ管理方法を実現することが求められている。
 特許文献1にあるような多数のデータ挿入処理が並列して実行される状況で、例えば特許文献2に提案されているデータ管理方法では、データ格納領域にデータ挿入処理を行うサーバプロセスは、記憶装置上に確保されるデータ格納領域内の単一ブロックにデータを挿入する。記憶装置上に確保されるデータ格納領域は、ブロックと呼ばれる単位に区分けされている。データ格納領域内に存在するデータの整合性を保証するため、データ挿入処理を行うサーバプロセスは、単一ブロックについて排他ロックを取得しなければならない。特許文献2の技術では、複数のサーバプロセスが同時にデータ挿入を行う場合、すべてのサーバプロセスが同一ブロックの排他ロック取得を試みることになる。
特表2010-512727号公報 特開2003-330765号公報
 しかし、特許文献2の技術において、前記排他ロックを取得できるサーバプロセスは一つに限定される。複数のサーバプロセスが同時にデータ挿入を試行する場合、前記排他ロック取得のため、サーバプロセスの待ち行列が発生し、高速にデータ挿入処理を実行することができなくなるという課題がある。
 本発明は、上記の、及び他の課題に鑑み、複数のデータ挿入処理要求を並列に受信した場合に、データ挿入処理をより高速に実行することを可能とする技術を提供することを一つの目的としている。
 上記の、及び他の目的を達成するために、本発明の一つの態様は、複数の単位記憶領域を有するデータ格納領域が設けられている記憶装置を備えたコンピュータが、データ処理要求を受信したときに、当該データ処理要求の種別を判定し、前記データ処理要求が、前記データ格納領域への複数のデータ挿入処理要求を含むと判定した場合に、前記データ格納領域に含まれる前記単位記憶領域のうちでデータ格納が可能な空き領域を有する前記単位記憶領域を指示する情報である挿入ポインタを作成し、前記複数のデータ挿入処理要求に対して前記作成した挿入ポインタを割当て、前記挿入ポインタによって指示される複数の前記単位記憶領域に、各前記データ挿入処理要求の対象であるデータを並行して格納する情報処理方法である。
 本発明の一態様によれば、複数のデータ挿入処理要求を並列に受信した場合に、データ挿入処理をより高速に実行することができる。
図1は本発明の一実施形態による情報処理システムのハードウェア構成図の一例である。 図2は本発明の実施例1によるデータ管理サーバ105のソフトウェア構成図の一例である。 図3は実施例1における定義情報280の内容を表す図である。 図4は実施例1におけるデータ格納領域290のブロック構成を表す図である。 図5は本発明の実施例1の構成におけるデータ処理の概要を示す模式図である。 図6は本発明の実施例1の構成におけるデータ処理の概要を示す模式図である。 図7は実施例1における全体制御部270の処理内容を表すフローチャートである。 図8は実施例1における初期化処理管理部200の処理内容を表すフローチャートである。 図9は実施例1における挿入ポインタ管理表900の構成例を表す図である。 図10は実施例1における終了処理管理部210の処理内容を表すフローチャートである。 図11は実施例1における挿入処理制御部222の処理内容を表すフローチャートである。 図12Aは実施例1における挿入処理平準化部224の処理内容を表すフローチャートである。 図12Bは実施例1における挿入処理平準化部224の処理内容を表すフローチャートである。 図13は実施例1における新規ブロック作成部226の処理内容を表すフローチャートである。 図14は実施例1における空き領域管理部228の処理内容を表すフローチャートである。 図15は本発明の実施例2によるデータ管理サーバ105のソフトウェア構成図の一例である。 図16は本発明の実施例2の構成におけるデータ処理の概要を示す模式図である。 図17は本発明の実施例2の構成におけるデータ処理の概要を示す模式図である。 図18は実施例2における初期化処理管理部200の処理内容を表すフローチャートである。 図19は実施例2におけるブロック管理表1900の構成を表す図である。 図20は実施例2における挿入処理制御部222の処理内容を表すフローチャートである。 図21は実施例2における挿入ポインタ割当て部225の処理内容を表すフローチャートである。 図22は実施例2における新規ブロック作成部226の処理内容を表すフローチャートである。 図23は実施例2における空き領域管理部228の処理内容を表すフローチャートである。
 以下、本発明の実施形態について添付図面を参照して説明する。
[実施例1]
 まず、実施例1による本発明の構成、作用、効果について説明する。図1に、実施例1による情報処理装置であるデータ管理サーバ105を含む情報処理システム1のハードウェア構成例を示している。情報処理システム1は、データ管理サーバ105と、複数のクライアント100とが通信ネットワーク135によって通信可能に接続された構成を備える。情報処理システム1は、例えばクライアント100から通信ネットワーク135を通じて入力されるデータをデータ管理サーバ105に格納するデータ管理システムとして動作する。
 クライアント100は、中央処理装置101、主記憶装置102、補助記憶装置103、入力装置104、出力装置105、及び通信インタフェース(以下「通信I/F」)106を有する。中央処理装置101は、例えばCPU(Central Processing Unit)、MPU(Micro-Processing Unit)等で構成される(以下単に「CPU」と呼ぶ。)。主記憶装置102は、例えばRAM(Random Access Memory)あるいはROM(Read Only Memory)であり、CPU101が実行する各種コンピュータプログラム(以下「プログラム」)、及びプログラムによって処理される各種データの記憶領域を提供する。
 補助記憶装置103はハードディスクドライブ(Hard Disk Drive、HDD)、半導体記憶ドライブ(Solid State Drive、SSD)等の記憶装置であり、各種プログラム及びその処理データ等を格納している。
 入力装置104は、後述するプログラムが提供する機能に従ってデータ入出力操作を実行する際に用いる入力デバイスであり、例えばキーボード、又はマウスが含まれる。入力装置104としては、これ以外にタッチパネル、ペンタブレット、音声入力装置等の他の形式の入力デバイスを設けてもよい。出力装置105はプログラムによって処理されたデータ等を出力するための出力デバイスであり、液晶ディスプレイ、プリンタ、音声出力装置等の適宜の形式の出力デバイスが含まれる。
 通信I/F106は、クライアント100を図1の通信ネットワーク135に接続するためのインタフェース回路であり、例えばNIC(Network Interface Card)等を含む。CPU101、主記憶装置102、補助記憶装置103、入力装置104、出力装置105、及び通信I/F106の間は、適宜の通信規格を採用した内部バスによって通信可能に接続されている。
 一方、データ管理サーバ105は、中央処理装置(CPU)110、主記憶装置115、通信I/F117、入力装置120、出力装置125、及び二次記憶装置130を備えている。これらの各構成要素は、基本的にクライアント100におけるCPU101、主記憶装置102、補助記憶装置103、入力装置104、出力装置105、及び通信I/F106と同様であり、一般的なコンピュータの構成を備えている。データ管理サーバ105は、例えばLAN(Local Area Network)、WAN(Wide Area Network)等の適宜の通信規格で構成された通信ネットワーク135を通じて、複数の前記クライアント100と通信可能に接続されている。
 次に、データ管理サーバ105のソフトウェア構成例について、図2を参照して説明する。図2にデータ管理サーバ105のソフトウェア構成の一例を模式的に示している。図2に示すように、データ管理サーバ105には、初期化処理管理部200と、終了処理管理部210と、挿入処理管理部220と、削除処理管理部230と、検索処理管理部240と、全体制御部270とが設けられている。図示のように、これらの機能ブロックは、主記憶装置115に格納されたプログラム等の機能モジュールであり、CPU110によって適時に実行される。初期化処理管理部200、終了処理管理部210、挿入処理管理部220、削除処理管理部230、検索処理管理部240、及び全体制御部270は、二次記憶装置130に設けられているデータ格納領域290を利用して構築されているデータベースに関するデータベース管理システム(DataBase Management System、以下「DBMS」)を構成しており、クライアント100から受信するデータ処理要求に応じた処理が実行される。
 また、データ管理サーバ105には、上記の機能モジュールが動作するための基本ソフトウェアとしてのオペレーティングシステム(以下「OS」)280、及び入力装置120、出力装置125、二次記憶装置130、通信ネットワーク135等との間でのデータ入出力処理を行うデータI/O部285も主記憶装置115に設けられている。
 また、主記憶装置115には、一時データ格納領域250及び処理情報一時格納領域260が設けられている。一方、二次記憶装置130には定義情報280が格納されるとともに、データ格納領域290及び空き領域指示ポインタ格納領域300が設けられている。
 初期化処理管理部200及び終了処理管理部210は、それぞれ後述の全体制御部270からの指示に従ってデータ管理サーバ105の起動処理及び終了処理を実行する。削除処理管理部230は、全体制御部270からの指示に従って二次記憶装置130のデータ格納領域に格納されているデータの削除処理を実行する。検索処理管理部240は、全体制御部270からの指示に従って二次記憶装置130のデータ格納領域に格納されているデータの検索処理を実行する。なお、上記の検索処理、及び削除処理は通常のDBMSが備えている一般的な機能であるから個々の説明は省略する。
 挿入処理管理部220は、全体制御部270からの指示に従って二次記憶装置130のデータ格納領域290にデータを挿入する処理を実行する。ここで「データの挿入処理」とは、データ格納領域290の空き領域にデータを格納する処理を意味している。挿入処理管理部220にはさらに、挿入処理制御部222、挿入処理平準化部224、新規ブロック作成部226、及び空き領域管理部228が設けられている。挿入処理制御部222は、終了処理管理部210、又はデータ挿入処理を行うサーバプロセスからの処理要求を受信して対応する処理を実行する。挿入処理平準化部224は、複数の並行するデータ挿入処理要求を空き領域に平準化して割当てる処理を実行する。新規ブロック作成部226は、必要に応じてデータ挿入処理に使用することができる新規ブロックを作成する処理を実行する。空き領域管理部228は、データ挿入処理に利用することができる空き領域の管理を実行する。挿入処理制御部222、挿入処理平準化部224、新規ブロック作成部226、及び空き領域管理部228の具体的な処理内容についてはフローチャート等を参照して後述する。
 次に、二次記憶装置130に格納されている定義情報280について説明する。定義情報280は、本実施例においてクライアント100からのデータ挿入処理要求に基づいて生成されるサーバプロセスが当該処理を実行する際に参照する情報であり、本実施例ではデータファイルの形式である。図3に定義情報280の一構成例を示している。図3の例では、定義情報280には、一時データ格納領域サイズ315、挿入要求数/全処理要求数320、及びブロックサイズ325の各項目が記録されている。一時データ格納領域サイズ315は、データ管理サーバ105の主記憶装置115に設定されている一時データ格納領域250のサイズが記録されている。一時データ格納領域250は、複数のブロック(副単位記憶領域)を含んでいる。挿入要求数/全処理要求数320は、データ管理サーバ105が処理しているクライアント100又は入力装置120からのデータ処理要求の全数のうちにデータ挿入要求処理が占める割合を記録している。ブロックサイズ325には、データ格納領域290を区分けして生成されているデータ格納単位であるブロック(単位記憶領域)のサイズが記録される。
 データ格納領域290は、クライアント100又は入力装置120からのデータ処理要求に基づいて実行されるDBMSによるデータ処理の対象となるデータを格納する領域である。空き領域指示ポインタ格納領域300は、データ格納領域290に存在する空き領域の位置(アドレス)を示す指標である空き領域指示ポインタの値を格納している。図4に、本実施例におけるデータ格納領域290及び空き領域指示ポインタ格納領域300の構成例を模式的に示している。図4に示すように、データ格納領域290は、ブロックと呼ばれるデータ格納単位に区分けされている。1ブロックのサイズは定義情報280のブロックサイズ325の項目に記録されており、本実施例では図3に例示するように4KBである。
 データ挿入処理を行うサーバプロセスは、データ格納領域290内のブロック400において、空き領域が存在するブロック400の先頭アドレスを示すポインタである挿入ポインタ405を用いて、データ格納領域290にデータを格納する。一方、空き領域指示ポインタ410は、挿入ポインタ405によって指示されていないブロックであり、かつデータが未格納である連続したブロック400の先頭ブロックを示すポインタである。空き領域指示ポインタ410は、二次記憶装置130内に設けられている空き領域指示ポインタ格納領域300に格納される。
 ここで、上記の構成を備えた実施例1のデータ管理サーバ105によって実行されるデータ処理の概要について説明する。図5、図6に本発明の実施例1の構成におけるデータ処理の概要を模式的に示している。サーバプロセスからのデータ処理要求を受け、全体制御部270はその処理要求がデータ挿入要求であるか判定し、データ挿入処理要求であると判定した場合、挿入処理管理部220に当該データ挿入要求を送信する。データ挿入処理要求を受けた挿入処理管理部220は、その要求が初回の挿入要求である場合には、まず挿入ポインタ405を確保し、その挿入ポインタ405が指示するデータ格納領域290のブロック400を一時データ格納領域250に読み出してからデータの挿入処理を行う。以降、データ挿入処理要求が送信されるたびに挿入処理管理部220は一時データ格納領域250に読み出したブロック400にデータを挿入する。最後に、サーバプロセスから送信される挿入確定通知(COMMIT)を受けて、挿入処理管理部220は挿入ポインタ405の解放処理を行い、データ挿入処理を終了する。一時データ格納領域250に読み出されたブロック400は、別途非同期でデータ格納領域290に格納される。
 このデータ挿入シーケンスの中で最初のデータ挿入(INSERT)から挿入確定(COMMIT)までの間、挿入ポインタ405は単一のサーバプロセスに占有され、他のサーバプロセスは利用することができないため、データ挿入処理要求の待ちが発生する。本実施例ではこの待ちの発生を回避するために、複数の挿入ポインタ405を設けることにより、複数のサーバプロセスが並行してデータ挿入処理を実行することができるようにしている。
 しかしその場合、挿入ポインタ405の数を多くするほど、データ挿入処理の多重処理能力が向上するわけではない。一時データ格納領域250にリードすることができるブロック数を超える数の挿入ポインタ405を設けたとしても、一時データ格納領域250に空き領域を含むブロック400がなければ、データ格納領域290から一時データ格納領域250へのブロックリードの時点で待ちが発生する。また一時データ格納領域250はクライアント100からのデータ参照処理のためのブロックリードにも使用されるため、全ての一時データ格納領域250をデータ挿入処理のために使用した場合には、データ参照処理の性能に悪影響が出てしまう。そのため本実施例では挿入ポインタ405の作成数に、一時データ格納領域250にリードすることができるブロック数とデータ参照処理とデータ挿入処理の処理要求数比率に基づいた制限を適用することとした。このように構成することにより、情報処理システム1全体のスループットを高めることが可能となっている。
 次に、以上の構成を有する実施例1の情報処理システム1におけるデータ管理サーバ105の具体的なデータ処理内容について説明する。
 まず、全体制御部270の処理内容について説明する。図7に全体制御部270によって実行されるデータ処理の処理フロー例を示している。全体制御部270は、クライアント100又は入力装置120から発行されるデータ処理要求を受信し、各データ処理要求の実行に割当てられるサーバプロセスを生成する(S701)。次いでサーバプロセスは割当てられているデータ処理要求を判別する(S710)。全体制御部270の受信内容がデータ管理サーバ起動要求であると判定した場合(S710、起動要求)、サーバプロセスは、初期化処理管理部200に対して、データ管理サーバ起動処理を行うよう通知する(S712)。
 全体制御部270の受信内容がデータ管理サーバ終了要求であると判定した場合(S710、終了要求)、サーバプロセスは、終了処理管理部210に対してデータ管理サーバ105の終了処理を行うよう通知する(S714)。全体制御部270の受信内容がデータ削除要求であると判定した場合(S710、削除要求)、サーバプロセスは、削除処理管理部230に対してデータ削除処理を行うよう通知する(S716)。全体制御部270の受信内容がデータ検索要求であると判定した場合(S710、検索要求)、サーバプロセスは、検索処理管理部240に対してデータ検索処理を行うよう通知する(S718)。
 全体制御部270の受信内容がデータ挿入要求であると判定した場合(S710、挿入要求)、サーバプロセスはデータ挿入処理を行うよう挿入処理管理部220に通知する(S720)。なお、前記したように、上記のデータ検索処理、及びデータ削除処理は通常のDBMSが備えている一般的な機能と同様であるから個々の説明は省略する。以下、初期化処理管理部200の構成と処理内容、終了処理管理部210の構成と処理内容、及び挿入処理管理部220の構成と処理内容について説明する。
 まず、初期化処理管理部200の処理内容を説明する。図8に初期化処理管理部200で実行されるデータ処理フローの一例を示している。初期化処理管理部200は全体制御部270からの通知を受信して挿入ポインタ管理表900を作成する(S800)。本実施例の挿入ポインタ管理表900の一構成例を図9に示している。図9に例示するように、挿入ポインタ管理表900は、挿入ポインタ910、サーバプロセスID915、サーバプロセス数920の3つの列要素を備えている。挿入ポインタ910の列には、データ格納領域290内の空き領域が存在するブロック400の先頭アドレスが記録される。サーバプロセスID915の列には、挿入ポインタ405を使用するサーバプロセスを一意に特定するための識別符号であるプロセス番号が記録される。サーバプロセス数920の列には、対応付けられている挿入ポインタ405を使用するサーバプロセスの数が記録される。
 挿入ポインタ管理表900は、データ管理サーバ105の運用開始前に、例えば全体制御部270が使用するローカルメモリの一部に設定しておくことができる。同一の挿入ポインタAをサーバプロセスS1,S2,...,Snがデータ挿入処理に使用する場合、挿入ポインタAが登録されている行に、サーバプロセスS1,S2,...,SnのサーバプロセスID915と、サーバプロセス数920としてサーバプロセスS1,S2,...,Snの数nが登録される。挿入ポインタAをデータ挿入処理に使用するサーバプロセスが存在しない場合、挿入ポインタAが登録されている行において、サーバプロセスID915の値はNULL、サーバプロセス数920の値は0となる。
 次いで初期化処理管理部200は、S800で作成した挿入ポインタ管理表900を、処理情報一時格納領域260に格納する(S805)。次に初期化処理管理部200は、挿入処理最大並列度を算出する(S810)。挿入処理最大並列度は、一時データ格納領域250に設けられているブロック400のうち、データ挿入処理に使用することができるブロック400の最大数を示す指標である。あるいは挿入処理最大並列度数は、データ挿入処理を行う複数のサーバプロセスに関し、並列して一時データ格納領域250にデータを挿入できるプロセス数の上限値であるということもできる。挿入処理最大並列度は、例えば以下の数式(1)により求めることができる。
 挿入処理最大並列度=((一時データ格納領域サイズ)/ブロックサイズ)×(挿入要求数/全処理要求数)  …数式(1)
 数式(1)における、一時データ格納領域サイズ、ブロックサイズ、挿入要求数/全処理要求数は、図3に例示した定義情報280にあらかじめ設定されて記載されている。初期化処理管理部200は、定義情報280を処理情報一時格納領域260に読み込み、数式(1)に従って挿入処理最大並列度を算出する。
 次に、初期化処理管理部200は、算出した挿入処理最大並列度を処理情報一時格納領域260に格納し(S815)、空き領域指示ポインタ値を設定する(S820)。本実施例では、データ格納領域290を新規に作成する際、データ格納領域290の先頭ブロックのアドレスを空き領域指示ポインタ410とする。本実施例では、データ格納領域290の新規作成時以外は、空き領域指示ポインタ格納領域300に保存されている空き領域指示ポインタ410のうち、最小のアドレスが割当てられているものを空き領域指示ポインタ410とする。初期化処理管理部200は、S820で得られた空き領域指示ポインタ410を処理情報一時格納領域260に格納する(S825)。以上説明した初期化処理管理部200の処理により、並行してデータ挿入処理を実行することができるサーバプロセスの最大数と使用される挿入ポインタの位置が決定される。
 次に、終了処理管理部210の処理内容を説明する。図10に終了処理管理部210が実行するデータ処理フローの一例を示している。終了処理管理部210は、全体制御部270から、クライアント100又は入力装置120から終了要求を受信した旨の通知を受信すると、空き領域指示ポインタ410を空き領域指示ポインタ格納領域300に格納する(S1000、S1010)。次いで終了処理管理部210は、挿入処理管理部220、削除処理管理部230、及び検索処理管理部240に対して終了要求を発行する(S1020)。終了要求を発行後、終了処理管理部210は、全体制御部270に対して、クライアント100又は入力装置120からのデータ処理要求受信を停止するように通知を実行する(S1030)。
 次に、挿入処理制御部222の処理内容を説明する。図11に挿入処理制御部222によって実行されるデータ処理フローの一例を示している。挿入処理制御部222は、終了処理管理部210又はデータ挿入処理を行うサーバプロセスからデータ処理要求を受信し、受信した処理要求が終了要求であるか判定する(S1100)。受信した処理要求が終了要求であると判定した場合(S1100、Yes)、挿入処理制御部222はそのまま処理を終了する。
 一方、受信した処理要求が終了要求でないと判定した場合(S1100、No)、挿入処理制御部222は、受信した処理要求が挿入ポインタ要求であるか判定する(S1105)。受信した処理要求が挿入ポインタ要求であると判定した場合(S1105、Yes)、挿入処理制御部222は挿入処理平準化部224を呼び出す(S1110)。S1105で受信した処理要求が挿入ポインタ要求でないと判定した場合(S1105、No)、挿入処理制御部222はS1115に処理を移す。
 次いで挿入処理制御部222は、受信した処理要求が挿入処理終了要求であるか判定する(S1115)。受信した処理要求が挿入処理終了要求であると判定した場合(S1115、Yes)、挿入処理制御部222は空き領域管理部228を呼び出して処理を終了する(S1120)。
 次に、挿入処理平準化部224の処理内容を説明する。図12A、図12Bに挿入処理平準化部224により実行されるデータ処理フローの一例を示している。まず挿入処理平準化部224は、全体制御部270から受信しているデータ挿入処理要求数をカウントする(S1200)。データ挿入処理要求数とは、ある時刻tの前後Δの期間、すなわち時刻(t―Δ)から時刻(t+Δ)までの間に、クライアント100又は入力装置120から全体制御部270が受信するデータ挿入要求数である。
 次に挿入処理平準化部224は、挿入数に取得したデータ挿入処理要求数を加算して新たな挿入数とする(S1205)。挿入数とは、例えば全体制御部270がローカルメモリに管理している変数であり、データ管理サーバ105にて受け付けられているデータ挿入処理要求の総数を示している。挿入処理平準化部224は、次に得られた挿入数を処理情報一時格納領域260に格納する(S1210)。そして、挿入処理平準化部224は、挿入数と処理情報一時格納領域300に格納されている挿入処理最大並列度とを比較する(S1215)。
 挿入数が挿入処理最大並列度以下であると判定した場合(S1220、Yes)、データ挿入処理を行うサーバプロセスへの挿入ポインタ割当てが完了するまで、S1235~S1250の処理を繰り返し実行する(S1230のループ)。まず挿入処理平準化部224は、挿入ポインタ管理表900にサーバプロセス数が0の行エントリが存在するか判定する(S1235)。挿入ポインタ管理表900にサーバプロセス数が0の行エントリが存在すると判定した場合(S1235、Yes)、挿入処理平準化部224は、該当行エントリに記録されている挿入ポインタ405をサーバプロセスに割当てる(S1240)。ここで、該当行エントリの挿入ポインタ405をサーバプロセスに割当てるとは、挿入ポインタ管理表900の該当行に記録されている挿入ポインタ405(910)の列の値を、サーバプロセスへ割当てることを言う。
 次いで挿入処理平準化部224は、挿入ポインタ管理表900にサーバプロセスID915とサーバプロセス数920とを登録する(S1245)。ここで、挿入ポインタ管理表900にサーバプロセスID915とサーバプロセス数920とを登録するとは、S1240で挿入ポインタ405が割当てられたサーバプロセスのIDとサーバプロセスの個数とを、挿入ポインタ管理表900に登録することを言う。挿入ポインタ管理表900にサーバプロセス数が0の行エントリが存在しないと判定した場合(S1235、No)、挿入処理平準化部224は新規ブロックを作るよう新規ブロック作成部226に通知する(S1250)。新規ブロックとは、データ格納領域290内のデータ未格納ブロックである。
 S1220で挿入数が挿入処理最大並列度を上回ると判定された場合(S1220、No)、挿入処理平準化部224は、データ挿入処理を行うサーバプロセスへ挿入ポインタ割当てが完了するまで、S1260~S1290の処理を繰り返し実行する(S1255のループ)。まず挿入処理平準化部224は、挿入ポインタ管理表900にサーバプロセス数920が0の行エントリが存在するか判定する(S1260)。挿入ポインタ管理表900にサーバプロセス数920が0の行エントリが存在すると判定した場合(S1260、Yes)、挿入処理平準化部224は該当行の挿入ポインタ910をサーバプロセスへ割当てる(S1265)。挿入処理平準化部224は、該当行エントリにサーバプロセスID915とサーバプロセス数920とを登録する(S1275)。
 挿入ポインタ管理表900にサーバプロセス数920が0の行エントリが存在しないと判定した場合(S1260、No)、挿入処理平準化部224は挿入ポインタ管理表900の行数と(挿入処理最大並列度-1)の値とを比較する(S1275)。ここで挿入ポインタ管理表900の行数とは、挿入ポインタ管理表900の見出し行905を除いた行数である。挿入ポインタ管理表600の行数が(挿入処理最大並列度-1)以下であると判定した場合(S1275、Yes)、挿入処理平準化部224は新規ブロックを作るよう新規ブロック作成部226に通知する(S1280)。一方、挿入ポインタ管理表900の行数が(挿入処理最大並列度-1)の値を上回ると判定した場合(S1275、No)、挿入処理平準化部224は挿入ポインタ管理表900のサーバプロセス数920が最小の挿入ポインタ405をサーバプロセスへ割当てる(S1285)。そして挿入処理平準化部224は挿入ポインタ管理表900に、サーバプロセスID915とサーバプロセス数920とを登録する(S1290)。
 以上の挿入処理平準化部224が実行するデータ処理によれば、一時データ格納領域250に設定される挿入ポインタ405の範囲内でサーバプロセスに挿入ポインタ405を割当てることができる。また、データ挿入処理を行うサーバプロセス数に対して挿入ポインタ405が不足する場合には新規ブロック400を作成するように指示を与えることができる。したがって、サーバプロセスによるデータ挿入処理の待ち時間が発生することを防止するとともに、発生した場合の待ち時間を抑制することができる。
 次に、新規ブロック作成部226の処理内容を説明する。図13に新規ブロック作成部226が実行するデータ処理フローの一例を示している。まず、新規ブロック作成部226は、空き領域指示ポインタ410が指示するブロック400を新たにデータ挿入処理のために使用することができるようにするために、空き領域指示ポインタ410を挿入ポインタ405に変更する(S1300)。次に、新規ブロック作成部226は、空き領域指示ポインタ410の値を変更する(S1305)。本実施例では、空き領域指示ポインタ410の値は、S1300での空き領域指示ポインタ410の値にブロックサイズの値を加算することによって変更される。
 次に、新規ブロック作成部226は、空き領域指示ポインタ410を処理情報一時格納領域260に格納する(S1310)。次いで、新規ブロック作成部226は、挿入ポインタ管理表900に、空き領域指示ポインタ410から作成した新たな挿入ポインタ405を登録する(S1315)。挿入ポインタ管理表900に挿入ポインタ405を登録する際に、新規ブロック作成部226は、S1300で空き領域指示ポインタ410を挿入ポインタ405に変更した際の挿入ポインタ405を挿入ポインタ管理表900の挿入ポインタ910の列に登録し、サーバプロセスID915の列に"NULL"を登録し、サーバプロセス数920の列に0を登録する。
 以上の新規ブロック作成部226が実行するデータ処理によれば、空き領域指示ポインタ410から新たにデータ挿入処理に使用することができる挿入ポインタ405を作成することができるので、より多数のデータ挿入処理に対して対応することができる。
 次に、空き領域管理部228の処理内容を説明する。図14に、空き領域管理部228が実行するデータ処理フローの一例を示している。まず、空き領域管理部228は、挿入ポインタ405が指定するデータ格納領域290内のブロック400に空き領域が存在するか判定する(S1400)。挿入ポインタ405が指定するデータ格納領域290内のブロック400に空き領域が存在すると判定した場合(S1400、Yes)、空き領域管理部228は、挿入ポインタ管理表900に記録されているサーバプロセス数920の値を減算し(S1410)、次いで挿入数を減算する(S1415)。ここで、挿入ポインタ管理表900のサーバプロセス数920の値を減算する場合、空き領域管理部228は、挿入ポインタ管理表900において、挿入ポインタBの値が登録されている行エントリのサーバプロセス数920の列エントリの値を1減算する。また、挿入数を減算する場合、空き領域管理部228は、挿入数の値を1減算する。
 挿入ポインタ405が指定するデータ格納領域290内のブロック400に空き領域が存在しないと判定した場合(S1400、No)、空き領域管理部228は、挿入ポインタ管理表900から該当する挿入ポインタ行エントリを削除する(S1420)。空き領域管理部228が挿入ポインタ行エントリを削除する際には、挿入ポインタCが指定するデータブロック400に空き領域が存在しない場合、挿入ポインタ管理表900において、挿入ポインタCが登録されている行エントリを削除する。以上により、データ格納領域290内のブロック400における空き領域の有無を適時に管理することができる。
 以上の構成により、実施例1の情報処理方法によれば、複数のクライアントからデータ挿入要求を同時に受信する場合でも、高速にデータ挿入処理を行うことができる。
[実施例2]
 次に、本発明の実施形態につき、実施例2の構成に即して説明する。実施例1では、データ格納領域290はHDD等の二次記憶装置130内に確保されていたが、主記憶装置115として用いられる記憶デバイス、例えばDRAM(Dynamic Random Access Memory)の大容量化に伴い、データ格納領域290を主記憶装置115上に確保することによりデータI/O性能をより向上させる構成も可能となっている。実施例2の構成では、情報処理システム1のデータ格納領域290が主記憶装置115上に確保されている。実施例2のハードウェア構成は、図1に例示した実施例1のハードウェア構成と同様であるから、説明を省略する。
 次に、実施例2によるデータ管理サーバ105のソフトウェア構成例について説明する。図15に、実施例2によるデータ管理サーバ105のソフトウェア構成例を示している。上述のように、実施例2では、実施例1とは異なり、データ格納領域290は、二次記憶装置130内ではなく、主記憶装置115上に確保される。データ格納領域290とは、データ処理の対象となるデータを格納する領域である。実施例1と同様に、実施例2においても、データ格納領域290は、ブロック400と呼ばれる単位記憶領域で区分けされている。データ管理サーバ105には、全体制御部270と、初期化処理管理部200と、終了処理管理部210と、挿入処理管理部220と、削除処理管理部230と、検索処理管理部250とが設けられている。また、主記憶装置115には、データ格納領域290と処理情報一時格納領域260とが設けられている。実施例1とは異なり、実施例2では、処理情報一時格納領域260が、データ挿入処理を行うサーバプロセスが挿入処理対象のデータを一時的に格納するために用いられ、実施例1の一時データ格納領域250は省略されている。挿入処理管理部220は、挿入処理制御部222と、挿入ポインタ割当て部225と、新規ブロック作成部226と、空き領域管理部228とを備えて構成される。二次記憶装置130には、空き領域指示ポインタ格納領域300が確保され、定義情報280が格納される。ブロック400、挿入ポインタ405、及び空き領域指示ポインタ410の内容は、実施例1の場合と同様である。なお、実施例1と同等の、あるいは対応する機能ブロックについては、実施例1と同一の符号を付して示している。
 ここで、上記の構成を備えた実施例2のデータ管理サーバ105によって実行されるデータ処理の概要について説明する。図16、図17に本発明の実施例2の構成におけるデータ処理の概要を模式的に示している。全体制御部270によってサーバプロセスが生成された場合、各サーバプロセスには処理対象となるデータの一時格納領域として更新バッファが割当てられる。更新バッファには、主記憶装置115の記憶領域の一部が使用される。
 まず、サーバプロセスは、プロセス固有の更新バッファにデータを挿入する。挿入が完了した時点で、全体制御部270に挿入確定通知(COMMIT)を送信する。全体制御部270は、その挿入確定通知を挿入処理管理部220に送信する。挿入処理管理部220は、挿入確定通知を受けて、挿入ポインタ405が指示するブロック400を確保し、更新バッファに格納されている全てのデータを当該ブロック400に挿入し、挿入ポインタ405を解放する。
 このように、実施例2の場合は実施例1とは異なり、データ挿入処理のために挿入ポインタ405を確保する時点で挿入されるデータ量を把握することができる。これを利用して予め必要なブロック数を確保して挿入ポインタ405を設定することが可能となる。実施例1では挿入されるデータ量があらかじめ分からないため、ブロック400に空き領域がなくなる毎に空き領域指示ポインタ410を利用した挿入ポインタ405の作成処理が行われていた。このために、実施例1では空き領域指示ポインタ410の競合が起きる可能性があったが、実施例2では挿入ポインタ405の作成処理を最小限に抑えられるため、このような競合を減らす効果がある。
 次に、実施例2のデータ管理サーバ105によって実行されるデータ処理について説明する。なお、全体制御部270及び終了処理管理部210の処理内容は、実施例1の場合と同様であるため説明を省略する。
 まず、初期化処理管理部200により行われる処理内容を説明する。図18に初期化処理管理部200で実行されるデータ処理フローの一例を示している。初期化処理管理部200は、全体制御部270からの通知を受信してブロック管理表1900を作成する(S1800)。本実施例のブロック管理表1900の一構成例を図19に示している。図19に例示するように、ブロック管理表1900は、サーバプロセスID1905、挿入ポインタ1910、ブロック数1915の3つの列要素を備えている。サーバプロセスID1905の列を構成する要素には、データ格納領域290内の空き領域が存在するブロック400を要求するサーバプロセスを一意に特定するための識別符号であるプロセス番号が記録される。挿入ポインタ1910の列を構成する要素は、データ格納領域290内の空き領域が存在するブロック400内の空き領域先頭アドレス、又はデータ未格納ブロックの先頭アドレスである。データ未格納ブロックとは、データ格納領域290内の、データが格納されていないブロックである。データ挿入処理を行うサーバプロセスは、挿入ポインタ405を用いて、データ格納領域290内のブロック400にデータを挿入する。ブロック数1915の列を構成する要素は、ブロックの未使用領域のサイズをブロック単位で算出した値、又はサーバプロセスが要求するブロック数である。ブロックの未使用領域とは、データ格納領域290内の1ブロック内にある、データが格納されていない領域である。
 いま、ブロック数Lを要求するサーバプロセスIDをPとする。また、データ格納領域290において、連続する空き領域がLブロック存在するブロックの先頭アドレスをFとする。この場合、ブロック管理表1900において、P、F、Lは同一行に登録され、PはサーバプロセスID1905の列要素となり、Fは挿入ポインタ1910の列要素となり、Lはブロック数1915の列要素となる。ある挿入ポインタJが指定するブロックの未使用領域サイズが0ではなく、挿入ポインタJを使用するサーバプロセスが存在しない場合、Jが属する行要素はサーバプロセスID1905の値が"NULL"となり、ブロック数1915の値は、挿入ポインタJが指定するブロックの未使用領域サイズとなる。ブロック未使用領域サイズとその算出方法については、後述する。ブロック管理表1900は、データ管理サーバ105の運用開始前に、例えば全体制御部270が使用するローカルメモリの一部に設定しておくことができる。
 次いで初期化処理管理部200は、S1800で作成したブロック管理表1900を、処理情報一時格納領域260に格納する(S1805)。次に初期化処理管理部200は、二次記憶装置130に格納されている定義情報280を読み出して(S1810)、処理情報一時格納領域260に格納する(S1815)。図3に例示したように、定義情報280には、1ブロックのサイズが記述されている。
 次いで、初期化処理管理部200は、空き領域指示ポインタ410の値を設定する(S1820)。空き領域指示ポインタ410は、データ格納領域290が新規に作成される際、そのデータ格納領域290の先頭ブロックのアドレスとして指定される。本実施例では、実施例1の場合と同様に、データ格納領域290の新規作成時以外は、空き領域指示ポインタ格納領域300に保存されている空き領域指示ポインタ410のうち、最小のアドレスが割当てられているものを空き領域指示ポインタ410とする。最後に、初期化処理管理部200は、得られた空き領域指示ポインタ410を処理情報一時格納領域260に格納する(S1825)。以上説明した初期化処理管理部200の処理により、並行してデータ挿入処理を実行するサーバプロセスにブロック400を割当てられる準備を整えることができる。
 次に、挿入処理制御部222の処理内容を説明する。図20に、実施例2の挿入処理制御部222が実行するデータ処理フローの一例を示している。挿入処理制御部222は、終了処理管理部210又はデータ挿入処理を行うサーバプロセスからデータ処理要求を受信し、受信した処理要求が終了要求であるか判定する(S2000)。受信した処理要求が終了要求であると判定した場合(S2000、Yes)、挿入処理制御部222はそのまま処理を終了する。
 一方、受信した処理要求が終了要求でないと判定した場合(S2000、No)、挿入処理制御部222は、受信した処理要求が挿入ポインタ要求であるか判定する(S2005)。受信した処理要求が挿入ポインタ要求であると判定した場合(S2005、Yes)、挿入処理制御部222は挿入ポインタ割当て部224を呼び出す(S2010)。S2000で受信した処理要求が挿入ポインタ要求でないと判定した場合(S2005、No)、挿入処理制御部222はS2015に処理を移す。
 次いで挿入処理制御部222は、受信した処理要求が挿入処理終了要求であるか判定する(S2015)。受信した処理要求が挿入処理終了要求であると判定した場合(S2015、Yes)、挿入処理制御部222は、そのまま処理を終了する。受信した処理要求が挿入処理終了要求でないと判定した場合(S2015、No)、挿入処理制御部222は空き領域管理部228を呼び出して処理を終了する(S2020)。
 次に、挿入ポインタ割当て部225の処理内容を説明する。図21に、挿入ポインタ割当て部225が実行するデータ処理フローの一例を示している。挿入ポインタ割当て部225は、サーバプロセスへの挿入ポインタ割当てが完了するまで、S2105~S2130の処理を繰り返し実行する(S2100のループ)。
 まず、挿入ポインタ割当て部225は、サーバプロセスから受信した受信データサイズを処理情報一時格納領域260に格納する(S2105)。次いで、挿入ポインタ割当て部225は、データの挿入に必要な要求ブロック数を算出する(S2110)。要求ブロック数は、データ挿入処理を行うサーバプロセスが、データ格納領域290に、データを挿入するために必要なブロック数である。要求ブロック数は、以下の数式によって算出することができる。
 要求ブロック数=[受信データサイズ/ブロックサイズ] …数式(2)
 言い換えれば、要求ブロック数は、受信データサイズ以上のブロックサイズの倍数のうちで最小の値である。
 次いで、挿入ポインタ割当て部225は、ステップ2115で、ブロック管理表1900において、サーバプロセスID1905の列の値が"NULL"であり、かつ、受信データサイズ≦ブロック数の行エントリが存在するか判定する(S2115)。ブロック管理表1900に、該当する行エントリが存在すると判定した場合(S2115、Yes)、挿入ポインタ割当て部225は、該当行の挿入ポインタ405をサーバプロセスに割当て(S2120)、ブロック管理表1900の該当行にサーバプロセスのIDを登録する(S2125)。サーバプロセスID1905を登録する場合、挿入ポインタ割当て部225は、挿入ポインタ405が割当てられたサーバプロセスのIDをブロック管理表1500に登録する。挿入ポインタ管理表1900において、ある挿入ポインタ405とその挿入ポインタ405を使用するサーバプロセスのサーバプロセスID1905とは同一行に登録される。ブロック管理表1900に、該当する行エントリが存在しないと判定した場合(S2115、No)、挿入ポインタ割当て部225は、要求ブロック数分の新規ブロック作成を新規ブロック作成部226に通知する。要求ブロック数は、S2110での処理で使用した数式(2)を用いて算出される。挿入ポインタ割当て部225の処理により、データ挿入処理を実行するサーバプロセスに、受信データサイズに対して必要な数のブロックを割り当てることができる。
 次に、新規ブロック作成部226の処理内容を説明する。図22に、新規ブロック作成部226が実行するデータ処理フローの一例を示している。まず、新規ブロック作成部226は、データ格納領域290に設定されている空き領域ポインタ410を挿入ポインタ405に変更し(S2200)、空き領域指示ポインタ410の値を変更する(S2205)。空き領域指示ポインタ410の値の変更は、S2200での空き領域指示ポインタ410の値に、数式(2)により算出される要求ブロック数を加算する操作である。新規ブロック作成部226は、挿入ポインタ割当て部225から呼び出される。挿入ポインタ割当て部225は、数式(2)を用いて要求ブロック数を算出し、その算出結果を新規ブロック作成部226に通知する。
 新規ブロック作成部226は、ステップ2210で、空き領域指示ポインタ410を処理情報一時格納領域260に格納する(S2210)。次いで、新規ブロック作成部226は、ブロック管理表1900に挿入ポインタ405を登録する(S2215)。ブロック管理表1900に挿入ポインタ405を登録する場合、新規ブロック作成部226は、ブロック管理表1900において、挿入ポインタ1910(405)の列にS2200での処理で空き領域指示ポインタ410を挿入ポインタ405とした際の挿入ポインタ405を登録し、サーバプロセスID1905の列に"NULL"を登録し、ブロック数1915の列に挿入ポインタ割当て部226から通知された要求ブロック数を登録する。以上の新規ブロック作成部226が実行するデータ処理によれば、空き領域指示ポインタ410から新たにデータ挿入処理に使用することができる挿入ポインタ405を作成することができるので、より多数のデータ挿入処理に対して対応することができる。
 次に、空き領域管理部228の処理内容を説明する。図23に、空き領域管理部228が実行するデータ処理フローの一例を示している。空き領域管理部228は、データ挿入処理を行うサーバプロセスより、挿入処理終了通知を受信する。まず、空き領域管理部228は、挿入処理終了通知元のサーバプロセスに割当てられている挿入ポインタ405が指定するブロック400の空き領域を算出する(S2300)。挿入処理通知元のサーバプロセスに割当てられている挿入ポインタをAとすると、挿入ポインタAが指定するブロックの空き領域は、以下の数式(3)によって算出される。
 ブロック内の空き領域=[受信データサイズ/ブロックサイズ]-(受信データサイズ/1ブロックサイズ) …数式(3)
 数式(3)において、(受信データサイズ/1ブロックサイズ)の値は整数値であるとは限らない。数式(2)の[受信データサイズ/1ブロックサイズ]を算出することにより、(受信データサイズ/ブロックサイズ)の値以上の最小の整数値が定まる。数式(3)により、前記最小の整数値と、(受信データサイズ/ブロックサイズ)との差を求めることができる。
 次に、空き領域管理部228は、挿入ポインタ405が指定するブロック400内に空き領域が存在するか判定する(S2310)。挿入ポインタ405が指定するブロック400内に空き領域が存在すると判定した場合(S2310、Yes)、空き領域管理部228は、ブロック管理表1900のブロック数1915を変更する(S2315)。ブロック数1915を変更する場合、空き領域管理部228は、ブロック管理表1900において挿入ポインタAが登録されている行のブロック数1915の列の値を数式(3)により算出された値に置き換える。空き領域管理部228は、ステップ2320で、ブロック管理表1900の挿入ポインタ1910の値を変更する(S2320)。ブロック管理表1900の挿入ポインタ405の値を変更する場合、空き領域管理部228は、ブロック管理表1900に登録されている挿入ポインタAの値に、挿入されることとなる受信データサイズを加算する。
 次に、空き領域管理部228は、ブロック管理表1900のサーバプロセスID1905を"NULL"とする(S2325)。ブロック管理表1900のサーバプロセスID1905を"NULL"とする場合、空き領域管理部228は、ブロック管理表1900において、挿入ポインタAが登録されている行のサーバプロセスID1905の列の値を"NULL"に変更する。
 一方、挿入ポインタ405が指定するブロック400内に空き領域が存在しないと判定した場合(S2310、No)、空き領域管理部228は、ブロック管理表1900において、挿入ポインタAが登録されている行を削除する(S2325)。以上により、データ格納領域290内のブロック400における空き領域を適時に管理することができる。
 以上説明したように、実施例2では、クライアント100あるいは入力装置104からデータが挿入されるデータ格納領域290が、二次記憶装置130ではなく、主記憶装置115上に設けられる。データ挿入処理を行う各サーバプロセスには、データ挿入処理の対象となる受信データサイズに応じ、データ未格納の領域である空き領域が存在するブロックが割当てられる。これにより、複数のデータ挿入処理要求を同時に受信した場合でも、より高速にデータ挿入処理を行うことができる。
 以上のように、本実施形態によれば、複数のデータ挿入処理要求を並列に受信した場合に、データ挿入処理をより高速に実行することが可能となる。
 なお、以上説明した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨を逸脱することなく、変更、改良することができると共に、本発明にはその等価物も含まれる。

Claims (20)

  1.  複数の単位記憶領域を有するデータ格納領域が設けられている記憶装置を備えたコンピュータが、
     データ処理要求を受信したときに、当該データ処理要求の種別を判定し、
     前記データ処理要求が、前記データ格納領域への複数のデータ挿入処理要求を含むと判定した場合に、前記データ格納領域に含まれる前記単位記憶領域のうちでデータ格納が可能な空き領域を有する前記単位記憶領域を指示する情報である挿入ポインタを作成し、
     前記複数のデータ挿入処理要求に対して前記作成した挿入ポインタを割当て、
     前記挿入ポインタによって指示される複数の前記単位記憶領域に、各前記データ挿入処理要求の対象であるデータを並行して格納する、
    情報処理方法。
  2.  前記コンピュータが、複数の副単位記憶領域を含む一時データ格納領域を有し、
     前記コンピュータが、
     前記一時データ格納領域に割り当てられている記憶容量と、前記単位記憶領域の記憶容量と、前記副単位記憶領域のうち前記データ挿入処理に使用することができる前記副単位記憶領域の割合とから、作成することができる前記挿入ポインタの最大数を算出し、
     前記データ格納領域において空き領域となっている前記単位記憶領域のうちの先頭にある前記単位記憶領域を指示する情報である空き領域指示ポインタを作成する、
    請求項1に記載の情報処理方法。
  3.  前記コンピュータが、
     前記挿入ポインタの最大数と、受信した前記データ挿入処理要求の数とを比較し、前記データ挿入処理要求の数が前記挿入ポインタの最大数以下であると判定した場合、さらに作成済みの前記挿入ポインタであって前記データ挿入処理要求に未割当ての挿入ポインタがあるか判定し、
     当該未割当ての挿入ポインタがあると判定した場合、前記データ挿入処理要求に前記挿入ポインタを割り当てて前記データ挿入処理を実行する、
    請求項2に記載の情報処理方法。
  4.  前記コンピュータが、
     前記挿入ポインタの最大数と、受信した前記データ挿入処理要求の数とを比較し、前記データ挿入処理要求の数が前記挿入ポインタの最大数を超えていると判定した場合、さらに作成済みの前記挿入ポインタであって前記データ挿入処理要求に未割当ての挿入ポインタがあるか判定し、
     当該未割当ての挿入ポインタがあると判定した場合、前記データ挿入処理要求に前記挿入ポインタを割り当てて前記データ挿入処理を実行し、
     当該未割当ての挿入ポインタがないと判定した場合、さらに作成済みの前記挿入ポインタの数が前記挿入ポインタの最大数に達しているか判定し、作成済みの前記挿入ポインタの数が前記挿入ポインタの最大数に達していないと判定した場合、新規の前記単位記憶領域を前記データ格納領域に作成し、作成済みの前記挿入ポインタの数が前記挿入ポインタの最大数に達していると判定した場合、前記データ挿入処理要求に前記挿入ポインタを割り当てて前記データ挿入処理を実行する
    請求項2に記載の情報処理装置。
  5.  前記コンピュータが、新規の前記単位記憶領域を前記データ格納領域に作成する処理は、前記空き領域指示ポインタを新規の前記挿入ポインタとして認識し、前記空き領域指示ポインタによって指示されていた前記単位記憶領域に隣接する前記単位記憶領域を指示する新規の空き領域指示ポインタを作成する処理を含む、
    請求項4に記載の情報処理方法。
  6.  前記コンピュータが、
     作成済みの前記挿入ポインタが指示する前記単位記憶領域について、前記空き領域が含まれるか判定し、前記空き領域が含まれると判定した場合、前記単位記憶領域に割り当てられている前記データ挿入処理要求数を減算し、前記空き領域が含まれないと判定した場合、前記単位記憶領域について作成されている前記挿入ポインタを削除する、
    請求項2に記載の情報処理方法。
  7.  前記コンピュータが、
     前記データ格納領域において空き領域となっている前記単位記憶領域のうちの先頭にある前記単位記憶領域を指示する情報である空き領域指示ポインタを作成する、
    請求項1に記載の情報処理方法。
  8.  前記コンピュータが、各前記データ挿入処理要求により挿入されることとなるデータの記憶容量を取得して、前記データ格納領域において必要とされる前記単位記憶領域の数を算出し、
     前記データ格納領域にある前記単位記憶領域のうちに、前記データ挿入処理要求に未割当てであって、各前記データ挿入処理要求により挿入されることとなるデータの記憶容量以上の記憶容量を有する前記単位記憶領域があるか判定し、当該単位記憶領域があると判定した場合、当該単位記憶領域を指示する前記挿入ポインタを前記データ挿入処理要求に割当て、
     該当する前記単位記憶領域がないと判定した場合、前記データ挿入処理要求により挿入されることとなるデータの記憶容量以上の記憶容量を有する新規の前記単位記憶領域を前記データ格納領域に作成する、
    請求項7に記載の情報処理方法。
  9.  前記コンピュータが、新規の前記単位記憶領域を前記データ格納領域に作成する処理は、前記空き領域指示ポインタを新規の前記挿入ポインタとして認識し、前記空き領域指示ポインタによって指示されていた前記単位記憶領域に隣接する前記単位記憶領域を指示する新規の空き領域指示ポインタを作成することを含む、
    請求項8に記載の情報処理方法。
  10.  前記コンピュータが、
     作成済みの前記挿入ポインタが指示する前記単位記憶領域について、前記空き領域が含まれるか判定し、前記空き領域が含まれると判定した場合、新規の空き領域指示ポインタを、前記挿入ポインタが未割当てで、前記データ挿入処理要求によって前記記憶装置上に一時的に格納される更新データの記憶容量を、前記単位記憶領域の数に換算した値を、新規に作成する前記挿入ポインタに加算することにより作成する、
    請求項7に記載の情報処理方法。
  11.  複数の単位記憶領域を有するデータ格納領域が設けられている記憶装置を備えたコンピュータとして構成されている情報処理装置であって、
     データ処理要求を受信したときに、当該データ処理要求の種別を判定する全体制御部と、
     前記データ処理要求が、前記データ格納領域への複数のデータ挿入処理要求を含むと判定した場合に、前記データ格納領域に含まれる前記単位記憶領域のうちでデータ格納が可能な空き領域を有する前記単位記憶領域を指示する情報である挿入ポインタを作成し、
     前記複数のデータ挿入処理要求に対して前記作成した挿入ポインタを割当て、
     前記挿入ポインタによって指示される複数の前記単位記憶領域に、各前記データ挿入処理要求の対象であるデータを並行して格納するデータ挿入管理部と、を備えている、
    情報処理装置。
  12.  複数の副単位記憶領域を含む一時データ格納領域を有し、
     前記データ挿入管理部が、
     前記一時データ格納領域に割り当てられている記憶容量と、前記単位記憶領域の記憶容量と、前記副単位記憶領域のうち前記データ挿入処理に使用することができる前記副単位記憶領域の割合とから、作成することができる前記挿入ポインタの最大数を算出し、
     前記データ格納領域において空き領域となっている前記単位記憶領域のうちの先頭にある前記単位記憶領域を指示する情報である空き領域指示ポインタを作成する、
    請求項11に記載の情報処理装置。
  13.  前記データ挿入管理部が、
     前記挿入ポインタの最大数と、受信した前記データ挿入処理要求の数とを比較し、前記データ挿入処理要求の数が前記挿入ポインタの最大数以下であると判定した場合、さらに作成済みの前記挿入ポインタであって前記データ挿入処理要求に未割当ての挿入ポインタがあるか判定し、
     当該未割当ての挿入ポインタがあると判定した場合、前記データ挿入処理要求に前記挿入ポインタを割り当てて前記データ挿入処理を実行する、
    請求項12に記載の情報処理方法。
  14.  前記データ挿入管理部が、
     前記挿入ポインタの最大数と、受信した前記データ挿入処理要求の数とを比較し、前記データ挿入処理要求の数が前記挿入ポインタの最大数を超えていると判定した場合、さらに作成済みの前記挿入ポインタであって前記データ挿入処理要求に未割当ての挿入ポインタがあるか判定し、
     当該未割当ての挿入ポインタがあると判定した場合、前記データ挿入処理要求に前記挿入ポインタを割り当てて前記データ挿入処理を実行し、
     当該未割当ての挿入ポインタがないと判定した場合、さらに作成済みの前記挿入ポインタの数が前記挿入ポインタの最大数に達しているか判定し、作成済みの前記挿入ポインタの数が前記挿入ポインタの最大数に達していないと判定した場合、新規の前記単位記憶領域を前記データ格納領域に作成し、作成済みの前記挿入ポインタの数が前記挿入ポインタの最大数に達していると判定した場合、前記データ挿入処理要求に前記挿入ポインタを割り当てて前記データ挿入処理を実行する、
    請求項12に記載の情報処理装置。
  15.  前記データ挿入管理部が、新規の前記単位記憶領域を前記データ格納領域に作成する処理は、前記空き領域指示ポインタを新規の前記挿入ポインタとして認識し、前記空き領域指示ポインタによって指示されていた前記単位記憶領域に隣接する前記単位記憶領域を指示する新規の空き領域指示ポインタを作成する処理を含む、
    請求項14に記載の情報処理装置。
  16.  前記データ挿入管理部が、
     作成済みの前記挿入ポインタが指示する前記単位記憶領域について、前記空き領域が含まれるか判定し、前記空き領域が含まれると判定した場合、前記単位記憶領域に割り当てられている前記データ挿入処理要求数を減算し、前記空き領域が含まれないと判定した場合、前記単位記憶領域について作成されている前記挿入ポインタを削除する、
    請求項12に記載の情報処理装置。
  17.  前記データ挿入管理部が、
     前記データ格納領域において空き領域となっている前記単位記憶領域のうちの先頭にある前記単位記憶領域を指示する情報である空き領域指示ポインタを作成する、
    請求項11に記載の情報処理装置。
  18.  前記データ挿入管理部が、各前記データ挿入処理要求により挿入されることとなるデータの記憶容量を取得して、前記データ格納領域において必要とされる前記単位記憶領域の数を算出し、
     前記データ格納領域にある前記単位記憶領域のうちに、前記データ挿入処理要求に未割当てであって、各前記データ挿入処理要求により挿入されることとなるデータの記憶容量以上の記憶容量を有する前記単位記憶領域があるか判定し、当該単位記憶領域があると判定した場合、当該単位記憶領域を指示する前記挿入ポインタを前記データ挿入処理要求に割当て、
     該当する前記単位記憶領域がないと判定した場合、前記データ挿入処理要求により挿入されることとなるデータの記憶容量以上の記憶容量を有する新規の前記単位記憶領域を前記データ格納領域に作成する、
    請求項17に記載の情報処理装置。
  19.  前記データ挿入管理部が、新規の前記単位記憶領域を前記データ格納領域に作成する処理は、前記空き領域指示ポインタを新規の前記挿入ポインタとして認識し、前記空き領域指示ポインタによって指示されていた前記単位記憶領域に隣接する前記単位記憶領域を指示する新規の空き領域指示ポインタを作成することを含む、
    請求項18に記載の情報処理装置。
  20.  複数の単位記憶領域を有するデータ格納領域が設けられている記憶装置を備えたコンピュータに、
     データ処理要求を受信したときに、当該データ処理要求の種別を判定し、
     前記データ処理要求が、前記データ格納領域への複数のデータ挿入処理要求を含むと判定した場合に、前記データ格納領域に含まれる前記単位記憶領域のうちでデータ格納が可能な空き領域を有する前記単位記憶領域を指示する情報である挿入ポインタを作成し、
     前記複数のデータ挿入処理要求に対して前記作成した挿入ポインタを割当て、
     前記挿入ポインタによって指示される複数の前記単位記憶領域に、各前記データ挿入処理要求の対象であるデータを並行して格納する、処理を実行させるプログラムを格納しているプログラム記憶媒体。
PCT/JP2011/053329 2011-02-17 2011-02-17 情報処理方法、情報処理装置、及びプログラム記憶媒体 WO2012111119A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/053329 WO2012111119A1 (ja) 2011-02-17 2011-02-17 情報処理方法、情報処理装置、及びプログラム記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/053329 WO2012111119A1 (ja) 2011-02-17 2011-02-17 情報処理方法、情報処理装置、及びプログラム記憶媒体

Publications (1)

Publication Number Publication Date
WO2012111119A1 true WO2012111119A1 (ja) 2012-08-23

Family

ID=46672083

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/053329 WO2012111119A1 (ja) 2011-02-17 2011-02-17 情報処理方法、情報処理装置、及びプログラム記憶媒体

Country Status (1)

Country Link
WO (1) WO2012111119A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271436A (ja) * 2002-03-18 2003-09-26 Hitachi Ltd データ処理方法、データ処理装置およびデータ処理プログラム
JP2003330765A (ja) * 2002-05-16 2003-11-21 Hitachi Ltd データベースのページ確保処理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271436A (ja) * 2002-03-18 2003-09-26 Hitachi Ltd データ処理方法、データ処理装置およびデータ処理プログラム
JP2003330765A (ja) * 2002-05-16 2003-11-21 Hitachi Ltd データベースのページ確保処理方法

Similar Documents

Publication Publication Date Title
JP6106901B2 (ja) 分散ファイルストレージシステムにおけるデータ処理の方法およびデバイス
US20180285414A1 (en) Database management system cluster node subtasking data query
JP5765416B2 (ja) 分散ストレージシステムおよび方法
US9489310B2 (en) System, method and computer-readable medium for spool cache management
US10445344B2 (en) Load balancing for large in-memory databases
JP6172649B2 (ja) 情報処理装置、プログラム、及び、情報処理方法
JP5416860B2 (ja) 計算機システムおよびその制御方法
US5715452A (en) Process of transferring file, process of gaining access to data and process of writing data
CN1774699A (zh) 共享资源的并发访问
CN109753231A (zh) 键值存储设备及操作其的方法
US9928004B2 (en) Assigning device adaptors to use to copy source extents to target extents in a copy relationship
CN102523258A (zh) 一种面向云操作系统的数据存储架构及其负载均衡方法
JP6885193B2 (ja) 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
JP2013117852A (ja) 資源のロックを獲得する装置及び方法
US10057338B2 (en) Data distribution apparatus, data distribution method, and data distribution program for parallel computing processing system
US20180349422A1 (en) Database management system, database server, and database management method
JPWO2008126202A1 (ja) ストレージシステムの負荷分散プログラム、ストレージシステムの負荷分散方法、及びストレージ管理装置
JP6823626B2 (ja) データベース管理システム及び方法
WO2012111119A1 (ja) 情報処理方法、情報処理装置、及びプログラム記憶媒体
US9110823B2 (en) Adaptive and prioritized replication scheduling in storage clusters
CN114756287B (zh) 一种重排序缓冲区的数据处理方法、装置及存储介质
JP2015176218A (ja) 演算処理装置、演算処理装置の制御方法、及び演算処理装置の制御プログラム
CN106897278B (zh) 用于键值数据库的数据读写处理方法及设备
JP2019164510A (ja) ストレージシステム及びio処理の制御方法
US11150827B2 (en) Storage system and duplicate data management method

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11858627

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP