Files
Yasuhiro KIMURA 9678929700 Update to 18.1.40
2020-07-24 01:10:28 +09:00

100 lines
4.9 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Configuring locking</title>
<link rel="stylesheet" href="gettingStarted.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
<link rel="start" href="index.html" title="Berkeley DB Programmer's Reference Guide" />
<link rel="up" href="lock.html" title="Chapter 17.  The Locking Subsystem" />
<link rel="prev" href="lock.html" title="Chapter 17.  The Locking Subsystem" />
<link rel="next" href="lock_max.html" title="Configuring locking: sizing the system" />
</head>
<body>
<div xmlns="" class="navheader">
<div class="libver">
<p>Library Version 18.1.40</p>
</div>
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center">Configuring locking</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="lock.html">Prev</a> </td>
<th width="60%" align="center">Chapter 17.  The Locking Subsystem </th>
<td width="20%" align="right"> <a accesskey="n" href="lock_max.html">Next</a></td>
</tr>
</table>
<hr />
</div>
<div class="sect1" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h2 class="title" style="clear: both"><a id="lock_config"></a>Configuring locking</h2>
</div>
</div>
</div>
<p>
The <a href="../api_reference/C/envset_lk_detect.html" class="olink">DB_ENV-&gt;set_lk_detect()</a> method specifies that the deadlock
detector should be run whenever a lock is about to block. This
option provides for rapid detection of deadlocks at the
expense of potentially frequent invocations of the deadlock
detector. On a fast processor with a highly contentious
application where response time is critical, this is a good
choice. An option argument to the <a href="../api_reference/C/envset_lk_detect.html" class="olink">DB_ENV-&gt;set_lk_detect()</a> method
indicates which lock requests should be rejected.
</p>
<p>
The application can limit how long it blocks on a contested
resource. The <a href="../api_reference/C/envset_timeout.html" class="olink">DB_ENV-&gt;set_timeout()</a> method specifies the length of
the timeout. This value is checked whenever deadlock detection
is performed, so the accuracy of the timeout depends upon the
frequency of deadlock detection.
</p>
<p>
In general, when applications are not specifying lock and
transaction timeout values, the <a href="../api_reference/C/lockdetect.html#detect_DB_LOCK_DEFAULT" class="olink">DB_LOCK_DEFAULT</a> option is
probably the correct first choice, and other options should
only be selected based on evidence that they improve
transaction throughput. If an application has long-running
transactions, <a href="../api_reference/C/lockdetect.html#detect_DB_LOCK_YOUNGEST" class="olink">DB_LOCK_YOUNGEST</a> will guarantee that
transactions eventually complete, but it may do so at the
expense of a large number of lock request rejections (and
therefore, transaction aborts).
</p>
<p>
The alternative to using the <a href="../api_reference/C/envset_lk_detect.html" class="olink">DB_ENV-&gt;set_lk_detect()</a> method is to
explicitly perform deadlock detection using the Berkeley DB
<a href="../api_reference/C/lockdetect.html" class="olink">DB_ENV-&gt;lock_detect()</a> method.
</p>
<p>
The <a href="../api_reference/C/envset_lk_conflicts.html" class="olink">DB_ENV-&gt;set_lk_conflicts()</a> method allows you to specify your
own locking conflicts matrix. This is an advanced
configuration option, and is almost never necessary.
</p>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="lock.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="lock.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="lock_max.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">Chapter 17.  The Locking Subsystem  </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> Configuring locking: sizing the
system</td>
</tr>
</table>
</div>
</body>
</html>