IBM Books
(C) IBM Corp. 2000, 2003.

Net Search Extender

管理和用户指南

使用锁定服务

在 Net Search Extender 中,有几种不同类型的锁定来控制对索引的并行存取。不同的锁定取决于在搜索请求的情况下是否只读取文本索引,或者是否需要计算对文本索引的更改,然后将其写入文件中。

db2text start 运行期间,将自动启动锁定服务。对文本索引具有下列类型的锁定:

S 锁定
用于共享只读存取。例如,搜索请求。

U 锁定
用于当使用并行读取存取来计算对索引的更改(更新)时进行读写存取。例如,搜索请求。

X 锁定
用于较短时间内进行互斥读/写存取,在这段时间内将把更改真正写入索引中。

IX 锁定
用于当更新进程正在等待 X 锁定时防止进行任何新的 S 锁定的期望互斥读/写存取。

每个 DB2 实例都具有一个 Net Search Extender 锁定服务。锁定服务为多个数据库维护锁定。

锁定服务配置文件为 db2extlm.cfg。它存储在 <instance_owner_home>/sqllib/db2ext 上(对于 UNIX 系统)和 <sqllib>\<DB2INSTANCE>\db2ext 上(对于 Windows)。

仅当“Net Search Extender 实例服务”是在 db2text start 期间启动时,对配置文件所做的更改才会生效。有关进一步的信息,参见CONTROL。用户可以设置下列值:

配置文件的缺省值为如下所示:

<default
         maxDbs         = "  8"
         maxIdxPerDb    = " 50"
         maxLocksPerIdx = "100"
 
         sWait = "  50"
         uWait = " 500"
         xWait = " 500"
 
         sAttempt = "50"
         uAttempt = "10"
         xAttempt = "60"
 
         latchTimeout = "80"
 
/>

语法为 <default attribute=value.../>,属性的含义如下:

maxDbs
锁定服务可以处理的数据库数目(大于 1 的整数)。

maxIdxPerDb
可以锁定的每个数据库的索引数(大于 1 的整数)。对于所有数据库,此值都是相同的。

maxLocksPerIdx
一个索引中可以同时存在的锁定数(大于 1 的整数)。对于所有索引,此值都是相同的。

sWait/sAttempt
当请求 S 锁定时,sAttempt 是指当不能立即授予锁定时尝试的次数。sWait 是这些尝试之间的等待时间(大于 1 的整数)。这些参数也适用于 IX 锁定。

uWait/uAttempt
当请求 U 锁定时,uAttempt 是指不能立即授予锁定时尝试的次数。uWait 是这些尝试之间的等待时间(大小 1 的整数)。

xWait/xAttempt
当请求 X 锁定时,xAttempt 是指不能立即授予锁定时的尝试次数。xWait 是这些尝试之间的等待时间(大于 1 的整数)。

latchTimeout
这是时间间隔锁定服务的附加等待时间。要确定锁定的总等待时间,使用以下计算公式:
waiting time = # attempts * (# waits + (2 * # latchTimeout))

等待时间是以毫秒为单位计算的。注意,对于每次尝试,latchTimeout 值在添加到总的等待时间时都要加倍。


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]