WO2010041515A1 - 複数のアプリケーションサーバにより共有データをアクセスするシステム - Google Patents

複数のアプリケーションサーバにより共有データをアクセスするシステム Download PDF

Info

Publication number
WO2010041515A1
WO2010041515A1 PCT/JP2009/064316 JP2009064316W WO2010041515A1 WO 2010041515 A1 WO2010041515 A1 WO 2010041515A1 JP 2009064316 W JP2009064316 W JP 2009064316W WO 2010041515 A1 WO2010041515 A1 WO 2010041515A1
Authority
WO
WIPO (PCT)
Prior art keywords
mode
centralized
distributed
transition
shared data
Prior art date
Application number
PCT/JP2009/064316
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 EP09819051.5A priority Critical patent/EP2352090B1/en
Priority to CN200980138187.9A priority patent/CN102165420B/zh
Priority to JP2010532855A priority patent/JP5213077B2/ja
Publication of WO2010041515A1 publication Critical patent/WO2010041515A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Definitions

  • the present invention relates to a system for accessing shared data by a plurality of application servers, an application server in the system, a program, and a method.
  • a system including a database server that stores a database and a plurality of application servers each accessing the database is known. Such a system can reduce the load on the database server by causing the application server to cache the database reference result.
  • lock control In a system in which the application server caches database reference results, lock control must be performed between multiple application servers in order to prevent reference to cache data that is inconsistent with the database.
  • a lock control method for example, a distributed lock method in which each application server individually manages locks, and a centralized lock method in which lock servers or the like centrally manage locks are known.
  • the lock control of the distributed lock method is referred to as a cache mode
  • the lock control of the central lock method is referred to as a database mode.
  • the application server when referring to a database, acquires a reference lock managed locally prior to referencing. Further, when updating a database in a system to which the cache mode is applied, the application server acquires an exclusive lock managed in all other application servers prior to the update. Further, when referring to or updating a database in a system to which the database mode is applied, the application server acquires a reference lock or an exclusive lock managed by the lock server prior to the reference or update.
  • the cache mode the latency when acquiring the reference lock is shortened, but the exclusive lock must be acquired from each of the plurality of application servers, and the processing becomes complicated.
  • the database mode is simple because the exclusive lock need only be acquired from one lock server, but the latency at the time of acquiring the reference lock becomes long. Therefore, it is preferable to apply the cache mode in a system that implements an application with many references, and apply the database mode in a system that implements an application with many updates.
  • a system that realizes banking business is referred to more frequently than a database update in the daytime period, and a batch update of the database is performed in a nighttime period when the use by the customer is relatively low.
  • the cache mode is applied to such a system, the operation efficiency is good in the daytime period when the number of references is relatively high, but the operation efficiency is deteriorated in the nighttime period when the batch update is performed.
  • the database mode is applied to such a system, the operation efficiency is good in the night time zone in which batch update is performed, and the operation efficiency is deteriorated in the day time time when there are relatively many references. . Therefore, for example, in a system that realizes an application in which updates are relatively large in a specific time zone, it is difficult to improve the operation efficiency regardless of the time zone.
  • an object of the present invention is to provide a system, an application server, a program, and a method that can solve the above problems. This object is achieved by a combination of features described in the independent claims.
  • the dependent claims define further advantageous specific examples of the present invention.
  • a plurality of application servers that access shared data, and a centralized management unit that centrally manages locking of the shared data by each of the plurality of application servers;
  • Each of the plurality of application servers includes a distributed management unit that manages the lock of the shared data by the application server, and a distributed mode that acquires a lock from the distributed management unit, or a lock from the centralized management unit.
  • a system having a selection unit for selecting whether to obtain a centralized mode.
  • an application server in the system, a program and a method for causing a computer to function as the application server are provided.
  • FIG. 1 shows a configuration of an information processing system 10 according to an embodiment of the present invention.
  • the configuration of each of the plurality of application servers 30 is shown.
  • An example of the schema which defines the data structure of shared data (ITEM table) is shown.
  • An example of a reference query for referring to a value from the ITEM table shown in FIG. 3 is shown.
  • An example of data cached by the cache unit 56 is shown.
  • An example of the mode selected by the selection part 60 is shown.
  • An example of the transition condition when the mode is changed is shown.
  • An example of whether to refer to a cache, whether to refer to a database, and whether to update a database in each mode is shown.
  • FIG. 1 An example of a processing flow by one application server 30 (A1) and a plurality of other application servers 30 (A2 to An) in the information processing system 10 is shown.
  • 2 shows an exemplary hardware configuration of a computer 1900 according to an embodiment of the present invention.
  • FIG. 1 shows a configuration of an information processing system 10 according to the present embodiment.
  • the information processing system 10 includes a database server 20, a plurality of application servers 30, and a central management unit 40.
  • the database server 20 stores shared data.
  • the shared data is a table in a database.
  • Each of the plurality of application servers 30 executes information processing described in the application program by executing the application program.
  • Each of the plurality of application servers 30 accesses the shared data stored in the database server 20 via the network according to the description of the application program. That is, each of the plurality of application servers 30 refers to shared data and updates shared data.
  • the central management unit 40 centrally manages the lock of shared data by each of the plurality of application servers 30.
  • the central management unit 40 manages locks for each record of shared data.
  • the central management unit 40 when the central management unit 40 receives a reference lock acquisition request from one application server 30 for one record, the central management unit 40 is subject to the condition that the other application server 30 has not acquired an exclusive lock.
  • One application server 30 is made to acquire a reference lock.
  • the central management unit 40 receives an acquisition request for an exclusive lock from one application server 30 for one record, the other application server 30 does not acquire a reference lock or an exclusive lock.
  • the one application server 30 is made to acquire an exclusive lock.
  • the plurality of application servers 30 can refer to and update the shared data without any inconsistency.
  • the database server 20 and the central management unit 40 may be configured to be managed by the same system.
  • FIG. 2 shows the configuration of each of the plurality of application servers 30.
  • Each of the plurality of application servers 30 includes an execution unit 52, an access control unit 54, a cache unit 56, and a distribution management unit 58.
  • Such an application server 30 is realized by a computer executing a program.
  • the execution unit 52 executes information processing provided by the application program.
  • the execution unit 52 executes, for example, processing according to a given request and returns a processing result as a response.
  • the execution unit 52 issues a reference request or an update request to the database server 20 via the access control unit 54 when executing a process of referring to or updating the shared data.
  • the execution unit 52 may issue a reference request or an update request described in SQL (Structured Query Language).
  • the access control unit 54 transmits a reference request or update request for the shared data issued by the execution unit 52 to the database server 20 via the network. Then, the access control unit 54 acquires a processing result corresponding to the request transmitted to the database server 20 and sends it back to the execution unit 52.
  • the access control unit 54 acquires a lock from the centralized management unit 40 or the distributed management unit 58 via the selection unit 60 when an access transaction to the database server 20 is started. More specifically, the access control unit 54 acquires an exclusive lock when starting a transaction including an update request (hereinafter referred to as an update transaction). Further, the access control unit 54 acquires a reference lock when starting a transaction not including an update request (hereinafter referred to as a reference transaction). The access control unit 54 does not access the shared data when the lock cannot be acquired.
  • a transaction is a unit in which a plurality of inseparable processes exchanged with the database server 20 are collected. If the database server 20 is, for example, an SQL server, a transaction refers to a series of processes from “Begin” to “Commit” or “Rollback”.
  • the cache unit 56 caches the shared data referred to by the access control unit 54. When the transaction ends, the cache unit 56 may invalidate the cached shared data.
  • the distributed management unit 58 manages the lock of shared data by the application server 30. In the present embodiment, the distribution management unit 58 manages the lock for each record of shared data.
  • the distribution management unit 58 when the distribution management unit 58 receives a reference lock acquisition request from the access control unit 54 for one record, the distribution control unit 58 confirms that the access control unit 54 of another application server 30 has not acquired an exclusive lock. As a condition, the access control unit 54 is made to acquire a reference lock. Further, when the distribution management unit 58 receives an exclusive lock acquisition request from the access control unit 54 for one record, the distribution management unit 58 makes an inquiry to each of the other application servers 30, and all the other application servers 30 are reference-locked. Alternatively, on the condition that the exclusive lock is not acquired, the access control unit 54 is made to acquire the exclusive lock. Thereby, the distribution management unit 58 can refer to and update the shared data without any inconsistency with the other application servers 30.
  • the selection unit 60 selects a distributed mode for acquiring a lock from the distributed management unit 58 or a centralized mode for acquiring a lock from the centralized management unit 40.
  • the selection unit 60 gives a lock acquisition request from the access control unit 54 to the distribution management unit 58 and causes the access control unit 54 to acquire a lock from the distribution management unit 58.
  • the selection unit 60 gives a lock acquisition request from the access control unit 54 to the centralized management unit 40 via the network, and locks the access control unit 54 from the centralized management unit 40. To get.
  • the selection unit 60 communicates with each selection unit 60 in the other application server 30.
  • the selection unit 60 transitions to the centralized mode on condition that at least one of the plurality of application servers 30 updates the shared data.
  • the selection unit 60 transitions to the distributed mode on condition that all of the plurality of application servers 30 have not updated the shared data.
  • the access control unit 54 may permit reference to shared data and prohibit updating in the distributed mode. Further, the access control unit 54 may permit reference and update of shared data in the centralized mode.
  • Such an application server 30 acquires an exclusive lock from the centralized management unit 40 when updating the shared data, so that it is possible to eliminate exchanges with other application servers.
  • the application server 30 acquires the reference lock from the distribution management unit 58, so that the latency for acquiring the reference lock can be shortened. Therefore, the application server 30 can perform distributed lock control efficiently.
  • FIG. 3 shows an example of a schema that defines the data structure of shared data (ITEM table).
  • FIG. 4 shows an example of a reference query for referring to a value from the ITEM table shown in FIG.
  • FIG. 5 shows an example of data cached by the cache unit 56.
  • the cache unit 56 stores a result of referring to the shared data in the database server 20 using a reference query described in SQL.
  • the database server 20 stores an ITEM table as shown in the schema of FIG. 3 as shared data.
  • the access control unit 54 issues the reference query of FIG. 4 to the database server 20
  • the query result as shown in FIG. 5 can be acquired from the database server 20.
  • the cache unit 56 caches the query result obtained by the access control unit 54 as shown in FIG.
  • the access control unit 54 When the access control unit 54 receives a reference request for all or a part of the data shown in FIG. 5 from the execution unit 52 again, the access control unit 54 issues a reference query to the database server 20 instead of issuing a reference query.
  • the shared data is acquired from the data and returned to the execution unit 52 as a query result. Thereby, the access control unit 54 can reduce the load on the database server 20 and further reduce the latency for referring to the shared data.
  • FIG. 6 shows an example of the mode selected by the selection unit 60.
  • FIG. 7 shows an example of the transition condition when the mode is changed.
  • the selection unit 60 includes a distributed mode, a centralized transition mode for transitioning from the distributed mode to the centralized mode, a centralized reference mode that is a centralized mode, a centralized update mode that is a centralized mode, and Then, one of the distributed transition modes for changing from the concentrated mode to the distributed mode is selected.
  • the selection unit 60 transitions from the distributed mode to the centralized transition mode when updating the shared data in the distributed mode. For example, when the execution of the update transaction is started, the selection unit 60 may transition from the distributed mode to the centralized transition mode. Alternatively, the selection unit 60 transitions from the distributed mode to the centralized transition mode in the distributed mode on condition that at least one other application server 30 is in the centralized transition mode. Thereby, when any one of the application servers 30 updates the shared data (for example, when the execution of the update transaction is started), all of the plurality of application servers 30 may transition from the distributed mode to the centralized transition mode. it can.
  • the selection unit 60 uses the centralized transition mode in the centralized transition mode on condition that all the application servers 30 are in the centralized transition mode, the centralized reference mode that is the centralized mode, or the centralized update mode that is the centralized mode.
  • the centralized reference mode which is the centralized mode. Accordingly, the plurality of application servers 30 can transition to the concentrated mode (the concentrated reference mode or the concentrated transition mode) on condition that all have transitioned from the distributed mode to the concentrated transition mode. Note that the plurality of application servers 30 may transition from the centralized transition mode to the centralized reference mode that is the centralized mode in synchronization with each other.
  • the selection unit 60 transitions from the central reference mode to the central update mode. For example, when executing an update transaction, the selection unit 60 may transition from the central reference mode to the central update mode.
  • the selection unit 60 transitions from the central update mode to the central reference mode.
  • the selection unit 60 may transition from the centralized update mode to the centralized reference mode when execution of all the update transactions is completed.
  • the selection unit 60 is configured so that, in the centralized reference mode, all application servers 30 are in the centralized reference mode or the centralized update mode, or at least one application server 30 is in the distributed transition mode. Transition from centralized reference mode to distributed transition mode on condition Further, the selection unit 60 may transition from the intensive reference mode to the distributed transition mode on the condition that a certain period has elapsed since the transition to the intensive reference mode. Thus, each application server 30 can transition to the distributed transition mode when the shared data is not updated in the centralized mode.
  • the selection unit 60 transitions from the centralized transition mode to the distributed mode in the distributed transition mode on condition that all the application servers 30 are in the distributed transition mode, the distributed mode, or the centralized transition mode. Accordingly, the plurality of application servers 30 can transition to the distributed mode on condition that all have transitioned from the centralized mode to the distributed transition mode. Note that the plurality of application servers 30 may transition from the distributed transition mode to the distributed mode in synchronization with each other.
  • the selection unit 60 uses the distributed transition mode on condition that all the application servers 30 are in the distributed transition mode, the centralized reference mode, or the centralized update mode. It may be a configuration that makes a transition to the centralized reference mode.
  • the application server 30 transits from the distributed transition mode to the centralized update mode via the centralized reference mode. Can do.
  • FIG. 8 shows an example of whether the cache can be referenced, whether the database can be referenced, and whether the database can be updated in each mode.
  • the selection unit 60 acquires a lock from the distribution management unit 58 in the distribution mode.
  • the selection unit 60 acquires a lock from the central management unit 40 in the centralized transition mode, the centralized reference mode, the centralized update mode, and the distributed transition mode.
  • the selection unit 60 acquires the lock from the central management unit 40 and acquires it from the distribution management unit 58 in the transition from the distribution mode to the centralized transition mode. Release the lock.
  • the selection unit 60 acquires the lock from the distributed management unit 58 in the transition from the distributed transition mode to the distributed mode. Release the acquired lock. Thereby, the selection unit 60 can eliminate the inconsistency of the shared data when switching the acquisition destination of the lock.
  • the access control unit 54 permits reference to the shared data cached in the cache unit 56 and the shared data stored in the database server 20 in the distributed mode. That is, the access control unit 54 refers to the shared data using the cache unit 56 in the distributed mode. Thereby, the access control unit 54 can reduce the burden on the database server 20 and speed up access to the shared data in the distributed mode. Furthermore, the access control unit 54 prohibits updating of shared data stored in the database server 20 in the distributed mode. Thereby, the access control unit 54 can simplify the distributed lock control by eliminating the process of acquiring the exclusive lock from the plurality of other application servers 30 in the distributed mode.
  • the access control unit 54 prohibits reference to shared data cached in the cache unit 56 and permits reference to shared data stored in the database server 20 in the centralized update mode. . That is, the access control unit 54 refers to the shared data without using the cache unit 56 in the centralized update mode. Furthermore, the access control unit 54 permits the update of the shared data stored in the database server 20 in the centralized update mode. As a result, the access control unit 54 can prevent the cached data from becoming inconsistent by prohibiting the cache access in the centralized update mode.
  • the access control unit 54 prohibits reference to the shared data cached in the cache unit 56 in the centralized transition mode, the centralized reference mode, and the distributed transition mode, and is stored in the database server 20. Allow browsing of shared data. That is, the access control unit 54 refers to the shared data without using the cache unit 56 in the centralized transition mode, the centralized reference mode, and the distributed transition mode. Furthermore, the access control unit 54 prohibits updating of shared data stored in the database server 20 in the centralized transition mode, the centralized reference mode, and the distributed transition mode. As a result, the access control unit 54 can prevent cache access from being made inconsistent by prohibiting cache access at the transition from the distributed mode to the centralized update mode and from the centralized update mode to the distributed mode.
  • the selection unit 60 may invalidate the shared data cached in the cache unit 56 at the time of transition from the distributed transition mode to the distributed mode. Instead, the selection unit 60 receives a notification of data updated by any of the application servers 30 among the shared data cached in the cache unit 56 at the time of transition from the distributed transition mode to the distributed mode. The received data may be selectively invalidated. Thereby, the selection unit 60 can eliminate inconsistency between the shared data cached in the cache unit 56 and the shared data stored in the database server 20.
  • FIG. 9 shows an example of a processing flow by one application server 30 (A1) and a plurality of other application servers 30 (A2 to An) in the information processing system 10.
  • the application servers 30 (A1 to An) are in the distributed mode, when one application server 30 (A1) starts executing an update transaction, the one application server 30 (A1) and other The plurality of application servers 30 (A2 to An) operate according to the flow of FIG.
  • the one application server 30 (A1) transitions to a centralized transition mode (S101, S102, S103).
  • Each of the other plurality of application servers 30 (A2 to An) receives the notification (S103A) from the one application server 30 (A1) and recognizes that the one application server 30 (A1) is in the centralized transition mode.
  • all the application servers 30 (A1 to An) enter the centralized transition mode.
  • Each of the plurality of application servers 30 (A1 to An) receives the notification (S205A) from each of the other application servers 30 (A1 to An), and all the application servers 30 (A1 to An) are in the centralized transition mode. Recognize that there is (S106, S206), transition to the concentrated reference mode (S107, S207).
  • each of the plurality of application servers 30 (A1 to An) may transition from the centralized transition mode to the centralized reference mode in synchronization with each other.
  • each of the other application servers 30 transitions to the distributed transition mode after a certain period of time has elapsed since the transition to the centralized reference mode (S212) (S213).
  • the one application server 30 (A1) transitions from the centralized reference mode to the centralized update mode (S108). Subsequently, the one application server 30 (A1) updates the shared data (S109). Subsequently, when all the update transactions are completed (S110), the one application server 30 (A1) transitions from the centralized update mode to the centralized reference mode (S111). One application server 30 (A1) transitions to the distributed transition mode (S113) after a certain period of time has elapsed since the transition to the centralized reference mode (S112). As a result, all the application servers 30 (A1 to An) are in the distributed transition mode.
  • Each of the plurality of application servers 30 (A1 to An) receives notifications (S113A and S213A) from the other application servers 30 (A1 to An), and all the application servers 30 (A1 to An) are in the distributed transition mode. Recognize that there is (S114, S214), transition to the distributed mode (S115, S215).
  • each of the plurality of application servers 30 (A1 to An) may transition from the distributed transition mode to the distributed mode in synchronization with each other.
  • each of the plurality of application servers 30 transitions from the distributed mode to the centralized reference mode through the centralized transition mode when an update transaction is started in any one of the application servers 30 in the distributed mode. Can do. Furthermore, the one application server 30 can change from the centralized reference mode to the centralized update mode and execute the update. Each of the plurality of application servers 30 can transition from the centralized reference mode to the distributed mode through the distributed transition mode when the update in one application server 30 is completed.
  • FIG. 10 shows a flow for determining the mode of the new application server 30 when a new application server 30 is added to the information processing system 10.
  • the information processing system 10 can add a new application server 30.
  • the selection unit 60 of the application server 30 newly added to the information processing system 10 selects a mode according to the determination shown in FIG.
  • the selection unit 60 determines whether or not at least one other application server 30 is in the centralized transition mode (S301).
  • the selection unit 60 makes a transition to the centralized transition mode on condition that at least one other application server 30 is in the centralized transition mode (Yes in S301) (S302).
  • the selection unit 60 When all the other application servers 30 are not in the centralized transition mode (No in S301), the selection unit 60 subsequently determines whether or not at least one other application server 30 is in the distributed mode (S303). . The selection unit 60 transitions to the distributed mode on condition that all other application servers 30 are not in the centralized transition mode and at least one other application server 30 is in the distributed mode (Yes in S303) ( S304).
  • the selection unit 60 selects at least one other application server 30 in the distributed transition mode. Whether or not (S305).
  • the selection unit 60 on condition that all the other application servers 30 are not in the centralized transition mode or the distributed mode and at least one other application server 30 is in the distributed transition mode (Yes in S305). Transition to the distributed transition mode (S306).
  • the selection unit 60 makes a transition to the centralized reference mode on condition that all other application servers 30 are not in the centralized transition mode, the distributed mode, or the distributed transition mode (No in S305) (S307).
  • the application server 30 can access the shared data while maintaining consistency with the other application servers 30. it can.
  • FIG. 11 shows an example of a hardware configuration of a computer 1900 according to this embodiment.
  • a computer 1900 according to this embodiment is connected to a CPU peripheral unit having a CPU 2000, a RAM 2020, a graphic controller 2075, and a display device 2080 that are connected to each other by a host controller 2082, and to the host controller 2082 by an input / output controller 2084.
  • Input / output unit having communication interface 2030, hard disk drive 2040, and CD-ROM drive 2060, and legacy input / output unit having ROM 2010, flexible disk drive 2050, and input / output chip 2070 connected to input / output controller 2084 With.
  • the host controller 2082 connects the RAM 2020 to the CPU 2000 and the graphic controller 2075 that access the RAM 2020 at a high transfer rate.
  • the CPU 2000 operates based on programs stored in the ROM 2010 and the RAM 2020 and controls each unit.
  • the graphic controller 2075 acquires image data generated by the CPU 2000 or the like on a frame buffer provided in the RAM 2020 and displays it on the display device 2080.
  • the graphic controller 2075 may include a frame buffer for storing image data generated by the CPU 2000 or the like.
  • the input / output controller 2084 connects the host controller 2082 to the communication interface 2030, the hard disk drive 2040, and the CD-ROM drive 2060, which are relatively high-speed input / output devices.
  • the communication interface 2030 communicates with other devices via a network.
  • the hard disk drive 2040 stores programs and data used by the CPU 2000 in the computer 1900.
  • the CD-ROM drive 2060 reads a program or data from the CD-ROM 2095 and provides it to the hard disk drive 2040 via the RAM 2020.
  • the ROM 2010, the flexible disk drive 2050, and the relatively low-speed input / output device of the input / output chip 2070 are connected to the input / output controller 2084.
  • the ROM 2010 stores a boot program that the computer 1900 executes at startup and / or a program that depends on the hardware of the computer 1900.
  • the flexible disk drive 2050 reads a program or data from the flexible disk 2090 and provides it to the hard disk drive 2040 via the RAM 2020.
  • the input / output chip 2070 connects the flexible disk drive 2050 to the input / output controller 2084 and inputs / outputs various input / output devices via, for example, a parallel port, a serial port, a keyboard port, a mouse port, and the like. Connect to controller 2084.
  • the program provided to the hard disk drive 2040 via the RAM 2020 is stored in a recording medium such as the flexible disk 2090, the CD-ROM 2095, or an IC card and provided by the user.
  • the program is read from the recording medium, installed in the hard disk drive 2040 in the computer 1900 via the RAM 2020, and executed by the CPU 2000.
  • the program installed in the computer 1900 and causing the computer 1900 to function as the application server 30 includes an execution module, an access control module, a cache module, a distributed management module, and a selection module. These programs or modules work with the CPU 2000 or the like to cause the computer 1900 to function as the execution unit 52, the access control unit 54, the cache unit 56, the distribution management unit 58, and the selection unit 60, respectively.
  • the information processing described in these programs is read by the computer 1900, whereby the execution unit 52, the access control unit 54, the cache unit, which are specific means in which the software and the various hardware resources described above cooperate. 56, functions as a distribution management unit 58 and a selection unit 60. And the specific application server 30 according to the use purpose is constructed
  • the CPU 2000 executes a communication program loaded on the RAM 2020 and executes a communication interface based on the processing content described in the communication program.
  • a communication process is instructed to 2030.
  • the communication interface 2030 reads transmission data stored in a transmission buffer area or the like provided on a storage device such as the RAM 2020, the hard disk drive 2040, the flexible disk 2090, or the CD-ROM 2095, and sends it to the network.
  • the reception data transmitted or received from the network is written into a reception buffer area or the like provided on the storage device.
  • the communication interface 2030 may transfer transmission / reception data to / from the storage device by a DMA (direct memory access) method. Instead, the CPU 2000 transfers the storage device or the communication interface 2030 as a transfer source.
  • the transmission / reception data may be transferred by reading the data from the data and writing the data to the communication interface 2030 or the storage device of the transfer destination.
  • the CPU 2000 is all or necessary from among files or databases stored in an external storage device such as a hard disk drive 2040, a CD-ROM drive 2060 (CD-ROM 2095), and a flexible disk drive 2050 (flexible disk 2090).
  • This portion is read into the RAM 2020 by DMA transfer or the like, and various processes are performed on the data on the RAM 2020. Then, CPU 2000 writes the processed data back to the external storage device by DMA transfer or the like.
  • the RAM 2020 and the external storage device are collectively referred to as a memory, a storage unit, or a storage device.
  • the CPU 2000 can also store a part of the RAM 2020 in the cache memory and perform reading and writing on the cache memory. Even in such a form, the cache memory bears a part of the function of the RAM 2020. Therefore, in the present embodiment, the cache memory is also included in the RAM 2020, the memory, and / or the storage device unless otherwise indicated. To do.
  • the CPU 2000 performs various operations, such as various operations, information processing, condition determination, information search / replacement, etc., described in the present embodiment, specified for the data read from the RAM 2020 by the instruction sequence of the program. Is written back to the RAM 2020. For example, when performing the condition determination, the CPU 2000 determines whether the various variables shown in the present embodiment satisfy the conditions such as large, small, above, below, equal, etc., compared to other variables or constants. When the condition is satisfied (or not satisfied), the program branches to a different instruction sequence or calls a subroutine.
  • the CPU 2000 can search for information stored in a file or database in the storage device. For example, in the case where a plurality of entries in which the attribute value of the second attribute is associated with the attribute value of the first attribute are stored in the storage device, the CPU 2000 displays the plurality of entries stored in the storage device. The entry that matches the condition in which the attribute value of the first attribute is specified is retrieved, and the attribute value of the second attribute that is stored in the entry is read, thereby associating with the first attribute that satisfies the predetermined condition The attribute value of the specified second attribute can be obtained.
  • the program or module shown above may be stored in an external recording medium.
  • an optical recording medium such as DVD or CD
  • a magneto-optical recording medium such as MO
  • a tape medium such as an IC card, and the like
  • a storage device such as a hard disk or RAM provided in a server system connected to a dedicated communication network or the Internet may be used as a recording medium, and the program may be provided to the computer 1900 via the network.

Abstract

【課題】時間帯に関わらず効率良く動作させる。 【解決手段】共有データをアクセスする複数のアプリケーションサーバと、複数のアプリケーションサーバのそれぞれによる共有データのロックを集中管理する集中管理部と、を備え、複数のアプリケーションサーバのそれぞれは、当該アプリケーションサーバによる共有データのロックを管理する分散管理部と、分散管理部からロックを取得する分散モードか、集中管理部からロックを取得する集中モードかを選択する選択部と、を有するシステムを提供する。

Description

複数のアプリケーションサーバにより共有データをアクセスするシステム
 本発明は、複数のアプリケーションサーバにより共有データをアクセスするシステム、当該システムにおけるアプリケーションサーバ、プログラムおよび方法に関する。
 データベースを格納するデータベースサーバと、それぞれがデータベースをアクセスする複数のアプリケーションサーバとを備えるシステムが知られている。このようなシステムは、アプリケーションサーバにデータベースの参照結果をキャッシュさせて、データベースサーバの負荷を軽減することができる。
 アプリケーションサーバにデータベースの参照結果をキャッシュさせるシステムでは、データベースと不整合なキャッシュデータの参照防止を目的として、複数のアプリケーションサーバ間でロック制御をしなければならない。ロック制御の手法としては、例えば、各アプリケーションサーバがそれぞれ個別にロックを管理する分散ロック方式、および、ロックサーバ等がロックを集中して管理する集中ロック方式が知られている。なお、以下、分散ロック方式のロック制御をキャッシュモード、集中ロック方式のロック制御をデータベースモードという。
 キャッシュモードが適用されたシステムにおいて、データベースを参照する場合、アプリケーションサーバは、参照に先立ってローカルで管理する参照ロックを取得する。また、キャッシュモードが適用されたシステムにおいて、データベースを更新する場合、アプリケーションサーバは、更新に先立って他の全てのアプリケーションサーバ内で管理する排他ロックを取得する。また、データベースモードが適用されたシステムにおいて、データベースを参照または更新する場合、アプリケーションサーバは、参照または更新に先立ってロックサーバで管理する参照ロックまたは排他ロックを取得する。
 ここで、キャッシュモードは、参照ロックの取得時のレイテンシが短くなるが、排他ロックを複数のアプリケーションサーバのそれぞれから取得しなければならなく処理が煩雑となる。これに対して、データベースモードは、排他ロックを1つのロックサーバからのみ取得すればよいので処理が簡易であるが、参照ロックの取得時のレイテンシは長くなる。従って、参照の多いアプリケーションを実現するシステムにおいては、キャッシュモードを適用し、更新の多いアプリケーションを実現するシステムにおいては、データベースモードを適用することが好ましい。
 ところで、銀行業務等を実現するシステムは、昼間の時間帯においてはデータベースの更新よりも参照が多く、また、顧客による利用の比較的に少ない夜間の時間帯においては、データベースのバッチ更新が行われる。このようなシステムにキャッシュモードを適用した場合、参照が比較的に多い昼間の時間帯においては動作効率が良いが、バッチ更新が行われる夜間の時間帯においては動作効率が悪くなる。反対に、このようなシステムにデータベースモードを適用した場合には、バッチ更新が行われる夜間の時間帯においては動作効率が良く、参照が比較的に多い昼間の時間帯においては動作効率が悪くなる。従って、例えばある特定の時間帯において更新が比較的に多くなるようなアプリケーションを実現するシステムでは、時間帯に関わらず動作効率を良くすることは困難であった。
 そこで本発明は、上記の課題を解決することのできるシステム、アプリケーションサーバ、プログラムおよび方法を提供することを目的とする。この目的は特許請求の範囲における独立項に記載の特徴の組み合わせにより達成される。また従属項は本発明の更なる有利な具体例を規定する。
 上記課題を解決するために、本発明の第1の態様においては、共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部と、を備え、前記複数のアプリケーションサーバのそれぞれは、当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部と、を有するシステムを提供する。さらに、当該システムにおけるアプリケーションサーバ、当該アプリケーションサーバとしてコンピュータを機能させるプログラムおよび方法を提供する。なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではない。また、これらの特徴群のサブコンビネーションもまた、発明となりうる。
本発明の実施形態に係る情報処理システム10の構成を示す。 複数のアプリケーションサーバ30のそれぞれの構成を示す。 共有データ(ITEMテーブル)のデータ構造を定義するスキーマの一例を示す。 図3に示されるITEMテーブルから値を参照するための参照クエリの一例を示す。 キャッシュ部56がキャッシングするデータの一例を示す。 選択部60により選択されるモードの一例を示す。 モードを遷移させる場合の遷移条件の一例を示す。 各モードにおける、キャッシュの参照の可否、データベースの参照の可否およびデータベースの更新の可否の一例を示す。 情報処理システム10における、ある一のアプリケーションサーバ30(A1)、および、他の複数のアプリケーションサーバ30(A2~An)による処理フローの一例を示す。 情報処理システム10に新たなアプリケーションサーバ30が追加された場合における、当該新たなアプリケーションサーバ30のモードの決定フローを示す。 本発明の実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。
 以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
 図1は、本実施形態に係る情報処理システム10の構成を示す。情報処理システム10は、データベースサーバ20と、複数のアプリケーションサーバ30と、集中管理部40とを備える。
 データベースサーバ20は、共有データを記憶する。本実施形態においては、共有データは、データベース内のテーブルである。
 複数のアプリケーションサーバ30のそれぞれは、アプリケーションプログラムを実行することにより、当該アプリケーションプログラムに記述された情報処理を行う。また、複数のアプリケーションサーバ30のそれぞれは、アプリケーションプログラムの記述に従って、データベースサーバ20に記憶された共有データをネットワークを介してアクセスする。すなわち、複数のアプリケーションサーバ30のそれぞれは、共有データの参照および共有データの更新をする。
 集中管理部40は、複数のアプリケーションサーバ30のそれぞれによる共有データのロックを集中管理する。本実施形態においては、集中管理部40は、共有データのレコード毎にロックを管理する。
 より詳しくは、集中管理部40は、一のレコードについて、一のアプリケーションサーバ30から参照ロックの取得要求を受けた場合、他のアプリケーションサーバ30が排他ロックを取得していないことを条件として、当該一のアプリケーションサーバ30に参照ロックを取得させる。また、集中管理部40は、一のレコードについて、一のアプリケーションサーバ30から排他ロックの取得要求を受けた場合、他のアプリケーションサーバ30が参照ロックまたは排他ロックを取得していないことを条件として、当該一のアプリケーションサーバ30に排他ロックを取得させる。これにより、複数のアプリケーションサーバ30は、互いに不整合なく共有データを参照および更新することができる。なお、データベースサーバ20および集中管理部40は、同一のシステムにより管理される構成であってよい。
 図2は、複数のアプリケーションサーバ30のそれぞれの構成を示す。複数のアプリケーションサーバ30のそれぞれは、実行部52と、アクセス制御部54と、キャッシュ部56と、分散管理部58とを有する。このようなアプリケーションサーバ30は、コンピュータがプログラムを実行することにより実現される。
 実行部52は、アプリケーションプログラムにより提供される情報処理を実行する。実行部52は、例えば与えられたリクエストに応じた処理を実行して、処理結果をレスポンスとして返信する。また、実行部52は、共有データを参照または更新する処理を実行する場合には、データベースサーバ20に、アクセス制御部54を介して参照要求または更新要求を発行する。実行部52は、一例として、SQL(Structured Query Language)により記述された参照要求または更新要求を発行してよい。
 アクセス制御部54は、実行部52により発行された共有データに対する参照要求または更新要求を、データベースサーバ20にネットワークを介して送信する。そして、アクセス制御部54は、データベースサーバ20に送信した要求に応じた処理結果を取得して、実行部52に返信する。
 また、アクセス制御部54は、データベースサーバ20に対するアクセスのトランザクションが開始した場合、選択部60を介して、集中管理部40または分散管理部58からロックを取得する。より詳しくは、アクセス制御部54は、更新要求を含むトランザクション(以下、更新トランザクションと呼ぶ)を開始する場合には、排他ロックを取得する。また、アクセス制御部54は、更新要求を含まないトランザクション(以下、参照トランザクションと呼ぶ)を開始する場合には、参照ロックを取得する。アクセス制御部54は、ロックを取得できない場合には、共有データに対するアクセスを行わない。
 なお、トランザクションとは、データベースサーバ20との間でやり取りされる例えば不可分な複数の処理をまとめた単位をいう。データベースサーバ20が例えばSQLサーバであれば、トランザクションは、"Begin"から"Commit"または"Rollback"までの一連の処理をいう。
 キャッシュ部56は、アクセス制御部54が参照した共有データをキャッシングする。キャッシュ部56は、トランザクションが終了した場合、キャッシングした共有データを無効化してよい。
 分散管理部58は、当該アプリケーションサーバ30による共有データのロックを管理する。本実施形態においては、分散管理部58は、共有データのレコード毎にロックを管理する。
 より詳しくは、分散管理部58は、一のレコードについて、アクセス制御部54から参照ロックの取得要求を受けた場合、他のアプリケーションサーバ30のアクセス制御部54が排他ロックを取得していないことを条件として、当該アクセス制御部54に参照ロックを取得させる。また、分散管理部58は、一のレコードについて、アクセス制御部54から排他ロックの取得要求を受けた場合、他のアプリケーションサーバ30のそれぞれに問い合わせをし、他のアプリケーションサーバ30の全てが参照ロックまたは排他ロックを取得していないことを条件として、当該アクセス制御部54に排他ロックを取得させる。これにより、分散管理部58は、他のアプリケーションサーバ30と不整合なく共有データを参照および更新することができる。
 選択部60は、分散管理部58からロックを取得する分散モードか、集中管理部40からロックを取得する集中モードかを選択する。選択部60は、分散モードを選択している場合、アクセス制御部54からのロックの取得要求を分散管理部58に与えて、アクセス制御部54に分散管理部58からロックを取得させる。また、選択部60は、集中モードを選択している場合、アクセス制御部54からのロックの取得要求をネットワークを介して集中管理部40に与えて、アクセス制御部54に集中管理部40からロックを取得させる。
 ここで、選択部60は、他のアプリケーションサーバ30内のそれぞれの選択部60と通信を行う。選択部60は、複数のアプリケーションサーバ30のうち少なくとも1つが共有データを更新することを条件として、集中モードに遷移する。また、選択部60は、複数のアプリケーションサーバ30の全てが共有データを更新していないことを条件として、分散モードに遷移する。そして、アクセス制御部54は、分散モードにおいて、共有データの参照を許可し且つ更新を禁止してよい。また、アクセス制御部54は、集中モードにおいて、共有データの参照および更新を許可してよい。
 このようなアプリケーションサーバ30は、共有データを更新する場合においては、集中管理部40から排他ロックを取得するので、他のアプリケーションサーバとの間のやり取りを無くすことができる。また、アプリケーションサーバ30は、共有データを更新しない場合においては、分散管理部58から参照ロックを取得するので、参照ロックを取得するレイテンシを短くすることができる。従って、アプリケーションサーバ30によれば、効率良く分散ロック制御をすることができる。
 図3は、共有データ(ITEMテーブル)のデータ構造を定義するスキーマの一例を示す。図4は、図3に示されるITEMテーブルから値を参照するための参照クエリの一例を示す。図5は、キャッシュ部56がキャッシングするデータの一例を示す。
 キャッシュ部56は、一例として、SQLにより記述された参照クエリにより、データベースサーバ20内の共有データを参照した結果を格納する。例えば、データベースサーバ20は、図3のスキーマに示されるようなITEMテーブルを共有データとして記憶していたとする。この場合において、アクセス制御部54は、データベースサーバ20に対して図4の参照クエリを発行すると、図5に示されるようなクエリ結果をデータベースサーバ20から取得することができる。キャッシュ部56は、アクセス制御部54が取得した図5に示されるようなクエリ結果をキャッシングする。
 そして、アクセス制御部54は、実行部52から図5に示されるデータの全部または一部について再度参照要求を受けると、データベースサーバ20に対して参照クエリを発行することに代えて、キャッシュ部56から共有データを取得してクエリ結果として実行部52に返信する。これにより、アクセス制御部54は、データベースサーバ20の負荷を下げ、更に、共有データを参照するレイテンシを短くすることができる。
 図6は、選択部60により選択されるモードの一例を示す。図7は、モードを遷移させる場合の遷移条件の一例を示す。選択部60は、図6および図7に示されるように、分散モード、分散モードから集中モードに遷移させるための集中遷移モード、集中モードである集中参照モード、集中モードである集中更新モード、および、集中モードから分散モードに遷移させるための分散遷移モードの何れかを選択する。
 選択部60は、分散モードにおいて、共有データを更新する場合、分散モードから集中遷移モードに遷移する。選択部60は、一例として、更新トランザクションの実行を開始した場合、分散モードから集中遷移モードに遷移してよい。または、選択部60は、分散モードにおいて、他の少なくとも1つのアプリケーションサーバ30が集中遷移モードであることを条件として、分散モードから集中遷移モードに遷移する。これにより、複数のアプリケーションサーバ30は、何れか一のアプリケーションサーバ30が共有データを更新する場合(例えば、更新トランザクションの実行を開始した場合)、全てが分散モードから集中遷移モードに遷移することができる。
 また、選択部60は、集中遷移モードにおいて、全てのアプリケーションサーバ30が集中遷移モード、集中モードである集中参照モードまたは集中モードである集中更新モードの何れかであることを条件として、集中遷移モードから、集中モードである集中参照モードに遷移する。これにより、複数のアプリケーションサーバ30は、全てが分散モードから集中遷移モードに遷移したことを条件として、集中モード(集中参照モードまたは集中遷移モード)に遷移することができる。なお、複数のアプリケーションサーバ30は、集中遷移モードから集中モードである集中参照モードへと、互いに同期して遷移してもよい。
 また、選択部60は、集中参照モードにおいて、共有データを更新する場合、集中参照モードから集中更新モードに遷移する。選択部60は、一例として、更新トランザクションを実行する場合、集中参照モードから集中更新モードに遷移してよい。
 また、選択部60は、集中更新モードにおいて、共有データの更新を終えた場合、集中更新モードから集中参照モードに遷移する。選択部60は、一例として、全ての更新トランザクションの実行が終了した場合、集中更新モードから集中参照モードに遷移してよい。
 また、選択部60は、集中参照モードにおいて、全てのアプリケーションサーバ30が集中参照モードまたは集中更新モードの何れかであることを条件として、または、少なくとも1つのアプリケーションサーバ30が分散遷移モードであることを条件として、集中参照モードから分散遷移モードに遷移する。また、選択部60は、集中参照モードに遷移してから一定期間経過したことを更に条件として、集中参照モードから分散遷移モードに遷移してもよい。これにより、各アプリケーションサーバ30は、集中モードにおいて共有データを更新しない場合には、分散遷移モードに遷移することができる。
 また、選択部60は、分散遷移モードにおいて、全てのアプリケーションサーバ30が、分散遷移モード、分散モードまたは集中遷移モードの何れかであることを条件として、集中遷移モードから分散モードに遷移する。これにより、複数のアプリケーションサーバ30は、全てが集中モードから分散遷移モードに遷移したことを条件として、分散モードに遷移することができる。なお、複数のアプリケーションサーバ30は、分散遷移モードから分散モードへと、互いに同期して遷移してもよい。
 なお、選択部60は、分散遷移モードにおいて、共有データを更新する場合、全てのアプリケーションサーバ30が、分散遷移モード、集中参照モードまたは集中更新モードの何れかであることを条件として、分散遷移モードから集中参照モードに遷移する構成であってもよい。これにより、アプリケーションサーバ30は、分散遷移モードにおいて、共有データを更新する場合(例えば、更新トランザクションの実行を開始した場合)、分散遷移モードから、集中参照モードを介して集中更新モードに遷移することができる。
 図8は、各モードにおける、キャッシュの参照の可否、データベースの参照の可否およびデータベースの更新の可否の一例を示す。選択部60は、分散モードにおいて、分散管理部58からロックを取得する。また、選択部60は、集中遷移モード、集中参照モード、集中更新モードおよび分散遷移モードにおいて、集中管理部40からロックを取得する。
 更に、分散モードにおいて分散管理部58からロックを取得している場合、選択部60は、分散モードから集中遷移モードへの遷移において、集中管理部40からロックを取得し、分散管理部58から取得したロックを開放する。また、分散遷移モードにおいて集中管理部40からロックを取得している場合、選択部60は、分散遷移モードから分散モードへの遷移において、分散管理部58からロックを取得し、集中管理部40から取得したロックを開放する。これにより、選択部60は、ロックの取得先を切り替える場合において、共有データの不整合を無くすことができる。
 また、アクセス制御部54は、図8に示されるように、分散モードにおいて、キャッシュ部56にキャッシュされた共有データおよびデータベースサーバ20に記憶された共有データの参照を許可する。即ち、アクセス制御部54は、分散モードにおいて、キャッシュ部56を用いて共有データを参照する。これにより、アクセス制御部54は、分散モードにおいて、データベースサーバ20の負担を軽減するとともに共有データへのアクセスを速くすることができる。さらに、アクセス制御部54は、分散モードにおいて、データベースサーバ20に記憶された共有データの更新を禁止する。これにより、アクセス制御部54は、分散モードにおいて、他の複数のアプリケーションサーバ30から排他ロックを取得する処理を無くして分散ロック制御を簡易にすることができる。
 また、アクセス制御部54は、図8に示されるように、集中更新モードにおいて、キャッシュ部56にキャッシュされた共有データの参照を禁止し、データベースサーバ20に記憶された共有データの参照を許可する。即ち、アクセス制御部54は、集中更新モードにおいて、キャッシュ部56を用いずに共有データを参照する。さらに、アクセス制御部54は、集中更新モードにおいて、データベースサーバ20に記憶された共有データの更新を許可する。これにより、アクセス制御部54は、集中更新モードにおいて、キャッシュアクセスを禁止して共有データが不整合となることを無くすことができる。
 また、アクセス制御部54は、図8に示されるように、集中遷移モード、集中参照モードおよび分散遷移モードにおいて、キャッシュ部56にキャッシュされた共有データの参照を禁止し、データベースサーバ20に記憶された共有データの参照を許可する。即ち、アクセス制御部54は、集中遷移モード、集中参照モードおよび分散遷移モードにおいて、キャッシュ部56を用いずに共有データを参照する。さらに、アクセス制御部54は、集中遷移モード、集中参照モードおよび分散遷移モードにおいて、データベースサーバ20に記憶された共有データの更新を禁止する。これにより、アクセス制御部54は、分散モードから集中更新モードへの遷移および集中更新モードから分散モードへの遷移において、キャッシュアクセスを禁止して共有データが不整合となることを無くすことができる。
 さらに、選択部60は、分散遷移モードから分散モードへの遷移時において、キャッシュ部56にキャッシュされた共有データを無効にしてよい。これに代えて、選択部60は、分散遷移モードから分散モードへの遷移時において、キャッシュ部56にキャッシュされた共有データのうち何れかのアプリケーションサーバ30により更新されたデータの通知を受け、通知を受けたデータを選択的に無効化してもよい。これにより、選択部60は、キャッシュ部56にキャッシュされた共有データと、データベースサーバ20に記憶された共有データとの間の不整合を無くすことができる。
 図9は、情報処理システム10における、ある一のアプリケーションサーバ30(A1)、および、他の複数のアプリケーションサーバ30(A2~An)による処理フローの一例を示す。全てのアプリケーションサーバ30(A1~An)が分散モードである場合において、ある一のアプリケーションサーバ30(A1)が更新トランザクションの実行を開始すると、当該一のアプリケーションサーバ30(A1)、および、他の複数のアプリケーションサーバ30(A2~An)は、図9のフローに従って動作をする。
 まず、一のアプリケーションサーバ30(A1)において更新トランザクションが開始されると、当該一のアプリケーションサーバ30(A1)は、集中遷移モードに遷移する(S101、S102、S103)。他の複数のアプリケーションサーバ30(A2~An)のそれぞれは、一のアプリケーションサーバ30(A1)から通知(S103A)を受け取って、一のアプリケーションサーバ30(A1)が集中遷移モードであることを認識し、集中遷移モードに遷移する(S201、S204、S205)。この結果、全てのアプリケーションサーバ30(A1~An)は、集中遷移モードへとなる。
 複数のアプリケーションサーバ30(A1~An)のそれぞれは、他のアプリケーションサーバ30(A1~An)のそれぞれから通知(S205A)を受け取って、全てのアプリケーションサーバ30(A1~An)が集中遷移モードであることを認識し(S106、S206)、集中参照モードに遷移する(S107、S207)。ここで、複数のアプリケーションサーバ30(A1~An)のそれぞれは、互いに同期して、集中遷移モードから集中参照モードへと遷移してよい。
 続いて、他のアプリケーションサーバ30(A2~An)のそれぞれは、集中参照モードに遷移してから一定期間経過すると(S212)、分散遷移モードに遷移する(S213)。
 また、一のアプリケーションサーバ30(A1)は、集中参照モードから集中更新モードに遷移する(S108)。続いて、一のアプリケーションサーバ30(A1)は、共有データの更新を実行する(S109)。続いて、一のアプリケーションサーバ30(A1)は、全ての更新トランザクションが終了すると(S110)、集中更新モードから集中参照モードに遷移する(S111)。一のアプリケーションサーバ30(A1)は、集中参照モードに遷移してから一定期間経過すると(S112)、分散遷移モードに遷移する(S113)。この結果、全てのアプリケーションサーバ30(A1~An)は、分散遷移モードとなる。
 複数のアプリケーションサーバ30(A1~An)のそれぞれは、他のアプリケーションサーバ30(A1~An)から通知(S113A、S213A)を受け取って、全てのアプリケーションサーバ30(A1~An)が分散遷移モードであることを認識し(S114、S214)、分散モードに遷移する(S115、S215)。ここで、複数のアプリケーションサーバ30(A1~An)のそれぞれは、互いに同期して、分散遷移モードから分散モードへと遷移してよい。
 以上のように複数のアプリケーションサーバ30のそれぞれは、分散モードにおいて何れかの一のアプリケーションサーバ30において更新トランザクションが開始されると、分散モードから集中遷移モードを介して集中参照モードへと遷移することができる。さらに、一のアプリケーションサーバ30は、集中参照モードから集中更新モードへと遷移して、更新を実行することができる。そして、複数のアプリケーションサーバ30のそれぞれは、一のアプリケーションサーバ30における更新が終了すると、集中参照モードから分散遷移モードを介して分散モードへと遷移することができる。
 図10は、情報処理システム10に新たなアプリケーションサーバ30が追加された場合における、当該新たなアプリケーションサーバ30のモードの決定フローを示す。当該情報処理システム10は、新たなアプリケーションサーバ30を追加することができる。情報処理システム10に新たに追加されたアプリケーションサーバ30の選択部60は、図10に示される判断に従ってモードを選択する。
 まず、選択部60は、少なくとも1つの他のアプリケーションサーバ30が集中遷移モードであるか否かを判断する(S301)。選択部60は、少なくとも1つの他のアプリケーションサーバ30が集中遷移モードであることを条件として(S301のYes)、集中遷移モードに遷移する(S302)。
 全ての他のアプリケーションサーバ30が集中遷移モードではない場合(S301のNo)、続いて、選択部60は、少なくとも1つの他のアプリケーションサーバ30が分散モードであるか否かを判断する(S303)。選択部60は、全ての他のアプリケーションサーバ30が集中遷移モードではなく、且つ、少なくとも1つの他のアプリケーションサーバ30が分散モードであることを条件として(S303のYes)、分散モードに遷移する(S304)。
 続いて、全ての他のアプリケーションサーバ30が集中遷移モードまたは分散モードの何れでもない場合(S303のNo)、続いて、選択部60は、少なくとも1つの他のアプリケーションサーバ30が分散遷移モードであるか否かを判断する(S305)。選択部60は、全ての他のアプリケーションサーバ30が集中遷移モードまたは分散モードの何れでもなく、且つ、少なくとも1つの他のアプリケーションサーバ30が分散遷移モードであることを条件として(S305のYes)、分散遷移モードに遷移する(S306)。
 そして、選択部60は、全ての他のアプリケーションサーバ30が集中遷移モード、分散モードまたは分散遷移モードの何れでもないことを条件として(S305のNo)、集中参照モードに遷移する(S307)。以上のようにモードを決定することによって、アプリケーションサーバ30は、情報処理システム10に新たに追加された場合であっても、他のアプリケーションサーバ30と整合性を保って共有データにアクセスすることができる。
 図11は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD-ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
 ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
 入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD-ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD-ROMドライブ2060は、CD-ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
 また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
 RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD-ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
 コンピュータ1900にインストールされ、コンピュータ1900をアプリケーションサーバ30として機能させるプログラムは、実行モジュールと、アクセス制御モジュールと、キャッシュモジュールと、分散管理モジュールと、選択モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、実行部52、アクセス制御部54、キャッシュ部56、分散管理部58および選択部60としてそれぞれ機能させる。
 これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段である実行部52、アクセス制御部54、キャッシュ部56、分散管理部58および選択部60として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のアプリケーションサーバ30が構築される。
 一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD-ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
 また、CPU2000は、ハードディスクドライブ2040、CD-ROMドライブ2060(CD-ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
 また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
 また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
 以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD-ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
 以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
 特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
10 情報処理システム
20 データベースサーバ
30 アプリケーションサーバ
40 集中管理部
52 実行部
54 アクセス制御部
56 キャッシュ部
58 分散管理部
60 選択部
1900 コンピュータ
2000 CPU
2010 ROM
2020 RAM
2030 通信インターフェイス
2040 ハードディスクドライブ
2050 フレキシブルディスク・ドライブ
2060 CD-ROMドライブ
2070 入出力チップ
2075 グラフィック・コントローラ
2080 表示装置
2082 ホスト・コントローラ
2084 入出力コントローラ
2090 フレキシブルディスク
2095 CD-ROM

Claims (16)

  1.  共有データをアクセスする複数のアプリケーションサーバと、
     前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部と、
     を備え、
     前記複数のアプリケーションサーバのそれぞれは、
     当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
     前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部と、
     を有するシステム。
  2.  前記分散モードにおいて、前記共有データの更新を禁止するアクセス制御部を更に備える
     請求項1に記載のシステム。
  3.  前記選択部は、
     前記複数のアプリケーションサーバの全てが前記共有データを更新していないことを条件として、前記分散モードに遷移し、
     前記複数のアプリケーションサーバのうち少なくとも1つが前記共有データを更新することを条件として、前記集中モードに遷移する
     請求項2に記載のシステム。
  4.  前記選択部は、
     前記分散モードにおいて、前記共有データを更新する場合、前記分散モードから集中遷移モードに遷移し、
     前記分散モードにおいて、他の少なくとも1つの前記アプリケーションサーバが前記集中遷移モードであることを条件として、前記分散モードから前記集中遷移モードに遷移し、
     前記集中遷移モードにおいて、全ての前記アプリケーションサーバが前記集中遷移モードまたは前記集中モードの何れかであることを条件として、前記集中遷移モードから前記集中モードに遷移する
     請求項3に記載のシステム。
  5.  前記選択部は、前記集中遷移モードにおいて、前記集中管理部からロックを取得し、
     前記アクセス制御部は、前記集中遷移モードにおいて、前記共有データの更新を禁止する
     請求項4に記載のシステム。
  6.  前記選択部は、
     前記集中遷移モードにおいて、全ての前記アプリケーションサーバが前記集中遷移モードまたは前記集中モードの何れかであることを条件として、前記集中遷移モードから前記集中モードである集中参照モードに遷移し、
     前記集中参照モードにおいて、前記共有データを更新する場合、前記集中参照モードから前記集中モードである集中更新モードに遷移し、
     前記集中更新モードにおいて、前記共有データの更新を終えた場合、前記集中更新モードから前記集中参照モードに遷移する
     請求項5に記載のシステム。
  7.  前記アクセス制御部は、前記集中参照モードにおいて、前記共有データの更新を禁止する
     請求項6に記載のシステム。
  8.  前記選択部は、
     前記集中参照モードにおいて、全ての前記アプリケーションサーバが前記集中参照モードまたは前記集中更新モードの何れかである、または、少なくとも1つの前記アプリケーションサーバが分散遷移モードであることを条件として、前記集中参照モードから前記分散遷移モードに遷移し、
     前記分散遷移モードにおいて、全ての前記アプリケーションサーバが、前記分散遷移モード、前記分散モードまたは前記集中遷移モードの何れかであることを条件として、前記集中遷移モードから前記分散モードに遷移する
     請求項7に記載のシステム。
  9.  前記選択部は、前記分散遷移モードにおいて、前記集中管理部からロックを取得し、
     前記アクセス制御部は、前記分散遷移モードにおいて、前記共有データの更新を禁止する
     請求項8に記載のシステム。
  10.  当該システムは、新たな前記アプリケーションサーバを追加することが可能であり、
     新たに追加された前記アプリケーションサーバの前記選択部は、
     少なくとも1つの他の前記アプリケーションサーバが前記集中遷移モードであることを条件として、前記集中遷移モードに遷移し、
     全ての他の前記アプリケーションサーバが前記集中遷移モードではなく、且つ、少なくとも1つの他の前記アプリケーションサーバが前記分散モードであることを条件として、前記分散モードに遷移し、
     全ての他の前記アプリケーションサーバが前記集中遷移モードまたは前記分散モードの何れでもなく、且つ、少なくとも1つの他の前記アプリケーションサーバが前記分散遷移モードであることを条件として、前記分散遷移モードに遷移し、
     全ての他の前記アプリケーションサーバが前記集中遷移モード、前記分散モードまたは前記分散遷移モードの何れでもないことを条件として、前記集中参照モードに遷移する
    請求項9に記載のシステム。
  11.  前記選択部は、前記分散モードから前記集中遷移モードへの遷移において、前記集中管理部からロックを取得し、前記分散管理部から取得したロックを開放する
    請求項4から7の何れかに記載のシステム。
  12.  前記複数のアプリケーションサーバのそれぞれは、
     前記共有データにアクセスするアクセス制御部と、
     前記共有データをキャッシュするキャッシュ部と
    を更に有し、
     前記アクセス制御部は、前記分散モードにおいて、前記キャッシュ部を用いて前記共有データを参照し、前記集中モードにおいて、前記キャッシュ部を用いずに前記共有データを参照し、
     前記選択部は、前記分散モードへの遷移時において、前記キャッシュ部にキャッシュされた前記共有データを無効にする
    請求項1から11の何れかに記載のシステム。
  13.  共有データをアクセスする複数のアプリケーションサーバと、
     前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部と、
     を備え、
     前記複数のアプリケーションサーバのそれぞれは、
     当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
     前記分散管理部からロックを取得する分散モード、または、前記集中管理部からロックを取得する集中遷移モード、集中参照モード、集中更新モードおよび分散遷移モードの何れか、を選択する選択部と
     を有し、
     前記選択部は、
     前記分散モードにおいて、前記共有データを更新する場合、前記分散モードから集中遷移モードに遷移し、
     前記分散モードにおいて、他の少なくとも1つの前記アプリケーションサーバが前記集中遷移モードであることを条件として、前記分散モードから前記集中遷移モードに遷移し、
     前記集中遷移モードにおいて、全ての前記アプリケーションサーバが前記集中遷移モード、前記集中参照モードまたは前記集中更新モードの何れかであることを条件として、前記集中遷移モードから前記集中参照モードに遷移し、
     前記集中参照モードにおいて、前記共有データを更新する場合、前記集中参照モードから前記集中更新モードに遷移し、
     前記集中更新モードにおいて、前記共有データの更新を終えた場合、前記集中更新モードから前記集中参照モードに遷移し、
     前記集中参照モードにおいて、全ての前記アプリケーションサーバが前記集中参照モードまたは前記集中更新モードの何れかである、または、少なくとも1つの前記アプリケーションサーバが分散遷移モードであることを条件として、前記集中参照モードから前記分散遷移モードに遷移し、
     前記分散遷移モードにおいて、全ての前記アプリケーションサーバが、前記分散遷移モード、前記分散モードまたは前記集中遷移モードの何れかであることを条件として、前記集中遷移モードから前記分散モードに遷移する
     システム。
  14.  共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部とを備えるシステムにおける、前記アプリケーションサーバであって、
     当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
     前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部と、
     有するアプリケーションサーバ。
  15.  共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部とを備えるシステムにおける、前記アプリケーションサーバとして、コンピュータを機能させるプログラムであって、
     前記コンピュータを、
     当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部と、
     前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部と
    して機能させるプログラム。
  16.  共有データをアクセスする複数のアプリケーションサーバと、前記複数のアプリケーションサーバのそれぞれによる前記共有データのロックを集中管理する集中管理部とを備えるシステムにおける、前記アプリケーションサーバとして、コンピュータを機能させる方法であって、
     前記コンピュータを、当該アプリケーションサーバによる前記共有データのロックを管理する分散管理部として機能させるステップと、
     前記コンピュータを、前記分散管理部からロックを取得する分散モードか、前記集中管理部からロックを取得する集中モードかを選択する選択部として機能させるステップと
    を有する方法。
PCT/JP2009/064316 2008-10-06 2009-08-13 複数のアプリケーションサーバにより共有データをアクセスするシステム WO2010041515A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP09819051.5A EP2352090B1 (en) 2008-10-06 2009-08-13 System accessing shared data by a plurality of application servers
CN200980138187.9A CN102165420B (zh) 2008-10-06 2009-08-13 通过多个应用程序服务器访问共享数据的系统
JP2010532855A JP5213077B2 (ja) 2008-10-06 2009-08-13 複数のアプリケーションサーバにより共有データをアクセスするシステム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-259926 2008-10-06
JP2008259926 2008-10-06

Publications (1)

Publication Number Publication Date
WO2010041515A1 true WO2010041515A1 (ja) 2010-04-15

Family

ID=42100471

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/064316 WO2010041515A1 (ja) 2008-10-06 2009-08-13 複数のアプリケーションサーバにより共有データをアクセスするシステム

Country Status (6)

Country Link
US (2) US8589438B2 (ja)
EP (1) EP2352090B1 (ja)
JP (1) JP5213077B2 (ja)
KR (1) KR20110066940A (ja)
CN (1) CN102165420B (ja)
WO (1) WO2010041515A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013046883A1 (ja) * 2011-09-30 2013-04-04 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクション処理システム、方法及びプログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5213077B2 (ja) 2008-10-06 2013-06-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のアプリケーションサーバにより共有データをアクセスするシステム
CN102238203A (zh) * 2010-04-23 2011-11-09 中兴通讯股份有限公司 一种实现物联网业务的方法及系统
US8620998B2 (en) * 2010-09-11 2013-12-31 Steelcloud, Inc. Mobile application deployment for distributed computing environments
US8484649B2 (en) 2011-01-05 2013-07-09 International Business Machines Corporation Amortizing costs of shared scans
US9088569B2 (en) * 2011-05-12 2015-07-21 International Business Machines Corporation Managing access to a shared resource using client access credentials
GB2503266A (en) * 2012-06-21 2013-12-25 Ibm Sharing aggregated cache hit and miss data in a storage area network
US20140280347A1 (en) * 2013-03-14 2014-09-18 Konica Minolta Laboratory U.S.A., Inc. Managing Digital Files with Shared Locks
KR101645163B1 (ko) * 2014-11-14 2016-08-03 주식회사 인프라웨어 분산 시스템에서의 데이터베이스 동기화 방법
WO2019177591A1 (en) * 2018-03-13 2019-09-19 Google Llc Including transactional commit timestamps in the primary keys of relational databases
US11176121B2 (en) * 2019-05-28 2021-11-16 International Business Machines Corporation Global transaction serialization
US11032361B1 (en) * 2020-07-14 2021-06-08 Coupang Corp. Systems and methods of balancing network load for ultra high server availability

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62140159A (ja) * 1985-12-16 1987-06-23 Hitachi Ltd 共用データ管理方法
JPH08202567A (ja) * 1995-01-25 1996-08-09 Hitachi Ltd システム間ロック処理方法
JP2005534081A (ja) * 2001-09-21 2005-11-10 ポリサーブ・インコーポレーテッド 共有ストレージを備えたマルチノード環境のためのシステムおよび方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6516351B2 (en) * 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US7200623B2 (en) * 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US7406473B1 (en) * 2002-01-30 2008-07-29 Red Hat, Inc. Distributed file system using disk servers, lock servers and file servers
US7240058B2 (en) * 2002-03-01 2007-07-03 Sun Microsystems, Inc. Lock mechanism for a distributed data system
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US20050289143A1 (en) * 2004-06-23 2005-12-29 Exanet Ltd. Method for managing lock resources in a distributed storage system
US20060271511A1 (en) * 2005-05-25 2006-11-30 Terracotta, Inc. Database Caching and Invalidation for Stored Procedures
US8103642B2 (en) * 2006-02-03 2012-01-24 Oracle International Corporation Adaptive region locking
US20080243847A1 (en) * 2007-04-02 2008-10-02 Microsoft Corporation Separating central locking services from distributed data fulfillment services in a storage system
JP5213077B2 (ja) 2008-10-06 2013-06-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のアプリケーションサーバにより共有データをアクセスするシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62140159A (ja) * 1985-12-16 1987-06-23 Hitachi Ltd 共用データ管理方法
JPH08202567A (ja) * 1995-01-25 1996-08-09 Hitachi Ltd システム間ロック処理方法
JP2005534081A (ja) * 2001-09-21 2005-11-10 ポリサーブ・インコーポレーテッド 共有ストレージを備えたマルチノード環境のためのシステムおよび方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2352090A4 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013046883A1 (ja) * 2011-09-30 2013-04-04 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクション処理システム、方法及びプログラム
GB2511222A (en) * 2011-09-30 2014-08-27 Ibm Transaction processing system, method and program
US8930323B2 (en) 2011-09-30 2015-01-06 International Business Machines Corporation Transaction processing system, method, and program
JPWO2013046883A1 (ja) * 2011-09-30 2015-03-26 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation トランザクション処理システム、方法及びプログラム

Also Published As

Publication number Publication date
CN102165420B (zh) 2014-07-16
KR20110066940A (ko) 2011-06-17
EP2352090A1 (en) 2011-08-03
JPWO2010041515A1 (ja) 2012-03-08
JP5213077B2 (ja) 2013-06-19
US8589438B2 (en) 2013-11-19
US9031923B2 (en) 2015-05-12
CN102165420A (zh) 2011-08-24
EP2352090A4 (en) 2015-05-06
EP2352090B1 (en) 2019-09-25
US20140082127A1 (en) 2014-03-20
US20100106697A1 (en) 2010-04-29

Similar Documents

Publication Publication Date Title
JP5213077B2 (ja) 複数のアプリケーションサーバにより共有データをアクセスするシステム
US10810182B2 (en) Accessing data entities
US7421562B2 (en) Database system providing methodology for extended memory support
CN1755635B (zh) 事务型存储器访问的混合硬件软件实现
US7831772B2 (en) System and methodology providing multiple heterogeneous buffer caches
US8108587B2 (en) Free-space reduction in cached database pages
JP2505939B2 (ja) デ―タのキャストアウトを制御する方法
US20040143712A1 (en) Task synchronization mechanism and method
US9632944B2 (en) Enhanced transactional cache
JP2003006036A (ja) クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム
WO2016014368A1 (en) High throughput data modifications using blind update operations
US11157466B2 (en) Data templates associated with non-relational database systems
US11880318B2 (en) Local page writes via pre-staging buffers for resilient buffer pool extensions
WO2022095366A1 (zh) 基于Redis的数据读取方法、装置、设备及可读存储介质
CN112540982A (zh) 具有可更新逻辑表指针的虚拟数据库表
US20060224949A1 (en) Exclusion control method and information processing apparatus
JP2009265840A (ja) データベースのキャッシュシステム
CN103353891A (zh) 数据库管理系统及其数据处理方法
CN110019113B (zh) 一种数据库的业务处理方法及数据库服务器
US11940994B2 (en) Mechanisms for maintaining chains without locks
Pollack et al. Indexing Memory-Optimized Tables
WO2023075910A1 (en) Local page writes via pre-staging buffers for resilient buffer pool extensions
JP2002063055A (ja) 書き込み遅延データベース管理方式及びシステム
Fritchey et al. Memory-Optimized OLTP Tables and Procedures
CN116257519A (zh) 一种数据读写的方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980138187.9

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09819051

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010532855

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20117008669

Country of ref document: KR

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2953/CHENP/2011

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2009819051

Country of ref document: EP