US20090112942A1 - System and Method for Decoupling Space Reservation in Transactional Logs - Google Patents
System and Method for Decoupling Space Reservation in Transactional Logs Download PDFInfo
- Publication number
- US20090112942A1 US20090112942A1 US12/347,717 US34771708A US2009112942A1 US 20090112942 A1 US20090112942 A1 US 20090112942A1 US 34771708 A US34771708 A US 34771708A US 2009112942 A1 US2009112942 A1 US 2009112942A1
- Authority
- US
- United States
- Prior art keywords
- reserved space
- amount
- log
- client
- space
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2358—Change logging, detection, and notification
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
Definitions
- a transaction is an action or set of actions that guarantees the ACID (Atomicity, Consistency, Isolation and Durability) properties.
- Transactional logging involves maintaining a persistent transactional log that records a time serial history of transactions in a system.
- a transactional log provides information for restoring a system to a consistent state that existed prior to a system failure.
- a traditional transactional logging system uses a dedicated log to support a single log client.
- the log client communicates with the transactional logging system to ensure that the client's log records are properly written to the dedicated log.
- This type of transactional logging system is typically very robust and achieves a high level of reliability.
- the inventors have determined that the high level of reliability of a single log client using a dedicated logging system may actually result in overall performance degradation for a computing environment where multiple log clients are using multiple dedicated logging systems.
- each dedicated logging system independently incurs input/output (I/O) overhead to write and retrieve information from its respective dedicated log.
- I/O input/output
- This and other I/O overhead results in adverse performance impact, and the impact is cumulative for each of the independent logging systems.
- An improved logging system is desirable that could overcome some of these performance problems.
- the transactional logging system handles log records for multiple clients and comprises distributed components, a core component, and a transactional log.
- the core component allocates a part of the transactional log as common reserved space for use by the clients.
- Each of the distributed components interacts with one of the clients.
- the distributed component maintains accounting information for identifying the client's portion of the common reserved space. The accounting information is communicated to the core component by the distributed component.
- the invention is directed toward a computer-implemented system and method for pre-reserving space in a common transactional log.
- the computer-implemented method includes receiving log records from clients that use the transactional log. The method determines whether a sufficient amount of free space exists in the transactional log to append the log records. If not, the log records are appended to pre-reserved space associated with the client in the transactional log. The method updates an amount of pre-reserved space available to the client.
- the invention is directed toward a method for communicating between a distributed component and a core component in a transactional logging system.
- the distributed component which is associated with a client, issues a first message that contains a requested amount of pre-reserved space in a transactional log.
- the core component receives the first message and determines how much free space in the transactional log to make available to the client as pre-reserved space.
- the core component returns to the distributed component a second message that identifies the actual amount of pre-reserved space.
- the invention is directed toward a computer-readable medium encoded with a transactional log that has at least two data fields.
- the first data field contains log records. Each log record is associated with one of the clients that uses the transactional log.
- the second data field contains accounting information associated with common reserved space shared by the clients.
- the invention is directed toward a computer-readable medium encoded with a data structure that has at least two data fields.
- the first data field identifies an amount of current pre-reserved space and an amount of desired pre-reserved space associated with a distributed component of a transactional logging system.
- the second data field identifies an amount of actual pre-reserved space available to the distributed component.
- FIG. 1 illustrates a graphical overview of a virtual logging system in accordance with the invention.
- FIG. 2 shows an exemplary inter-network virtual logging system that implements this invention.
- FIG. 3 is a graphical illustration of an exemplary transactional log.
- FIG. 4 is a schematic diagram illustrating log space usage in several exemplary cases where log records and log space reservation are buffered.
- FIG. 5 is a graphical representation of exemplary logging communications between a distributed component and a core component of a virtual logging system.
- FIG. 6 is an operational flow diagram generally illustrating an exemplary process for buffering log records and space reservation for a client.
- FIG. 7 is an operational flow diagram generally illustrating an exemplary process for determining an actual amount of pre-reserved space associated with a client.
- the present invention enables a common logging system (a “virtual logging system”) that presents to one or more log clients the appearance that each log client is interacting with a dedicated logging system.
- the virtual logging system is multiplexing virtual log streams, including log records, for each log client into a single transactional log.
- the invention is directed at a system and method for decoupling space reservation between a plurality of distributed components and a core component in the virtual logging system.
- FIG. 1 illustrates a graphical overview of a virtual logging system in accordance with the invention.
- virtual logging system 125 provides transactional logging services to each of multiple clients, such as clients A, B and C.
- Each client is a computer application program that maintains a log through the virtual logging system. Examples of the clients may be a database application, a transactional file system, or the like.
- Virtual logging system 125 provides the illusion to each of clients A, B, and C that a separate, dedicated log is being maintained for each client. In other words, clients A, B, and C send log records to the virtual logging system 125 with the expectation that the log records are stored in dedicated logs.
- the illusory dedicated logs are referred to as “virtual logs,” represented in the figure as virtual logs 120 A-C .
- the virtual logging system 125 multiplexes and appends the log records from each client to a single physical log 130 .
- Physical log 130 is the allocated space in a storage unit to which log records multiplexed by virtual logging system 125 may be appended. To ensure that sufficient space is available in physical log 130 for appending log records, undo records and compensation log records in virtual log 120 A-C , space 135 may be reserved in physical log 130 .
- FIG. 2 shows an exemplary inter-network virtual logging system 100 that implements this invention, according to one embodiment of the invention.
- inter-network virtual logging system 100 may include many more components than those shown.
- inter-network virtual logging system 100 includes distributed components 107 A-C and a core component 109 .
- Distributed components 107 A-C are parts of inter-network virtual logging system 100 that directly communicate with their corresponding log clients A, B, and C. Distributed components 107 A-C may be implemented as objects that can be called by their corresponding clients for logging services. As shown in the figure, log clients A and B execute on computer 101 , and log client C executes on computer 103 . Clients A and B may execute either in the user mode or the kernel mode of computer 101 . In this example, client C is shown as executing in the user mode of computer 103 for illustrative purposes. It is to be appreciated that client C may also be implemented in the kernel mode of computer 103 .
- Distributed components 107 A-C are configured to maintain accounting information regarding reserved space, pre-reserved space, and desired pre-reserved space.
- Reserved space, pre-reserved space, and desired pre-reserved space will be discussed in more detail in FIG. 4 .
- reserved space is the amount of space in the transactional log that is reserved by a distributed component for undo records and compensation log records.
- Pre-reserved space is the amount of space in the transactional log that is pre-reserved by the distributed component to ensure that log records and reservation requests, once received and accepted, will not fail to be appended to the transactional log due to a lack of free space.
- Desired pre-reserved space is the amount of space in the transactional log that the distributed component would like to pre-reserve.
- Core component 109 is the central component of virtual logging system 100 . It writes log records to a transactional log 112 stored in storage unit 111 .
- Core component 109 may be implemented as a part of a computer's kernel. As shown in the figure, core component 109 interacts with distributed components 107 A-C .
- Storage unit 111 may include any storage medium or device, such as a hard disk, a CD-writer, non-volatile RAM, etc.
- Network 105 may be any network capable of connecting computers. Examples of network 105 include a local area network (LAN) and a wide area network (WAN), such as the Internet.
- LAN local area network
- WAN wide area network
- distributed components 107 A-C and core component 109 of virtual logging system 100 work in conjunction to provide logging service to clients A, B, and C.
- Each of the distributed components 107 A-C receives log records from its corresponding client and represents to the client that the log records will be written to a dedicated log (i.e. a virtual log).
- the distributed component buffers the received log records and, at the appropriate time, transmits the log records to core component 109 .
- Distributed components 107 A-C may communicate with core component 109 through any communication mechanisms, such as TCP/IP, datagrams, Wi-Fi, Bluetooth, application-based high speed interconnects, remote procedure calls (RPC), etc.
- Core component 109 receives the log records from distributed components 107 A-C and multiplexes the log records into a transactional log 112 .
- distributed components 107 A-C which directly interact with clients A-C, are decoupled from core component 109 , which handles transactional log 112 .
- This decoupling necessitates communications between the components, which may degrade the performance of virtual logging system 100 .
- communicating between distributed component 107 C and core component 109 involves crossing a user-kernel boundary; communicating between distributed component 107 A-B and core component 109 involves crossing the machine boundary. Communications that cross these boundaries incur significant system overhead.
- the present invention reduces system overhead by avoiding constant communication between distributed component 107 A-C and core component 109 .
- distributed components 107 A-C may buffer the log records and the space reservation.
- virtual logging system 100 defers communications between the distributed components and the core component. Deferring and batching communication to the right moment reduces frequency of context switching and the communication latency overhead, resulting in significant improvement in the overall system performance.
- distributed components 107 A-C may not be able to readily ascertain whether the amount of space remaining in transactional log 112 is sufficient for appending their log records.
- distributed components 107 A may be buffering log records of its corresponding client, believing that space is available on transactional log 112 for appending the buffered log records.
- distributed components 107 B and 107 C may be sending log records to the core component 119 , using up free space in transaction log 112 .
- transaction log 112 may not contain sufficient amount of free space for appending the log records, undo records, or compensation log records.
- common reserved space is a portion of transactional log 112 that is reserved for clients serviced by the virtual logging system 100 .
- the common reserved space is used to accommodate undo records and compensation log records for rolling back transactions, and log records of a client that have already been buffered by the client's corresponding distributed component.
- Common reserved space is maintained by core component 109 .
- core component 109 is configured to allocate a part of the common reserved space in the transactional log for all of its clients.
- Each of the distributed components 107 A-C maintains accounting information that identifies its portion of the common reserved space for use as reserved space and pre-reserved space.
- the distributed components 107 A-C may communicate the accounting information to the core component so that the core component may use the portion of common reserved space for meeting the distributed components' requests, if necessary.
- the utilization of common reserved space will be discussed in more detail in conjunction with FIGS. 3 and 4 .
- FIG. 3 is a graphical illustration of an exemplary transactional log 300 including reserved space.
- Transactional log 300 may contain space allocated by a file system. As discussed above, log records from multiple clients may be stored in the transactional log 300 . In this example, transactional log 300 contains log records from clients A, B, and C.
- Active log space 310 is a portion of transactional log 300 where actual log records are stored. Log records from clients A, B, and C are multiplexed by a virtual logging system and written in transactional log 300 . Free space 330 is the remaining portion of transactional log 300 that does not contain actual log records and is not reserved for clients.
- Common reserved space 320 is a portion of transactional log 300 that is reserved for clients A-C.
- Core component of a virtual logging system keeps track of the common reserved space 320 .
- Each distributed component of the virtual logging system maintains accounting information that identifies its portion of common reserved space 320 .
- the accounting information also specifies the reserved space amount and the pre-reserved space amount within the client's portion of common reserved space 320 .
- each distributed component may use its portion of the common reserved space 320 that it accounts for as reserved space to append undo records and compensation log records for rolling back transactions.
- the distributed component may also use the portion of common reserved space that it accounts for as pre-reserved space to guarantee buffered append and reserve.
- the pre-reserved space ensures that sufficient space will be available for the log records in the transactional log. Though the use of pre-reserved space, this assurance is attained without constant communication between the distributed component and the core component.
- each of clients A, B, and C has a portion of common reserved space 320 associated with the client in transactional log 300 .
- the distributed components account for their own portions of the common reserved space 320 and the core component does not need to maintain this accounting information.
- the portion of common reserved space that belongs to one distributed component cannot be shared or used by another distributed component.
- the distributed components may relinquish any amount of its portion of the common reserved space 320 .
- the amount of the client's common reserved space that it accounts for as pre-reserved space may be related to the size of the buffer used by the client's corresponding distributed component. In one example, one distributed component may request pre-reserved space equal in amount to the size of its associated buffer.
- a distributed component may request pre-reserved space that results in the growth of its buffer space.
- the buffer space may grow linearly or exponentially with each reservation fault.
- log records 340 of client A are to be appended to transactional log 300 . It is to be understood that log records from different clients may be appended to transactional log 300 concurrently in a single batch. As indicated in the figure, there is not sufficient free space 330 to append log records 340 . In this case, reserved space 320 is used for appending log records. Several other situations for appending log records and reserving log space are possible and will be discussed in conjunction with FIG. 4 .
- FIG. 4 is a schematic diagram illustrating log space usage in several exemplary cases where log records and log space reservation are buffered.
- the diagram illustrates how log space is used by a distributed component in seven specific cases.
- the amount of log space used by the distributed component is represented by three bars.
- the first bar represents the amount of space that is used for buffered log records.
- the second bar represents the amount of space that is reserved for undo records and compensation log records.
- the third bar represents the amount of pre-reserved space allocated to the client that is served by the distributed component.
- the distributed component has received log records and log space reservation from its client that require certain amount of log space.
- the distributed component has also been allocated by a core component a portion of the transactional log as pre-reserved space. As shown in the figure, the amount of pre-reserved space is less than the sum of the amount of log space and reserved space so that the entire buffer of the distributed component may be appended to the transactional log at any time, using pre-reserved space if necessary.
- the seven exemplary cases shown in the figure will be compared to the Baseline case.
- Case 1 the distributed component has received additional log records from its client. As a result, the amount of log space increases relative to the baseline amount.
- Case 2 the distributed component has received additional space reservation from the client. The reserved space is increased relative to the baseline amount.
- Case 3 is a combination of Cases 1 and 2 , where the distributed component has received additional log records as well as additional space reservation from the client. In Cases 1 , 2 and 3 , despite the increases in space usage, the total amount of log space and reserved space is still less than the amount of pre-reserved space. Thus, the distributed component may honor the client's append and reserve requests without communicating and interacting with the core component.
- the distributed component has received log records from the client with instructions to append the log records using the client's reserved space. This case may occur if the log records are undo records or compensation log records. As shown in the figure, the amount of log space is increased due to the new log records while the amount of reserved space is decreased by a corresponding amount.
- the distributed component has received log records and reservation requests in an amount that will cause the total amount of space usage to exceed the amount of the client's pre-reserved space.
- the distributed component must increase the amount of pre-reserved space by requesting from the core component an increase of its portion of the common reserved space in the transactional log.
- the distributed component may obtain an increase in pre-reserved space in an amount greater than necessary for the immediate append and reserve request.
- Case 6 occurs when the log records buffered in the distributed component are sent to the core component for appending to the transactional log.
- the amount of log space is reduced to zero while the amount of reserved space remains the same as those of the previous level.
- the amount of pre-reserved space is set back to the original amount even if the pre-reserved space reservation is increased for appending additional log records and space reservation, as in Case 5 .
- Case 7 is similar to case 6 , except that the core component has allocated more reserved space in the transaction log to the client to accommodate the corresponding distributed component's desired pre-reserved space. Desired pre-reserved space will be discussed in more detail in conjunction with FIG. 5 .
- FIG. 5 is a graphical representation of exemplary logging communications between a distributed component 510 and a core component 520 of a virtual logging system.
- Logging communications between distributed component 510 and core component 520 occurs when the distributed component 510 and the core component 520 exchange logging messages, such as logging instructions 530 or response 540 .
- Logging instructions may include log records and other information related to logging.
- piggyback data 550 A-B may be sent.
- Piggyback data 550 A-B are a small amount of accounting data sent along with logging communications.
- communication may be sent between distributed component 510 and core component 520 without incurring the extra I/O overhead associated with crossing either the machine/machine boundary or the user/kernel boundary.
- distributed component 510 on communications with logging instructions, distributed component 510 also sends piggyback data 550 A that contain accounting data regarding an amount of current pre-reserved space and an amount of desired pre-reserved space.
- the amount of current pre-reserved space is the amount of pre-reserved space that is currently allocated to the distributed component 510 by the core component 520 .
- the amount of desired pre-reserved space is an amount of space in the transactional log that the distributed component 510 (and its corresponding client) would like to have pre-reserved.
- the amount of desired pre-reserved space ensures that there is sufficient space in a transactional log to store as much of the client's log records as distributed component 510 is capable of buffering.
- core component 520 When core component 520 received piggyback data 550 A from distributed component 510 , it ascertains the amount of free space in the transactional log and determines the actual amount of pre-reserved space using a process described in FIG. 7 . Briefly stated, core component 520 determines the actual amount of pre-reserved space by considering the amount of free space remaining in the transactional log, the client's desired amount of pre-reserved space, and other factors.
- Core component 520 sends piggyback data 550 B on response and acknowledgement communication sent to distributed component 510 in response to logging instructions.
- the piggyback data 550 B may contain accounting data regarding the actual amount of pre-reserved space available to the client.
- distributed component 510 When distributed component 510 receives piggyback data 550 B , it takes the updated accounting data (the actual amount of pre-reserved space) in the piggyback data 550 B into account in determining how many log records the distributed component can buffer.
- the updating of accounting data using piggyback data 550 A-B forms a feedback loop that allows distributed component 510 to maintain updated accounting information without incurring an excessive amount of communication overhead between distributed component 510 and core component 520 .
- FIG. 6 is an operational flow diagram generally illustrating an exemplary process 600 that may be used by a distributed component for buffering log records and space reservation for a client.
- Process 600 moves from a start block to 610 where a request is received from the client to append log records, space reservation, or both.
- process 600 moves to decision block 630 where a determination is made whether the append and reserve request requires an amount of space greater than the amount of available pre-reserved space. If not, the process goes to block 655 where the append and reserve request is performed and the process ends.
- a request to the core component is made to obtain additional pre-reserved space.
- an error is returned to the client and the process ends.
- FIG. 7 is an operational flow diagram generally illustrating an exemplary process 700 that may be used by a core component for determining an actual amount of pre-reserved space associated with a client.
- Process 700 enters at a start block.
- logging instructions with piggyback data are received.
- the piggyback data includes accounting information identifying the amount of current pre-reserved space and an amount of desired pre-reserved space associated with the client.
- Logging actions are performed in accordance with the logging instructions.
- Logging actions may include multiplexing the client's log records contained in the logging instructions, appending the multiplexed log records to a transactional log, or the like.
- Process 700 then moves to decision block 730 .
- the use of pre-reserved space is necessary if sufficient free space is not available in the transactional log for appending the client's log records.
- process 700 continues at decision block 750 . However, if the logging actions were performed using the client's pre-reserved space, at block 740 , the amount of pre-reserved space available to the client is reduced by the amount that was used by the logging actions, and the process 700 moves to decision block 750 .
- process 700 moves to block 770 where the amount of pre-reserved space associated with the client is increased to meet as much as possible the client's desired amount of pre-reserved space.
- the pre-reserved space allocation is increased using free space in the transactional log, which may become available if another client's active log space and pre-reservation space are no longer needed.
- Process 700 then moves to block 790 .
- piggyback data with accounting information regarding the actual amount of pre-reserved space available to the client is returned, along with a response and acknowledgment communication to the distributed component.
- the actual amount of pre-reserved space allocation is calculated by taking into account any reduction and increase in pre-reserved space associated with the client. Then, process 700 ends.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
A common logging system (a “virtual logging system”) that presents to one or more log clients the appearance that each log client is interacting with a dedicated logging system. In reality, the virtual logging system is multiplexing virtual log streams, including log records, for each log client into a single transactional log. In particular, the invention is directed at a system and method for decoupling space reservation between a plurality of distributed components and a core component in the virtual logging system.
Description
- The notion of a transaction is an important concept for transactional systems, such as database management systems, recoverable file systems and transaction-based operating systems. Briefly stated, a transaction is an action or set of actions that guarantees the ACID (Atomicity, Consistency, Isolation and Durability) properties. Transactional logging involves maintaining a persistent transactional log that records a time serial history of transactions in a system. A transactional log provides information for restoring a system to a consistent state that existed prior to a system failure.
- A traditional transactional logging system uses a dedicated log to support a single log client. The log client communicates with the transactional logging system to ensure that the client's log records are properly written to the dedicated log. This type of transactional logging system is typically very robust and achieves a high level of reliability. However, the inventors have determined that the high level of reliability of a single log client using a dedicated logging system may actually result in overall performance degradation for a computing environment where multiple log clients are using multiple dedicated logging systems.
- One of the reasons for the performance degradation is that each dedicated logging system independently incurs input/output (I/O) overhead to write and retrieve information from its respective dedicated log. This and other I/O overhead results in adverse performance impact, and the impact is cumulative for each of the independent logging systems. An improved logging system is desirable that could overcome some of these performance problems.
- However, the development of an improvement to the existing scheme of transactional logging has met several hurdles. The inventors have determined that one hurdle to an improved transactional logging system is the need to assure that a client's log records are reliably written to a transactional log by guaranteeing the availability of space in the log. A solution that offers this guarantee without incurring undue context switching and I/O overhead continues to elude those skilled in the art.
- Briefly stated, this invention is directed toward a computer-implemented system and method for decoupling space reservation in a transactional logging system. The transactional logging system handles log records for multiple clients and comprises distributed components, a core component, and a transactional log. The core component allocates a part of the transactional log as common reserved space for use by the clients. Each of the distributed components interacts with one of the clients. The distributed component maintains accounting information for identifying the client's portion of the common reserved space. The accounting information is communicated to the core component by the distributed component.
- In one aspect, the invention is directed toward a computer-implemented system and method for pre-reserving space in a common transactional log. The computer-implemented method includes receiving log records from clients that use the transactional log. The method determines whether a sufficient amount of free space exists in the transactional log to append the log records. If not, the log records are appended to pre-reserved space associated with the client in the transactional log. The method updates an amount of pre-reserved space available to the client.
- In another aspect, the invention is directed toward a method for communicating between a distributed component and a core component in a transactional logging system. The distributed component, which is associated with a client, issues a first message that contains a requested amount of pre-reserved space in a transactional log. The core component receives the first message and determines how much free space in the transactional log to make available to the client as pre-reserved space. The core component returns to the distributed component a second message that identifies the actual amount of pre-reserved space.
- In still another aspect, the invention is directed toward a computer-readable medium encoded with a transactional log that has at least two data fields. The first data field contains log records. Each log record is associated with one of the clients that uses the transactional log. The second data field contains accounting information associated with common reserved space shared by the clients.
- In yet a further aspect, the invention is directed toward a computer-readable medium encoded with a data structure that has at least two data fields. The first data field identifies an amount of current pre-reserved space and an amount of desired pre-reserved space associated with a distributed component of a transactional logging system. The second data field identifies an amount of actual pre-reserved space available to the distributed component.
-
FIG. 1 illustrates a graphical overview of a virtual logging system in accordance with the invention. -
FIG. 2 shows an exemplary inter-network virtual logging system that implements this invention. -
FIG. 3 is a graphical illustration of an exemplary transactional log. -
FIG. 4 is a schematic diagram illustrating log space usage in several exemplary cases where log records and log space reservation are buffered. -
FIG. 5 is a graphical representation of exemplary logging communications between a distributed component and a core component of a virtual logging system. -
FIG. 6 is an operational flow diagram generally illustrating an exemplary process for buffering log records and space reservation for a client. -
FIG. 7 is an operational flow diagram generally illustrating an exemplary process for determining an actual amount of pre-reserved space associated with a client. - Briefly stated, the present invention enables a common logging system (a “virtual logging system”) that presents to one or more log clients the appearance that each log client is interacting with a dedicated logging system. In reality, the virtual logging system is multiplexing virtual log streams, including log records, for each log client into a single transactional log. In particular, the invention is directed at a system and method for decoupling space reservation between a plurality of distributed components and a core component in the virtual logging system.
-
FIG. 1 illustrates a graphical overview of a virtual logging system in accordance with the invention. As shown in the figure,virtual logging system 125 provides transactional logging services to each of multiple clients, such as clients A, B and C. Each client is a computer application program that maintains a log through the virtual logging system. Examples of the clients may be a database application, a transactional file system, or the like.Virtual logging system 125 provides the illusion to each of clients A, B, and C that a separate, dedicated log is being maintained for each client. In other words, clients A, B, and C send log records to thevirtual logging system 125 with the expectation that the log records are stored in dedicated logs. For the purpose of this discussion, the illusory dedicated logs are referred to as “virtual logs,” represented in the figure asvirtual logs 120 A-C. In actuality, thevirtual logging system 125 multiplexes and appends the log records from each client to a singlephysical log 130. -
Physical log 130 is the allocated space in a storage unit to which log records multiplexed byvirtual logging system 125 may be appended. To ensure that sufficient space is available inphysical log 130 for appending log records, undo records and compensation log records invirtual log 120 A-C,space 135 may be reserved inphysical log 130. -
FIG. 2 shows an exemplary inter-networkvirtual logging system 100 that implements this invention, according to one embodiment of the invention. In other configurations, inter-networkvirtual logging system 100 may include many more components than those shown. As shown in the figure, inter-networkvirtual logging system 100 includesdistributed components 107 A-C and acore component 109. - Distributed
components 107 A-C are parts of inter-networkvirtual logging system 100 that directly communicate with their corresponding log clients A, B, and C. Distributedcomponents 107 A-C may be implemented as objects that can be called by their corresponding clients for logging services. As shown in the figure, log clients A and B execute oncomputer 101, and log client C executes oncomputer 103. Clients A and B may execute either in the user mode or the kernel mode ofcomputer 101. In this example, client C is shown as executing in the user mode ofcomputer 103 for illustrative purposes. It is to be appreciated that client C may also be implemented in the kernel mode ofcomputer 103. - Distributed
components 107 A-C are configured to maintain accounting information regarding reserved space, pre-reserved space, and desired pre-reserved space. Reserved space, pre-reserved space, and desired pre-reserved space will be discussed in more detail inFIG. 4 . Briefly stated, reserved space is the amount of space in the transactional log that is reserved by a distributed component for undo records and compensation log records. Pre-reserved space is the amount of space in the transactional log that is pre-reserved by the distributed component to ensure that log records and reservation requests, once received and accepted, will not fail to be appended to the transactional log due to a lack of free space. Desired pre-reserved space is the amount of space in the transactional log that the distributed component would like to pre-reserve. -
Core component 109 is the central component ofvirtual logging system 100. It writes log records to atransactional log 112 stored instorage unit 111.Core component 109 may be implemented as a part of a computer's kernel. As shown in the figure,core component 109 interacts with distributedcomponents 107 A-C. -
Storage unit 111 may include any storage medium or device, such as a hard disk, a CD-writer, non-volatile RAM, etc.Network 105 may be any network capable of connecting computers. Examples ofnetwork 105 include a local area network (LAN) and a wide area network (WAN), such as the Internet. - In operation, distributed
components 107 A-C andcore component 109 ofvirtual logging system 100 work in conjunction to provide logging service to clients A, B, and C. Each of the distributedcomponents 107 A-C receives log records from its corresponding client and represents to the client that the log records will be written to a dedicated log (i.e. a virtual log). Actually, the distributed component buffers the received log records and, at the appropriate time, transmits the log records tocore component 109. Distributedcomponents 107 A-C may communicate withcore component 109 through any communication mechanisms, such as TCP/IP, datagrams, Wi-Fi, Bluetooth, application-based high speed interconnects, remote procedure calls (RPC), etc.Core component 109 receives the log records from distributedcomponents 107 A-C and multiplexes the log records into atransactional log 112. - As shown in the figure, distributed
components 107 A-C, which directly interact with clients A-C, are decoupled fromcore component 109, which handlestransactional log 112. This decoupling necessitates communications between the components, which may degrade the performance ofvirtual logging system 100. In particular, communicating between distributedcomponent 107 C andcore component 109 involves crossing a user-kernel boundary; communicating between distributedcomponent 107 A-B andcore component 109 involves crossing the machine boundary. Communications that cross these boundaries incur significant system overhead. - The present invention reduces system overhead by avoiding constant communication between distributed
component 107 A-C andcore component 109. Particularly, rather than immediately sending log records and space reservation tocore component 109 when they are received from the clients, distributedcomponents 107 A-C may buffer the log records and the space reservation. By buffering in distributedcomponents 107 A-C,virtual logging system 100 defers communications between the distributed components and the core component. Deferring and batching communication to the right moment reduces frequency of context switching and the communication latency overhead, resulting in significant improvement in the overall system performance. - However, because of the decoupling of distributed
components 107 A-C andcore component 109 as well as the reduction in communication between the components, distributedcomponents 107 A-C may not be able to readily ascertain whether the amount of space remaining intransactional log 112 is sufficient for appending their log records. For example, distributedcomponents 107 A may be buffering log records of its corresponding client, believing that space is available ontransactional log 112 for appending the buffered log records. During this time, distributedcomponents transaction log 112. When distributedcomponent 107 A sends its buffered log records tocore component 109 some time later, transaction log 112 may not contain sufficient amount of free space for appending the log records, undo records, or compensation log records. - To ensure that there is sufficient space, common reserved space may be maintained in
transactional log 112. Briefly stated, common reserved space is a portion oftransactional log 112 that is reserved for clients serviced by thevirtual logging system 100. In particular, the common reserved space is used to accommodate undo records and compensation log records for rolling back transactions, and log records of a client that have already been buffered by the client's corresponding distributed component. - Common reserved space is maintained by
core component 109. In one embodiment of the invention,core component 109 is configured to allocate a part of the common reserved space in the transactional log for all of its clients. Each of the distributedcomponents 107 A-C maintains accounting information that identifies its portion of the common reserved space for use as reserved space and pre-reserved space. The distributedcomponents 107 A-C may communicate the accounting information to the core component so that the core component may use the portion of common reserved space for meeting the distributed components' requests, if necessary. The utilization of common reserved space will be discussed in more detail in conjunction withFIGS. 3 and 4 . -
FIG. 3 is a graphical illustration of an exemplarytransactional log 300 including reserved space.Transactional log 300 may contain space allocated by a file system. As discussed above, log records from multiple clients may be stored in thetransactional log 300. In this example,transactional log 300 contains log records from clients A, B, and C. -
Active log space 310 is a portion oftransactional log 300 where actual log records are stored. Log records from clients A, B, and C are multiplexed by a virtual logging system and written intransactional log 300.Free space 330 is the remaining portion oftransactional log 300 that does not contain actual log records and is not reserved for clients. - Common reserved
space 320 is a portion oftransactional log 300 that is reserved for clients A-C. Core component of a virtual logging system keeps track of the common reservedspace 320. Each distributed component of the virtual logging system maintains accounting information that identifies its portion of common reservedspace 320. In addition, the accounting information also specifies the reserved space amount and the pre-reserved space amount within the client's portion of common reservedspace 320. - In practice, each distributed component may use its portion of the common reserved
space 320 that it accounts for as reserved space to append undo records and compensation log records for rolling back transactions. The distributed component may also use the portion of common reserved space that it accounts for as pre-reserved space to guarantee buffered append and reserve. In other words, once a client has received a representation from its corresponding distributed component that the client's log records and space reservation have been appended to the client's dedicated log (virtual log), the pre-reserved space ensures that sufficient space will be available for the log records in the transactional log. Though the use of pre-reserved space, this assurance is attained without constant communication between the distributed component and the core component. - As shown in the figure, each of clients A, B, and C has a portion of common reserved
space 320 associated with the client intransactional log 300. It is to be appreciated that the distributed components account for their own portions of the common reservedspace 320 and the core component does not need to maintain this accounting information. Also, the portion of common reserved space that belongs to one distributed component cannot be shared or used by another distributed component. However, the distributed components may relinquish any amount of its portion of the common reservedspace 320. The amount of the client's common reserved space that it accounts for as pre-reserved space may be related to the size of the buffer used by the client's corresponding distributed component. In one example, one distributed component may request pre-reserved space equal in amount to the size of its associated buffer. In this way, it will be possible to append at least one full buffer of data to the log. According to one embodiment of the invention, a distributed component may request pre-reserved space that results in the growth of its buffer space. The buffer space may grow linearly or exponentially with each reservation fault. - For illustrative purposes, log
records 340 of client A are to be appended totransactional log 300. It is to be understood that log records from different clients may be appended totransactional log 300 concurrently in a single batch. As indicated in the figure, there is not sufficientfree space 330 to appendlog records 340. In this case, reservedspace 320 is used for appending log records. Several other situations for appending log records and reserving log space are possible and will be discussed in conjunction withFIG. 4 . -
FIG. 4 is a schematic diagram illustrating log space usage in several exemplary cases where log records and log space reservation are buffered. In particular, the diagram illustrates how log space is used by a distributed component in seven specific cases. In each illustrated case, the amount of log space used by the distributed component is represented by three bars. The first bar represents the amount of space that is used for buffered log records. The second bar represents the amount of space that is reserved for undo records and compensation log records. The third bar represents the amount of pre-reserved space allocated to the client that is served by the distributed component. - In the Baseline case, the distributed component has received log records and log space reservation from its client that require certain amount of log space. The distributed component has also been allocated by a core component a portion of the transactional log as pre-reserved space. As shown in the figure, the amount of pre-reserved space is less than the sum of the amount of log space and reserved space so that the entire buffer of the distributed component may be appended to the transactional log at any time, using pre-reserved space if necessary. The seven exemplary cases shown in the figure will be compared to the Baseline case.
- In
Case 1, the distributed component has received additional log records from its client. As a result, the amount of log space increases relative to the baseline amount. InCase 2, the distributed component has received additional space reservation from the client. The reserved space is increased relative to the baseline amount.Case 3 is a combination ofCases Cases - For
Case 4, the distributed component has received log records from the client with instructions to append the log records using the client's reserved space. This case may occur if the log records are undo records or compensation log records. As shown in the figure, the amount of log space is increased due to the new log records while the amount of reserved space is decreased by a corresponding amount. - In
Case 5, the distributed component has received log records and reservation requests in an amount that will cause the total amount of space usage to exceed the amount of the client's pre-reserved space. In this case, the distributed component must increase the amount of pre-reserved space by requesting from the core component an increase of its portion of the common reserved space in the transactional log. As shown in the figure, the distributed component may obtain an increase in pre-reserved space in an amount greater than necessary for the immediate append and reserve request. -
Case 6 occurs when the log records buffered in the distributed component are sent to the core component for appending to the transactional log. In this case, the amount of log space is reduced to zero while the amount of reserved space remains the same as those of the previous level. The amount of pre-reserved space is set back to the original amount even if the pre-reserved space reservation is increased for appending additional log records and space reservation, as inCase 5.Case 7 is similar tocase 6, except that the core component has allocated more reserved space in the transaction log to the client to accommodate the corresponding distributed component's desired pre-reserved space. Desired pre-reserved space will be discussed in more detail in conjunction withFIG. 5 . -
FIG. 5 is a graphical representation of exemplary logging communications between a distributedcomponent 510 and acore component 520 of a virtual logging system. Logging communications between distributedcomponent 510 andcore component 520 occurs when the distributedcomponent 510 and thecore component 520 exchange logging messages, such as logginginstructions 530 orresponse 540. Logging instructions may include log records and other information related to logging. - Whenever logging communications occur between distributed
component 510 andcore component 520,piggyback data 550 A-B may be sent.Piggyback data 550 A-B are a small amount of accounting data sent along with logging communications. By includingpiggyback data 550 A-B on existing log messages, communication may be sent between distributedcomponent 510 andcore component 520 without incurring the extra I/O overhead associated with crossing either the machine/machine boundary or the user/kernel boundary. - As shown in the figure, on communications with logging instructions, distributed
component 510 also sendspiggyback data 550 A that contain accounting data regarding an amount of current pre-reserved space and an amount of desired pre-reserved space. The amount of current pre-reserved space is the amount of pre-reserved space that is currently allocated to the distributedcomponent 510 by thecore component 520. The amount of desired pre-reserved space is an amount of space in the transactional log that the distributed component 510 (and its corresponding client) would like to have pre-reserved. The amount of desired pre-reserved space ensures that there is sufficient space in a transactional log to store as much of the client's log records as distributedcomponent 510 is capable of buffering. - When
core component 520 receivedpiggyback data 550 A from distributedcomponent 510, it ascertains the amount of free space in the transactional log and determines the actual amount of pre-reserved space using a process described inFIG. 7 . Briefly stated,core component 520 determines the actual amount of pre-reserved space by considering the amount of free space remaining in the transactional log, the client's desired amount of pre-reserved space, and other factors. -
Core component 520 sendspiggyback data 550 B on response and acknowledgement communication sent to distributedcomponent 510 in response to logging instructions. Thepiggyback data 550 B may contain accounting data regarding the actual amount of pre-reserved space available to the client. - When distributed
component 510 receivespiggyback data 550 B, it takes the updated accounting data (the actual amount of pre-reserved space) in thepiggyback data 550 B into account in determining how many log records the distributed component can buffer. The updating of accounting data usingpiggyback data 550 A-B forms a feedback loop that allows distributedcomponent 510 to maintain updated accounting information without incurring an excessive amount of communication overhead between distributedcomponent 510 andcore component 520. -
FIG. 6 is an operational flow diagram generally illustrating anexemplary process 600 that may be used by a distributed component for buffering log records and space reservation for a client.Process 600 moves from a start block to 610 where a request is received from the client to append log records, space reservation, or both. - At
decision block 620, a determination is made whether the distributed component is instructed to perform the append and reserve request using the client's reserved space. If so,process 600 continues atblock 625 where the log records are appended using the client's reserved space. Then, the process moves to block 627 where the accounting information of the distributed component is updated by decreasing the amount of reserved space used for performing the append and reserve request. - Returning to decision block 620, if the distributed component is not instructed to perform the append and reserve request using reserved space,
process 600 moves to decision block 630 where a determination is made whether the append and reserve request requires an amount of space greater than the amount of available pre-reserved space. If not, the process goes to block 655 where the append and reserve request is performed and the process ends. - Otherwise, the amount of pre-reserved space is not enough for the append and reserved request and
process 600 continues atblock 640. Atblock 640, a request to the core component is made to obtain additional pre-reserved space. At decision, block 650, a determination is made whether the request for additional pre-reserved space is granted by the core component. If so, the append and reserved request is performed atblock 655 and the process ends. Otherwise, the append and reserve request cannot be performed due to insufficient pre-reserved space. Atblock 660, an error is returned to the client and the process ends. -
FIG. 7 is an operational flow diagram generally illustrating anexemplary process 700 that may be used by a core component for determining an actual amount of pre-reserved space associated with a client.Process 700 enters at a start block. Atblock 710, logging instructions with piggyback data are received. The piggyback data includes accounting information identifying the amount of current pre-reserved space and an amount of desired pre-reserved space associated with the client. - Moving to block 720, logging actions are performed in accordance with the logging instructions. Logging actions may include multiplexing the client's log records contained in the logging instructions, appending the multiplexed log records to a transactional log, or the like.
Process 700 then moves todecision block 730. - At
decision block 730, a determination is made whether the logging actions were performed using pre-reserved space available to the client. The use of pre-reserved space is necessary if sufficient free space is not available in the transactional log for appending the client's log records. - If the logging actions were not performed using the client's pre-reserved space,
process 700 continues atdecision block 750. However, if the logging actions were performed using the client's pre-reserved space, atblock 740, the amount of pre-reserved space available to the client is reduced by the amount that was used by the logging actions, and theprocess 700 moves todecision block 750. - At
decision block 750, a determination is made whether the amount of desired pre-reserved space (as identified in the piggyback data) is available to the client. If so, the amount of the client's pre-reserved space may not be increased any further andprocess 700 goes to block 790. If the desired amount of pre-reserved space is not available to the client,process 700 moves to decision block 760 where a determination is made whether sufficient free space remains in the transactional log to allocate more pre-reserved space to the client. If not, the client pre-reserved space cannot be increased andprocess 700 goes to 790. - If there is sufficient free space in the transactional log,
process 700 moves to block 770 where the amount of pre-reserved space associated with the client is increased to meet as much as possible the client's desired amount of pre-reserved space. The pre-reserved space allocation is increased using free space in the transactional log, which may become available if another client's active log space and pre-reservation space are no longer needed.Process 700 then moves to block 790. - At
block 790, piggyback data with accounting information regarding the actual amount of pre-reserved space available to the client is returned, along with a response and acknowledgment communication to the distributed component. The actual amount of pre-reserved space allocation is calculated by taking into account any reduction and increase in pre-reserved space associated with the client. Then,process 700 ends. - The above specification, examples and data provide a complete description of the invention. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended.
Claims (21)
1-27. (canceled)
28. A computer-implemented method comprising:
providing a function to be called by a client, the function configured to both reserve space and store records to a transactional log;
receiving a communication to the function, the communication including a reference to log records to be stored in the transactional log;
determining whether a sufficient amount of free space exists in the transactional log to append the log records; and
in response to determining there is a sufficient amount of free space, appending the log records to the transactional log, wherein the client has a portion of common reserved space within the transactional log;
in response to determining there is not sufficient amount of free space, appending the log records to pre-reserved space associated with the client and updating an amount of pre-reserved space available to the client.
29. The computer-implemented method of claim 28 , wherein updating the amount of pre-reserved space available to the client further comprises reducing the amount of pre-reserved space available to the client by an amount used for appending the log records.
30. The computer-implemented method of claim 29 , further comprising communicating the reduced amount of the pre-reserved space to the client.
31. The computer-implemented method of claim 28 , further comprising:
receiving a request by the client to increase the amount of pre-reserved space available to the client;
determining whether to increase the amount of pre-reserved space to the client based at least in part on an amount of free space in the transactional log; and
in response to determining the amount of pre-reserved space is to be increased, increasing the amount of pre-reserved space available to the client.
32. The computer-implemented method of claim 31 , further comprising communicating the increased amount of pre-reserved space to the client.
33. The computer-implemented method of claim 31 , wherein the request further comprises an indication of a desired amount of pre-reserved space available to the client.
34. The computer-implemented method of claim 31 , wherein the increased amount of pre-reserved space is less than the desired amount of pre-reserved space.
35. The computer-implemented method of claim 31 , wherein the increased amount of pre-reserved space is more than the desired amount of pre-reserved space.
36. A computer-implemented method for communicating between a first component and a second component in a transactional logging system, the first component being associated with a client, the method comprising:
issuing to the second component from the first component, a first message containing an amount of current pre-reserved space and an amount of desired pre-reserved space in a transactional log;
receiving, by the second component, the first message and determining an amount of actual pre-reserved space available to the client in the transactional log; and
issuing, by the second component, a second message identifying the amount of actual pre-reserved space.
37. The method of claim 36 , wherein the first message is sent along with another message sent from the first component to the second component.
38. The method of claim 37 , wherein the first message is a piggyback message on the other message.
39. The method of claim 36 , wherein the second message is sent in conjunction with another message sent from the second component to the first component.
40. The method of claim 39 , wherein the second message is a piggyback message on the other message.
41. The method of claim 36 , wherein the first component and the second component are implemented on different computers.
42. The method of claim 41 , wherein the first message and the second message are issued over a network.
43. A computer-implemented method for logging data, the method comprising:
storing data in a plurality of fields, the fields including:
a first data field comprising log records;
a second data field comprising common reserved space, wherein the common reserved space is shared by a plurality of clients;
a third data field comprising pre-reserved space.
44. The computer-readable medium of claim 43 , wherein the pre-reserved space is associated with at least one of the clients.
45. The computer-readable medium of claim 43 , further comprising:
generating an electronic logging message, the electronic message including a first reference to data to be logged and a second reference to a desired amount of pre-reserved space.
46. The computer-readable medium of claim 45 , further comprising:
generating an electronic acknowledgement message in response to the electronic logging message, the electronic acknowledgement message including an indication of whether the desired amount of pre-reserved space is allocated.
47. The computer-readable medium of claim 46 , wherein the electronic acknowledgement message further includes an indication of accounting information related to pre-reserved space and common reserved space.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/347,717 US20090112942A1 (en) | 2002-06-18 | 2008-12-31 | System and Method for Decoupling Space Reservation in Transactional Logs |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/175,439 US7484216B2 (en) | 2002-06-18 | 2002-06-18 | System and method for decoupling space reservation in transactional logging systems |
US12/347,717 US20090112942A1 (en) | 2002-06-18 | 2008-12-31 | System and Method for Decoupling Space Reservation in Transactional Logs |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/175,439 Continuation US7484216B2 (en) | 2002-06-18 | 2002-06-18 | System and method for decoupling space reservation in transactional logging systems |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090112942A1 true US20090112942A1 (en) | 2009-04-30 |
Family
ID=29733867
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/175,439 Expired - Fee Related US7484216B2 (en) | 2002-06-18 | 2002-06-18 | System and method for decoupling space reservation in transactional logging systems |
US12/347,717 Abandoned US20090112942A1 (en) | 2002-06-18 | 2008-12-31 | System and Method for Decoupling Space Reservation in Transactional Logs |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/175,439 Expired - Fee Related US7484216B2 (en) | 2002-06-18 | 2002-06-18 | System and method for decoupling space reservation in transactional logging systems |
Country Status (1)
Country | Link |
---|---|
US (2) | US7484216B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007197B2 (en) * | 2002-05-31 | 2006-02-28 | Microsoft Corporation | Virtual logging system and method |
US7003532B2 (en) | 2002-11-27 | 2006-02-21 | Microsoft Corporation | System and method for scaleable multiplexed transactional log recovery |
US8126943B2 (en) * | 2004-08-09 | 2012-02-28 | International Business Machines Corporation | Autonomic virtual log configuration |
US8074027B2 (en) * | 2006-12-04 | 2011-12-06 | Microsoft Corporation | Multi-level read caching for multiplexed transactional logging |
US8468528B2 (en) * | 2008-06-02 | 2013-06-18 | Microsoft Corporation | Method for selective flushing logs within multiple queues concurrently |
Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5210872A (en) * | 1991-06-28 | 1993-05-11 | Texas Instruments Inc. | Critical task scheduling for real-time systems |
US5303369A (en) * | 1990-08-31 | 1994-04-12 | Texas Instruments Incorporated | Scheduling system for multiprocessor operating system |
US5408663A (en) * | 1993-11-05 | 1995-04-18 | Adrem Technologies, Inc. | Resource allocation methods |
US5421011A (en) * | 1991-12-20 | 1995-05-30 | International Business Machines Corporation | Method and system for access and accounting control in a data processing system by using a single resource account for a user or a group of users |
US5455944A (en) * | 1993-03-16 | 1995-10-03 | International Business Machines Corporation | Method for managing logging and locking of page free space information in a transaction processing system |
US5594889A (en) * | 1992-01-03 | 1997-01-14 | Digital Equipment Corporation | Memory resource allocation look ahead system and method |
US5682477A (en) * | 1993-05-27 | 1997-10-28 | Fujitsu Limited | System for selecting an implementing class having corresponding prescribed resources matching the availed resources and calculating compensating data to be stored in a management table |
US5737600A (en) * | 1994-09-12 | 1998-04-07 | International Business Machines Corporation | Method and system for log management in a coupled data processing system |
US5742011A (en) * | 1994-10-28 | 1998-04-21 | Ishida Co., Ltd. | Load cell having a neutral plane spaced from a top surface thereof by a distance greater than from a bottom surface thereof |
US5742772A (en) * | 1995-11-17 | 1998-04-21 | Lucent Technologies Inc. | Resource management system for a broadband multipoint bridge |
US5802396A (en) * | 1994-03-15 | 1998-09-01 | Mitel Corporation | Adaptive communication system |
US5826082A (en) * | 1996-07-01 | 1998-10-20 | Sun Microsystems, Inc. | Method for reserving resources |
US5832508A (en) * | 1996-09-18 | 1998-11-03 | Sybase, Inc. | Method for deallocating a log in database systems |
US5909540A (en) * | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
US6003061A (en) * | 1995-12-07 | 1999-12-14 | Microsoft Corporation | Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider |
US6032227A (en) * | 1996-09-30 | 2000-02-29 | International Business Machines Corporation | System and method for cache management in mobile user file systems |
US6125393A (en) * | 1997-03-28 | 2000-09-26 | International Business Machines Corporation | System of compressing the tail of a sparse log stream of a multisystem environment |
US6189069B1 (en) * | 1998-02-17 | 2001-02-13 | Microsoft Corporation | Optimized logging of data elements to a data storage device |
US6246678B1 (en) * | 1997-02-13 | 2001-06-12 | Mitel Corporation | Data access server for PBX |
US6321234B1 (en) * | 1996-09-18 | 2001-11-20 | Sybase, Inc. | Database server system with improved methods for logging transactions |
US6405201B1 (en) * | 1999-12-02 | 2002-06-11 | Sun Microsystems, Inc. | Method and apparatus for reducing network traffic for remote file append operations |
US20020099843A1 (en) * | 2001-01-24 | 2002-07-25 | International Business Machines Corporation | Method, system, and program for managing client access to a shared resource |
US6535869B1 (en) * | 1999-03-23 | 2003-03-18 | International Business Machines Corporation | Increasing efficiency of indexing random-access files composed of fixed-length data blocks by embedding a file index therein |
US6701420B1 (en) * | 1999-02-01 | 2004-03-02 | Hewlett-Packard Company | Memory management system and method for allocating and reusing memory |
US6732124B1 (en) * | 1999-03-30 | 2004-05-04 | Fujitsu Limited | Data processing system with mechanism for restoring file systems based on transaction logs |
US6813623B2 (en) * | 2001-06-15 | 2004-11-02 | International Business Machines Corporation | Method and apparatus for chunk based transaction logging with asynchronous input/output for a database management system |
US6850942B2 (en) * | 2002-04-26 | 2005-02-01 | International Business Machines Corporation | System and method for providing multiple virtual database connections in a relational database system |
US6879995B1 (en) * | 1999-08-13 | 2005-04-12 | Sun Microsystems, Inc. | Application server message logging |
US7499960B2 (en) * | 2001-10-01 | 2009-03-03 | Oracle International Corporation | Adaptive memory allocation |
-
2002
- 2002-06-18 US US10/175,439 patent/US7484216B2/en not_active Expired - Fee Related
-
2008
- 2008-12-31 US US12/347,717 patent/US20090112942A1/en not_active Abandoned
Patent Citations (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5303369A (en) * | 1990-08-31 | 1994-04-12 | Texas Instruments Incorporated | Scheduling system for multiprocessor operating system |
US5210872A (en) * | 1991-06-28 | 1993-05-11 | Texas Instruments Inc. | Critical task scheduling for real-time systems |
US5421011A (en) * | 1991-12-20 | 1995-05-30 | International Business Machines Corporation | Method and system for access and accounting control in a data processing system by using a single resource account for a user or a group of users |
US5594889A (en) * | 1992-01-03 | 1997-01-14 | Digital Equipment Corporation | Memory resource allocation look ahead system and method |
US5455944A (en) * | 1993-03-16 | 1995-10-03 | International Business Machines Corporation | Method for managing logging and locking of page free space information in a transaction processing system |
US5682477A (en) * | 1993-05-27 | 1997-10-28 | Fujitsu Limited | System for selecting an implementing class having corresponding prescribed resources matching the availed resources and calculating compensating data to be stored in a management table |
US5408663A (en) * | 1993-11-05 | 1995-04-18 | Adrem Technologies, Inc. | Resource allocation methods |
US5802396A (en) * | 1994-03-15 | 1998-09-01 | Mitel Corporation | Adaptive communication system |
US5737600A (en) * | 1994-09-12 | 1998-04-07 | International Business Machines Corporation | Method and system for log management in a coupled data processing system |
US5742011A (en) * | 1994-10-28 | 1998-04-21 | Ishida Co., Ltd. | Load cell having a neutral plane spaced from a top surface thereof by a distance greater than from a bottom surface thereof |
US5742772A (en) * | 1995-11-17 | 1998-04-21 | Lucent Technologies Inc. | Resource management system for a broadband multipoint bridge |
US6003061A (en) * | 1995-12-07 | 1999-12-14 | Microsoft Corporation | Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider |
US5826082A (en) * | 1996-07-01 | 1998-10-20 | Sun Microsystems, Inc. | Method for reserving resources |
US6321234B1 (en) * | 1996-09-18 | 2001-11-20 | Sybase, Inc. | Database server system with improved methods for logging transactions |
US5832508A (en) * | 1996-09-18 | 1998-11-03 | Sybase, Inc. | Method for deallocating a log in database systems |
US6032227A (en) * | 1996-09-30 | 2000-02-29 | International Business Machines Corporation | System and method for cache management in mobile user file systems |
US5909540A (en) * | 1996-11-22 | 1999-06-01 | Mangosoft Corporation | System and method for providing highly available data storage using globally addressable memory |
US6246678B1 (en) * | 1997-02-13 | 2001-06-12 | Mitel Corporation | Data access server for PBX |
US6125393A (en) * | 1997-03-28 | 2000-09-26 | International Business Machines Corporation | System of compressing the tail of a sparse log stream of a multisystem environment |
US6189069B1 (en) * | 1998-02-17 | 2001-02-13 | Microsoft Corporation | Optimized logging of data elements to a data storage device |
US6701420B1 (en) * | 1999-02-01 | 2004-03-02 | Hewlett-Packard Company | Memory management system and method for allocating and reusing memory |
US6535869B1 (en) * | 1999-03-23 | 2003-03-18 | International Business Machines Corporation | Increasing efficiency of indexing random-access files composed of fixed-length data blocks by embedding a file index therein |
US6732124B1 (en) * | 1999-03-30 | 2004-05-04 | Fujitsu Limited | Data processing system with mechanism for restoring file systems based on transaction logs |
US6879995B1 (en) * | 1999-08-13 | 2005-04-12 | Sun Microsystems, Inc. | Application server message logging |
US6405201B1 (en) * | 1999-12-02 | 2002-06-11 | Sun Microsystems, Inc. | Method and apparatus for reducing network traffic for remote file append operations |
US20020099843A1 (en) * | 2001-01-24 | 2002-07-25 | International Business Machines Corporation | Method, system, and program for managing client access to a shared resource |
US6813623B2 (en) * | 2001-06-15 | 2004-11-02 | International Business Machines Corporation | Method and apparatus for chunk based transaction logging with asynchronous input/output for a database management system |
US7499960B2 (en) * | 2001-10-01 | 2009-03-03 | Oracle International Corporation | Adaptive memory allocation |
US6850942B2 (en) * | 2002-04-26 | 2005-02-01 | International Business Machines Corporation | System and method for providing multiple virtual database connections in a relational database system |
Also Published As
Publication number | Publication date |
---|---|
US7484216B2 (en) | 2009-01-27 |
US20030233389A1 (en) | 2003-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7007197B2 (en) | Virtual logging system and method | |
US5956489A (en) | Transaction replication system and method for supporting replicated transaction-based services | |
US9529682B2 (en) | Managing contingency capacity of pooled resources in multiple availability zones | |
US9639592B1 (en) | Dynamically switching between synchronous and asynchronous replication | |
JP5841177B2 (en) | Method and system for synchronization mechanism in multi-server reservation system | |
US5737600A (en) | Method and system for log management in a coupled data processing system | |
US5970488A (en) | Real-time distributed database system and method | |
US5829001A (en) | Database updates over a network | |
US6330572B1 (en) | Hierarchical data storage management | |
EP0623877B1 (en) | System and method for storing persistent and non-persistent queued data | |
US9047355B2 (en) | Method and system for load balancing a distributed database | |
US6769003B2 (en) | Parallel logging method for transaction processing system | |
CA2460833C (en) | System and method for implementing journaling in a multi-node environment | |
US7392335B2 (en) | Anticipatory changes to resources managed by locks | |
JP3730563B2 (en) | Session management apparatus, session management method, program, and recording medium | |
US20050004952A1 (en) | Transaction processing method, transaction control apparatus and program thereof | |
US20070239728A1 (en) | System and method for transactional session management | |
US20090112942A1 (en) | System and Method for Decoupling Space Reservation in Transactional Logs | |
WO2003104920A2 (en) | Information distribution process and method | |
EP1107132A2 (en) | Method and apparatus for reducing network traffic for remote file append operations | |
WO2009002589A1 (en) | Methods and system for highly ordered transaction processing | |
US6948093B2 (en) | Data processing arrangement and method | |
US6848037B2 (en) | Data processing arrangement and method | |
EP0525946B1 (en) | Data processing system with transaction processing application | |
JPH0844670A (en) | File managing method, computer system using the same and operating method for computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034766/0001 Effective date: 20141014 |