<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Oracle Berkeley DB 中国研发团队的博客 &#187; bdb</title>
	<atom:link href="http://www.bdbchina.com/tag/bdb/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bdbchina.com</link>
	<description>Oracle Berkeley DB 中国研发团队的博客</description>
	<lastBuildDate>Thu, 15 Dec 2011 10:35:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Oracle Berkeley Database 11g R2  性能概述白皮书</title>
		<link>http://www.bdbchina.com/2011/09/oracle-berkeley-database-11g-r2-%e6%80%a7%e8%83%bd%e6%a6%82%e8%bf%b0%e7%99%bd%e7%9a%ae%e4%b9%a6/</link>
		<comments>http://www.bdbchina.com/2011/09/oracle-berkeley-database-11g-r2-%e6%80%a7%e8%83%bd%e6%a6%82%e8%bf%b0%e7%99%bd%e7%9a%ae%e4%b9%a6/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 10:05:22 +0000</pubDate>
		<dc:creator>mingxingchen</dc:creator>
				<category><![CDATA[Berkeley DB]]></category>
		<category><![CDATA[Mingxing Chen]]></category>
		<category><![CDATA[bdb]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1698</guid>
		<description><![CDATA[这是一篇由我翻译的文章，现在贴过来，与大家共享。原文可以从BDB官网下载得到， 请见：http://www.oracle.com/us/dm/bdb-performance-whitepaper-cn-426008-zhs.pdf。
==============================================================

概述
当选择一个数据库时，其性能的好坏往往是我们要考虑的第一关键因素。本白皮书介绍了一些性能测定的方法，旨在帮助你理解从Berkeley DB 数据库的一些常见配置预期会得到怎样的性能。你的应用程序的性能也取决于你的数据、数据访问的模式、缓存大小、其他配置参数、操作系统、以及硬件等。基准测试并不能反映某一个特定的应用程序的性能好坏，但它们可以提供一些基准，并为建立基本可行的期望提供指导和帮助。

介绍
通过一些在一定配置下进行的测试，本文给出了有关Oracle Berkeley DB (BDB) 11gR2 (11.2.5.0.2.21) 吞吐量的信息。这些测试包括：不同配置下BDB 键/值接口 (key/value API) 得到的吞吐量，和使用Wisconsin 和类TPC-B 基准对BDB SQL接口进行测试得到的性能数据。
实验环境
所有的实验结果都是用相同的硬件配置得到的，硬件信息如表1所示：
表1. 硬件配置



处理器
操作系统
RAM
硬盘及速度
文件系统


Intel 酷睿2双核 E8400, 3.0GHz
Redhat Linux 5.4
4GB
SATA, 7200 RPM
EXT3



键/值接口的性能概述
Berkeley DB 是高可配置的，它可以配置来使用或禁止数据库操作的大多数特性，例如，事务日志（WAL）功能，并发控制的锁机制。由于这个原因，Berkeley DB 将在两种不同配置环境下进行实验：分别对应于非事务性及事务性。
第一组实验测试数据存储Data Store(DS)。DS是Berkeley DB的配置选项之一。DS本质上是一种简单的、单线程、非事务性的存储系统。第二组实验测试事务性数据存储Transactional Data Store(TDS)。TDS是Berkeley DB的一种能提供所有事务语义(transactional semantics)的配置选项。表2给出这两种功能集的区别。
表2. 数据存储与事务性数据存储属性



特点
数据存储（DS）
事务性数据存储（TDS）


访问方法（Access Method）
B树
B树


锁（locking）
无
页级锁


日志（logging）
无
带有128MB缓存的磁盘


事务（transactions）
无
同步（Synchronous）


共享内存（Shared Memory）
不共享（DB_PRIVATE）
不共享（DB_PRIVATE）


缓存
512MB
512MB



这两组实验都使用512MB的缓存，在数据库环境中设置DB_PRIVATE的标志，同时空间局部值（spatial locality）设为10。使用DB_PRIVATE标志说明在数据库中使用堆内存（heap memory）作为其高速缓存（cache），这种配置只适用于单进程（可能有多个线程）的环境中执行。
最常用的数据库性能衡量标准是吞吐量（就是在固定时间段里读取或写入的记录数）。在我们的实验中，我们把吞吐量定义为是用Berkeley DB11gR2 (版本号为11.2.5.0.21)每秒能达到的操作次数。
在实验中，我们使用固定长度的记录。每条记录包括64字节的键值（key）和64字节的数据值（data）。所有的键值和数据值均为整数型。每个实验进行57,600批次，每个批次对应10个顺序的键值操作。比如，在插入测试中，随机产生第一个键的值（记住k），并对它进行插入操作；接下来再插入9个记录， 这9个记录具有连续的键值（k+1, k+2, k+3, …, k+9）；这个过程将重复57,600次。每个测试都运行5次，并记录相应的吞吐量的平均值和标准差。
针对每个配置，下面是实验的步骤：

步骤一：

生成一个具有576,000条记录的数据库（就是57,600组，每组具有10个顺序键值的记录）。这个过程仅仅是生成用于实验的数据库和预热缓存，测试并不记录其消耗的时间。

步骤二：

检索57,600个随机记录组，每组具有10个连续键值的记录（读取操作）。

步骤三：

更新57,600个随机记录组，每组具有10个连续键值的记录（更新操作）。

步骤四：

删除数据库中的所有记录，以每组具有10个连续键值的记录为单位（删除操作）。

步骤五：

像步骤一那样，重新生成测试的数据库（插入操作）。
针对每一个类型的操作（读取、更新、删除、插入），计时从第一个组操作前开始直到完成最后一组操作结束。这期间不包括用于打开和关闭数据库环境和数据库句柄所花的时间。
数据存储：单线程
第一组实验是衡量使用Berkeley DB DS来测试单线程应用程序所达到的吞吐量。表3是实验得到的结果。
表3. BDB DS 单线程的性能



描述
插入(Insert)
读取(Fetch)
删除(Delete)
更新(Update)


操作数/秒
标准差
操作数/秒
标准差
操作数/秒
标准差
操作数/秒
标准差


DS
208,139
329
264,665
229
158,506
236
250,297
870



事务性数据存储：单线程
第二组实验统计了基于Berkeley DB TDS的单线程应用程序在不同的配置下所达到的吞吐量。这些配置包括：写持久性，日志持久性，和存储介质。每个配置将解释为：

 写持久性

默认条件下，事务将被同步提交到磁盘。设置DB_TXN_NOSYNC标志将意味着异步提交（即数据不会同步到磁盘），而DB_TXN_WRITE_NOSYNC标志意味着把数据写入到文件系统但不会同步到磁盘。

日志持久性

默认测试，日志是存储在磁盘中；同时也测试了非持久的、内存中的日志信息。

不同的存储介质

默认的配置是采用一个传统的硬盘。我们将比较使用这种默认配置和使用2GB的RAM在存储数据库和日志文件方面得到的性能。在所有的情况下，事务都会同步提交。
表4. [...]]]></description>
			<content:encoded><![CDATA[<p><em><em>这是一篇由我翻译的文章，现在贴过来，与大家共享。原文可以从BDB官网</em>下载得到， 请见：http://www.oracle.com/us/dm/bdb-performance-whitepaper-cn-426008-zhs.pdf<em>。</em></em></p>
<p><em>==============================================================<br />
</em></p>
<h1>概述</h1>
<p>当选择一个数据库时，其性能的好坏往往是我们要考虑的第一关键因素。本白皮书介绍了一些性能测定的方法，旨在帮助你理解从Berkeley DB 数据库的一些常见配置预期会得到怎样的性能。你的应用程序的性能也取决于你的数据、数据访问的模式、缓存大小、其他配置参数、操作系统、以及硬件等。基准测试并不能反映某一个特定的应用程序的性能好坏，但它们可以提供一些基准，并为建立基本可行的期望提供指导和帮助。</p>
<h1><span id="more-1698"></span></h1>
<h1>介绍</h1>
<p>通过一些在一定配置下进行的测试，本文给出了有关Oracle Berkeley DB (BDB) 11gR2 (11.2.5.0.2.21) 吞吐量的信息。这些测试包括：不同配置下BDB 键/值接口 (key/value API) 得到的吞吐量，和使用Wisconsin 和类TPC-B 基准对BDB SQL接口进行测试得到的性能数据。</p>
<h1>实验环境</h1>
<p>所有的实验结果都是用相同的硬件配置得到的，硬件信息如表1所示：</p>
<p>表1. 硬件配置</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">处理器</td>
<td valign="top">操作系统</td>
<td valign="top">RAM</td>
<td valign="top">硬盘及速度</td>
<td valign="top">文件系统</td>
</tr>
<tr>
<td valign="top">Intel 酷睿2双核 E8400, 3.0GHz</td>
<td valign="top">Redhat Linux 5.4</td>
<td valign="top">4GB</td>
<td valign="top">SATA, 7200 RPM</td>
<td valign="top">EXT3</td>
</tr>
</tbody>
</table>
<h1>键/值接口的性能概述</h1>
<p>Berkeley DB 是高可配置的，它可以配置来使用或禁止数据库操作的大多数特性，例如，事务日志（WAL）功能，并发控制的锁机制。由于这个原因，Berkeley DB 将在两种不同配置环境下进行实验：分别对应于非事务性及事务性。</p>
<p>第一组实验测试数据存储Data Store(DS)。DS是Berkeley DB的配置选项之一。DS本质上是一种简单的、单线程、非事务性的存储系统。第二组实验测试事务性数据存储Transactional Data Store(TDS)。TDS是Berkeley DB的一种能提供所有事务语义(transactional semantics)的配置选项。表2给出这两种功能集的区别。</p>
<p>表2. 数据存储与事务性数据存储属性</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="189" valign="top">特点</td>
<td width="189" valign="top">数据存储（DS）</td>
<td width="189" valign="top">事务性数据存储（TDS）</td>
</tr>
<tr>
<td width="189" valign="top">访问方法（Access Method）</td>
<td width="189" valign="top">B树</td>
<td width="189" valign="top">B树</td>
</tr>
<tr>
<td width="189" valign="top">锁（locking）</td>
<td width="189" valign="top">无</td>
<td width="189" valign="top">页级锁</td>
</tr>
<tr>
<td width="189" valign="top">日志（logging）</td>
<td width="189" valign="top">无</td>
<td width="189" valign="top">带有128MB缓存的磁盘</td>
</tr>
<tr>
<td width="189" valign="top">事务（transactions）</td>
<td width="189" valign="top">无</td>
<td width="189" valign="top">同步（Synchronous）</td>
</tr>
<tr>
<td width="189" valign="top">共享内存（Shared Memory）</td>
<td width="189" valign="top">不共享（DB_PRIVATE）</td>
<td width="189" valign="top">不共享（DB_PRIVATE）</td>
</tr>
<tr>
<td width="189" valign="top">缓存</td>
<td width="189" valign="top">512MB</td>
<td width="189" valign="top">512MB</td>
</tr>
</tbody>
</table>
<p>这两组实验都使用512MB的缓存，在数据库环境中设置DB_PRIVATE的标志，同时空间局部值（spatial locality）设为10。使用DB_PRIVATE标志说明在数据库中使用堆内存（heap memory）作为其高速缓存（cache），这种配置只适用于单进程（可能有多个线程）的环境中执行。</p>
<p>最常用的数据库性能衡量标准是吞吐量（就是在固定时间段里读取或写入的记录数）。在我们的实验中，我们把吞吐量定义为是用Berkeley DB11gR2 (版本号为11.2.5.0.21)每秒能达到的操作次数。</p>
<p>在实验中，我们使用固定长度的记录。每条记录包括64字节的键值（key）和64字节的数据值（data）。所有的键值和数据值均为整数型。每个实验进行57,600批次，每个批次对应10个顺序的键值操作。比如，在插入测试中，随机产生第一个键的值（记住k），并对它进行插入操作；接下来再插入9个记录， 这9个记录具有连续的键值（k+1, k+2, k+3, …, k+9）；这个过程将重复57,600次。每个测试都运行5次，并记录相应的吞吐量的平均值和标准差。</p>
<p>针对每个配置，下面是实验的步骤：</p>
<ul>
<li><strong>步骤一：</strong></li>
</ul>
<p>生成一个具有576,000条记录的数据库（就是57,600组，每组具有10个顺序键值的记录）。这个过程仅仅是生成用于实验的数据库和预热缓存，测试并不记录其消耗的时间。</p>
<ul>
<li><strong>步骤二：</strong></li>
</ul>
<p>检索57,600个随机记录组，每组具有10个连续键值的记录（读取操作）。</p>
<ul>
<li><strong>步骤三：</strong></li>
</ul>
<p>更新57,600个随机记录组，每组具有10个连续键值的记录（更新操作）。</p>
<ul>
<li><strong>步骤四：</strong></li>
</ul>
<p>删除数据库中的所有记录，以每组具有10个连续键值的记录为单位（删除操作）。</p>
<ul>
<li><strong>步骤五：</strong></li>
</ul>
<p>像步骤一那样，重新生成测试的数据库（插入操作）。</p>
<p>针对每一个类型的操作（读取、更新、删除、插入），计时从第一个组操作前开始直到完成最后一组操作结束。这期间不包括用于打开和关闭数据库环境和数据库句柄所花的时间。</p>
<h2>数据存储：单线程</h2>
<p>第一组实验是衡量使用Berkeley DB DS来测试单线程应用程序所达到的吞吐量。表3是实验得到的结果。</p>
<p>表3. BDB DS 单线程的性能</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td rowspan="2" width="42" valign="top">描述</td>
<td colspan="2" width="132" valign="top">插入(Insert)</td>
<td colspan="2" width="131" valign="top">读取(Fetch)</td>
<td colspan="2" width="131" valign="top">删除(Delete)</td>
<td colspan="2" width="131" valign="top">更新(Update)</td>
</tr>
<tr>
<td width="76" valign="top">操作数/秒</td>
<td width="56" valign="top">标准差</td>
<td width="76" valign="top">操作数/秒</td>
<td width="56" valign="top">标准差</td>
<td width="76" valign="top">操作数/秒</td>
<td width="56" valign="top">标准差</td>
<td width="76" valign="top">操作数/秒</td>
<td width="56" valign="top">标准差</td>
</tr>
<tr>
<td width="42" valign="top">DS</td>
<td width="76" valign="top">208,139</td>
<td width="56" valign="top">329</td>
<td width="76" valign="top">264,665</td>
<td width="56" valign="top">229</td>
<td width="76" valign="top">158,506</td>
<td width="56" valign="top">236</td>
<td width="76" valign="top">250,297</td>
<td width="56" valign="top">870</td>
</tr>
</tbody>
</table>
<h2>事务性数据存储：单线程</h2>
<p>第二组实验统计了基于Berkeley DB TDS的单线程应用程序在不同的配置下所达到的吞吐量。这些配置包括：写持久性，日志持久性，和存储介质。每个配置将解释为：</p>
<ul>
<li><strong><span style="text-decoration: underline;"> 写持久性</span></strong></li>
</ul>
<p>默认条件下，事务将被同步提交到磁盘。设置DB_TXN_NOSYNC标志将意味着异步提交（即数据不会同步到磁盘），而DB_TXN_WRITE_NOSYNC标志意味着把数据写入到文件系统但不会同步到磁盘。</p>
<ul>
<li><strong><span style="text-decoration: underline;">日志持久性</span></strong></li>
</ul>
<p>默认测试，日志是存储在磁盘中；同时也测试了非持久的、内存中的日志信息。</p>
<ul>
<li><strong><span style="text-decoration: underline;">不同的存储介质</span></strong></li>
</ul>
<p>默认的配置是采用一个传统的硬盘。我们将比较使用这种默认配置和使用2GB的RAM在存储数据库和日志文件方面得到的性能。在所有的情况下，事务都会同步提交。</p>
<p>表4. BDB单线程性能</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td rowspan="2" width="89" valign="top">描述</td>
<td colspan="2" width="118" valign="top">插入(Insert)</td>
<td colspan="2" width="124" valign="top">读取(Fetch)</td>
<td colspan="2" width="118" valign="top">删除(Delete)</td>
<td colspan="2" width="118" valign="top">更新(Update)</td>
</tr>
<tr>
<td width="68" valign="top">操作数/秒</td>
<td width="50" valign="top">标准差</td>
<td width="71" valign="top">操作数/秒</td>
<td width="53" valign="top">标准差</td>
<td width="69" valign="top">操作数/秒</td>
<td width="50" valign="top">标准差</td>
<td width="69" valign="top">操作数/秒</td>
<td width="50" valign="top">标准差</td>
</tr>
<tr>
<td width="89" valign="top">TDS SYNC</td>
<td width="68" valign="top">693</td>
<td width="50" valign="top">10</td>
<td width="71" valign="top">159,837</td>
<td width="53" valign="top">895</td>
<td width="69" valign="top">831</td>
<td width="50" valign="top">23</td>
<td width="69" valign="top">1,732</td>
<td width="50" valign="top">18</td>
</tr>
<tr>
<td width="89" valign="top">TDS RAMDISK<sup>1</sup></td>
<td width="68" valign="top">49,673</td>
<td width="50" valign="top">912</td>
<td width="71" valign="top">162,848</td>
<td width="53" valign="top">1,588</td>
<td width="69" valign="top">44,279</td>
<td width="50" valign="top">277</td>
<td width="69" valign="top">60,973</td>
<td width="50" valign="top">291</td>
</tr>
<tr>
<td width="89" valign="top">TDS WNS<sup>2</sup></td>
<td width="68" valign="top">37,664</td>
<td width="50" valign="top">460</td>
<td width="71" valign="top">160,307</td>
<td width="53" valign="top">293</td>
<td width="69" valign="top">36,110</td>
<td width="50" valign="top">454</td>
<td width="69" valign="top">52,922</td>
<td width="50" valign="top">258</td>
</tr>
<tr>
<td width="89" valign="top">TDS NS<sup>3</sup></td>
<td width="68" valign="top">53,199</td>
<td width="50" valign="top">613</td>
<td width="71" valign="top">159,980</td>
<td width="53" valign="top">1,419</td>
<td width="69" valign="top">49,340</td>
<td width="50" valign="top">183</td>
<td width="69" valign="top">86,960</td>
<td width="50" valign="top">639</td>
</tr>
<tr>
<td width="89" valign="top">TDS INMEM<sup>4</sup></td>
<td width="68" valign="top">66,435</td>
<td width="50" valign="top">102</td>
<td width="71" valign="top">163,229</td>
<td width="53" valign="top">815</td>
<td width="69" valign="top">58,845</td>
<td width="50" valign="top">101</td>
<td width="69" valign="top">97,602</td>
<td width="50" valign="top">396</td>
</tr>
</tbody>
</table>
<p>1 2GB RAMDISK, 数据库和日志均存在RAM磁盘中</p>
<p>2 DB_TXN_WRITE_NOSYNC，事务提交时设置的标志</p>
<p>3 DB_TXN_NOSYNC，事务提交时设置的标志</p>
<p>4允许在内存中存储日志</p>
<p>在所有的实验中，我们使用足够大的缓存大小，所以磁盘的I/O操作并不影响读的吞吐量。通过对比TDS和TDS RAMDISK的结果，不难发现磁盘的I/O延时和性能会大大影响写操作。通过比较TDS SYNC, TDS INMEM, TDS WNS 和 TDS NS的结果，我们可以发现不同的持久性设置也会影响到写的吞吐量。</p>
<p>上述结果显示了对数据库来说很常见的一些有趣特点。其中一个特点是I/O是决定数据库性能好坏的最关键因素。I/O操作尽管对数据库的读操作来说，仅会造成较小影响，但却是决定写操作性能的关键原因。在使用TDS进行的实验中，插入和更新操作会导致大量的I/O操作，所以在性能上会受到很大的影响。</p>
<p>这些实验表明了五种主要类别造成的延迟：</p>
<ul>
<li> 内存和处理器</li>
</ul>
<ul>
<li>从用户到内核空间之间的传递</li>
</ul>
<ul>
<li>文件系统</li>
</ul>
<ul>
<li>存储I / O</li>
</ul>
<ul>
<li>介质</li>
</ul>
<p>TDS INMEM的实验是最快速的，因为所有的事务提交到内存的数据缓冲区，没有把数据转入到文件系统缓冲区或是磁盘所带来的开销。使用TDS INMEM单线程进行插入操作的实验为你的系统显示了最理想的速度，但是可能不是很有用，原因是此时数据不具有永久性。在进程意外结束时，内存中的数据将会被删除掉，所有没有持久性可言。</p>
<p>当事务配置了DB_TXN_NOSYNC标志时，在事务提交时，数据是不会从日志缓存区提交或同步到文件系统的。相反，日志会被保留在日志缓存区中直到该缓存满为止，此时一个文件系统的写操作会把日志从用户内存传输到内核或是文件系统内存中。接下来，由文件系统自己决定数据是否要写进以及何时写进磁盘介质中。所以，在TDS INMEM和TDS NS之间的不同性能正好反映了当日志缓存区满时把日志记录从用户级别的日志缓存区传输到内核或是文件系统内存所带来的开销。</p>
<p>当事务配置了DB_TXN_WRITE_NOSYNC标志时，Berkeley DB在每个事务提交时都会把日志从用户级别的日志缓存区提交或同步到操作系统或是文件系统。这样只要在把数据写到磁盘之前该操作系统不挂掉，就能提供持久性的保证，。因此，在应用程序挂掉时，只要操作系统能继续在运行的话，数据就不会丢失。但是，如果此时操作系统或是硬件也挂掉的话，已写入操作系统但没有写入磁盘的数据将会被丢失。</p>
<p>在TDS WNS和TD SNS的实验中，插入操作得到的不同结果就是反映了把日志从Berkeley DB日志缓存区拷到文件系统时造成事务提交的时间上的差别。最后，通过对比TDS SYNC和TDS RAMDISK的结果，你就会观察到往内存中写和往磁盘上写带来的性能差别。在TDS SYNC这个实验中，SATA总线和硬盘驱动带来的开销会大大降低性能。</p>
<p>相当有趣的是，在所有的实验中，读操作的性能基本上是一致，平均值占标准差只有1%（标准差=1655.92，平均=161240.2，百分比=1.026989482）。这说明了在所有的实验中，缓存造成的影响是一样的，因此在对内存中的数据进行读操作时带来的事务开销是可以忽略不计的。 尽管没有统计，但是I/O操作的开销决定了对在缓存外的数据进行读操作所需要的时间。</p>
<h2>事务性数据存储：扩展对称多处理系统</h2>
<p>下表显示的是BDB TDS在对称多处理系统（SMPs）时性能的数据。针对多线程访问，每个线程都使用一个数据库句柄（DB handle）以减少线程间的竞争。每个线程使用一个计时器来计算其吞吐量。下表显示的是所有这些信息的集合。</p>
<p>当引入第二个线程时，每个操作的吞吐量将相应地减少，原因是系统将进行一些锁操作，所以会导致一些相应的开销。总体上来说，写操作的吞吐量将随着线程数加大而呈按比例递增。但是，当读线程超过4个的时候，读操作的吞吐量将下降，原因是此时CPU的利用率是100%，而额外的线程需要一些不必要的上下文交互和硬件缓存的回收。</p>
<p>表5. 在SMP系统上，配置不同线程数对应的TDS性能</p>
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td rowspan="2" width="15%" valign="top">描述</td>
<td colspan="2" width="20%" valign="top">插入(Insert)</td>
<td colspan="2" width="21%" valign="top">读取(Fetch)</td>
<td colspan="2" width="21%" valign="top">删除(Delete)</td>
<td colspan="2" width="21%" valign="top">更新(Update)</td>
</tr>
<tr>
<td width="11%" valign="top">操作数/秒</td>
<td width="8%" valign="top">标准差</td>
<td width="12%" valign="top">操作数/秒</td>
<td width="9%" valign="top">标准差</td>
<td width="12%" valign="top">操作数/秒</td>
<td width="8%" valign="top">标准差</td>
<td width="12%" valign="top">操作数/秒</td>
<td width="9%" valign="top">标准差</td>
</tr>
<tr>
<td width="15%" valign="top">TDS 1个线程</td>
<td width="11%" valign="top">693</td>
<td width="8%" valign="top">10</td>
<td width="12%" valign="top">159,837</td>
<td width="9%" valign="top">895</td>
<td width="12%" valign="top">831</td>
<td width="8%" valign="top">23</td>
<td width="12%" valign="top">1,732</td>
<td width="9%" valign="top">18</td>
</tr>
<tr>
<td width="15%" valign="top">TDS 2个线程</td>
<td width="11%" valign="top">647</td>
<td width="8%" valign="top">7</td>
<td width="12%" valign="top">106,196</td>
<td width="9%" valign="top">432</td>
<td width="12%" valign="top">767</td>
<td width="8%" valign="top">20</td>
<td width="12%" valign="top">1,634</td>
<td width="9%" valign="top">27</td>
</tr>
<tr>
<td width="15%" valign="top">TDS 3个线程</td>
<td width="11%" valign="top">690</td>
<td width="8%" valign="top">9</td>
<td width="12%" valign="top">126,762</td>
<td width="9%" valign="top">762</td>
<td width="12%" valign="top">863</td>
<td width="8%" valign="top">20</td>
<td width="12%" valign="top">1,909</td>
<td width="9%" valign="top">32</td>
</tr>
<tr>
<td width="15%" valign="top">TDS 4个线程</td>
<td width="11%" valign="top">721</td>
<td width="8%" valign="top">8</td>
<td width="12%" valign="top">134,581</td>
<td width="9%" valign="top">497</td>
<td width="12%" valign="top">882</td>
<td width="8%" valign="top">18</td>
<td width="12%" valign="top">2,085</td>
<td width="9%" valign="top">54</td>
</tr>
<tr>
<td width="15%" valign="top">TDS 8个线程</td>
<td width="11%" valign="top">859</td>
<td width="8%" valign="top">26</td>
<td width="12%" valign="top">128,928</td>
<td width="9%" valign="top">423</td>
<td width="12%" valign="top">967</td>
<td width="8%" valign="top">27</td>
<td width="12%" valign="top">2,497</td>
<td width="9%" valign="top">32</td>
</tr>
<tr>
<td width="15%" valign="top">TDS 12个线程</td>
<td width="11%" valign="top">930</td>
<td width="8%" valign="top">24</td>
<td width="12%" valign="top">112,735</td>
<td width="9%" valign="top">518</td>
<td width="12%" valign="top">1,013</td>
<td width="8%" valign="top">20</td>
<td width="12%" valign="top">2,658</td>
<td width="9%" valign="top">149</td>
</tr>
<tr>
<td width="15%" valign="top">TDS 16个线程</td>
<td width="11%" valign="top">968</td>
<td width="8%" valign="top">13</td>
<td width="12%" valign="top">99,860</td>
<td width="9%" valign="top">820</td>
<td width="12%" valign="top">1,085</td>
<td width="8%" valign="top">34</td>
<td width="12%" valign="top">2,837</td>
<td width="9%" valign="top">117</td>
</tr>
</tbody>
</table>
<p><a href="http://www.bdbchina.com/wp-content/uploads/2011/09/perf_01.bmp"><img class="aligncenter size-full wp-image-1700" title="perf_01" src="http://www.bdbchina.com/wp-content/uploads/2011/09/perf_01.bmp" alt="" width="573" height="417" /></a></p>
<p>图1. 在SMP系统上，配置不同线程数对应的TDS性能</p>
<h1>SQL接口性能概述</h1>
<p>目前有很多流行的基准（benchmarks）是专门为基于SQL的关系数据库而设的。为适应Berkeley DB的SQL接口，我们参考实现了类似的基准。</p>
<p>我们的实验启发自两种流行基准: 事务处理性能委员会的TPC- B基准<sup>1</sup>和D. J. DeWitt 的Wisconsin基准<sup>2</sup>。</p>
<p>这些基准实现和测试数据, 没有被第三方验证或审核，而仅仅作为我们在不需要其它软件系统介入的情况下试图去认识有关BDB性能特征所做的努力。</p>
<h2>TPC-B 基准</h2>
<p>TPC-B基准的测试需要实现TPC B规范要求的一些模式（Schema）和标准事务。帐户（accounts）的数目是按比例下降的，这样做的目的是在运行的时候方便管理。它有1000家分支机构（branches），总共拥有10000个出纳员（tellers）和100,000个帐户。</p>
<p>下表显示的是由TPC B生成的事务吞吐率（以每秒的事务数（TPS）为单位）。这些结果是从一个256兆字节大小的数据库缓存中得到。</p>
<p>表6- TPC-B 事务吞吐率</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top">线程数</td>
<td valign="top">事务吞吐率（TPS）</td>
</tr>
<tr>
<td valign="top">1</td>
<td valign="top">1846.71</td>
</tr>
<tr>
<td valign="top">2</td>
<td valign="top">2310.84</td>
</tr>
<tr>
<td valign="top">3</td>
<td valign="top">2508.26</td>
</tr>
<tr>
<td valign="top">4</td>
<td valign="top">2678.14</td>
</tr>
<tr>
<td valign="top">5</td>
<td valign="top">2808.51</td>
</tr>
<tr>
<td valign="top">10</td>
<td valign="top">2859.15</td>
</tr>
</tbody>
</table>
<p style="text-align: center;"><a href="http://www.bdbchina.com/wp-content/uploads/2011/09/perf_02.bmp"><img class="aligncenter size-full wp-image-1701" title="perf_02" src="http://www.bdbchina.com/wp-content/uploads/2011/09/perf_02.bmp" alt="" width="643" height="467" /></a></p>
<p>图2. 由类TPC-B基准衡量的每秒事务数（TPS）以及对应的线程数</p>
<h2>Wisconsin 基准</h2>
<p>本测试尝试按照Wisconsin 基准规范规定的模式和查询进行，但是并没有尝试去降低由数据库系统和操作系统引起的缓存效应。</p>
<p>这个实验衡量了在标准数据库上进行大量不同测试案例的单用户性能。所有的测试案例组合的结果可用于分析一个数据库的优势和弱势。对于查询的描述，请参阅链接<sup>4</sup>中的附录一。</p>
<p>为了这些实验能够正常运行，数据库是配置了针对单线程和单用户访问的编译优化选项。每个查询运行10次，下表显示的是平均需要的运行时间，以毫秒为单位。</p>
<p>表7. 由Wisconsin基准衡量的平均运行时间</p>
<table border="1" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td width="8%" valign="top">案例编号</td>
<td width="15%" valign="top">运行时间（毫秒）</td>
<td width="8%" valign="top">案例编号</td>
<td width="17%" valign="top">运行时间（毫秒）</td>
<td width="8%" valign="top">案例编号</td>
<td width="16%" valign="top">运行时间（毫秒）</td>
<td width="8%" valign="top">案例编号</td>
<td width="15%" valign="top">运行时间（毫秒）</td>
</tr>
<tr>
<td width="8%" valign="top">1</td>
<td width="15%" valign="top">8.175</td>
<td width="8%" valign="top">9</td>
<td width="17%" valign="top">31047.220</td>
<td width="8%" valign="top">17</td>
<td width="16%" valign="top">16.944</td>
<td width="8%" valign="top">25</td>
<td width="15%" valign="top">18.163</td>
</tr>
<tr>
<td width="8%" valign="top">2</td>
<td width="15%" valign="top">13.875</td>
<td width="8%" valign="top">10</td>
<td width="17%" valign="top">3160.824</td>
<td width="8%" valign="top">18</td>
<td width="16%" valign="top">58.801</td>
<td width="8%" valign="top">26</td>
<td width="15%" valign="top">0.907</td>
</tr>
<tr>
<td width="8%" valign="top">3</td>
<td width="15%" valign="top">0.879</td>
<td width="8%" valign="top">11</td>
<td width="17%" valign="top">5335.219</td>
<td width="8%" valign="top">19</td>
<td width="16%" valign="top">136.595</td>
<td width="8%" valign="top">27</td>
<td width="15%" valign="top">3.844</td>
</tr>
<tr>
<td width="8%" valign="top">4</td>
<td width="15%" valign="top">6.749</td>
<td width="8%" valign="top">12</td>
<td width="17%" valign="top">9.920</td>
<td width="8%" valign="top">20</td>
<td width="16%" valign="top">3.944</td>
<td width="8%" valign="top">28</td>
<td width="15%" valign="top">4.380</td>
</tr>
<tr>
<td width="8%" valign="top">5</td>
<td width="15%" valign="top">1.368</td>
<td width="8%" valign="top">13</td>
<td width="17%" valign="top">9.942</td>
<td width="8%" valign="top">21</td>
<td width="16%" valign="top">32.566</td>
<td width="8%" valign="top">29</td>
<td width="15%" valign="top">1.081</td>
</tr>
<tr>
<td width="8%" valign="top">6</td>
<td width="15%" valign="top">11.017</td>
<td width="8%" valign="top">14</td>
<td width="17%" valign="top">11.585</td>
<td width="8%" valign="top">22</td>
<td width="16%" valign="top">32.774</td>
<td width="8%" valign="top">30</td>
<td width="15%" valign="top">1.273</td>
</tr>
<tr>
<td width="8%" valign="top">7</td>
<td width="15%" valign="top">0.244</td>
<td width="8%" valign="top">15</td>
<td width="17%" valign="top">19.407</td>
<td width="8%" valign="top">23</td>
<td width="16%" valign="top">0.102</td>
<td width="8%" valign="top">31</td>
<td width="15%" valign="top">1.252</td>
</tr>
<tr>
<td width="8%" valign="top">8</td>
<td width="15%" valign="top">1.373</td>
<td width="8%" valign="top">16</td>
<td width="17%" valign="top">14.759</td>
<td width="8%" valign="top">24</td>
<td width="16%" valign="top">17.742</td>
<td width="8%" valign="top">32</td>
<td width="15%" valign="top">1.081</td>
</tr>
</tbody>
</table>
<h1>参考</h1>
<p>1 <a href="http://www.tpc.org/tpcb/default.asp">http://www.tpc.org/tpcb/default.asp</a></p>
<p>2 <a href="http://firebird.sourceforge.net/download/test/wisconsin_benchmark_chapter4.pdf">http://firebird.sourceforge.net/download/test/wisconsin_benchmark_chapter4.pdf</a></p>
<p>3 <a href="http://www.tpc.org/tpcb/spec/tpcb_current.pdf">http://www.tpc.org/tpcb/spec/tpcb_current.pdf</a></p>
<p>4 <a href="http://firebird.sourceforge.net/download/test/wisconsin_benchmark_chapter4.pdf">http://firebird.sourceforge.net/download/test/wisconsin_benchmark_chapter4.pdf</a></p>
<h1>结束语</h1>
<p>Berkeley DB 键/值接口无论在单线程还是在多线程的应用程序上都执行地非常好。同时，如果一个应用程序并不需要完全的持久性的话，它将能非常显著地提高其性能。</p>
<p>Berkeley DB在11gR2 5.0的版本中增加基于键/值接口的SQL API。你可以从这里下载Oracle Berkeley DB:  <a href="http://www.oracle.com/technology/software/products/berkeley-db/index.html">http://www.oracle.com/technology/software/products/berkeley-db/index.html</a></p>
<p>你也可以在Oracle Technology Network (OTN) 论坛上发表相关评价以及提交问题：</p>
<p><a href="http://forums.oracle.com/forums/forum.jspa?forumID=271">http://forums.oracle.com/forums/forum.jspa?forumID=271</a></p>
<p>有关销售或者产品支持的信息，请发送Email到：<a href="../../Documents%20and%20Settings/haomwang/%E6%A1%8C%E9%9D%A2/berkeleydb-info_us@oracle.com">berkeleydb-info_us@oracle.com</a></p>
<p>想了解有关最新产品发布信息，请发送Email到：<a href="../../Documents%20and%20Settings/haomwang/%E6%A1%8C%E9%9D%A2/bdb-join@oss.oracle.com">bdb-join@oss.oracle.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2011/09/oracle-berkeley-database-11g-r2-%e6%80%a7%e8%83%bd%e6%a6%82%e8%bf%b0%e7%99%bd%e7%9a%ae%e4%b9%a6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Berkeley DB Java Edition 高可用性介绍</title>
		<link>http://www.bdbchina.com/2011/09/berkeley-db-java-edition-%e9%ab%98%e5%8f%af%e7%94%a8%e6%80%a7%e4%bb%8b%e7%bb%8d/</link>
		<comments>http://www.bdbchina.com/2011/09/berkeley-db-java-edition-%e9%ab%98%e5%8f%af%e7%94%a8%e6%80%a7%e4%bb%8b%e7%bb%8d/#comments</comments>
		<pubDate>Wed, 07 Sep 2011 09:19:07 +0000</pubDate>
		<dc:creator>chaohuang</dc:creator>
				<category><![CDATA[Berkeley DB JE]]></category>
		<category><![CDATA[Chao Huang]]></category>
		<category><![CDATA[bdb]]></category>
		<category><![CDATA[HA]]></category>
		<category><![CDATA[JE]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1694</guid>
		<description><![CDATA[这是一篇译文，现在贴过来。原文见JE官网http://www.oracle.com/technetwork/database/berkeleydb/overview/index-093405.html的底部“Berkeley DB Java Edition High Availability”一栏。
概览
Oracle Berkeley DB Java版高可用性（JE HA）是一个支持replication特性的事务性数据管理系统。JE HA提供的高可用特性可以极大提升数据读操作的可扩展性（scalability）及其性能。
这份白皮书将详细介绍JE HA的关键概念和主要特性，从而让开发人员和应用软件设计者理解如何最好地利用JE HA解决软件开发中特有的数据管理问题。
本白皮书同时也讨论了软件架构师在设计基于JE HA的应用时，如何从技术的角度权衡各方面的性能与资源。

基本介绍
Oracle Berkeley DB Java版本（JE）在最新的发布版本中引进了一个新特性，即高可用性（high availability，简称为HA）。JE是一个事务性的数据管理系统，最新版本的JE 便是在之前版本的基础上做了扩展，加入了HA的特性。
用户在应用程序中可以利用JE的直接持久层（DPL）创建用于存储Java对象的索引数据库。在JE中，多个数据库操作可以包含进一个事务（transaction）中，从而得到事务所提供的原子性、一致性、分离性和持久性（ACID）等事务特性。如果应用程序或者系统发生故障，JE的故障恢复机制（recovery）可以使应用程序的数据恢复到一致的状态。
JE HA是一个嵌入式数据管理系统，它在具备JE全部功能的基础上，为JE提供replication规则，即“主节点（master）可以执行读/写操作，副节点（replica）只能执行读操作”。这种规则意味着数据库读与写操作都可以在单个主节点中进行，而在副节点上只能进行读操作。如果主节点发生故障被关闭，那么JEHA将在所有副节点中自动选择其中一个作为新的主节点，这样，所有的读写操作就可以在新的主节点中进行。作为一个嵌入式的类库，JE HA可以广泛应用在各种硬件配置和环境中。
JE HA主要解决以下三个应用上所面临的难题：

在不允许宕机的应用场景中，能够迅速进行热备切换（failover）；
通过配置多个只读副节点以提供读操作的可扩展性；
在实现数据持久性（durability）时，允许应用程序将数据提交到（快速的）网络，而不是（缓慢的）磁盘，从而使事务的提交更加高效。

然而，JE HA不适用于需要对写操作进行扩展的应用场景。这类应用场景需要数据分区（data partition），然后在每一个数据分区中运行一个JE HA的环境。同样，JE HA也不提供与其他数据库进行数据同步的功能。本白皮书不再赘述这两方面的应用。
除去上述两个应用场景，JE HA可以广泛应用在各种环境中。下面分别进行简单的介绍。

基于小型局域网的数据复制备份：基于数据中心的服务可以向本地的多个机器提供数据，比如一个公司网站。这种服务由几台安放在同一个数据中心的服务器提供，这些服务器通过高速的局域网互联。
广域数据存储：广域数据存储服务可以存储大量的账户信息，用户可以在全球任何地方访问这些信息。这种服务由许多分布在全球多个地方的数据中心的服务器提供。这些服务器通过数据中心之间的高速网络进行通信。
主节点/从节点：提供主从节点机器的热备切换。

JE HA可以在广泛的应用环境中对数据进行replication，而单独一种数据管理和replication机制并不能适用于所有环境。因此，JE HA可以让应用程序控制主副节点之间的数据一致性程度，事务持久性，以及提供了其他可以提升性能、可靠性以及数据可用性的各种设计选择。这份白皮书的目的就是介绍这些选择和配置，并且提供足够的细节便于用户的理解，这样用户在设计应用程序时可以做出正确的选择和取舍。
JE HA概述
这一章节将描述JE HA的总体架构和关键概念。
下文中，术语“数据库”（Database） 用于表示一组键/值对（key/value pair）数据集，这些键/值对数据集共享一个索引数据结构，它对应于关系型数据库管理系统（RDBMS）中表（table）的概念。术语“环境”（Environment）用于表示一组具有逻辑关系的Berkeley DB数据库集合，以及相关的元数据（meta-data）和内部文件。每个环境用一个文件目录命名。可以看出，环境就是RDBMS中数据库的概念。也就是说，下文中涉及的数据库就是RDBMS中的表，而环境就是RDBMS中的数据库。
JE HA将一个环境在一个replication group中的各个节点之间进行replication操作。一个环境就是一个replication单元。在一个replication的环境中，所有数据库都支持replication操作和满足事务性。
Replication group
一个replication group是一个节点集合。这些节点都将参与到环境的replication过程中。一个replication group由两种节点组成：可选（Electable）节点和监测（Monitor）节点。
每个可选节点都拥有一份可进行replication的环境副本，它既可作为主节点，也可作为副节点。一个可选节点将通过一种分布式的两阶段投票协议（distributed two-phase voting protocol）而被选举成为一个主节点。这种投票协议将可以保证每次仅选举出一个主节点。所有参与选举的节点中，拥有最新环境数据的节点将被选为主节点。一个可选节点可以进入以下几种状态（但每个时间点只能进入一种状态）：

主节点（Master）状态：一个节点将通过简单多数（或者叫过半数，simple majority）原则，在众多可选节点中被选举为主节点。一个节点变成主节点后可以进行读和写操作。
副节点（Replica）状态：副节点通过replication stream与主节点进行通信。Replication stream用于跟踪记录在主节点中所做的任何更新。在后续章节中将会对replication stream做详细的介绍。副节点只支持读操作。
未知（Unknown）状态：一个节点处于未知状态意味着此节点不能识别主节点，并不断尝试着寻找主节点，或者联系其他成员节点来进行主节点选举。处于未知状态的节点将不断尝试过渡到主节点或者副节点状态。这种状态的节点如果能满足事务性的一致性要求（下文将详细描述），那么它仍然可以进行读操作。
分离（Detached）状态：一个节点处于分离状态意味着此节点已经被关闭（shutdown）。处于分离状态的节点仍然属于replication group中的成员，但它并不是一个活跃节点（active node）。同样，如果一个节点不处于分离状态，则意味着它是活跃节点。

注：为了简略，术语“主节点”和“副节点”在以下的讨论中将用于表示replication group中的某节点正处于主节点状态和副节点状态。
监测节点（monitor node）用于跟踪和监视一个replication group中所有可选节点的当前状态。所有新节点的加入和当前节点的删除所引起的replication group结构的变化都会被监测节点监听到。监测节点同时也能监听所有可选节点的动态状态变化（即此节点处于活跃状态抑或分离状态）。监测节点没有任何持久的状态，也不拥有可进行replication的环境副本。应用程序可以利用监测节点将所有的写请求路由到replication group当前的主节点中，同时将读请求路由到replication group的副节点中。另外，只有应用程序需要调用监测节点，监测节点才会被replication group所创建。也就是说，监测节点并不是必需的。
一个replication [...]]]></description>
			<content:encoded><![CDATA[<p><em>这是一篇译文，现在贴过来。原文见JE官网http://www.oracle.com/technetwork/database/berkeleydb/overview/index-093405.html的底部“Berkeley DB Java Edition High Availability”一栏。</em></p>
<h1>概览</h1>
<p>Oracle Berkeley DB Java版高可用性（JE HA）是一个支持replication特性的事务性数据管理系统。JE HA提供的高可用特性可以极大提升数据读操作的可扩展性（scalability）及其性能。</p>
<p>这份白皮书将详细介绍JE HA的关键概念和主要特性，从而让开发人员和应用软件设计者理解如何最好地利用JE HA解决软件开发中特有的数据管理问题。</p>
<p>本白皮书同时也讨论了软件架构师在设计基于JE HA的应用时，如何从技术的角度权衡各方面的性能与资源。</p>
<p><span id="more-1694"></span></p>
<h1>基本介绍</h1>
<p>Oracle Berkeley DB Java版本（JE）在最新的发布版本中引进了一个新特性，即高可用性（high availability，简称为HA）。JE是一个事务性的数据管理系统，最新版本的JE 便是在之前版本的基础上做了扩展，加入了HA的特性。</p>
<p>用户在应用程序中可以利用JE的直接持久层（DPL）创建用于存储Java对象的索引数据库。在JE中，多个数据库操作可以包含进一个事务（transaction）中，从而得到事务所提供的原子性、一致性、分离性和持久性（ACID）等事务特性。如果应用程序或者系统发生故障，JE的故障恢复机制（recovery）可以使应用程序的数据恢复到一致的状态。</p>
<p>JE HA是一个嵌入式数据管理系统，它在具备JE全部功能的基础上，为JE提供replication规则，即“主节点（master）可以执行读/写操作，副节点（replica）只能执行读操作”。这种规则意味着数据库读与写操作都可以在单个主节点中进行，而在副节点上只能进行读操作。如果主节点发生故障被关闭，那么JEHA将在所有副节点中自动选择其中一个作为新的主节点，这样，所有的读写操作就可以在新的主节点中进行。作为一个嵌入式的类库，JE HA可以广泛应用在各种硬件配置和环境中。</p>
<p>JE HA主要解决以下三个应用上所面临的难题：</p>
<ul>
<li>在不允许宕机的应用场景中，能够迅速进行热备切换（failover）；</li>
<li>通过配置多个只读副节点以提供读操作的可扩展性；</li>
<li>在实现数据持久性（durability）时，允许应用程序将数据提交到（快速的）网络，而不是（缓慢的）磁盘，从而使事务的提交更加高效。</li>
</ul>
<p>然而，JE HA不适用于需要对写操作进行扩展的应用场景。这类应用场景需要数据分区（data partition），然后在每一个数据分区中运行一个JE HA的环境。同样，JE HA也不提供与其他数据库进行数据同步的功能。本白皮书不再赘述这两方面的应用。</p>
<p>除去上述两个应用场景，JE HA可以广泛应用在各种环境中。下面分别进行简单的介绍。</p>
<ul>
<li>基于小型局域网的数据复制备份：基于数据中心的服务可以向本地的多个机器提供数据，比如一个公司网站。这种服务由几台安放在同一个数据中心的服务器提供，这些服务器通过高速的局域网互联。</li>
<li>广域数据存储：广域数据存储服务可以存储大量的账户信息，用户可以在全球任何地方访问这些信息。这种服务由许多分布在全球多个地方的数据中心的服务器提供。这些服务器通过数据中心之间的高速网络进行通信。</li>
<li>主节点/从节点：提供主从节点机器的热备切换。</li>
</ul>
<p>JE HA可以在广泛的应用环境中对数据进行replication，而单独一种数据管理和replication机制并不能适用于所有环境。因此，JE HA可以让应用程序控制主副节点之间的数据一致性程度，事务持久性，以及提供了其他可以提升性能、可靠性以及数据可用性的各种设计选择。这份白皮书的目的就是介绍这些选择和配置，并且提供足够的细节便于用户的理解，这样用户在设计应用程序时可以做出正确的选择和取舍。</p>
<h1>JE HA概述</h1>
<p>这一章节将描述JE HA的总体架构和关键概念。</p>
<p>下文中，术语“数据库”（Database） 用于表示一组键/值对（key/value pair）数据集，这些键/值对数据集共享一个索引数据结构，它对应于关系型数据库管理系统（RDBMS）中表（table）的概念。术语“环境”（Environment）用于表示一组具有逻辑关系的Berkeley DB数据库集合，以及相关的元数据（meta-data）和内部文件。每个环境用一个文件目录命名。可以看出，环境就是RDBMS中数据库的概念。也就是说，下文中涉及的数据库就是RDBMS中的表，而环境就是RDBMS中的数据库。</p>
<p>JE HA将一个环境在一个replication group中的各个节点之间进行replication操作。一个环境就是一个replication单元。在一个replication的环境中，所有数据库都支持replication操作和满足事务性。</p>
<h2>Replication group</h2>
<p>一个replication group是一个节点集合。这些节点都将参与到环境的replication过程中。一个replication group由两种节点组成：可选（Electable）节点和监测（Monitor）节点。</p>
<p>每个可选节点都拥有一份可进行replication的环境副本，它既可作为主节点，也可作为副节点。一个可选节点将通过一种分布式的两阶段投票协议（distributed two-phase voting protocol）而被选举成为一个主节点。这种投票协议将可以保证每次仅选举出一个主节点。所有参与选举的节点中，拥有最新环境数据的节点将被选为主节点。一个可选节点可以进入以下几种状态（但每个时间点只能进入一种状态）：</p>
<ul>
<li>主节点（Master）状态：一个节点将通过简单多数（或者叫过半数，simple majority）原则，在众多可选节点中被选举为主节点。一个节点变成主节点后可以进行读和写操作。</li>
<li>副节点（Replica）状态：副节点通过replication stream与主节点进行通信。Replication stream用于跟踪记录在主节点中所做的任何更新。在后续章节中将会对replication stream做详细的介绍。副节点只支持读操作。</li>
<li>未知（Unknown）状态：一个节点处于未知状态意味着此节点不能识别主节点，并不断尝试着寻找主节点，或者联系其他成员节点来进行主节点选举。处于未知状态的节点将不断尝试过渡到主节点或者副节点状态。这种状态的节点如果能满足事务性的一致性要求（下文将详细描述），那么它仍然可以进行读操作。</li>
<li>分离（Detached）状态：一个节点处于分离状态意味着此节点已经被关闭（shutdown）。处于分离状态的节点仍然属于replication group中的成员，但它并不是一个活跃节点（active node）。同样，如果一个节点不处于分离状态，则意味着它是活跃节点。</li>
</ul>
<p>注：为了简略，术语“主节点”和“副节点”在以下的讨论中将用于表示replication group中的某节点正处于主节点状态和副节点状态。</p>
<p>监测节点（monitor node）用于跟踪和监视一个replication group中所有可选节点的当前状态。所有新节点的加入和当前节点的删除所引起的replication group结构的变化都会被监测节点监听到。监测节点同时也能监听所有可选节点的动态状态变化（即此节点处于活跃状态抑或分离状态）。监测节点没有任何持久的状态，也不拥有可进行replication的环境副本。应用程序可以利用监测节点将所有的写请求路由到replication group当前的主节点中，同时将读请求路由到replication group的副节点中。另外，只有应用程序需要调用监测节点，监测节点才会被replication group所创建。也就是说，监测节点并不是必需的。</p>
<p>一个replication group中的多个副节点可以分布到多台物理机器中，这样可以保证单个机器上的故障或者宕机不会影响到同组中的其他节点。但不同replication group中的多个副节点运行在同一个物理机器中的情形也并不少见。这种配置在某些应用场景中是十分有用的。例如，实现数据分区，这种应用场景在后面章节会有详细描述。</p>
<p>图一清楚描述了一个replication group G中的主要元素：三个可选节点（N1，N2 和N3）以及两个监测节点（M1和M2）。</p>
<p><img class="aligncenter" src="data:image/png;base64,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" alt="" width="394" height="282" /></p>
<p><strong>（图一）</strong><strong> </strong><strong>Replication group G</strong><strong>。可选节点：</strong><strong>G</strong><strong>（</strong><strong>N1</strong><strong>），</strong><strong>G</strong><strong>（</strong><strong>N2</strong><strong>）</strong><strong> </strong><strong>和</strong><strong>G</strong><strong>（</strong><strong>N3</strong><strong>）。两个监测节点：</strong><strong>G</strong><strong>（</strong><strong>M1</strong><strong>）和</strong><strong>G</strong><strong>（</strong><strong>M2</strong><strong>）。</strong><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>Replication  group</strong><strong>的生命周期</strong></p>
<p>一个replication group总是从一个节点开始，这第一个节点会被默认成为主节点。一个可进行replication的环境可以是空的，或者是一个已存在的独立（standalone）的环境。但这个环境被转换成一个可进行replication的环境格式之后，可以往这个replication group中加入新的可选节点，这样会增加组的大小，同时也会增加主节点选举和数据持久性所需要的有效可选节点的数目（quorum）。</p>
<p>一个新的可选的节点通常需要经过以下几步才能真正参与到replication group中（即成为活跃节点）：</p>
<ul>
<li>新节点找到主节点，并且提供自身的配置信息。</li>
<li>主节点把新节点的信息存储到内部一个用于记录组节点信息的可进行replication的数据库中。其他可选举节点将通过replication stream获知新节点的信息。至此，新节点可被视为是replication group中的一名成员节点。</li>
<li>此新成员节点开始初始化它所拥有replication环境副本。如果某些日志文件已经被JE 的日志清除器（log      cleaner）所回收，那么新节点将调用一个叫做Network Restore的操作，从组内某一个成员节点中直接拷贝一份日志文件，并且用这份日志副本作为重演（replay）replication stream的起始点。</li>
<li>新节点重演replication      stream，直到它满足一致性的要求为止。</li>
</ul>
<p>满足一致性要求之后，新成员节点就成为一个活跃的副节点。它将可以为应用程序提供读操作，并且可以在热备切换过程中被选为主节点。</p>
<p>由于监测节点不需要为应用程序提供数据的读写服务，所以它并不拥有可进行replication的环境副本。因此加入一个监测节点很简单，只需要在主节点所拥有的环境副本中加入此监测节点的信息。这样，其他成员节点可以利用该信息与监测节点通信，向监测节点通知有关组内的变化，例如某次选举，或者组内成员的组成变化（新增节点或者删除节点）。同样，由于没有环境副本，当监测节点在每次启动的时候，它必须查询其他可选节点以判定组内当前成员节点的构成和状态。</p>
<p>如果节点运行的机器发生故障或宕机时，replication group有可能会由于组内节点数目无法达到有效可选节点数而无法运行。这些发生故障的节点可以通过JE HA提供的API显式地进行删除，这样余下的成员节点数目便可以满足有效可选节点数的要求，从而replication group可以恢复到正常的运行状态。当然，节点的删除往往意味着数据可持久性的降低。</p>
<h2>Replication stream</h2>
<p>所有发生在主节点上的写事务操作都将通过一种逻辑意义上的replication stream被复制到所有副节点中。这种replication stream是建立在TCP/IP连接之上，这种连接是主节点和每个副节点之间的专用连接。Replication stream包含主节点上的一些逻辑变化，这些逻辑变化是各种发生在环境中的数据库事务操作，如插入（insert）、更新（update）、删除（delete）、提交（commit）和中止（abort）等等。这些逻辑操作将从当前主节点日志文件中的日志条目（log entry）计算出来并且复制到各个副节点中，然后在每个副节点中通过高效的内部重演机制执行这些操作。</p>
<p>为了能让副节点能成功重演replication stream，这些日志条目必须是连续的。它们不能是一些被JE的日志清除器删除掉的条目。</p>
<p>为了保证这一点，JE HA把日志分成两部分：</p>
<ul>
<li>可移除日志，一般在日志的前端，由过时的数据组成，日志清除器可以将其删除。</li>
<li>不可移除日志，一般在日志的末端，所有在这部分的日志都是新的，日志清除器不可以将其删除。只有这部分日志才能用于构造replication      stream。这部分日志会随着新条目的加入而不断增大。一旦不可移除日志在所有副节点上重演，就会转换为可移除日志。</li>
</ul>
<p>下图描述了一个具有三个节点的replication group：节点1是主节点，节点2在重演日志时落后最多，所以节点2被用于决定可移除和不可移除日志。所有没有被节点2重演过的日志条目都会组成不可移除日志。在这个例子中，节点1的日志文件5和日志文件6，以及节点3的日志文件4和日志文件5组成了不可移除日志。这些文件在节点2进行更多重演之前都不能被回收。</p>
<p><img class="aligncenter" src="data:image/png;base64,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m729vdbW1ikpKRqNpqqqysLCorKycmtrKyUlxcbGpru7Wy6X+/r6IglGS3uRSCSTyUZHR21tbePj49VqdUNDw+3bt0tLS9VqdXZ2trm5eU9Pz8bGRmhoKB6Pn5+fX1pacnV1/eGHH2JiYjQazR5/cy/Hzs5OSkrKmTNn0tPTtVptUVER8o1sb2/HxcXZ2dn19vai32MGg7GwsIASI318fBQKRX9/v7W1dXJyskajqa6uvnPnTlVVlVqtTk1NRd3ZNzY2/P39KRTKzMzM4uIii8USiURyuXx0dNTGxiYmJkatVjc1Nd25c6e0tBTtYN+5c6ezs3NjYyMsLAyPx8/MzCwvL/N4PA6Ho1Ao0O8xKiHZ1NRkY2OTlZW1s7OTm5trbW1dX1+vVqsjIiKIROLQ0JBMJuPz+c7OzsvLy3NzcyQSKTg4WKlUdnd33717Nzs7W6lU3rhxg0gkqtXqjd8zSqUyMjISVULe6xtqv6PRaObn552dnZEB+rySjdyyQqEQlbjcD/j4+NDp9IMHDx47duzs2bMHDx78y1/+cu7cuZMnT7777rvvv/++mZnZ0aNH33777U8//fTixYtHjhw5cODAkSNHLly48Pnnn7/55pvHjx8/d+7chx9++Oc///nMmTOnTp16991333vvPTMzsx9++OHtt9/++OOPL168+M033xw4cODw4cMXLlz48ssvDxw4cPTo0fPnz6OBJ0+ePHPmzF//+tf33nvv3LlzJ06cePvttz/66CN09DfeeOOrr74yMzP76quv3njjjaNHj547d+6TTz45cODAqVOnzpw58/7777/zzjvnz5//8ccf33nnnQ8//PDChQvff//9gQMHvvjiiwsXLhw+fPjNN9/89ttvzczMPv300wMHDvz444/nzp17//33//KXv5w5c+bkyZPvvPPOwYMHzczMjh079tZbb3322WfofN98803T+R44cOCvf/3rjRs3fHx89s+X+Cvw9fW9devW+++/f+bMmcev9rFjx954441Dhw6ZmZl9/fXXT1ztM2fOnD59+omr/cEHH6Cr/dZbb33xxRcXL148fPjwgQMHvvnmmwsXLqCrjW6SgwcPvvPOO+gm+c///M8PPvgAHfHNN980Xe033njj8av9ww8/oLvrL3/5y+nTp0+fPv3uu+/+7W9/O3/+/PHjx996661PPvnEzMzsu+++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" alt="" width="486" height="314" /></p>
<p><strong>（图二）可移除和不可移除日志</strong><strong> </strong></p>
<p>只要副节点能进行处理，主节点将一直异步地向副节点发送数据的日志信息，即使主节点中的事务还在进行或者这些事务还未提交。如果主节点中的某个事务最后被取消（abort），副节点中的同个事务同样会被取消。然而，应用程序的某个线程有可能会为了满足某个特殊事务对持久性的要求，会进行等待直至该特定事务在一个或多个副节点上提交。对于这类事务，副节点将通过向主节点发送确认响应明该事务已在副节点上提交。但这并不意味着主节点中的后续操作会被阻止，因为主节点在等待响应的过程中可以继续进行其他事务性操作。</p>
<p>对于主节点和副节点来说，主节点往replication stream发送写操作信息和副节点从replication stream读取（并且重演）这些操作是异步的。一旦应用程序创建了一个新日志条目，主节点就能将该日志条目写入复制流。副节点一旦从replication stream读取了这个操作信息，就可以重演该操作。并且，如果主节点需要，副节点可以在重演操作之后向主节点发送一个确认操作已经提交的应答信息。</p>
<p><strong>Heartbeat</strong></p>
<p>除了向副节点发送日志信息，主节点还会定期向副节点发送<strong>heartbeat</strong>。如果没有收到主节点发来的<strong>heartbeat</strong>，副节点将认为主节点或网络可能出现故障，并且发起一次主节点选举来解决这次潜在的问题。在任意的时间点，副节点在重演replication stream时都有可能滞后于主节点，所以在那一时刻副节点的环境可能会与主节点不一样（尽管在副节点赶上主节点之后，这些环境最终都将一致）。副节点将会利用<strong>heartbeat</strong>中的信息来判断在重演replication stream的时候它落后于主节点的程度，从而可以让副节点满足读一致性的要求（读一致性的要求决定了什么样的滞后程度是可以接受的）。</p>
<h1>应用程序架构</h1>
<p>JE HA建立在JE的基础之上，所以共用了JE大部分的API。然而，基于JE HA的应用程序是一个分布式的应用程序，这会带来一些额外的问题，而解决这些问题的最佳时机是在对应用程序的架构进行初始设计的时候。在这一章节中，我们将对JE HA的一些主要特性做一个概述，这些特性会对基于JE  HA的应用程序的架构设计有直接的影响。</p>
<h2>在应用程序中嵌入数据管理</h2>
<p>这一小节将会基于JE来讨论什么是在应用程序中“嵌入”数据管理，并且会将此讨论延伸到JE HA中。</p>
<p>在谈论JE的时候，我们通常用术语“嵌入式（embedded）”来描述应用程序和数据管理能力之间的关系。这些通过JE的类库实现的数据管理能力是被嵌入到应用程序中的。由于JE是被应用程序直接使用和管理的，所以应用程序的用户或者管理员都不需要注意到JE的存在。这种应用程序有可能运行在一个嵌入式设备中，比如一台手持设备，一台桌面机器或者一个数据中心。事实上，JE提供的是存储层的功能，因此它往往是作为存储引擎来为应用程序提供数据管理服务。</p>
<p>对比其他传统的客户端-服务器端（client-server）数据管理架构，嵌入式的数据管理架构有以下一些优点：</p>
<ul>
<li>数据将以原始的形式进行存储和读取，而不需要在不同的数据模型（比如，关系型（relational）数据模型）之间进行转换。应用程序可以将一些结构体或者复杂的对象直接进行序列化后存储进JE的数据库中。</li>
<li>不需要数据库管理员（DBA）。相反，应用程序将数据库配置和管理直接纳入到它自身的配置和管理中，其结果仅需在应用程序中增加几个新的配置。</li>
<li>数据库能够自动恢复（recovery）。终端用户不会注意到任何单独的数据库恢复过程。相反，应用程序在打开一个数据库的时候，JE只在必要的时候会自动并且透明地进行数据库恢复。类似的，当应用程序关闭时，数据库也会被自动关闭。</li>
<li>性能会优于传统的客户端-服务器端架构，其原因是嵌入式结构将消除进程之间通信的额外消耗。这种进程间的通信通常发生在应用程序和数据管理服务之间。</li>
</ul>
<p>对于JE HA来说，应用程序通常运行在replication group中的每一个可选节点中，并且都拥有一份JE 环境副本。在基于JE HA的应用程序中嵌入数据管理的方式与基于JE是一样的。运行在主节点中的应用程序可以进行读和写的操作；而运行在副节点中的应用程序则只能进行读操作。</p>
<p><strong> </strong></p>
<h2>写操作管理</h2>
<p>应用程序负责将应用层面上对数据库的所有修改请求（例如，通过JE对数据进行插入、删除和修改操作，以及对数据库的建立、重命名、清空和删除操作等等）提交到主节点上。应用程序有两种方式可以向主节点发送写操作请求：</p>
<ul>
<li>基于副节点的转发：每一个副节点上的应用程序时刻与主节点保持联系，并且能将所有写操作请求转发到当前主节点。</li>
<li>基于监测节点的路由：应用程序在监测节点中运行一个路由程序，该路由程序可以将写操作请求路由到当前主节点，并且能够将读操作请求路由到所有合适的活跃节点以达到负载平衡。</li>
</ul>
<p>当你在以上两种方式做出选择时，必须考虑以下几个因素：</p>
<ul>
<li>与当前存在的负载平衡机制的整合。在某些情况下，例如，一个基于硬件的负载平衡器，并不容易甚至不可能将一个中间级的路由器整合进来。在这种情况下，基于副节点的转发将是最好的选择，因为这种机制不会干扰到当前负载平衡机制。</li>
<li>写操作请求的延迟性。利用基于副节点路由来转发一个写操作请求会带来额外的网络跃点（network      hop），因此会增加写操作请求的延迟时间。这种延迟的增加在某些应用程序中并不希望看到，例如这些应用程序要求较低的写延迟和较短的反应时间。</li>
<li>网络利用率。如果写请求的平均有效载荷很高，操作请求的转送机制会与replication      stream竞争网络资源，这样反而会影响replication性能。如果应用程序的写请求有效载荷很高，那么基于监测节点的路由会是更好的选择。</li>
<li>操作请求的格式。如果采用基于监测点的路由方式，可能需要对应用程序的操作请求格式设计成能够易于识别其是否为写操作。例如，网络应用可以利用URL的格式协议来让路由器能识别读操作和写操作。当采用基于监测点路由方式时，必须要考虑到设计这些请求格式时的额外需求。</li>
<li>路由器的可用性。对于高可用性，应用程序的设计者必须考虑到使用多路由的情况，这样路由器就不会是导致故障发生的热点。在采用基于监测点路由时，多路由会带来额外的复杂性。</li>
</ul>
<p>对这两种方式的选择是对简单性和性能之间的权衡考虑。基于监测点的路由方式也许会提供更高的性能，但也会带来额外的复杂性。基于副节点的转发方式实现起来相对简单，但相对来说或许没有那么好的性能。</p>
<p>由于不同应用程序中的操作请求的格式和协议各有不同，JE HA并不提供任何机制用于传送成员节点之间或者路由器和成员节点之间的操作请求。应用程序必须自己提供这样的传送功能。</p>
<p>不过，JE HA提供接口用于判定replication group中的成员节点，并且能跟踪当前主节点的状态。</p>
<p>以下几个章节将描述JE HA所支持的一些功能，这些功能将会帮助用户实现上述的两种方式。</p>
<p><strong>基于副节点的转发</strong></p>
<p><img class="aligncenter" src="data:image/png;base64,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" alt="" width="437" height="310" /></p>
<p><strong>（图三）基于副节点的转发</strong><strong> </strong></p>
<p>一个基于JE HA的应用程序通过一个支持replication的环境的句柄（replicated environment handle）来访问其环境副本。这个句柄的API可以为应用程序提供以下功能：</p>
<ul>
<li>决定节点当前状态。例如，可以查询某个节点当前是主节点或是副节点。</li>
<li>将一个状态变化监-听-器（state change listener）和一个句柄相关联。这样，状态变化监-听-器将会持续收到来自主节点的各种信息。</li>
</ul>
<p>利用这些API，应用程序可以知道它当前所在的节点是否是主节点。如果不是，那么它可以将它接收到的写请求操作转发到当前的主节点上，过程如图三所示。用于转发写请求操作到恰当的节点的机制实际上是应用程序所提供的，并不会涉及JE。</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>基于监测节点的路由</strong></p>
<p style="text-align: center;"><img class="aligncenter" src="data:image/png;base64,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" alt="" width="367" height="370" /></p>
<p><strong> </strong></p>
<p><strong>（图四）基于监测节点的路由</strong><strong> </strong></p>
<p>监测节点并不拥有环境的本地备份。它唯一的作用就是用来跟踪replication group当前的状态。路由程序可以根据这些状态信息来将读写操作路由到replication group适当的节点中去。路由程序是应用程序基础架构中的一部分，一般来说不会包含任何应用程序特有的逻辑，但有一个例外：路由程序有足够的信息可以识别读操作和写操作请求格式。</p>
<p>为了实现这种方式的路由，应用程序将一个监-听-器和监测节点句柄（monitor handle）相关联起来。监-听-器接受三类消息：</p>
<ul>
<li>组内成员节点组成的变化。组内成员节点的加入和移除都会通知给监-听-器。</li>
<li>组内当前主节点的变化。</li>
<li>组内节点当前状态的变化。也就是，此节点当前是否是活跃节点。</li>
</ul>
<p>路由程序一旦接收到应用程序的操作请求，就会判断此请求是否是写操作请求。若是，路由程序将利用监测节点来确定哪个节点是主节点，从而将此写操作请求转发到主节点。对于读操作请求，它利用监测节点来确定组内的当前节点组成，选择一个活跃节点来完成读操作请求，从而在此过程中实现负载平衡。</p>
<p>更复杂的路由程序的实现将会根据键值范围（key ranges）的分布以及数据读取的方式，将每个读操作请求转发到某个最有可能在缓存中拥有此被读数据备份的成员节点中。因此可以说，该方式实现了一种读分区（read partition）数据存储模式。</p>
<h2>可选节点的热备切换（failover）</h2>
<p>在程序运行过程中，主节点的选举过程是透明的。因此，应用程序必须允许由于选举而产生的各种状态变化，这样应用程序才能在状态变化中继续运行。下面几种状态的变化均是由于热备切换所导致的：</p>
<ul>
<li>如果当前主节点发生故障，那么某个可选节点将会由副节点通过选举转变成主节点。在利用基于监测节点路由机制的应用程序中，这种转变意味着，一个之前只能接收读操作请求的节点，现在开始接受和处理写操作请求。而在利用基于副节点转送机制的应用程序中，新的主节点必须停止转发写操作请求，相反，它必须开始接受来自其他副节点的写操作请求。</li>
<li>当前的主节点可能转变成副节点。这种情况很少发生，一般会涉及到临时网络分割（network      partition），这时候主节点不能参与节点选举。因此，剩下的节点会重新选举一个新的主节点。在该情况下，由于某些试图在此副节点（之前是主节点）上进行写操作的事务会失败，并抛出异常，因此变成副节点之后的该主节点必须转发所有它接收到的写操作请求，或者拒绝这些请求。</li>
<li>由于热备切换，一个副节点可能会将自己与发生故障的主节点间的通信切换到一个选举出来的新主节点。通常这种转变对应用程序是透明的。JE      HA只需重新与新的主节点建立replication stream。在某些罕见的情形下，JE HA有可能需要进行恢复操作，并撤销某些之前已经提交的事务。在这种情况下，replication环境的句柄便会失效。因此，应用程序必须重新建立环境和数据库的句柄，并且通过访问之前环境句柄重新获得所有被缓存起来的瞬时状态。</li>
</ul>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<h1>JE HA事务配置选项</h1>
<p>支持Replication的环境必须是是事务性（transactional）的。支持Replication的事务提供了额外的选项用于对事务进行配置，这些选项对应用程序的性能有直接的影响。对这些配置选项的选择实际上是对持久性、写可用性、副节点读一致性以及性能等各方面的权衡考虑。这一章节将具体描述这些配置选项，并且突出讨论如何进行这种权衡考虑。</p>
<h2>持久性选项</h2>
<p>JE提供了三种不同程度的持久性，分别对应于已经提交的数据在磁盘上所具有的三种不同的持久状态。</p>
<ul>
<li><strong>SYNC</strong>：已经提交的更新被写到磁盘上。该级别的持久性能够保证在机器发生故障的时候，已经提交的数据不会被丢失。但是这种持久性并不能保证在媒介（比如磁盘）损坏的时候数据没有丢失。</li>
<li><strong>WRITE_NO_SYNC</strong>:      已经提交的更新被写进文件系统缓冲区。该级别的持久性仅仅保证在应用程序发生故障时，已提交的数据不会丢失。如果机器不发生故障，这些已经提交的数据将最终写进磁盘。</li>
<li><strong>NO_SYNC</strong>:      已提交的更新只写进JE的内部缓冲区。在这一级别的持久性中，已提交的数据在应用程序发生故障的时候会丢失。</li>
</ul>
<p>JE HA扩展了JE持久性的概念，即允许事务通过向快速的网络提交更新从而持久化数据，而不是提交到相对缓慢的磁盘上。因此，除了允许在主节点和副节点中设置以上提及的各种同步级别之外，JE HA还规定副节点完成事务重演之后向主节点发送一个提交响应。并不是所有事务的提交都会从副节点中返回一个响应。主节点只有在必要的时候才会明确要求副节点产生响应。如果一个副节点已经落后于主节点并且尝试赶上主节点，那么主节点将不会要求该副节点发送响应。</p>
<p>因此，JE HA的持久性有三个方面：</p>
<ul>
<li>主节点上数据同步的程度。</li>
<li>对副节点返回响应数目的要求，这一要求在与事务相关的响应策略（Acknowledgment      Policy，下文会有介绍）中有所规定。</li>
<li>在副节点返回提交响应前，副节点上数据的同步程度。</li>
</ul>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<p><strong>响应策略（Acknowledgment Policy</strong><strong>）配置</strong></p>
<p>响应策略配置提供三种可能的选择：ALL，SIMPLE_MAJORITY以及 NONE。</p>
<ul>
<li><strong>ALL</strong>：该策略要求，在事务被主节点持久化之前，所有可选的副节点都必须向主节点发送响应说明它们已提交了这些事务。这一策略会保证较高的数据可持久性，因为在此事务被持久化之前，每个副节点都拥有一份该事务所做的更新操作的拷贝。该策略也保证副节点上较高的读一致性，这是因为所有副节点都能赶上主节点，并且在副节点处理replication      stream的过程中没有滞后性。然而，该策略会降低replication group的写可用性，特别是在replication group的节点数较大的情况下。因为即使仅仅一个节点变成不可用，写事务提交操作都会失败。另外一个缺点是提交的延迟性会被提高，因为提交所需的时间将会由性能最差的副节点决定。</li>
<li><strong>SIMPLE_MAJORITY</strong>：该策略要求，简单多数（即过半数）的可选节点必须向主节点发送响应说明它们已经提交了事务。由于在事务被提交之后，该事务所做的数据更新的拷贝存在于过半数的副节点中，并且当其余的副节点赶上replication      stream的进度时，这些更新最终会传播到这些节点中，因此该策略保证了中级别到高级别的持久性。如果在主节点上某次事务成功提交之后，主节点发生故障，选举程序将保证这些事务的更新不会被丢失。之所以有这个保证，是因为选举程序要求过办数的可选节点都参与到选举过程中，从而保证了至少一个节点既发送了事务提交响应又参与了选举过程。选举算法更进一步保证拥有最新日志的节点将被选举成为主节点，这样可以在产生事务的主节点发生故障之后保持这些更新<strong>。</strong></li>
</ul>
<p>“SIMPLE_MAJORITY”策略在副节点上的读一致性没有“All”策略那么高，这是因为主节点上事务产生的更新有可能没有被复制到并不发送事务提交响应的副节点上（由于只有过半数的副节点要求发送响应）。因此，对数据一致性的要求比较严格的事务会停滞在所有有滞后的副节点中，直到这些滞后的副节点赶上主节点。在正常情况下，这种滞后会很小，并且处于滞后中的副节点会迅速赶上主节点的事务。</p>
<p>“SIMPLE_MAJORITY”策略具备从中等级别到高等级别的写可用性，这是因为replication group允许节点发生故障，并且只要有过半数的节点保持可用，那么replication group便可以继续完成那些要求过半数持久性的写事务。由于主节点需要等待的节点数较少，所以“SIMPLE_MAJORITY”策略的性能比“all”策略要好，同样，主节点会向所有与它有通信的副节点发出响应请求，但它只需要等待到过半数的副节点做出反应即可。这样意味着提交延迟并不会取决于组内速度最慢的节点。</p>
<ul>
<li><strong>NONE</strong>：在该策略下，事务的持久性不依赖于任何副节点发送提交响应。只要事务满足主节点上的同步策略，就可以认为该事务已经被持久化。由于并不能保证在事务提交的时候所做的更新已经被复制到其他副节点中，因此这种策略会导致较低级别的持久性（相对于不支持replication的JE环境）。如果在主节点上某次事务成功提交之后，主节点发生故障，那么这次事务所做的更新有可能会丢失。同样，该策略导致副节点上的读一致性较低，特别是在主节点负载很重并且没有必需的资源来维持replication      stream的时候。因此，副节点有可能会远远落后于主节点。总而言之，这种策略会提供较高的写性能，但也会带来较低的持久性。</li>
</ul>
<p>下面的表格总结了这三种响应策略的优缺点：</p>
<table border="1" cellspacing="0" cellpadding="0" width="542">
<tbody>
<tr>
<td width="124" valign="top"></td>
<td width="93" valign="top">持久性</td>
<td width="96" valign="top">写可用性</td>
<td width="120" valign="top">副节点读一致性</td>
<td width="108" valign="top">写操作性能</td>
</tr>
<tr>
<td width="124" valign="top">All</td>
<td width="93" valign="top">高</td>
<td width="96" valign="top">低</td>
<td width="120" valign="top">高</td>
<td width="108" valign="top">低</td>
</tr>
<tr>
<td width="124" valign="top">SIMPLE_MAJORITY</td>
<td width="93" valign="top">中-高</td>
<td width="96" valign="top">中-高</td>
<td width="120" valign="top">中-高</td>
<td width="108" valign="top">中</td>
</tr>
<tr>
<td width="124" valign="top">NONE</td>
<td width="93" valign="top">低</td>
<td width="96" valign="top">高</td>
<td width="120" valign="top">低</td>
<td width="108" valign="top">高</td>
</tr>
</tbody>
</table>
<h2>副节点读一致性</h2>
<p>因为replication stream代表着被序列化的JE数据库日志，所以对replication stream的重演会导致副节点从一个事务的一致性状态转变到另外一个事务的一致性状态。副节点的重演机制保证所有事务性的更新会作为一个原子单元来提交，并且更新的过程会与其他正在进行的写事务隔离开，从而保证这些更新所要求的隔离性（isolation）。如果从单独一个节点的角度来看，副节点的所有行为完全具备事务性，并且满足通常的ACID特性，就如不支持replication的JE环境一样。这一章节将讲述关于副节点与主节点之间一致性的问题。</p>
<p>JE HA支持最终一致性（Eventual Consistency）。这种一致性模型并不能保证在事务在主节点提交的那一刻，所有副节点保持一致。然而，它保证在足够长的一段时间内如果没有新的更新产生，那么所有的更新会在所有的成员节点中传播，并且所有的副节点最终会与主节点共享一个一致的环境视图（environment view）。</p>
<p>由于所有在主节点上的读操作都具有绝对的一致性，所以所有要求绝对一致性的读操作都应该路由到主节点中。应用程序可以利用之前提到过的写转发（write forwarding）技术将这些读操作请求发送到主节点中。然而，对于并不要求绝对一致性的情况，在副节点的读事务开始时，读事务可以指定副节点滞后于主节点最大所能接受的程度。有两种方式可以量化这种滞后程度：</p>
<ul>
<li>以时间衡量 – 在JE API的TimeConsistencyPolicy中有所描述。</li>
<li>以副节点在replication      stream中的位置衡量 – 在JE API的CommitPointConsistencyPolicy中有所描述。</li>
</ul>
<p>滞后的程度主要取决于主节点和副节点的负载，以及传输replication stream时的通信延迟。还有一种可能的情况是，某个副节点在一段时间内都没有和主节点联系，它需要赶上主节点在这段时间内所做的一些更新。</p>
<p>对一致性策略的选择取决于应用程序所采取的操作的性质。而对所选择策略的配置会直接影响到副节点上的读操作性能。接下来的章节将会详细描述这些策略以及它们的一些配置。</p>
<p><strong>时间一致性策略（Time Consistency Policy</strong><strong>）</strong></p>
<p>这种策略描述了当副节点上的读事务开始时，副节点允许滞后于主节点的时间长短。假设t0是当前时刻（t0是时刻变化的），lag是所允许滞后的时间长度，那么所有在（t0 – lag）时刻之前在主节点上被提交的事务都必须在副节点上进行重演。而在这些事务进行重演之前，副节点上的读事务都不允许进行。值得强调的一点是，t0是时刻变化的瞬时间，而不是读事务开始时的固定时间，意味着副节点是在试图赶上一个随时间不断移动的目标。因此，这里的滞后表示的是一个有固定长度的时间窗（长度为lag），这个时间窗是随时间而不断移动的。所以，副节点上的读事务会一直等到副节点对replication stream的重演充分赶上主节点之后才开始，也就是说，直到副节点所重演的事务落在长度为lag的时间窗口之内时，或者来自主节点上的heartbeat表示副节点已经赶上主节点时，副节点上的读事务才可以开始。如果副节点在规定的时间内（这一时间同样由此策略设置）没有赶上主节点，那么读操作事务将会被放弃。</p>
<p>时间一致性策略可以适用于某些网页应用中。在这些应用中，可以使滞后时间小于用户访问一序列的网页时的交互时间。</p>
<p>在给定的负载和可用的硬件资源情况下，如果将滞后时间设置得过短，会导致经常性的超时异常，从而会降低副节点的读操作可用性。过短的滞后时间同样会增加读操作请求的等待时间，因为副节点会让读事务一直等待，直到它能在replication stream中赶上主节点。应用程序的设计者应该需要从应用程序的角度来决定可以接受的最长滞后时间，然后用这个时间来配置时间一致性策略。</p>
<p><strong>提交点一致性策略（Commit Point Consistency Policy</strong><strong>）</strong></p>
<p>这个策略以副节点在replication stream上所处的位置来定义滞后时间，这个位置与某个特定的事务的提交点相关。这个策略保证，在副节点上的读操作可以开始之前，replication stream上所有在提交点之前出现的事务，包括处于提交点的事务，都将被副节点重演。这种情况下的滞后表示了一个可扩大的事务更新窗口，窗口的下端固定在提交点，而窗口上端可以随着新事务在主节点上的提交而扩大。JE HA扩展了事务的API，从而使应用程序可以得到与某事务的提交点。</p>
<p>和时间一致性策略一样，如果副节点在该策略规定的时间内没有重演提交点所限定的事务，那么副节点上的读操作事务会被放弃。</p>
<p>提交点一致性策略可以为网页应用提供会话一致性（session consistency）。通过将一个提交点和用户的会话相关联，并且在会话的每一个写操作中更新提交点，这样便可以实现会话的一致性。会话中的读事务可以利用提交点一致性策略来保证所有的读事务都可以读到会话所写入的数据，而无论该读操作是发生在哪个副节点上。</p>
<p>由于需要应用程序在读写操作过程中维护提交点的状态，所以提交点一致性的使用会比时间一致性复杂。时间一致性相对来说比较简单，但是它对时间的依赖意味着，当主节点、副节点或者网络负载过高时，这一策略不一定能正确地实施。</p>
<h1>性能</h1>
<p>由于JE HA 以JE为基础，因此所有适用于JE的性能调优方法都适用于JE HA。除此之外，还有一些专门针对JE HA的调优。以下章节将进行详细说明。</p>
<h2>持久性</h2>
<p>持久性配置对应用程序的写操作性能调优来说是最重要的方面之一。在不支持replication的JE环境中持久性的缺省设置是SYNC，这样可以保证已提交的事务在机器发生故障时不会被丢失。虽然SYNC设置通常会导致较大的性能损失，但为了保证数据在事务提交之后可以永久保留在磁盘上，这种设置是必要的。</p>
<p>对基于JE HA的应用程序的调优，把持久性设置成，NO_SYNC和SIMPLE_MAJORITY是一个较好的着手点。这个设置可以允许主节点和副节点异步地向文件系统和磁盘写入数据，也就是在提交之后的某个时间点才写入磁盘，而不是在提交后马上同步写入文件系统和磁盘。此外，当向磁盘存储数据时，JE可以对多个事务产生的更新进行打包，从而形成条数较少的，体积较大的，然而效率会更高的顺序写操作。</p>
<p>把提交响应策略设置成SIMPLE_MAJORITY可以减少主节点等待提交响应所带来的延迟时间，因为这种延迟不受性能最差的副节点所决定。对节点数目较大的replication group来说，延迟时间会随着节点数目的增大而延长。采用SIMPLE_MAJORITY设置可以保证万一当前的主节点发生故障时，数据在其他副节点中是可用的。但是有一种情况例外：即同时有多个程序发生故障从而导致过半数的节点（这些节点将会产生提交响应）在事务提交之后并且在将数据存储到磁盘之前发生宕机。这时候主节点会由于接收不到过半数的节点发来的提交响应而进行无限期等待。</p>
<p>从这种持久性设置开始着手调优，程序设计者可以为程序的整体需求选择最好的持久性等级。值得注意的是，持久性可以在事务级别上进行设置。这样可以允许一个程序的不同部分根据本地的需求使用不同级别的持久性。</p>
<h2>读一致性</h2>
<p>为了能有效利用副节点上的读操作吞吐量，并且能使主节点上的负载达到最小（因为只有主节点才能进行写操作），所有不要求绝对一致性的读操作请求都应该由应用程序路由到副节点上。并且，为了使延迟达到最小，可以在满足应用程序需求的条件下选择最不严格的一致性策略。</p>
<p>和持久性一样，可以在单独的事务级别上设置一致性。在之前的章节中，已经详细说明了如何选择和设置一致性策略。</p>
<p><strong>Replication stream</strong><strong>的</strong><strong>代价</strong><strong> </strong></p>
<p>JE HA利用TCP协议从主节点向副节点传输replication stream。在一个有N个节点的replication group中，一共有（最后肯定会有）N-1份日志拷贝在网络中传输。因此在设计数据模型时，对键（key）所占空间大小进行优化会对性能有所帮助。特别是对写密集型的应用程序来说，这一点尤其重要。</p>
<p>值得注意的是，正如写操作性能的瓶颈往往是连续写磁盘的吞吐量，网络的吞吐量也正是replication性能的瓶颈。因此，重要的是要确保可利用的网络带宽能够负担预期的写负载。</p>
<h2>副节点的滞后</h2>
<p>当主节点需要向副节点发送最新的日志条目时，由于最新的日志条目很有可能存储在主节点的缓存中，从而不需要访问磁盘，因此主节点上的缓存能有助于主节点高效地构造replication stream。如果需要访问磁盘来获得旧的日志条目，则会导致与正在进行的所有磁盘写操作（这些写操作会在磁盘存储新的日志条目）发生竞争。这种读/写磁盘的竞争会扰乱顺序写磁盘的模式，而这种模式正是JE能保证较高写操作性能的关键。</p>
<p>因此，最好能保证所有的节点处在运行状态，这样副节点可以和主节点的保持一致，主机点将不用频繁通过访问磁盘来构建replication stream。如果某个副节点发生故障，则应尽快让它恢复运行。</p>
<p>如果某个节点（假设是节点A）发生故障，某些日志文件尽管已经被清除器（cleaner）回收，但是这些日志对节点A来说是其恢复运行后构建replication stream所必需的，那么JE HA将会阻止replication group中其他活动节点删除这些日志文件。JE HA只会在某段时间（这个时间是可设置的）之内阻止对这些日志文件的删除。在这段时间内，日志文件将会在活动节点中不断堆积，导致活动节点存在磁盘空间耗尽的风险。如果节点A在这段时间之后（磁盘空间已经耗尽）重新运行，那么有可能任何一个活动节点中都不存在一个连续的replication stream。因此，这种情况下节点A需要进行网络恢复（Network Restore）操作。网络恢复操作将某个活动节点中的日志文件复制到节点A中，然后在节点A中开始重演主节点发送过来的replication stream。如果数据库环境比较大，网络恢复操作则有可能是磁盘读/写密集型和网络传输密集型操作。</p>
<p><strong> </strong></p>
<p><strong> </strong></p>
<h1>JE HA的可扩展性</h1>
<p>JE HA架构支持单节点写和多节点读。下面的章节将分别描述读操作和写操作的扩展。</p>
<h2>写扩展性</h2>
<p>对于单节点写来说，写操作的可扩展性主要由主节点处理写操作的能力所决定，继而又取决于主节点上可用的硬件资源。通过使用提交到网络这种持久性策略，以及通过降低那些不需要绝对一致性的读操作的负荷，主节点可以降低某些I/O负载。</p>
<p>在当前的实现中，主节点负责维护发送到其他所有成员节点的replication stream。每个replication stream的构建都会在主节点上增加CPU负载。为了改进这个问题，每个replication stream都将由一个专门的feeder线程来维护，这个feeder线程可以利用多核机器的优势来维护并行的replication stream。每个replication stream同样会给主节点所在的子网带来网络传输负载，并且写密集型的应用程序对带宽的需求有可能会超出子网上可用的网络带宽。</p>
<p><strong>写分区（</strong><strong>partition</strong><strong>）</strong><strong> </strong></p>
<p>如果应用程序的需求允许，写操作的水平扩展性可以通过将数据分区到多个支持replication的环境中实现。但是JE HA目前没有提供明确的API来支持这种数据分区。</p>
<p>下图描述了如何利用三个支持replication的环境来对数据进行分区：RE1，RE2和RE3对应着三个replication groups，G1，G2以及G3。数据既可以均匀地分布在三个组中，也可以基于预期的写/更新频率来进行分区。例子中的每个replication group由三个可选节点以及一个监测节点组成。这几个replication groups分布在三台机器中MC1，MC2以及MC3。</p>
<p>这个例子里的路由器包含三个监测节点：G1（M），G2（M）以及G3（M），每个监测节点对应一个replication group。路由器必须根据数据分区规则来将数据操作请求路由到特定的节点中。这些路由方式都取决于要访问的数据本身以及操作的类型（读或写）。</p>
<p><img class="aligncenter" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXkAAAE1CAIAAACN+wd9AAAgAElEQVR4nOzdV1QjaYLo+Tqnp/tpXudpz+7OmXP33J3de+/cHXfbT3dNd3VVV2W5rDSVPpPEGwl5IYywwgkQwiO89x5hhSS8Ex6BDMII5L233z5kJuWASigyEVXf76mKlCI+BPoTivgi4h0AQRD05r1z1QOAIOgnAbYGgqC3AbYGgqC3AbYGOjetVtvb22u32696INB1AlsDndv+/n5iYqLJZLrqgUDXCWwNdG5SqTQ9Pd1sNl/1QKDrBLYGOjfYGugCYGugc4OtgS4AtgY6N9ga6AJga6Bzg62BLgC2Bjo32BroAmBroHODrYEuALYGOjfYGugCYGugc4OtgS4AtgY6N9ga6AJga6Bzg62BLgC2Bjo32BroAmBroHODrYEuALYGOjfYGugCYGugc4OtgS4AtgY6N9ga6AJga6Bzg62BLgC2Bjo32BroAmBroHODrYEuALYGOjfYGugCYGugc4OtgS4AtgY6N9ga6AJga6Bzg62BLgC2Bjo32BroAmBroHODrYEuALYGOjfYGugCYGugc4OtgS4AtgY6N9ga6AJga6Bzg62BLgC2Bjo32BroAmBroHODrYEuALYGOjfYGugCYGugc4OtgS4AtgY6N51OR6PRrnoU0DUDWwO9rsPDw7m5uaWlpcHBQSQSOTU1xePx9vf3vV7vVQ8NugZga6DXNTU19fd///e/+MUvfv7zn//sZz/7xS9+8bOf/czPz8/j8Vz10KBrALYGel0OhyM4OPidr/mbv/mb7OxsuF0DvQ7YGugcurq6fv7znx+35u/+7u+2trauelDQ9QBbA52DRCL57W9/e9ya+/fvm0ymqx4UdD3A1kDnExQUdNwaeDQKen2wNdD5DA4O/u3f/u0777zzD//wD5ubm1c9HOjagK2Bzmd/f/8f//Ef33nnnQ8++MBqtV71cKBrA7YGOh+v14vFYt95552KioqrHgt0ncDWQOfW1tb2z//8z8vLy1c9EOg6ga3xUXq9fnZ2lsvljvuezs7OoKCg0dHRqx7ICbhcLo/Hs9vtV/0DhL4NtsZH9fT0BAYG0mi0HJ9EpVKveggny87OfvLkydra2lX/AKFvg63xUd3d3R0dHVc9imspLy9vcXHxqkcBfRtsjY/q6elpaWm56lFcS7m5uTwe76pHAX0bbI2Pgq25MNga3wRb46O+2xqNZL2jtry0lFFaWsKobFgUyr93IR6rhr8hcbjf2Ch9EmyNb4Kt8VHfbQ2vlX7z/VsUWmFxcUECLuTOU8yc9HvORVLOtkVE5Ch/YsdkYGt8E2yNjzqhNe3FaFy+AQAAgEc243f/08rZI+A0cjsqEuPj0vKqNg9ko52Nw8tSAMBSb1Mfi9dHRf7ylx/Xc9bdbiu7rTQhnpxZ3LCrdxqPNsrys1NTU1s4a44f3QUhYGt8E2yNj/pua1Y6i+7euE2mZKRTknGIoPAoqlhnXRko9gvCtPT2FySjI+NSiajwrK41AEA7OSKpeHilk37rFnpFqlkbYjwJJvSPccrScDH0TuHK4Md/+DAhv35JfPTj+4AFW+ObYGt81Hdbs9xZ/Oi2X1FFVTzi4fu3QiZ3LQA46ymhmR3zAACgmo0MvX8nAMEYEQMABjKIOQ0LuuUeRGSRC4CG5Ad38LSJ6Zme8sR7ARju/GhIeMrej/SzFWyNb4Kt8VHfbc1SRzEan28AAJj30U9vPosrmJocjnryMSqznLe8MsUsv33zP3/1l0/xOS3LywtpgfdCo4u6ihI//wI1yh0lPP79v//5E7/nz589exZJSiotpX7xZXDT4OTM9NTU5OTk5OTU1NTc3Nz09PTUyy9cgqmpqReLffEfl7jYycnJ3d3d01462BrfBFvjo77bmoVmenBYusIODAZD0Jfv/z//5f/41B8fi3r27//0P9776Mav//V//OHms+c3//zf/vu/fPD+u//lf//f/nwHmU4I/G//5z/cCsLEop792z/9zxs3b/3n73714X0EGR/4r798L4pCy6O/RKPR7t69SyaT6ZcqMzPzs88+y8zMvNzFxsfHR0dHn3btUdga3wRb46O+25rd+ZHqOqbBBRRKZVoioSUvtWFo2ekycdrLkxLj0+kVa4dms3SlOCMpJSOPUVTInNkDDllZWlzFwILbYx1tKklOSqRkFS9KdGYFv7KuR+38xhqzsrJ2dnYu97uw2+1xcXEOh+NyF6tQKBISEtzuk/c1wdb4JtgaH3XGXD65XE5JTXe5L/PuBW63m0qlbm9vX+IyAQBGozEuLu7SrxMqlUqTkpJga64X2Bof9T2toVDMFsslrs7lcsHWQG8UbI2P+v7WXOotbmFroDcNtsZHwdacAbbmOoKt8VGwNWeArbmOYGt8FGzNGWBrriPYGh8FW3MG2JrrCLbGR8HWnAG25jqCrfFRsDVngK25jmBrfBRszRlga64j2BofBVtzBtia6wi2xkfB1pwBtuY6gq3xUbA1Z4CtuY5ga3wUbM0ZYGuuI9gaHwVbcwbYmusItsZHwdacAbbmOoKt8VGwNWeArbmOYGt8FGzNGWBrriPYGh8FW3MG2JrrCLbGR8HWnAG25jqCrfFRF2uNRiqcm56cnluSG79xOXGTRqY2Ws9Y3ZmtcR/tbM5MTc4v83W2lxc59jpNgtX5qbklueGsu0yd1RqvXcJfmZyY4G2IrK8uney2alfmpngbYvuZF1OGrbmOYGt81PlbY19gVgT7B0REopFhQcGouIktBQAAAK+Mz0Hcu984IThjdae2xqXvr6YGBQRGotBhwQHYBNqa1OCxa9oLk5EoLAGHxCXm82Wnbrac1hq3WVqdHfM8IASNxYQEPIvKrJJZPC7DASMZF4EmENAoetOY+fTcwNZcR7A1Puq8rVFtDAXef1g+wFMbTCbtYV0GPqN6yAWASsiORfj9/l9/W8U+6/PRKa3xCtk1Tx6HdE7y9Sazam81P5FYPbisl69SKakj6zKrkp8U+rRicOm0xZ7WmsmaxHv+xPHNfbPVcrQ1GY9CMteVpqNlGq1YoHGKODWPAuKF2lNjA1tzHcHW+KhztsY1UpX8DFty/DHJZlAcyNReADQHa9NT41TU08ox/hmrO7k1Hn1dGhaf03/8njaoj2Rqg9NuUqg0HgCcsmVScEDL6VtMJ7fGq04MfpLdtnq8GrVsT2mweT1Oq92mEC9mxyEw6fU653cW9wpszXUEW+OjztkaazMdF5zRCwCwHC4VUBOIREJqWafS8uLOkIZigl8F6/ytsctosWGJjTwAgGKLnZEcQyRF57eyzW4AAHBpRHnxEcScBrnZddpiT26NQxz+7HHVpAwAIJpujYshEYhRVaMbL/5xe6IdF/48nFy0pz/1DnawNdcRbI2POmdrPBMNGQ9DqFoAgFO7ujTbWEj6y0PilsYDAAAOdSHu2UVa4zG3ZRERSY02ANymo8VZTm5C+B1MnsoBzEfr+UmYmNx6he2s7+KU7RpDRtjjxMoJAIBFKZqZHCWH3Xmc2ms1qXakcgCAW7UeFXCvdvbUO3bD1lxHsDU+6rz7a0y7s1i/+9G5DQurmwL+Slka4ouIjH2jFwAAHCo68n7p8MYZqztt37BsqS/g0WNqRffy5tY6bzyVGBic2qBQ7eXi/R6EkzmLm7u7ezrTqb05bX/Nen/hl/f9yztZm9vClZlBzPPbhMpp5fYwCkUYXdndmmwNfuY3sKE8bbGwNdcRbI2PusAx78MNbgoRGeDv7+fnhyFncdb2Xn62ceoaMkjtM+IzVnf6MW/XOrcjFhPu7+//3D8ojspY3tXI1wee375x91FgRHhYRGT0EE/sPWWxpx7z9lgmuysw4cF+/v7PA0NSCht3NDaPTd1dmoaIQESiscUdE5aTSwIAbM31BFvjoy44l89lVasUCpXG8Y23oddhtThcp793v28un8tuVikVKo3+xSLcDotOp1EplXKZTC5Xmm2n7sU9ey6fw2JQyOVq3df/1aNVypQa4xlDBbA11xNsjY+C84bPAFtzHcHW+KgLtMaolqt1+n3R9p7ieLvAfSgR7cs1HuBRHR2d8ank9NZ4tCq5WqPZEQrkupf7ZTxu675YLNOaXE6bUqFynD7p7tTWeB1KhUKvUW5vCXSvhuWyG8XbQrXZ7raZ5MrTZ9fA1lxPsDU+6rytscrXi3ILJ+cmA//07zdCcl/sFPZqVu6/+y/+KXUO4Bmto1UNLJ/2Bj6tNWrBREFRNXuo/eav/i08s+PF+QiypY5P//jbhNoxu1XTUpbXPy857bs4rTWiqbb86u7prpJ/+6//lNH2cirg5iD91//y6/JJsUsvKaXRpsS60xYLW3Mdwdb4qHO2xjnelJNaOaw5WPZ/791f/9lvVmoHAIjHqv70v/6vZ6m1VgB0W6PR0ZQtzcmnL53cGpeusyi5lLm0M9938ze/+fQZeVvrBsDDroz/3W/+ObZmxAMAn1WXlFUpO2WT6eTWOBV5ZHzX8iGfWfKr//tfn0QxtC4AgL0p6dn/98tfFnOEAHimmmmJRV2nTbCBrbmOYGt81Lla49ZLqDhM58Kh9YiHfhwS+PBpUf8aALaW3ITQgM8R2XVmAIBLkR2NKB8TnrjME1tj3J2PRRHn9k0Hi/0hD4JDAxEdc/te62FxEtbP7y6lccQFgFW+FEeIGjrl+PSJrdGs9ISFpxzYwUZf6f1bIaGhmBmp3avZTEQFPn12u4SzBQDQCEbCEdHrmpNrAltzHcHW+KhztUa3MxkeQprdt1ul8+jAKAY9A5NSfbS/TCGnludhkZnVJgAAcLVlkMgFoycu88TWiGY6gpEZeyawP9uDCk8qpCanlTGFvOE0SjqVgkptGHICAKwyOhFf1rt+4mJPbM1COy0gptYGwFpXYSCSVpCMy+9dE000xFOyk6KeF43xAQBOjTA2IKx3SX3iYmFrriPYGh91rtaoBKzAsNiFQ6f1YB75PJrNHonBEqvK6anFPezG6PD0KhMAAHj6smJisvtPnAtzYmv4E03+mGypFezNdiMiqGPMVnJccnE+tbihryEfl1I/5AQA2FSlUfji9pPf2ye2ZqIxPSCx2QHAWld+ALpqrq8En5BbTkus7eXkxvkVsPgAALdOkhwQ2jErO3GxsDXXEWyNjzpXa8xSHi4YxxUarQezwfcxswJZbeLz3//5bvPs3mwDLiC5zAgAANaqJCyldvbEZZ7YGukSMyI0Uah17810BAakbgi2MlD33rsZylkXttAiyFVMJwAe024aAV83JjpxsSe2hs8s8UcXGQFYaac9CmUopSuIe3/96AFJINvPwd/LHd4AANgUK5hAJEtw8nF92JrrCLbGR51v37BDU5mMLRlctyk2k4gZK1KHeLTgy8A4kd671p8ZX9phBcCr347HRjJP2bFyYmucGgGViO5ZPZKtsxPIDKnGPFaXFEAqVhkNg7WUwu4JNwCarVFSdBLv6OQonNgax9EcJhSzqHQIWfXEpFan21qfFhyS3gPc2qosfN2MGACwN9WAiKLKTtk5DFtzHcHW+KjzHvMWTTSRkktlZqfVYnV7gNfjNFvtXgBcDovZagfAuzZUEZdZoznl3XvKMW/nXHdRclGn1ua0WGweL3C77Ba7EwDgsFmsDhdwW4Zrcmg1w9ZTjqWfcszb0VFAzm2ZsjkcZosdAOB0WC0ONwBem8Vkd7k9dk0jLbG0b/m0Fwe25jqCrfFR557L59AOd7SsHlpOXpzXzu1unBaevKsVnD6/xqnf7+vs3tGcfBaCyyQf7OniH516SsFp82tMB6ttXUPaU8JnUQo7O3oPTadOPYStuY5ga3wUPEfhDLA11xFsjY+CrTkDbM11BFvjo2BrzgBbcx3B1vgo2JozwNZcR7A1Pgq25gywNdcRbI2POrs1qampVutZ95Y7L4/Hk5WVJRSefLbUhZnNZjKZbLGccnTsoo6OjmBrrh3YGh91RmtkMllCQoLRaPRcHofDkZqaurm56fV6L3Gxer0+KirKYDBc4jK9Xu/e3h6ZTIatuV5ga3zUGa3R6XQYDIZMJlMuT0pKyv379wkEQlpa2mUtMzU1NSEh4fbt2wkJCZe1zBeLJRKJSUlJXu/JlzmGrfFNsDU+6ozWeL1euVy+fdkkEolQKLzcZQoEgt3dXYFAcLmL3d7e1mg0p710sDW+CbbGR53RGuhssDW+CbbGR8HWXBhsjW+CrfFRsDUXBlvjm2BrfBRszYXB1vgm2BofBVtzYbA1vgm2xkfB1lwYbI1vgq3xUT09PW1tbVc9imuJTqfD1vgg2Bof1dnZWVdX53K5nL7neBKdDw7P5XJlZmYuLCxc7Y8P+i7YGh81MjISHh5OpVIzfAmVSs3Ly4uJibl//35AQEB2dnZ2dvZVD+rbQkJCti/7JFLoh4Ot8VFWq1UsFvN9xtbWllAoXF9fp9Ppv/nNbz766KPg4GACgcDhcHZ2dgQCwdbW1lWPkc/n8zc3N3d3d10u11X/AKFvg62BXpfL5RoZGent7SWRSKurqwAALpdbW1s7PT192mmQEHQMtgZ6Ldvb29nZ2f39/Q6Ho6ys7EVrAAB8Pr+8vJxGowkEgqsdIeTjYGug78fn8ysqKjY3Nz0ez8bGRm5u7tc/pLz4YnFxcWNj4+Hh4RWOE/JlsDXQWSwWS0dHR0VFxdHR0YuvzM3N5eXlffeRSqWyp6cnMzNzdnbWbre/3WFC1wBsDXQqo9HY3Nzc1NR0HBqXy1VZWTkzM3PaU1QqVUVFRVFR0ezsyTfzhX6yYGugk01PT2dlZY2Pj3/9i06nMzk5+eDg4IwnWq3Wubm5goKC/v5+tfrUu99BPzWwNdC3Wa3WiYmJ6urq7+7uFYvFBQUFOp3uexfi8XhaWlqysrK6urqczpNvmwn9pMDWQN+gVCqLi4srKytPvE9Df39/Y2Pj6y9td3e3ubm5pqZmc3Pz8sYIXUuwNdBXNBpNeXn5/Pz8iTt3zWZzaWnp2traeRfLYrEKCwvZbPal31ABukZgayAAAPB4PMPDw3l5eRsbG6c9Rq1WJyUlXexmT3q9nsFg0Gg0Npv9A4YJXWOwNRCw2+0DAwN1dXVnn0a0trZWXFz8Q+5Ltb6+XltbW1dXt7+/f+GFQNcUbM1PnUQioVKpHR0d37sHt6qqamRk5Aeuzmaz9fb2ZmZmtre3wzMbflJga37ShEJhWVnZ+vr6977tPR4Pg8GYnJy8lPWq1ere3l4ajTY/P2+z2S5lmZCPg635iXI4HD09PQwGY29v73Uev7u7m5OTc7l35ubxePn5+VVVVSqV6hIXC/km2JqfIofD0dzcXFdXJ5VKX/MpAoGAQqFc+kicTufk5CSFQunq6oIT/37cYGt+chYXFzMzM1ks1us/xev1dnR09Pf3v6EhKZXK+vr6kpKSCxxQh64L2JqflsXFxbKysjMObJ/I4XCkpaXt7u6+oVG9wOfzc3JySktLhULhG10RdCVga34qTCZTe3t7RUXF65xh8C1LS0ulpaVvYSeuzWZjs9klJSVMJhPuM/6Rga35STAajaWlpbW1tXq9/gJPZ7FY5eXllz6q08hksoqKivT0dHiy+I8JbM2PH4vFysnJWVpautjTnU5nQ0MDh8O53FF9L6FQWFVVVVVVJZFI3vKqoTcBtuZHbnBwsLKy8rw7aL7OaDSmpKRcyWFpo9E4ODiYlpY2ODj49tcOXS7Ymh8tuVze0dHR2Nj4A28qIJVKs7OzL/bh61KYTKaWlpbMzMzJyUl4g4TrC7bmx2l/f59Op9fX1x/fN+7C2traenp6LmVUF+b1eldXV/Py8pqbm+Vy+dUOBroY2Jofob6+voKCArFYfClLq6+vf3Mza85raGgoLS2toaHhxMvrQL4MtuZHxeVytbW1lZeXX9aJ1FqtNisry6fujqBQKNra2hgMxvF9Y6BrAbbmx2N9fT09PX1gYOASl7m9vZ2RkXGJC7wsi4uLWVlZeXl5r3+aBXS1YGt+JNbW1kpKSlZWVn74DppjXq+XwWCccdeEq2W326empvLz8/v6+q56LND3g6259qxWa19fX2lp6Zs4LJ2RkeHjlwre3d2trq6urq4WiURXPRboLLA115vFYqmoqGAwGBqN5tIXvrOzk5+ff4FzGt6+F/uMKyoq4CWNfRZszTU2Pj6enZ395j7jTE9P5+fnv6GFXzqj0Tg0NJSTk8PlcuEV/3wQbM11NT4+/kYvwuB2u5lMZmtr6xta/huyvr6el5eXnZ2tVCqveizQN8DWXD8ajaa3t7eqquqN/vU2m80UCkUmk725Vbw56+vrFAqlsbHx+O7A0JWDrblmlEolnU6vrKx805dcMBgM6enp17Q1AACVStXc3JyVlQWn4fgI2JrrhMPh0On0t3NgiMVi1dbWXvfzj6RSaUZGBp1O/yFnn0KXArbmevB4PL29vfn5+W/nyK7b7a6trR0dHX0L63oLJiYm6HQ6k8k0GAxXPZafLtiaa0Cn03V0dHR1db21NapUquTk5Mu9a8LVMhqNlZWVaWlpP5qAXjuwNb5OJBKlpaW1tra+zeO4SqWSTCafeFfva00sFtfW1paVlb3paydD3wVb47vsdvvIyAiDwXj7p/y0trYymUyPx/OW1/sWeDyewcFBCoXS0tLicDiuejg/IbA1PspqtTY3NxcXF1/JOdY5OTkLCwtvf71vjdls7u/vz8rKmpiY+PFtvvkm2BpfpNPpGhsbz3ULp0uk0WjodPpP4VPGxsZGXl5eeXn5mzjDA/oW2Bqfs7i4mJSUxGazr2oAPB4vKyvrqtb+9s3OziYnJzc1NSkUiqsey48ZbI0PMRgMw8PDNTU1VzuDbmJigsFgXOEA3j6NRtPS0lJUVLS0tHSJF+WAvg62xlcYDIbi4uKL3SvuErndbhqN9tOc+ba9vZ2dnZ2Tk3N84023+1V3vB738Y5yj9vtch9/2eFw+lScbFaL3emLp57C1lw9r9c7NTVVVFR0KbPpvV7vD/nLLJVKaTTa5e6/cLs912Vbwev1zs7OFhUV9TOZIk5DcnKB2gsAsHVSQx9gi1R2AIClKYvSOLL94vFm2UZJWcvm5npHI1NteduH7RyKrdqKbt1Xu7adk81Z/iG4gXnJWx7J64CtuXojIyMvLqn3PY9zmTnNFf2TmwAA+9FadlJsG1cEADAfbVYU1e1qnS8etT7R38be9Dr0HCZLqj33EZaBgYH6hsZzfw8veSVLU1O8veOwuAx7DQWUtPzGQ+N1OrqsVCqrqmtLUoLe/+TerAYAswh3791fffycKzED8xY64FnjlFgpl4oE/NWVeebQ+HBd3qM7YZyNQwCAVSfbWF0W7MmPNy28HqdGebSzI9wS7VpcwG3Rba8vbwj3bG4AAPA4TGL++ua2+PBQZrTYtEqZSm8FAJhUcoXaCACwG5Ubq8tbO0cvzhaxaI9Wl5f4YqnD49nuK/78o4CJbfmLyGlF8+jP/hSSyNhRmtRS8dLy6oHSCACwGTV7ezt8Pl+ms77tl/JrYGuuksFgYDKZrzvRw2vrzcdGZjfZABCNVf351/8zKLXJCoCIU/44nCJU2RwOq16nXpkeY/F2tYIJxIOQwaVDAIDTYlCq1F/f0Pe6XXa7zaDXGsx2AIDHYVapVFaHFwDQ19/X3FCj12rNFpvT6XS73Tab3e31Aq/HbrO9+OjgtBpVao391ZvJbtYrVWqb2wvcpsYEVCytx+hwv1jN1mD5l5/cKu6aMjtdJp1apTW+eIrDYbeYjVqd0eXD2zuT4yP3PnwXlVSwMVCCJ1HSyfgiJl/PH0Ag4ubX5zBP7/mFo1OyMzDRmXQy9oN3P6sYWNQc8elkDBqPQ+NJbRNbL14ht01RHI+6+/B5SmH99u5OQ248Eo3BYHDFndM2u2moOjsyEheDRz54GDEwu1GfTynoWQYAjBWn0irHjCpxQRIOjcOh0Lj6sU2zais3MSoqLh6NwDSO8FglMb/75V/LmQtOAADw8lmNt373W0QaY6C3MQoZjsOjEYSkKZFiZbjq7ue3w/Hxw+tXedY7bM2VkUgk2dnZDQ0NTqfzNZ8iHm8Mw+ZIdaZ+RkpUXDQCn7atMrNKohPLerm91SEhIfgYcnJaenHXPK+N/ud//21sUdf6wlACPhKFjkzKbzoyvcyDQjhJCA8KRWKqR5bkO0u5CbhINIqcUTwjUCRFIVOxQXhCdBQmMjqtRrDNS0+jL8nsHp2kNDl9aksp54+nxmAi0ejE3JpdrWVvaYhCJuGw2MTs6uXF6Zi773/8gDC7owIAuCzKyujA//iPGyW9Y/31RQR0JCISld/MtjoNZUk4/5Cw2JyqQ4sPxwYAVhHqy4h41NOPw4jZ4w2U6Jy6sY5CArX9UDL74JNHbTMSyQozKCKhr7OFiEzd05lHqmKfYKgbB0fjTdRAJFmgdQAAPNZDCiIkit6rM1kWmQUPgghT29L10drggMi+4TYMEtm3LFVssUPuB7RzlkpTienN8wAAJpVEye8aqU+5j6Ss7csWuvOeBpE43JZH9x+XdXOmRvs5SztHCz3BfuRdw8vPbh79blpIcNsoN5Pol9kypddrWmlYDLVyoKXgziPy2r7G7rrK/Tjna41JdSjZlbsBAF63fG9ra1fp9gLgdcn3JHL1y3NnbEa1aOfAZLZoNXqX523/JrkdVrVa53y1XrfdsLXKWxccOHxpBqzdbh8fHy8vLxcIBOd7onQ+Fk0cW1zMSYjvYXGp0Zjuqbn8WGzjlHi4IvmjO8QlgaA6i4TJG9KJZyMfIzg8XmL4g/iKwX3JWnL4w5z2+Rcvg3Sl79O/3KseXFSq96vSUWHJFcKd7cpUNIJS/e6fPnwSkbgs2mnJwX/pl7K0zAkPI4zv2TwqfmIQsps9kxcfHlPQLhQsZRPDsmt7mwqinqFSWePc5vqmdfFuSxIuMX/A/HI/qmezrywCkcodrQ8KCu+a2tyc6Qx77t+/tBzz+PuZjzQAACAASURBVE4EpV4glfnUz+W7ROP1mJiMaAICnUyPQz67+zSSQiZUjgl00tmQUNKaFhjEnHBUMrOnnYShHml1dakPPnwUmplDSyXjwgnxPJkZAOC2SLPjSOWjYgAAqwr/wZ1HFCotMyU2FIFiVGRhSEkSGwBubXlSfM/EUll6TFb7EgBgODc+I6+llhrw4cPgjGxaRhIxIAI3Ld4bqKFHRiAw+NiW8fXDxb6wgOTD4w9Gxv3M8PCW7u5YRAB71wQA2JksC4xNbW4oxlAarvx+Wudrzc5YJZqUeWAHwCpLD77xeSj1yOL1GHeppKiWccmLx+h2F6sa+xfHR0qKO3Rv/UO6Yo2dn9usebWbQjBaFfDkeUnr+FvfbXcqp9PZ2dlZVFQkkUjO/WSXoiiFRC0sIJEzBRptW158UlYOHhe7ojKP1mYiM3sAAMzSFELRqOVoNSooen528OHn7yKTaIzSYkLwXXxR54tfS+kKMyA8WWwCwCSMDbnxAJXIKC1OJoR8+PHNz/76XlL1CABAtTyQEJe7tMxFo+JmpA6gFWUgCe1d7cjnnwTHpDNKCqPCHuNza3nzrHh0RASKkFveIlGpezJjqdWTxy/2LruBGEUfqKNgkooMAABgLkkKyuwcSEIjq7nX4F4r9sOF8Ns3bj/GL8ocgvWZhzf/+m+//7R9WmQ7mgsLJS0pPZptVggisb+zGReaIFbp+4oxD1Ep47xVTm9jaXWr1OgEALgtB1mxxNLBbQC8853UewHoganlGVZ3CaNmgtuOikQN85Um6XJUUGTXxGplKp5cMmq3a/MxQWRaZ18F6V5EPHdxdXKgpZDRsLo229M3tLO/10RF3ERSFjjdQY+JIt3L6354DbupwUFtw+xU7LMC5qrH7RhkRCMoxf1txcikGt1VXx3kfK0x7nJDgiPHd63GHW7Yo8++8EOPiQwG0Sgagx/i8ae4I909Xb1MZjdztDoF9/ln/gO8Ha/XKVriNjfWD0wsGx0vNzc8TtPKHLevt6uPPW90emWChfam+o4BrtLsBgAYDrd6Wpq6+4fH2FMyrXF9YXrjQA8AkPBmVgRyAIBkZaKlsb57dFbvBMBtFy6NNzU09A5PybW6wTzSjY+e9c2LvACY5IKs0Lsf30dwthUOs2ZmpLu+sWViRewC4Ei0OjzU39HZJ1C81dxrtdq2trbBwcGLLsA7Xpdx95NbUdmtNgA2B8sff/xxUFyZxesZqc6IzO4GAPQWJ+ELR8zSZbwfdmaBE3L/RgKjY5w7VltMb+euvfh9k670ByGTBDoAzLtpmC9Dk0u445yupuoHt2/FPfltTH6b2QsErDoMNnt5ZQIZjOWIjOb9OdQTRCeTSQq/H5Vbx+WwGsqK2oYnN1fmZxeXFzhd4U9vZ7azW1NJaWWc49/qndFaHJ421kUPwaXsmLzAspuCflY6zE5GI6q4ez/89XzjPOoU/0/uoekGAABwNFFC/u1XnyZn5Q630EJCiNtGoBNxkdjUyYkx/KO7Wc1ju1vTyYTI+JS0GAI2p2bE6PQCANyWQ3pSXMXINgDAJNvMS8CTElISYghxOY0KnbqvPA2JIsYTEB++/6BjSrI6UB70zD8mLu7Z3VvJDLZydzGViCKnpMXi0allA1LxfDwqLDo5I56ATK0cUOzMh9/8OKNxzOoFAACvYZ8aEd7H218ZrIgIjYhPiA1D4PoXd+b6GZjU+mvWGq9NkYNDNoxtrTJLYygF+ZTYsj7e+nBVdHIpb4755Qcfhcek5uZSAlHJuWTinVvBQ8s7GxNtmEgUlU6PJWBKO6ftHgAAcJskUY9v3XoWWdHN2l7lkiLDUnLyUqJRKQymWrVDI0UQknJoCZF/+OP9sTVxNiGU1r8NAGiJjUir4B5ujESGhGTk5ScQkLnN45K1IURwSDq9MJEU0zAwO1hE/vwT//55kRcAs1yQHf7wQUj8gminm0GJQEVlU5PDwtE9c1vMsqQP/nonPqtkRfr2LmiyurqakZExPDz8QxZyMN/0wa/+mNO9CADQS7gP3/1DdOUYAGCoKg1J7QIA9BYl4vKHnVpx3KNbCcUNNXkJmOjUmmoGAUPsXXh5M8yDlf7AiMRtrRcA51x3SSQ6uqK6MgaDfv/zAFZrHhmLTqXlRwXdv+2fLtrfoeOCkMRkajz6k88ChhZEY400LCmpoqIkmhjTwV0ea86NxMWXVxTjUcjG8bWx0vjHAcRpycu7x+yM1qLQ2Tv7G5lREdEpOTkpxFB8ulC2mxwZWsm5Dq0BXqlgc3tH/uKPpFYqEQilGr2hkJ6JQKBZk3Num160c2CyWkRrc/MbYhcAGukWe2SIO7dmsL/cvPO67XtikVTz8q+aRX0wOTbMmpiX6W0AAI9dvzo3wR7sjQsIb+GIgdfK502xuLPbW1v7R1oAgEEm4owMsaeWtFY3AEAr3R4bHuTOrOjtXgAcwuXpuXWR/cX4XLZdPl9ldALgkqzPDQ2Pru8oAAAG5cH2juzKd8Ofd9+wo7eEnF7RUp2bVNw7N9lOJ9Mr6krTs+rZOytD/s+I8wfW/YUuZHROX1MtOY6hMekqKYEBcQVLm9udBaRnyHih3gUAcBt3SEGhjEEBAB5WJeGLkPjJNeFMV96XD4Nb2osDESShGTiPeJGPwsbWRLnRiPwBAQCgIxGTXTHUkR9xG0Xl8YVjdZQv/dCDY+1Bj59mljYODo1u7qvFnBYCLk/+8hOsc7SYklY8ZJQtkpDBnbxDAOz9JTE4WmUjIxNBrtHY39LLb7FYWCxWdXX1RT43fZPdcDTaMyiWGwAAbrtuenBwY08NADjYWppclgAAdjcWp9YOgNexPtHfOjCu1iq4fS1VVTUDk2uWV3/ZTOo9zviCzu4FAHgdxkV2X11dHa24lhiTALzu3bWplsamisykiIi0XZ1DKVpsqa/r6h3icqekGpvHqpka7Kiuqe3nLBocXodBxmF2VFXXjkytmZ1eg3Sjo6V1ZU/9YkVGqWByctnmBZq9je6m2tqmzvU9LQCOhQnu1uE1vjiO3eFcXV0pKS7q62fq9Zcx99KhqqakDs5fzp2RfdO5j0NtsuowSAwaFTUu1snWhvERSAwK17O4f7Q+hMCmCfTgYKEbGZ3T01AVF1em1SvyiLdu+iMzqFmUeFI8jbGjdwAAXAZxPAbXvqgEwNmdG/T+l89TqVmZlHhSYmZzbUYIIVUDALDLqBj82KqARkIUDksAAG0JmGxGXzXlwfsPwzKzstOTY2NSc9cOZPPDbdRkckRoSE4be2W4mYDLU7xojdc+VJCcUshUCscISMTskQ0AwOvNjkjLq2HkkAv7rW8lNQaDobKy8g3dK+4SjY6OdHS0H/+vbK4vPipHcuVb3j7M6XQ2NTVlZWX19PZZHW4AgMfltNgcXq/X4/EAr9dus9ocr3fox+O2GE1Wi1mn1VpOeYrLYXe63C6HzWJ73QOXAACPx3PG3E6Py2n/5rznsx//Q5y7NabdqeBP/3QzmHJoAx7tNvnpJx/dx23qPLKVvmBEEl/j3ZttD8Vn9jaUI0PiVvakPaVxiDja7OrGQFNZacOA1uEBALj0ohgEsmn2CADvUi/9GSJ2bHFjmtlIK27ZWBlBhoS0jK+vshvufOzH3jyoJIdhqW1C/hzi1mfJZWMTLanPUKkzq3xOZ1VeRefy7EBecc2mWFSXiXwcnTvFbAr3w89L1F4AgNc+kEuOz+02G8TpUSEZNUOi7SVadHh6TW97RWYUrdP85o8AKpXKmpqaK7xNrdfz9WOBXo/n5EODXq83LS3teG4+AMBuUO9JDl/nONFP/AQipVLVUF5IwsYtr6/zp5n1PZPr0+yeoVUvsI50NDHnX/ejol2715ifSsDjEzIKFyXq7z5grCy3jbWxPtlX1TP/mq+42yjrqe+QqE6d0ilmtRWVM02v/qBYleLOxn6F6Y28Mc7dGo/1KD86MrG42w4A8BjaaWRSeo0RANX2OCWDsWPwHq2zUmm1S/PcpMiQwp5J+d56aTqZGEXERyV0cjdfJNRtOijIyBxaUwIAXMbDenoygUjEYgllXbM2l222uxyPxcfgEB9/8HiMr92baceFhRKjyQQUqqJvza7bZaTFEIhRODypibWhOeIXJJMw+KiY2MTOSb5GMp8QEUhv59gAAMAx1VhcXM/2AK9gujeRiMXhsHGZjG2Zbqqnil7Ptr7h1rDZ7MzMzNnZ2Te7mpPsLU3OLEsBsPU3Nc5uHy6Mju2qHDaNqL6hS2o84ds2m810Ol16cPDtf/AaRtsbJtf2vvvL7VKJO2raBHv7A11di2Ltaw5Ms7M6xt04vWC20drKic2vNgCP+Ivjs1d081yPUyU/3JUIl5ZWZboXd63wqKXipUWecE/uBsBh0R8eHuyKBcP1eR/+9l1/VHRWZkI/e7o+GRuELZBqNYuT7AWhCgDHgXBzeY3/YoeLQaOQHu5vrK4I95Vfe1U9q6N1BHLO3OoqIwUXlddr++rf3IfirU3+RjEqKKd+RrI5Ozyz7XRaZTKpcGtTIjd4nGbRxvLa9t6rHUTuQ/Hm0sqm1uqSLTL9P3/YxN7yAq9qX7i8sqF6NYFbJ9vd2OD3FyTjYit0L7aTvG7+UM2T20HDKwcej1Mq2lxe42vMl7Zhe4G5fF6byWSxvhyxw2qxWOwAAI/LYTJZ3F7gdtlNJqvb4zbp1Wq9GQDgshqPpAdKremrV8/rNptMduernWdOq/zw4EipffUm8GiVssOthaiHAf1LSgCAQaM4kqutVovV7gQAeOwmmfRArn65W9dlMx4eHCg0Ri8AAHhMerVab/IAAIDXYTWbLS+jbtappIcyk90NAHDYLGbrG9xbo9frR0ZG6urqLveSem6Xw2I1a1QKhdrwavBuvVohk6tsLg8AwGGzmkx6peKoPCo0NqfH4rBwB/qnZ6aiHj1t4oot+r2enhGFFQC3XaWQqfUWAADwum02G4s1nJ1Dt37znD2rdr+9KP5Pv3yX0c/7xjg8Do1Ktb8whPfHTWzsTrBG1g/0LofNbDaq1Rq7B7jtZoVcbrS6jh+vVsrVejMAHg4jOQSdr7K7AXBrVXLlq5nEAHgNGqXqUEwNeFoxInn5PKe5mxqNjq8xubzAbVcfj/ntsB8mhTwKICTRqJSoBLpYY9+Z6YrG4BLiY8PCMe3TEtFsx+O798IxuMigxx+892Ve62hDZdbNz7747H/990++jJgXCuuLaJV9c+zmfEwkCoeJjM4s31Eo2unkpyGYVEoSMjJqYOn4Qmheg1p2qNKbVDvFKYSEspHjY7a8/orIsIhoEv7mnz+kty1MdjESy1mqvfmwR/eeh6HLOwfr85JROAIBj6M3jlnd7rmOYmREBA6DIKQWdVXlffr7P6UwuiaGGqMwKGIUPja9eEthlm+y4yLD8ETS81ufhsXVG178oDw2TgXl/f/4qKCZ2dtQiEWjcNhIUnrptvxyjtX68Lxhm6qDUbVx9GbvgvQmHB4e0un0mpqa158Q/Jok80wMMjIpnZqYkNw4suJwGNktpbEkEhGHSaA3KUzGtvzEEEQkMQp39y9//OwRaVW6V5dPK8il3/zNr1Dp9SLxUlZ2+aZktykvCYfDYYkxnVMCg3wrnYS97x/8xSc3Mhhd6q/+nnr2VodpGalIv4eVg0tffdWm7inPxGIJURGBd+5hp9e3akpKuPzD6S5GeFg4MZE6wOEUZ8Th8NjYtHzert5jU7cVpeKwWBQ+umWIk4e494f3Hg/x1gfq8gh4LI4Y3TS24QHelYEqXCQ6loS/88EX9dyXm1dWpZDy9JO/3Izg8HjNRel4HA4XFdfGXn9LJ1Zbd5F37+Qxt71ufWns8/SWieWJvoYe9vbGfFrYE3R61wq77ovb6NkdpZDbigmnHFo8i91FT4KjsREhXz5BCQWLBYmkuIwcDCK0fVaslW2mYf3z2gaKE7ARSc06s76ZgiYXDH1jCppb28lIuH37XkH3wovqewxbMWFPSgdXtXI+6clDesvccE16BLVHLuTeufG0e2GPzy699TBkeO1AON3m/9h/cJaDC3xczuLrFKLGqtpx7lhMCJE9NxOPeJJSyzrc28zC+adVtFZnY4n0dqVGXkfBhEfXGF79UZAtDuIjkifG+7CI0NYpoVa2mY4LoLZMXMq2zZtqjdtp1WmNbq9HIz/YPdJYzUa9web1OA52duT6c+RDdySemZpcFRyc9HHHo9rfU+nMGtm+5Ej3mr9+XrdTp9U7XKduxRsVR4dy7fE/e112rVrvdL/ub/fR0VFpaenm5uab2IuxMVx583Y4h3+4zW1AoskLAn5TRdnA5PJ0f9WjW4GsNVEu5rkfvmhDKCjBh5LzmE63mhwaVNA0EPPYr216XyPmBAUTGSVpgaiE6XUBt40ehIiZXOQ++uvnv/ksdKSlIPI5kr11fFTF63RYHWZFZVJExQDv+NoKktmmkHDswNzaaAP1zl3s1NJSAg7fNiPqLSTfeRY/s7JUloFDJJVsiIR1mfjY3Ma50arnoVEs3ia7vSyvpr+3gIIklfO49c/8IwcWhcsjVUHB+NnVKXzQYwZzcX2q88GHt2rZLw/HeN3m7sxoYko9u5MWhIqfWNvmtOaFIklLR29jVpTXvBMTGTl24AUAcGsIEbkt64ujVEpyWnoa8sGX2PT2FW5jWFSxxgvk8924yPQjq3ums4iQWd9VkuMXQaPlZjz54nNk8GNCTPKeDQAA+stJpKKagrT4rBYeAIBbmpRI73n1ZvA67FaH02HWKydac0MxCQK9EwBg32UjgoIXlE4AQF8WqbBtdqSOisrpkws5QWHxQiNY74x995M7yVm07PSk0NDwho6yoLCIFf3LZWpFc7FhMWx2X+CDvwSTUmjZ1ChUaHJ+PoUQWD0uBAAImBVxlFrdq7+J8uVhEip9pKucEBW/YwEAeJkVMdiijks5k+RNtUa+zCoq7DA43cvs7tahOW5zRW33isdj6K6rZm+87tXPFBtjUREhUbExYWERFQMr3/l+3Y3xhFrmMo/VXj/0uldjsBysFmaWSTSnlnqmKjuzoM/6KjZ6wWR2Zq36NfLo8Xi6urqys7PPe+bB69sYrcFm1BkAAJatGHRQ28L21EALLTsrLZ5486+PmAsbRfG43K4NAEBnCi6rehYAQxIyvLJ3ghIcwdo2mfYnIkJxsainlHo2AAAY+QSUf2V/X7Af6r2nUaa9xUwEso/3zdPznJqy+LCvtcY1VZ+AS6+wA+A5WkrCJY7zliik6I45MbMiI6Zw2ONQpaM+vYeMKWGUUYjBodEpjFw0rqDzxcvtdDpm62mx6e3jTVF/uvkou4hRQkt58vhpeW2ufxD6AAAAzGVRiBrW8eVHXayi1JTczg46KqlqEAAA9BsxuOCmxbdyDWbrHu7x49JRkd2qKY15nlLekkF8iM5tPTgQ5uGCIpOblzn1ocRCpRMcTndGBpFFWtt0ewE6pbI9NyUmvf1AvhOLCvzz+zdu3PZjbSmdlqOCuJDMhu7S9LiMpnkAPGOF8Qm53a9+sxxzg9X5jcMWt1fELn8eglnX2AEAHu0aMfRp3aTYbpFlhj2nNc+M1GYgsnplAnZAaCxfB3bG8m8+COoa5y1wB4oKyxaXxxD+T9t4Rw6Lor2ibIDJJAWih7gsYui95PKelaW5porirtGx8vRIctmgxWrpKyAjoqv1r94Nct4AJjhuZKgFjUQOrsvtJmlhXAilnnUp2+fna43brp/ljg4M9re2dS5sHXoBcJgUU8M9DfUNfWNzertLtb81OjrQ0daUgQ/59NPAoSXR9uoss28g5fmtRxHULal0YnR4dU9vkouHupobWrvXdtUAuDYXJ0fGRjtamge4y6avvi0npzGHXNxrcTgXmlIfBZKPdz/aNPsj3a1tHZ1kv6eMLp5gaWJ0YcegkXLZQ12dnTObe0fita6WhnYm+0BrAwCYlbujPa0NLV2r4sOF9sLP/nyzZmhJq5VNDHY0tHQsCWVeADw23fxYX2t7Nx0XHkfteHlOg9s2XpbwwXsPeueFWoVkqKu5oaVrZeeEQ9d6vb6jo6O1tfWN3vNgY7QmEJ29Z/JaJRx0BLKxsyo4MLC8d4rH7Qz44nn//HpxAo7evQYAaI2PTC0fB0CfiAgr7+YkPQ8aXNcZ9ybCw4hp5HBcTrMNAPMOJyIkqJ09EnL7NiGtwHywkhaB6Fv65iUB7SoGObSc+dV2zUovLTw669AOtJvDqOCYCd5SShSpfU7cX5keVzzotKtzox4GxdGGx9htNaW1nQN91fHBiQytG5j2VnuZ44OlGVHJTTPdaZ8+CGnuHxvpbS0oqpgab/P3C5xTuIBlPyXIv5p1fOzGOZyXmJDV1l8RjaXWmr3AIBxDR4Qw+W9l9oDtAHfnxk1/bDKZEIaj8A/lbQXEQAy5pKQA/fxeJKVucbwFHVeqdACjYAL98Eta6yirs4xEbZxoK372MHhwaaUqJzW6dDCeHBWExBBwCFw8jS89aqAl5rTxAPBwGZTUov7j7ZrdxX5iRFhMfAIGFVnQOv5qb6Jrui0/PAyVnBB966PPCjt5Y000fN6AQjQegUraVHvdxt3iJFxUfGpqfBQptfLIaGZVZ0QgsAmxeFRM1tLGOjX8EYFa1l5XSMCTMjIoOELC6OrB/sogPjwsLiEh6P4XiMRm46vWGCULMX4Pk4trqwooKAyBHItDRacvSl53x//Zztcah3Yr9OYnYQl5LbXFRFLyvOhwqqM4Kja1jJEXHhBWO7I+2130yUd34tKyErEhX9wOY60K+mtyCYn5SYEPnqNz+bv8rLhoRudoUTKeGJ+WRSEhCKmb0gMa2u/L4JjamtJw/9DWqePfM7deLdNYPQAATnmcP5b+crvZbWzMIoRj4/OoCTf+8+OyPl5/RRq5jC1eYt756w10PLWxrSmRiE3OzqMmx6QUtik0sprMKBQpMTMlBhNHbSyhfXnjfnX3SF1BCj42pZCeToxNX5QoZruKIiKwubnURzc+xGb0vNxr4bFPVqZ88pFf+/BwXiIWH5+ekxoTiklcOjB+/WXZ2tpKT0/v6+v7gT+M77XFrr/x3qcx6fSkKEQMrXmL1xcW+CyDUV+Tn/Tx+7daJ3j5ceiczlUAwGgu9t5T/NKeMCE8pLx/jh56NzKtZn2VFRwawxzuwYUEpdIKkogRpOwGsXjR/3f/7/DoMNDvJAeH9H5ru8auLIkJZPQvHm9Umg5XUnDhMZQcCj7gg88iJ3lLiXhC24yoryw1Kr/PATy8/jI0mlhUVpZIIpR2Th+JZqIiQpKz6Am48CRG/1xnyYNbfo297fFYRGpuaSE1gZDMOFAratPQEURKfmbs+3/4sIZ9PKXNM1ubdv9BWEN7LT4iLCU7LykKEZVRJXsLsxUAABYJ9tnTnCYWe4wjONQBAGy6o1nOyNjkglC4tSXe06qPNgV7Dg8ALvP20szCpkghO9jeOTLrFYtT41sHsj2x8FBrdVm1C1Oc+OR0akGlUilTHkh2FUYAgGZfJNpTfu07ccvF66zhoenlbfPXJ/k6zRvzE2Pc6ZXllQOFQX0o4e8qHRbtxqbI5PACACyag6mx4WH21L7KBADwOgxrs9zhUa5EaQLAdbC9NLWwZjCbthYnh4ZHVwQHDi8AwL3P542NcXm8ZYHka1OK3Vbx2tzcmshg0KzOcIbHxsWyS7tK5PlaY1dvoAMjelY0AJiqUhHUZtbmyswQizs+3Il99CChiDneXRqIzpPZPIKhuujoYo3DwazMJOe3tqSTs6qm3Q55VgwxNpEcjo1bUzq8Vml2VGB+72gmDpFaOwsAaCSHp1Zyv7UrZXWo/HlAWDfv5faCXToZ9txvWGjwOhRpYUFlPfO9jJSYUpaI1//kKWntyDTXkXYnEM9e3prtrwj0C2rorEFFYjgig9umXZrnrU8MxkRSJif7w4Oe5LWPb69NJSKeUkor00ghxQPLHo+jNYMUm9V1fK6mbLodg86dGakJRhDX1E6v/YhGfJbaMfdyMHb75ORkWVnZ27n17cZozZNAQmV9c1Pn0L7WBjy2zZmR+rr6Adb4OJu1dSBbn59alWgAALr91famlrUD2eLE+PahbneJ1dw5KDk64HLntFbn7sp4Y21VU9fwkcGlONjGBTw6PDoEDiNvfHxP9c0DPW7b5hyXv/eN7Qi5kNfaUNfZ1Ts8NitTqRZmZncU+j3+0uz6nhsA4DStTAzU1VR3DIzLDHYAwMHmTEt9dVP3iNzkcuj2+1saprakR8Kl9oaamsaO1R0VAMCm2etrqWtq6x4cGBYefTWl2CgTdLc0Le4cSdamm2qrmrpH9jRv64JP1oPUqGiW6HKOTlit1o72NiqVOvTDTlK5vs7ZGtVGND5mUuoCwN1RgI0rbe5rKiJExdHz6ZGPHqUU94/3luPSG0wAbA/WkKJLdE7XQBU1Pr+1KS02u3rG45TnxEXhcZGYhBylBwBgr8tCpjR2Z8USSga2AQA9qZiMirGvld7JY5aFhKO6vzYhyiRgBgWErhsBAKApGV/RO9/LoMQyxkS8/nAc9cDk4lTjPrj9ICmdmpGSEJOY1tJaiCTG8o0AAGAzGnbnBkiRqdyRxqf3P4qISaZmpMeSSGWNNWRUYAdPCgCYq89OoXcft+ZwshWDyeV05iOj0tUAAOBqygoj1LIBAGazuaamJi8v761NCOazG7DJ1bpLPWd9f/8gPjHpMpf4o+F1G3R6x6Xu4j86Ompray8tLf36tMmfiPN+huKH372XXscSrHFjECEVbW2ksC/jq4Z3BQvRT7+MpnWyu0qQiVU6DxAMVIYHxqxJFT2MtGhaSxMFj09plKsl6URcKj0fGRHRwlkT8Iawwf4tE7NUYiS9ZxMA0J4QnsIYPZ5lw2dVfvrXG9mNI9si8a5U8XISgEEQE/qE3j4p3uAGfvZFUed8d3ECsWhEuNATgEzZMXi2xsqfVhGLPgAAIABJREFUB6N7J5enB1tz8qsXlzlEREhZ/9w2j5WeRO3taMH4ITr6u0iRgVm1zLXFiZJc2tDMQlUGmkRrEArXKWGP0ZT2433DsqnWwMe4fmZDaFBQM3ddtDKKDXjSMC0xmox1dXVcLvfSfhSvwaJTiCTyy/38MDMzU1JScqmL/FHxmBXz46O9vX2c2VX9yzPIDCvTY8yhsV3VRQ6HuVxuDodTUVHR3880G/UGpUyjv8QtNY90c21XduoZxVadfGWep3pxapzHvida31GaPA7T2ixncISzI3+DpyKfe38N4subj4LRGFRkelm3UqcZachBoLDJaemxOGR2dd/UaGt6SbfBA7Tb47GhAQWdrMG2yvwG1mJ/RUhwZN/cPCM7q2Nya7ytBIdCIpHIjPJenUVbnZ1azxEDAEaKUxntsy/fSy59EzXsj3/5PByJDA4KTsqtfzV9zbs51kRARuDx+OCAiDbOBrulmNY8s7fBiU8r3TcBt0nWWZqBwWAwWEJBI8tosy0wa6LQSGRkZE7tgHRvKy8qJD6/dqSviUzEYHGYuAzGltykFEylkdAYLD4iMDCrim171Rrb4XJ8qF9GdSezhYFDIbFYTHYVs481RUlJmZycvLSfw3k4TWrR9uYGX6A0fH3z3q3TfnWRsNeXm5u7vLx8/L9ej8titrhe+xj/9/I4rCqF2nH6WcYmtUKhMb56sFmuUDoA8NiN4q0NvmjfdqV3BLCrt9IIIc+DETExpFD/J1HUaqXZMlJBCQ7DJMYRsOTcbfUF75mpUCpbW5qplPhYBLZ/5jvTtX+Ahhhkccfyaf8qXei98/vfxlSOeQEADnlpOorWMzlcnxsegUmIIxITctdlb2o+wflaY1OtRQZGtE9LlCrty/lUXpdWJVdq9A6n3Wa3O50Oq+3FVqfHYtTpTRaHw26zu7xel0GnMdvsNqvV6QEvJonKVS8nCtut1hd3mXDarDbHq33iXo/FpNOo1Qq5XCaTqbSGr390sOjVCpXOarM6nG6nw2a1uzxup8Vqe/le8zo1SplSrT9+ilmnkqu0rperM+oMZi8AFr1aJldaX01fdloMCqXabLF+82w0r82k15msAACLQSMU7w2zOLU11Vdy61sAwN7yUDQqNDAoNDQ4MDiSxFzY8QAA3JbJVnpIWMKB7ZyN8Hqyc3JEO5LjL+jEiyX0ukPDpb3FHbuzcZFJm7LT9np4+zNR738esqJ0AAAMohEEnjQn2a1KI4Yj0YiI0FRGj+5tnY7/HfaOjIgnOLpEbfZ4vbrd+Yy4+PFNYU99JWdLCyxi9LPnjVPHu9Kd2wuc1s722oryxs7B2cmRqnJGx8iCxeWWC3kt1YyCwuK+8VWzy6s72GytKSsrr51YlYz31f/h1+8+J2XzRLtqyWpnQ3lRWc3s1pEXuHhcZm1dVVVzr9TgAgBIt+bbuzobayrLqlv5R0YAgHxrrra0sLCsdkGkBACYFcK2akZZRU3UoweFHSvAa19kdRQVFDT0cDS2r946+/O9d373q3dvPBvla4BbWZgSnt4y2NPWxN5UuLT86AhELWfnDb2a52uN03hQV1G7JvuJ3v9YrzeUlpTUVFebzVdzQUWHmp8Y/pRc2C7clylle+0FCbFZtTq7hdtR9PST9z64idj72jv6/2fvPaPayrZ836r+0qNP9x2j7+sed3S/d7pvV/etU7eq65xTfSrbLldyZZerXA5VZQwm54wCiCwQIiMQiCRyzjnnIDKIKBElQIBAEgLlrPk+yMYYJHDAts5p/z8xdpha7L32b68915xzqWX709RRCqW7prZ5bnl1eqizpqGdyREDaNZpo/XVFQ2tfU29o8nJieu00bqqyuauYY5QPFgQfe070/I+ugZgZ2WqoaayfWBKqASVZHdihNLW1jIwzVBqAVSSpbnJgcH+hto6yuSyXAOgVa3ODNVUVnaN0HQ5NBzmdFN9Q31eiqOF9+y2AhT7Q50NlbXN9I3DUxva6jDnN/7j9x5xVUoA4VKjtZNrbVeDf2AkdX13faze1dKuZ/n5LICrFS+5375dMLANABqlTCwUbLLWeEKZRqsR7SwVkwLvOAZM3X8WJCWRiCsmXkWluQ6m12zRUSUFyS4uXk1jkwXxodGk3CJyrI0NqnN8Ji8a5RlCzCMn4uOyadNDARamLoGkMLwf0sEUE07MJ8d5+0fOsNbjvSx/NHHLrGjRTboNlMR+9d2dnKraWF9XZGwdf2sq2N0+JD4jPS7Qzj2EzmbnR3i6+kbnpcde+exbUs3UfG+hoysqp7g4MgARX9x7EE62NtrgYe8b5Y9wCkhh89nkCNe4+gk1gJS7UpAYZOMeNLom1HcxzkBGnKNgZOJwOGlpadPT0xrNc6snOt+Va24TvHgvRloj46+ub8nlgomR3tZSkosLhnkowFPGnXO69oMrNiEhDPnTDdNwYlo4xgWTULpCpwR6ecYmJeN83D+96e3rYYbHIHCEJCzGh1zV250b9dO3t4q7ZzbmKVike0hUdCAGnVo1sLE0YPnDFWsP/9LOCQWARrIR6W5t5hqQRop1cvZun95aHqxAurqFhod7uDqn1gzvbs6EeDhgsBEYR5NvrnvTWDsN5DA3dFBsFNbDN5K+feChUFdG+Tu7+NmYmJaNbUtW222d3QZWOVs7fADgTTc4WzoPrj67emaHpd4dN79l3jAvBdBMtWV6eXm6eHjldi8DgJA1lZOItbL1aKau37vi4pI4fxShBUCYjPXCFo6BcjM62DO9c3J2pLeppbUim2h21aykZbA4HmPphMkqrOganBbyN1IxvmXdDOZo4bl3/3jVxJrSXomyvZ3W3EPwQ0bkDx+ENVFKCZbIDCnAaluWkzuhr4Zgh47YVgEoNiIQlrG5me52Nl2rUgBxEsIppbiDHGJ+xz95dHKyItH7Fztf5r3rvTpS7+kaNTU9FuhsRSyqTY70jG+cAgDp5mxWfLCto1ftyMpTGkY+Tu4lc6o3I4kQGRmVmltB39wHAC5zqigjKYZArOubljxh7oRaNjcyurZzdil2aslQY/3EgsFgZc7ieH5GwSJXBgCg3OtqqRrRReupBf0tjfNbewBQX18fGxtLo9HOrFWPI81gZbSZd9quErSi9bIsAhaLjUorWuHJAWB/ptbd9UHWcKatb1g1zAikrK5rN2wHN9U7k6VWCOzYPL25uXVsYqwgxvvShUv56Vhnc/PIjIrOzk7q4iZrrBnjGbm+J2lMQ5ohoqjLzN7SOBsnVEtvg70FopN2d4ihFq3jPNwTKqcAhJn+yOSChnS8S3hBlxpgvoPsjA7ITcc6B5I4Ss3WaKWtVeBAf52l6a3MVurq4pi/1dWIioOnSF0e4RuS0j1SFWViFzwyXOfg6j4pAAAQrlODPKzxeZ3S58V2BTvE6lZk6QQAyPY36dODfo4mrgm18wt0XVWf6kg7JLH83lBSXJYQhM0dABCQI33j6udAvknAeSdV1pHw3n5hcdnkJPtfrEo7adx1Wl1JTri/l5WLd8/0bLIPpoqyvj2R/+P3X7ug/XEhwTevXytoqksKwSQ30u81RUspS3ANL1MCrHfmuSMIrUVhrkEkCQCAkBRkG5REcLVzpPIBAEpxqNTCJqLvjZ/sUAnExGg8NpyUu3GINW5OeAZfvdiTa232i4mlCaG6d35xYU8BAOpaggcqvvgpxRQ8MmsWKSUONtb+4Qk52RlYlKOLT9z86lJykId3WGJRdpKLo3vdCPPgYK1Wq9WqpVJdb1FLpfc/HJVyqUR6aME+uVQqUwKAancZ5+ha0c/Q9UW1QiaVqw6saTQqmVyhc8potVoArVwqOcgXBwClTHp4gVG1Ui7ls5I83XIaZwEAQCOTHvU2zrdlffz66+4JtRIAkK+GoqxSuxcUYk5NavAXF77LbZtsam4uLS1dW3v+NSsXunLNLP0W9rQA4unR3tKsyO9/setY2AcAzkSl2xHW7Ew523oOstTyTYq1ow9NANzZGgdvXO9wJ97fJyw6Hu/tbH7103Xu1kRHJT7I183ZOa6knT7YhPGKZu0KSqLML5va4aOi8Vi/gIj4jt4GLwSOunU3rFstWo/0883vWQUQF4f5kbJK4vwcCvoWAEC41OKORkRgXf2TKlUA2s2xQERYZ1POzevfegWHR0eF+3i6kNuo9+6ZujwCE5DYAypOjJe5M8LF1NlrRgT7zGGct3N4dpO+AhjPTrNNyT/fskktqqMMDbfX5NhZ3Ikra04IdI3MbpyZpAQ63yFWDd1roKgoBuNL7gHtHikEEVE5BTJWZJBXaGKUlYVZftfkVHepyXc3s6rai1Njsmv7xnvKbMxMC7pGkxGO4eQm1vKAr7tzWlXPcE+Di62Vb5D/7etXifUz9xqi7S2KsQ0qkAMwWzPtnaPmJhsdrO2KO8ZH2/JtLezaqNRopBUuo2FqpPnOt5cTSgc78kJs0dGD1Mma7ARCdqPo3uVmDFbbWwXPc9Sg2isMs33t9d/jimsSw7wjMmunxrtDEfbxZX1P6ZI/Yr1hOSfO3SokvfVeLeXV6uKSibnpuurqBZ4SQJjubRtfci8YTyNpL04LiYjEBQfiopMKclKxAX4JuY37EtFIY2FogJ832juppEOgUM71VuGwAd5ov7zmUVpXyfUL5xyDyVyleolSHYRBon2DK3rntSArT41E+3pjE3I3JQCgnu4oC8KFReBD/YKiKIs80EiH63P8vJHeAaHVlHktwPJwI87Px98XY3XTvLB9SbG/lp8Qikah8KSCtb37qRDzncW3vr784zWL6tFNUG1G+Dlk9dEWRmrwgb6mVy/fsvWorqlWq41igWQlbxHncgcRkUWdZ2xtrLUWRv90x3OQKQaAnbEyRwck4zBrtqn2Fs59q0rpeo+ZtdcMH7YnK2wR/vERjre8Yhg7nLLUoK+uOY2OtKem5dLWWA3pvjecA3s76j2tUePMna6CUCvPkIGZhf6GQlJWGXW0xcU1cJR19y2uFq6FoZFZnSugFeQGIUmFTYUJSGRU7gaX25Yd4uwX3VKbYuMaMMbYGq0mXr/pPTzW5WFjSqoeWJobTY2JaKbejw4vwSG9Y9sAgE2tvXnxjbe+t6TQZ4LsfnEOJS+ydrjcXdlzXJ1aKx1syPNFuDk4Orh4ojMqu3gSxdJgXYgPEoFERmdWsw/KTIGsszQjo3EKtKKavJSivhWQc4qzSVX9w2VpEWiMf3QcAR8SUkeZnuqt9EMjvX0whKwajkDYV0xA+IZPs/mz3RUhft5obwwxt2FmaSXMxzMIFzNBpeqsT3eWxea0KwG2x5piCcUipWywJhODQiDQPpl1gwoAFrU11BuJ8QvwRnhXU5iKvdXsGCwajfYOCG+n3i8/xJ6jEKJz1/kqANhjDAd7OhUOzi+OtuL90EgkOiajkvXUFj95NNaIN4eszZ1aaEIALXdjaXJycoa2sHMvb3tttNrVwb1l8l5CkHY/CWVn5pU4Md7h+OsVj+iyif4qFyeX2sHhTGJ8dddob0262S233omxIOfbfkllvS2VqdnVzCWq7x3Lgo4F/tqAq41NVvMItavE2d5jaIWBtbppiU4coy1L1QCgbksL/uYGapg2XxKF8sKXzQ1XOdi5lHcOd5STHJxRnSMUHNI+Jq+pvyn/1g+385vG6sjBLkFJY1MTZJxnSFqD+B7pae1Fnl6E/ESsLSJyZWMpJtApq38RtOqpiSGzm1dzWwfP6lqfiTjLw1H+nlbWVpaWFvbuPsVt42KlFgB2Z5uDAiNZh8qaynn0QG/s2KZKtjWC8g1fEACP3uIbmdjVXYVwdQoJj7pjYffxNdTcCj01zNvFA4VGobMahnms6TBni9CsevbWckaEHwKJ9PREZ9ePbiwNYUPiD6YF1OLNlOjIiqF10IqqEyIKmqe4q+Mx/gh3T3dXpH/D2KpatltMCHB180K42Fi7RS9zhFMteUgPDzQKgQhOXLz/jaxuTI6MydJFDyjb0v1/tvUsLUu6fOlLc1tnF2dHhG/k9Ob+M73Ex6RRKSTiB4bPaoVMJD76qaHR3K16qNGoNRotgFaj1sUOaKRikUypBtCqtVoAUMmlIvHBp6FWLpfrQgJ02+/Z006MjhCJRCKRuL29ff9ntBr13eW3QCEVi2X30aBWyMRSuVarubt8ulYtFomOkFqr1T6wvPq9uo1qpUwsfrpFcR+NNZLNQWtzp1aaAEAxUJeK8nK5+atpSusCAKyONyJc7Ek1w/fbq9lLD/WJLZsC4MX4e2X0boCUgcV4lo4ujnbVZ6SlxGB9bnxv2Tq+2JwbY2fjFISLqe6iCndXw5082mb3VnuIX1/9OT6rqDiHZPXLT+TOgWiUB7njfgZwR3a4e1Q9ACw3piN9EmsysajoHCUAyNZjAl2C4iKQaMzcPoBmPyPYr7C8Pszrprl3RFFJcYyfvZVP9Oq9IQCtvdDNK3mdtRiFtA8jkXFB7sSWmaraejIBi7A0rTa+Zdg1CvHmOnOZsborlB3aKOHz9w6XytCqFfxdvlwFWpV8d3dPqQGNQrq7J9BotXs7LBp9MSI2qbuHogFQyfaZK0trmxwVgC4NbXNnVwugkuyvriytbXHVutoa/H3FQdyNRiXY3xPLVQAa8f6eSKIAALmQx1heZu+KDtrJYjI32dy9PYEu0IG3tbq0wuRLHnhzSgR7+/f+Ea1CwuNxBXtc1voaY2VlaWmJscoSP2TJ3r9EKZXKoaEhEonU0NAoEj2tGaJno0djjUa6FeFohs1o1616Ltye83Mxx5WOsyabMUiP3LapB4/eywjzja+a1iq2Y/wRGf0stWAxxA9FKsxCuLuSK9oGWsvsf3VoGqIvzU6MjY/UZEX+cseueYyKd3DrpAtZlOTLN25nlDc01VakEJMo83NRaPfMLuY966qOnAiv+AYVwHxdKtqPVJ8X6oZLlwGAeAXv7RCRTPDyQlK5WtDyk319CioaIpC37IMSGxqbSrJTsytbefc6PK290MU9gSODtZEKJ9MfL12+bI7Gl1fVshcHiRjnisGnVSDi+UooEPhifJ53K17oocRgMAoKCvB4/J91ZsMj+4aXh8odLO4g/MOSkpPCArzuOCBLGupdf/78y19d0rJzc3KLxxc37k3J8lOCEJGlVK2CjUe5pHSvqvfn/VFuseR4K2ur9IrmsrTQb764WdnZmxjkGZyQW51HMLdx65mZj7X7BRVbvL4+Hephj08urMgjeaHDZ1jMMHe71LaDFEdVKznEObJaBUCrIrqhkubnelBOtpEpOSlRvg5e+FnGcnqoBxIbn00K++6Ln7IbJykVRBdEUHFFeXQQhlROOXBTzzbn2NhHb4kBQJkRcOe3v/2XsOwqAAApK8LdsqR//smvshFqeXkZj8c/71a80CNoY2ODQCCkp6cvLCw877Y8jh4nvmZjfig3NSE8PCKRXDixsrO/MZNBjIqMjo2OioyKSeqbYd7LJZCNdrdSZtlataivrXFsdU8r53a0NM6sbQ42lSQkEIsra2uqKqbWuOyFYXISIZZAah9d1mhVc92VSeQClkTDWxrJTCLExCc3Dy2qtbKextqxlYOwLs3yeE9D/7wGgEsfbmwdkWs1q5PdKfExCWm5Y0scANhfny1KT0pKySgsqphi7Grle11VuYS42PSC2nX+/a+PneXJxqYhNcAElZqbHJ2fmTahyzOW8/ubq2fXjXqhlcdWWlra88qxeKHHllAobG9vj4qK6u/vl0qfVb77GelFLB8AgFwuKyjIz8nJ4e89ZzfkM1NCQsLo6OjzbsULPY6kUmlaWlp0dHR7e/vzbssj6AVrgM/nZ2dnV1RUCATPJz712WttbS02Nva/z//7Fyk6nZ6WllZSUvJUS0Geof67s6a1tTUmJmZiYuL0Q/+CNDg4mJSU9Lxb8UJnoLKysoiIiPz8/OfdkNP135o1Q0NDVVVVHA7neTfkmUqr1RIIhOedb/FCZyaZTNbV1fXMikM+tk5hzdzcXHt7e8dflnp6elpaWn799VcLC4uWlpa+vr7Ozs4z/xUKhSKRPMOF0x5FISEhOzsPu5rFf08plcqxsbE/i87f29vb398fFhb23Xff2dnZ9fb2PqUu/ZDq6ura3dWTmn8SaxQKha2tLR6PT0xMJP5FKDExMTMzE41G37hxIywsjEgkkkikp/RDJiYmIyMjj93Xp6amsFhs2FkLj8cHBAR8/fXXvr6+eDz+zO0bg/B4PJvNPv0Snygmk2liYvI0+sZTUmZmJoFACA8Pf/fdd69cuUImk1NSUp79k0sikWxsbAoLC49f0pNYI5PJgoKC5PK/qGo17e3t6enpz8Cdlp6e/iSTypWVlVFRUbOzszNnKhqNlpKSEhoaSqfTz9aykWh2dhaNRo+NjT3h7VtaWgoPD39CI89FbDa7qqoqMzOTx+M9lwa0tbXp9R+dwprAwEA+/2xWh3nuUqlUlZWV+fn56+vrpx/9xEpOTh4YGHjs0+vq6qqrq8+wPQeqqqrq6Oh4GpaNRCQS6cmd/cvLy2FhYWfSnmcvlUrV1dWFxWLLy8vPfKHnU9XQ0FBQUHB8+6OxRqtR7W5vbvNEB1kxgl3uNndPl68iE/BWlhZW1rbkDxQcUQuFgseog3u2mp2dxePxzc3Nz+wXn5w1ZWVlZ9iejY0NFoulVCoDAgLO0KwRKiEh4WmwRqOUbW+weMKDYb6ax2bz9sW6ni3kbi0tLKxt8Q46unSfu7S4uM1/bj47pVLZ0NAQFhbW19f3LAP/zoY1Gskm1vTbH23x60I1AGgEDLzTzTuoeJ4GmGMNPu4OtrZ2FubmmLj8DYGOpqqBimQfv7g14bOG62HNzMxkZGTMzc09yx89c9aw50cLckvm1u8GxQi350vzS2c3+ACwx5qrKsxMSkyqbBvRLRyqlnA6qwuSkkj1/XO6S//tt9++8sorPj4+n3/++dTUlFqtfhorjhuDnhJr9laGLC+dtw4p1b1ZFdujFt997pveqALNcH26s72NvZ2NuaUNoahDqNLyV4bDkE5Ozk6e3qGURe5zvNCLi4uJiYnZ2dlP7sN6SJ0Ra0TrqKufv33hl9pJNgBsTjaafPHmjx6R84vjGDuziPwWFnuHOdPl7WaX3krTqsQ95UnXP//oRzMfhuDZsUYikRzk4EskkpqaGjKZ/OynXc6cNUOFEW/+9neYjE5dxZSBXPTvXvtTRt8Sf6Xfw87UDRNKiMZbmf7sQ6oRK2RVBJSVs29aSoK12Z2C7kUAeO/dd1+6p9/+9rcXLlx4euuOP189JdbsLvTc/OCdC1fc5gVaAKA1ks6//aobqWZ5osHcxCyvY5K9szPVXezg5N42t0VtzQ1LKucI+EXRaFRc3XMrLXhPFAoFi8WWlJQ8AyfO2bBGLVwLtrWzMrWPzGlTg6a7ON7Z5qZzaGxlCcnKPXb7Xua0gLPJYgvUct4wpauhMBHjh1t+agV4jmhvb8/c3PzcuXPLy8tSqTQvLy8rK+u5uJzOnDXD5Sk/XPzKHEHYkAIotknoO59f+T6vZyQjwMEzpkqX38Wd74xJymdx2RW55MFVMQA0htsioss0ABfOn3/pkC5duvSXGjf8lFjDW+h1/NXW9o51QT8TNPv50X621jcC0gtzCT5O+PuetR3W2vaeWKWUKxSytdmeYKRrYvW4MRTFkEgkpaWlKSkpo6OjB0Pa1dXV5ORkofAsq1WcDWtUglWso0dkZJxPSBJzazUrJowQ548MicjOwjngc/n6xi7s0TI/39Bnxpr8/Hzds3T+/Pnk5OTh4eFn87vHdeasGSxLc7VHebgh2xf3+PSuYF9vd3frzNpyD3ubwpFD4Yha7UG1JA2fjrS8RW6hAcC5c+cOQPPP//zPLS0tj902I9dTYg13vtvF2ic5JsQ/sZazNhEeHEaM9gpITE/AO3vn6SuoJtqsTA/99ZZZSt342S6e+SSi0Wjx8fHx8fG6wL/Q0NC/+qu/8vLyEolEp577kDor1jCDHLwKyltjAv2yC3OiCektlfFeoVFV5am27jFb99xP69PDA+NLujWW1gaKfZ8Va6ampt58882DJ+r5OkHPnDUDJclo/zRyREBiSXdneVoCOTs8wIlcXeLqaFNCPRQ6pVbrHPGyHXoU2gpBKNMV4v7www8PrkxCQsJjN8z49fRY42QV2NtR740MKClIjkqtbsjG+CbnFRL9nMMqDsonz1B6Jxc3hYJdgVQJoKW3pNm7Ymi7z+hd+zDSaDTDw8NZWVlJSUmvvPLKSy+99PLLL5/h2qdnxRqGr7VLRc9Ca2bAV9//QqocmGonOQVGz82P+zvcicxrXt9iL1Lb3Cx/wRdSdKxZ7S9Eo4OX+E/9WisUCktLy8OfCf/wD/+QnJz87Of8dHoarEEGFo53FiG9UBh/XMfQMCHQLruTQvJxDEzv0Dlx+Mv9oYExM2yZeIOKRzv4J1cfzJqQyeSXX375pZdeeuONN57ZAuTPRU+JNRx6p+1tn5nVTZKP6ddXrWvHmJ1ZXkhSxQq1yer2nfz2ia1t9nhbnumtOyV9tN6KhCBi8SaPTymNcUTilvefcHWRs9fCwsJrr7128LC8+eab09PTZ2L5jPw1ovUoVEDT2DZ7vOQXE/sOGpdBycFEJe8o1AuUck9HK1t7BxtrywBi4Zb47sXdGKsODycwBU+dNUQi8W//9m9felDnz59/XsH4Z86avvx4Z3T29gYN8evnV+yjN3dWwlGm5F766ki5pZkpLjGrsrzA2/G2XXAGV7AT5/rj+csWmaXV1ZXVY/R1ABgfG3v55Zf/5m/+JiUl5Un/N+PW0/INLw+g3cIXOMqREuxPVkGMPTmlOBiX06gEZU9pgq2Vpb2jvZW1HbG0W6yBHXpfKMLF08vTFYGpHlwyBn/NEVVUVPzmN785/LC89957Z5KEfDasAY1ql8MVy9RatXSHy5OrQSnd5+7qBukg2mUvzNOXVzcFl+jkAAAgAElEQVTlhy6tSiba3eU/7fgaBoNx+Ovp7/7u765duxYaGrq4uKhSPZ9XylmzRrs80llcNShXSDqr0nMbqWo5v6Uyq39xG0Az01sdERLo6+tHyKpa31eCeC0l3AfpExAcGIDxCazoogLAAIXy0ksvmZmZPfF/Zux6SqxRK6ScnV2FGlQywTZvXwMgFfB4+7oVULW8rbV5On11k3cw4yTZ21mcp7N2jLEi0tTU1FtvvfXSMV25ckWheNJhwRmxxiil0WguX7780ksvvfrqq1euXMnOzj6r0eCTyNhi+Xp6ev7xH//xSVK0/lz0lFjzl6Stra2Ojo7h4eHIyMivvvrqww8//Ou//uuXX375N7/5TXR09BMaf+qs2d7enjpr0Wi02dnZk4+ZmZlJTEx85ZVXbGxs0tPTJyYm5ufnl5eXZ2Zmjhw5PT1No9HOvJFTU1OTk5NbW1tHLoixsWZycjIoKOgMDRqtnjFrtFrt6urq5OTk2XYqGo02PT19VtZmZmYOd34ajcZgMBgMxtzc3NjYWENDg7u7u6Wl5d///d+/9NJLYWFhD//T09PTe3uHF2h/yqxRKpU4HM7X1zc6OjrqjBQdHW1ubu7h4XGyzejoaG9vb29vb11Wa1xcXExMjN7DAgMDf/nll/Dw8LNq4YHlgIAAb2/vI9fkmbGGw+GkpKSQSKRkw0pJSYmLi4uPj09NTT3hsAORSKTExMSTbT6SEhMTk5KSzsragUgkUlpa2pFM2mfMGolE4uDggMPhzrZT3bx508/P70weqOjoaC8vrzt37hy3FhMTo+sYui6EwWAcHByQSORD/m50dLS7u3tGRsbhC/J0WSOTycLDw1ks1sPcm4dXampqX1/fWVnb2toKCwt7GitYcjic58iagYEBZ2fnrq6uk6uKdHd39/T0PGT9kfLychMTk6ampjMpg9Ld3e3q6hobG9vd3f3k1o5YRqFQR2KFnjFr9vb2MBjMmferkJAQJpN5VtaGhoae0pzA6OgokUg8vOWpsyYqKurMV7xOS0s7Q9ZsbGyEh4c/uevruLa3t/38/I5sfJasIZPJj/1DeiUSic62okJubu5TchUVFRW1tbUd3vKMWbO/v+/v73/m/QqHwzEYjLOyNjQ0lJqaelbWDmtkZIREIh3e8ixYs7q6qmeXWLDL2xVKjhTBUavUp6eIpKWl9fb2Ht+uUcqEAoFIfH/dFVArhEKhTHmSTRaLFR4errccj0Yp5e/y9gQH6+6CViXj7+5KTzR4IDab/RxZMzg4eORmP7l2dnZCQkJkMtnphz6c0tPT9d7KJ1dOTo4xsEZfv9KKhXu8Xb70wXU7tRqV+iGmZXE43MrKyvHtcolwl8c7/EAppUIud1d+4rhqcHBQP2u0KrFQKBRJ1PdbpBELhdKHXmt0eHj4+bNGK9/rrEjzcHZycnJycvXKaxwWKbQAIOMupuBDaij0U83qY41yrrfc8fbVzz755POvfvCPL1jbk+0xx7Gutz//9NPrVoj26U1D1gywRrUw3Bji7eno6OTo6IxLKtzYVwhY08lhvh7u7v74JOra6f++UbJGyZgZqi4rKS2vGZlbVd7rScKN+c6ePo7slL5uiDXcNVp7Y21FZXXP6JxArgEAIYfZ01JXXdcyz9o9wah+1igEE5SOqoqKmoa2xa19AACNfHG8r6qqZmiW8ZAhmMbJGtneenFyuIuTo5OTowc6uH5wXncLOIsDkQG4EaaeEplHpIc1alFXRZqXq7Ojk5Ojiwe5uk+q0TJH64NQHp4ermgcic4WG7KmjzXa7YXBcJTtl5998umlr60RuJEVroTHzMJ7fXPps2t3XCsp8+qHiFQxAtZoleO1JHNrl8Km/lnaXFdVuouDZ8/8jnCHnuDvePHdT9Iaxk81e5w1W9Taqx+99ekNh8S0jCg/x88ufZ/dMlSTjL7w6ZUYEvHXrz646U7cM3CB9LKGS+9C2FvhUsqpM7Tx/sYAF7v0uoHBppyAyEz68jwpwD0wrf3UTm98rFF0F0V988mHH56/eOGDd9+/+G1i9YgGYH9jJsz+8u8/+4myc8pbSx9rtIzReoSznRvSNzjQ18nWJjKrkcNhpoYgvDBYXCDKFRM1vWEwmfM4azSSrXyCn4WtayA2BOPlZO3kM7LKX+wtdrR1wkfiPdyQNaMP9UlujKxRiWpJvhYugQ29o7TZybIUnBsKv8iTbMx2Bjj++tH5HzsXTi+nf5w1cy2pt80cc+t65+j0npoMR2uX7rnFjFB3XGYTkzkf7W6Ky2o3dF+Ps0a8NeNv8c2fLl4JJaQkRQdc/eozTGLl5FC9s+mdMEKCzeXz39jFch6i6M3zZ41KtB7l5RxdeP9hY8xRWTzB1tJgcUFusLttdsvpveEoa7TSYpzN6+9/37kiAlBxWfMtDQ2jc8tzE31dwwug4eLtvv3OIoxn4LtHH2tULRk4F0wq9x5OBBvzcyssPp/D3RPtbsxE+3rElg6eOpo0NtbsLXRdef+NK474Efrq+sJIXCAyNr99l72Atbny5qv/8Z+f3xjgPDJr1ML1WE/roJQ6jkiu1WpWxxrjCGkj1D4SiTzNlsH+Soi9eX63wQpBx1kzU0+6ZeY+tMxVa0At3y0jYvPaJsZ7aks75wBkWSGemNTuh/n3jZA14o1xT3Pb8qF7Q2ytmDYzwxOKaKOtRdnJCEfHzvnTY9mPskbNi3Wzwh9K8mTSJphb7PnZqR0pAEBRgFUAqd5Q3Oox1mip9YkX3vkgvHIcAEQ81kBXc+fQ1K5QxN3epNSl3vz6U6foCslDfEg9f9ZItsc9XNxKh9kAmhVqR1YmOSu/eIC+qQEANT871D2r+dFZo9qJcPr2g+se2wDMzowblz/7+JNP7cMLBQAA6s6c0I/PfUqoohoa9+lhjVZIjvD0TevSAAg3Z8oKMskZmbW9U3IAkG0XEX2v/2yW1TZzqs/GyFijHSzFvv7mhfK5fVByW6oLyOT0vJouxsJcWW42Mcjt3BePM67ZobVYWSAGV2UAIBXu8Tjb6xsb+2KJTKECgO2pJnd7985Zg9WYjrFGnB7kgk7qBACtSsrf3d3eWtvk7GsBQLHXVkwwv2NTOvxQpVqNkDXbs3VmNt5jbA1oJRM91Wnp5NzS6jnWPgBoeHPhCNcO+iOzRiukuVhbFo5wAWBjtjM9PT0rJ79nVoczzXRLurmNZ9+SwUf1GGtUzRmody5817Qikq0OIi2uXLx48SfHoKltLYC6iez/zZefu0UV8eWn+yufP2vk/PkAZ6e0RjoArE1352WTrG5fQ6W2KwFAvk0Odn0c1miFGZhbb3786yQPlPzV7qbC6x+88aldLFempJTGfPXxZ+iEmhMKLuob18jL4n09wkqkALIdelVJdpCX+Y/OUfNsgUyhkEv2+4pjHFBhTNEpV9zIWKPpyfN5/a3Pm5hS2KGibX764A//9/98fHuCrQUASi72w8+vPgZrNqiVZnZ+VLYa1HvNRfFIL3d7T7+2OS4A7NB7/L0c4kp6xIazQY6yRrsX52sXkDsCABx6Oz7Yx83ZPii9UQoAMm5rWRrSxSEmv/NhpnaMkDX85R57M6c2uhBAOdVfl0LE37j5S1LzPAAotqg4T5fHYA3IWQG25on18wCwTe/Jzky2N/nBLqEdQD1an+7g7FY/flK5/uPjmsHyyPffuZjavQIqIZXS6GP67e8/u9UwtrzO4mhB3ZkTeP7itY6V05/9588aUEuaUoIsXINHFjcEIhF/YzbQ3dwvs1sJADJ2WoBTRuNj+Gu0tNbUD/7zdTNM0iB1ursq9bM3X/nWnTjYXvLVH1+9ZIJs6BtbXts0VCtEr79mua/E1sIuv3WCLxAJ+eyqFD8Tr8iCvBRSSYdEpabWxNm4Ba4IT3kyjYw1sNKT/fZrr/vm9KkAFMINostP//7+jdEtDQB0ZwQ+HmtErFF3M6vifiYACLgb04P1lmZm5K4VznwvFuOZWN5zMheOjWuUtQk+VogUMQCoBGuryyVEryuOkcPUqRWuFACWWxLNHH03HiKVzQhZo5HupPnbu2DJ8yyuWCxiTrbYW1umty8BgHxzAuvm2EbbPtXsMX+NqjMj0MQ+gEJfE4ol/C0azt3MI7Vjsin9jrldUfeMTKlUKA1er+P+Gt5Cr8U371287tbQPzbSXeNw5dxbX1ukkYl3blmVdVDSgizf+/hnytrp1dSMgDUAcj4zOzbAxtrWxdXV3s4GgY0fXuYAAMh2cvDI/PbJU83qmYdS7jVm4b7+5PwH77//3nsfXL3jVt7ak+xn8m//+m9/eu/DD9//0Aodxzbgy9U/D6US9VSmutjZOrq4Ojva2bmiy/tm6UMNGDcX3wA/dw9EXuuk6jRvvLGxRivZjHD+4ffvfOyIDvD3sjv3x9+d+9V7ZV8LoO1I9Xnr/De924/uG9ZIW7NwFnZeGUXVHR1tBanhdxwQpU2NSLMrt1xDmrv7BwbHNncN1ls67q/ZX+n3srmDiUxrbOtsa6wM8LDwjCuuIOOcfAlDo8Mpoe6IiDzRQ8yDGCFrAGCXORaBcbe1c3B1dbGzsw+Iz13iSgFAzp6K8kF0P5ZvWC3ayI7xt7Gxc3Vzc7C1dvOPHZwc8Ta9dPG72xg/XyQCU9I29tD+GgCtYrqz0OL61++///57773/2Xc344s7lumjIY43P3z/vY8uXQ7LaZWc2vWNhDUAACrJ0ux4X2/vMHV2X3bvS0Sj2F5b2eGfXgfMQHyNZmNpdqC/b3BsmiOQAyjX6NTBoaHBAUpvTy+VtmLoG9NwfI2Gs7Yw0N/bPzi2tnO3GCJ3baG/t3d66WHerEbHGgAQby/mxgeb37p508Q8MIY8srCpAQDQzLQWIHxxtP1Tvgr1znmrZfyuyqwAH6SHp6dvSEzLyAJjognhbOeO8PHxRvkGRFLmDQ7j9c55by8OJeADvLw8Pb1Q8Vk1rD2ZeHshOy7Uz9cvLCGLtvVQleKMkzUAoBLzZieGenr7JukM6T22axXidcbKvvT0r0P98TVqyQqN2tvTMzQxy5dqQC2enRgaoAz09fZ0d/fNr24buq+G4mv2d1ZHBvopQ2Mrm3en4aX8rbHB/ok5huyhYsuMhzVPJkOxfI+nE2L5nlBGyBqdlAq5XPHAME+jUSuVylPfVifE8qkUMrFEotSFXmhUcrlMIhGLRCKxWKI0HJ9pMJZPq5JIxFLZoWdPoxSJRMqHjvg3WtY8oQzF8j2eDMbyPbGMhTValVwqk0vFYoXqbi9UKWViqfwgbFKjUihUagBQyKSKY5FDelmjVSuEQolcKtkXSnQnKOVSoUh0MNxTyyViqUwLoJCJJfL74xKDrNGqpTKZXCo96PFajVIikajuB3eq5QqFFkCtlEvlet5IRsuax9aLuOEzGNcoZDK5XCoW3+uZWoVcKpXr0K/e53G4fIEWAEArk0qPf6zoZY1WpZDKFDKxSH7vgVIrZWLp3SGIZH93e4ene5MoZdKDY8AQa7RqsUgsk8mEwrtwV6sUIoFQd6JWrdjb5QmlCgDQKKUiif4AUONgjVLQVV3cNjieGeTlSyjVTeYsUArxGeVcBQCAZJtGCsO1TjAAgDHSUlDTI3nwvaiHNVpZW2Z4RHZTc2bUjz/erqNuAcBwWZK1m+8MXw0Aij0G0ccGmVgs1MJsZ0FIVAZLdBc3BlijWRxqrmwb6Mgnunpip7bEACDaGImKi53YkgAAqIUNGTEpRe1yABlnIT+3aGX3aK8yQtbI+OuDQ5Ms5lJrfRN9QwAAEh6ru7VthScBgK0lam15SW0rhStRyfhrA8MTR9bU0c8ajXx9eXGNxRrv62NwdB84qvWlqdlVthZgn73c1VRb3dC2xBYAKNcXaZv79y+UXtZIeeu0lY212fGBUbruJilFW8Nj43tKALWUPtpTVVXVPUKTqEHK35pfWtM7HjNO1ij312tKiweGByJcbBOqhlUAALLOysTkOopMKe0pS8WgkGgfv9KOSblaMdZSVttHP/K1roc1Wkl3VUHH2ExBkCsiplhXVpQ5UhxMKuBrYJlSHYRGolGohLzGPaV2a7ozu6xddG94qI81mvnuEmxUemdThe3NG+H53RoAFrXV3ca2Zm5bzFlKC3G//M3XJvboFuoad4UShg0fWNaz3otRsGZruhUXmTzHWAo3/+aNP31VNrwGAJMNMdZBiWwF7LOoUWjri+9/kd9NAwAJeyYqCNu7+EDs9nHWiNb671z+Pr1tuirC+Z//7m8vu8RzFZqOJO8Pv7g5yFEJWdPhHrf+/bf/9B0qfheAN9ti+fP1jPYF3bl6WaPgr6RG45snGS1J3n949ffIxFoFgJDR7uDm2rMmVku2qskR3374vmdkiQQA1KLKJFxqzfCRTwXjY422NcXXxjuBUp/7/v/+/371zRQDbI5WffXhhcyxDf5ij9X3F85d/Pj8hYsIQuX60pCX+e18CvPw+XpZw10aICVnDQ122Vw6Z4cv2lcDgKiU5I0r7tzfZcb7uaMCcGEBSM+gxGXu/nhjNqmo8+DloYc1GkljFqG4e7o2wvmd81c7l4UAsL/UZOviMbWvnm7McLR3i4qJcHdxzW6ZFu3QU+KJw4wH6qToZJSs0Uy15UYklzHmR2w++a8PvnccYOwDyMuTUb6ZDRw2PTIwsLJnarQlx9YZO7ut4My1h+IS5jkPXO3jrOEtdAWHxs1vbhIsvvqP33+R37sEALS2ODOfaI5ckhuJiS/uZsz3upjbVk9wVUImIci/debu5Ppx1qiFa9EedzyiSocbMz/87f/z2semo5sSZn/pVx+eIw8zlwar7G5bRBGJFt+cu4bI4HKYYU43EYn18mO4NwLWqMW1ybi4gm65hB2H8HCwsLZxD1valc21Eh1xKTsK7Qa9t7ggx9/FpriXBgAAisb0IGx2++F31/E57+G84E9+sJzbUzREu73+7//0r/95jlg32p4e/On3piNcxWxNhoON1fcfn7+BIfI0APKtSBcTaz+ybjpDL2sWuwv9sSS2XNlOjrS6bX/H1LZmYkvM6nVDevWzJIrdhZqqSlKgU1BimS5yZ224xN0vdvXBiBtjY416d8b26hdhpeOMnoK3/+nv/tfvzmf3r7GpNZfeeT9jZG2hO8PUzKV7dqko3PxPH5lOb7LzQyxvuCfvHgoW0DcPJa5LxydXUTiMUbtvPvv4q18LuhcApMWJyJDCzk3GCDEpc4GnVHPnfC1NK8fW5JyZUL8Aysrdl8dx1uzOd/hgwhgiZX2U5wd/fM/Cm8RXg2i5ycrRlcoVtRUlZbfOAEBfZrCzD1ECmu7CWDy58bhTxAhZo5VspWLRhb3Lok0qysLOzsLGC5+zJ5PWZfgFZDcK5RL2Dlco5PVUJDmj45b4alBzk3HorLbZww/y8Tnv1tSgsMwOlXY/wcPRxsrR3CFgYU+z0pNk7R+3LVdz2Jv7YtHyeL2jrXvH/D4AdOaH+SfX6hwNx1mzMVpz68rlrIG1hfacz3//v//pld85RhSPdlb8+Omn5KE1hUzMZa/3VBKvXvrUK6lJrVU3pfpe+dmLdmxQ//xZoxSsRnp7F3QzQbIRg/ItqOmOx9iFkBsGGonOYSlbugYrOSn+LkU9dwPb6a0Z9shk3qH/5RhrRGSM5femAfsAteFOH/14zfr2D5/9ZBvu637pB7NhjlIuFPB5q+E2V294x/PUACCrwdl/a45YFAIYyFFoTA8PSKhTAjSnRmBjyuszcbaI6PHxVk80onft7pzUcH5wILFUxxrJ5gTCHtmz+EARWWNjDbMn79KFL5sYwrWuvI/++H/e+uCdT038ejsqvjt3Pn1oTSUX8oUyUHIJ7j98+rMfS6qaqCR8+eUvfaz7mXvHWSPfmQv1RLfN8USrwygH7xhcsK0blr61U5nqgy1ol6iUugDijbEqZztPyjIfQJIVjiJUjOqofIw12t6cCHRUBQBURvn7BJJ8bU3iaqb2GO22zm7UXY1SLlEDgIKTiXULJNWpATaotS5eYct7R93PRsgawdoIwsm7nyGVrI/6OAbUNbf5OtuSGwaqs4MCsxp013S+r8zN6menkMwNoQpA05CCCyI2HF4e8yhrVJxIT5eszjXQ7sa4uWbVDKX42aASG2Z6Um3878Z57K8M4FHm120wEywhACz1FDl7xrJEGtAfyxf33Re3BjYE9OaM77/8xMLR4uInlwNxuO8/+zxjSJeJJq5KRF26dMk7sVqiBXpd8nffXKmZPfoZ9fxZI9ul+SG9y0bYINmI8vIu6WJsTdW72DoEh3o6h6exdfdFwkrEOB+whtVX7OAQuSm+D/ejrNHwYj1+vWYVKQeoDnP49LZbe1f1Txf/67/++M5HP1oMc1QAACoO3vLKDe94rhoAlJ3xrp//4jK9owH9rJEVJgQFkjs1AM0p4YExDWI+M9zTFhXkZ+OF7F+/O+fal+V/wBoldz7Axq2Z+kAslrGxZrAs7MJ5k5k9xWpH1scfXQxLjv/ivbfNnT2+OPdRuq4baQRl0R7vvf8luY2mBVjryPn28y+Kxu4Hsx5nDXehy8UlaGJLKWIMIB2D+sdnEv0cg5OKcpL9QgradQ5z9myHt5tdYtWARA0A2iZSaCChTudRPMYaaQ4eHZwzCADlERhsSu9yf66JmVtTe5mjuwdV1+PU++Ukfwfv8KktEQAImCNIG9Qg4+hEuBGyhrvY5eDkN8ZWS9ZHUHaYgUX+ZEOyjZ1bQJBbcG6TSKmQyGRKhYy9MOjvYlPUvwAAfVkx/mHFgkM+m6Oska1inJyLRjig3Y1xdsppZ/EX22xuW4RFY2yDEtgytVQsUSoVAh4r1d8mOKtFDbA1Uuduj13aVYIe1qg78rFffW09vSOmNaVf/u5KVmunj8nnf/jje39676PskVWJgMva3AWQ1yYhP/ri9tC2jNWZffnrbwuHj9a6ff6sUQqYEWh0fhcTJBsR7oi8liUARWtG0MV33rjpR7q7Gq94PQHtUNA9qztlvjXTHpHMOzTPc2xcI870tf7BNGAPoCrE9sPr9ssCWXW0w7/+z//x5rdmIxwVAGhkWyF3vr2KjOOqAUBWG+Zw2RK9JAIwMK6pT8UHxNcrQdtIwvmG16gA1kcqb33xzjtXzPo37r7nezMwfvHF98c1dsiehQccB0bGGi2lNOTChTv0fQWzI+vCuY8r59ZLgs3+5Z//5bW3zmWOboBGUkVAXDj/ZWz53US+9a687y5dKhi9D9DjrNmmtzu4BFG3VSLGgJe9/whTzJlrcTb/5ec7v2ALO9UAaxNNAWiP1JrBg3dzW3JYQHSVVD9rxOmhSGzeCACUR2D8id0A0rwwl1tmP1+zc58WgFbKqUgO8giOn9u+m2ssXBtHWSMoS0cjWY2QNYK1ES8HdD9DKlkf9rJG9S6IQcHNDLD6rz/9CZXdvMUciYlLpLJEcs6cv6NpdhcdABpSwoIS6k8c1+xEuDtndqyBdjfSwS69iQmgHSgI++CPv/seEccV7aTHYOvGWWqlJDvgDialXgWw3Ffi7BHLEuof1wxVxn//5e3BDQGtMfWrS1+VTG/TW1LOvfpP/+vVt3NHGeONKb/esq/pGUjwvvXhlxaTXPliQ+r33/1YRz9Kg+fPGlCLahKxMfmdMgk7ARNQ0rEEACr+YpD5t6ZBKTu6WQ/xRmqQV1m/rpCNvDEtKDir7fB8yHHf8GhByOc/WdP2lU2xHl/e8ViRgXxzzPXqhx9csxvn6lizHe1w0zSAtKsGkG9FuZra+WfomKHXXzPfme8bRNySKzoyY0MJjVINAMiq4zy+uG4xuHk3uWogPwSXUnnfX4OJWRUatb9mqTP7i4++62SJma1pb7/1dsmiVLk1dOPdf/37f/tDxuj6Sg/5rf/373/37tc+QaHE1KJNiWK6Junbr250r94fMhxnjXhz0t8F3TW/J1zpd7FAUZZEAJrOTP8/vPYqMqeduzbqeP1rM0REa0//4NDY9r4MQJoX5RNVSNHNhBxjjbolBesTUwsAJaEIdEwrAEg2xhy//a/XL5nM7EtbU30+unQ1raJ1gEKZnl/VALBnWlzcsHTu0eBKI2SNRryZHIDI714SbVL9XQMpi0IA4C/2WH7/KSa3VShgZ4ahPbx8MCgPv9jc9X0lqLgpOFRG6yn+mmaSf2hGu0qzT0R45ratAgDI2UFml66hCHy1sj0n3NHJIygA7eqNG2XuA0BXfpgfyaC/Zmu8zvSnH3KH1xc7cq9dvVY2wwMlN8XH5A/vfVxI3eQtD2Osrn7w/nsXv/whpqRPBerm9IAff0XMH1tU0ghYA7A2XhsYRlziCDcZzB3+3ed2l7VIZ24odI+qWr7JWNrZlwCAjEOL9PfvoD0Qu32cNUJGt8nlKzm9K/yNZSptUaIGAPXmyszoNF2o8yprFGvzM3OMDRUAf6HT9tb15Bad71k/a2S8+Xg8tmF8bW+bxVzn6UJ85PvbczT6/r0A5P1t5uomVw0AGklVUkhiOeVIfzc21si3Rm5//0Vi2zJnpt3Lw6tvXQqg7S2KMrdza19gj1bF/XLjpsmtWzevX3dARCzz92qJbj9Yh28deqvq8Q0rdvOjfdMbqcLtRTIxh74pAQD57hIp1Duna5I5XudqZ+2G8PZGo/yCY8ZW+RrBMh6Dapq+O+Q+7hveGCn3QEeyFdrB8uzcGioAAGgnG8gobAyDyymMQ9+xcfHF+CAQ6LSSdiXAaCXRn1AsPjYPYoSsAVCP1aeFEIu394XMRca+rjSDVrWxPLeyxdMCyAWcyWFK/zCVI1QAAGeuHYuNnr03gtPp+DzUzkwzJjBmgSPcXF5i8+/emj3W4tzymhIAVJKFyeGevgHGthAAVEImIdCngXo3817PPJSAGe5m5hVXw9/bmZme2REpAECwwxwdn2ALdX+vDvX3js+tSDWgFW9Euf/iHlclPeouMw7WgGKvuSSrfeqk9EUzxSQAABygSURBVNMDLQ83ZpV1iB+MFtUXXyNtSA4KIbc9ROqAZrojzzc0aU1wcnyNeq63pqC2/2GiPqXb9CxyziL3aISbsbEGQJYfbGfpk7qr0KhUBzGJWpVSpdFo1UqFQqlUKBRyuVyhVEm2Z9BmV6OqqYd7kd45b8ZIbXgseYUnU6vV2oNnXqtWazQatVKhkEulErFYLJZIVWrVTFsuPrGUdy/+6zhrtPKdzKig4r4lrUZzuCamWq3WajRKpUIuk4rFYrFYLJMrpbyllMiwJqqevmSUrAE5n1mak0NdF55+vkY+3FBU3jlzenyNRtxSRG4ee6jofNZka1phk/DE+Jq59nwfLIl1Qm2Ee9pd7g/2DerRV3bHOFgDoFHJJbKHquWokEoUx2In9cYNa9TyfYHkGF6PSyuXCsWHfv2EuGGJVPowC3NqlHKJ7M8jbliwPlFc3syRnP5fibZmy8rqNh9Mc9Qfy6cUUocoKzsGC03el1Y+N9Qzd6hMn95Yvl3GZPfY4sOsiCrYWuofoor1JS4YJ2sAQCWX6ubmTpNGJtGT5Gggblh/DzwuhUxyetwwqEVCkfIhKn2qFRKhWGrEccNPrBf5UA9z5IscBeNkzRPqRT6UwSNfsObIxhesOawXrHlUvWCNwSNfsObIxhesOawXrHlUvWCNwSNfsObIxhesOawXrHlUvWCNwSNfsObIxhesOawXrHlUvWCNwSNfsObIxhesOawXrHlUvWCNwSNfsObIxhesOawXrHlUvWCNwSNfsObIxhesOawXrHlUvWCNwSMfhjULCwtjY2MTExMTExNjY2P7+/snH38qa5hM5oHB8fFxGo12wsEPyRo2m31gU9fO5eXlU095wZqT9d+cNVtbW+Pj4+Pj47qOOjk5qVCcEpJ3KmvodLrOoK6XnnzwQ7KGwWAcfqCmp6fV6lMqPxsda7a3t1NSUqIPKSoqKjY2trm5+QSzJ7NmcHDw2rVreDz+wObt27fJZLJIpL/+/qmskclkeXl5UVFRh9sZGRl5/fr1xsZGqdTg4sZGzhq5XD4wMEAgEIhEIpFITEhIGB4ePhn0J7NGoVBsbW1VVlbGx8frDCYkJJxM5IdhzdzcXFxcHPGe4uPj09LStraOFjE4IuNnzeTk5J07dwIDA2NiYg76VURExODgoKFT4ETW7OzsoNFoExOTA4NRUVE//fRTX1+fIWunskYikWRnZ+tMHX5IiUTiwsLCCScaF2vYbHZmZmZXV9eRx3VlZSU/P7+trU2j0Z9ycAJrxsbGyGTy3NwDC0hvbm7m5uZ6e3sLBHrW0DqVNY2NjSYmJkwm88j2paWl+Pj48PBwrVZ/NLcxs0YqlRKJRBKJ1N/f39vb29vb29fXRyKRfv7558rKSkNnncya3NxcR0fHiooKnc2+vr6AgAAEAtHe3m7I4Kmsqa+vd3Nzw2KxFApF187u7m4PDw9fX9/R0dETTjRy1iwsLJDJ5LGxsSOdp7Ky8ssvvzwBN4ZYo9FoSkpKYmJiWCzW4e00Gg2FQhl6eZ/Mmt3dXT8/v7KyMqHwgQQujUYzNDTk6ek5OWlwNTfjYk1dXZ2hbi2Xy4ODgyUS/elfJ7AmMjJybW3t+HaNRoPFYre39awreDJruFwuFotdWlrSu3d7exuLxapU+tNbjJk1cXFxY2Njx7f39/d7enrqhTKcyJqVlRUCgbCzczQNj8/n29nZtba26jV4MmtqamosLCz0Xt7V1dVff/31yEvlsIycNWlpaRQKRe+uhoaGoKAgQy8wQ6wRi8UoFErvKX19fR4eHnp3ncyavr4+QzYBICcnJz4+3tBe42JNbW2tubm5WKwnZ6+qqsrMzOyE+2Sog6LR6JiYmOPbNzY2AgICOBw96wqezBoWi/XHP/6xqKhI714qlRocHPznyBovLy9Du0pKSqqqqvTuOoE1IyMjhnptfn5+Xl6e3l0nsyY+Pr6mpsbQ3ujo6CM0OSzjZ42hi0wgEPz9/Q2ZNcQaiUTi6uqq99ZkZWU5OzvrtXYya/r7+2/fvr2xob8kQ3BwcFxcnKFzjYs1jY2Nf/jDH27fvt3R0XHgauJwOHFxce++++6NGzcM+clOZs2rr76alpZ2+Purp6fn66+/Njc3393dPX7KyazZ2Ni4fPmyu7t7cXHxkbd9QUHBZ5995uHhYehbz5hZY2FhkZycfLxrDg0NvfHGG+Xl5XrPOoE1VCrVycmJxztad3ZsbOztt9/Ozs7Wa/Bk1iQkJLz99tsMBuP4rqamptdee62/v9/QuUbOmuTk5IsXL4aFhR2+mHQ6nUQi/fDDDxgMxpBZQ6yRy+W3bt0KDw8fGho6vD0zM/P11193cHDQa+1k1gwMDFy8eDE4OLihoeHwwzg5Oenu7v7aa68RCARD5xoXa5qamgoKCqqqqkxNTb28vNBoNBqNtrKywmAwAwMDOBzuMb6hCARCZ2dnXl6et7c3CoVCoVBIJJJIJPb29oaHhx8f4cNprFldXY2Pj+dwOJWVlf7+/kgkUtdOJBKZmZnZ2dkZHh7+5ziucXR0vH37Ng6H6+zs7Lqn2NjYxMREf3//iooKvWedwJqpqSk7OzscDldQUKCz2dnZiUKhbty4YWJiUlpaqtfgyaxJSUmJiIgICQnx9vY+aGRHR4e9vf3Nmzdv377958uarKyskpKSiooKX19fXadCIpExMTFDQ0Pz8/NxcXGP8Q2FwWBGRkaSkpIO99KcnJze3l5DbT6ZNRQKJTc3l8FgWFpauru7H9i8desWmUyuqanJzMw0dK5xsaahoUH3/lQqlbx72tvbAwCpVIrFYh+DNdHR0Ton7u7u7oFNrVar1WrxePzjsSYqKko37Nrf3+cdEgBwOBw8Hv/nyBofHx+xWDw+Ph4XF6ebMIqPj9d5W9va2gz9xAmsGR8fT0lJEYlEVVVVBAIhISGBQCAkJiZyudwTDJ7MmtTU1MnJSR6PRyAQ4uPjde2Mi4vLyMiQSCSFhYVdXV2GzjVy1mRkZOgcwHt7ewc9SqlUAsDCwkJMTMxjsAaNRuv+PtJLdV5FvdZOZU1aWhoAqNXqwzZ1D+bIyEh6erqhc42ONSUlJXp38Xi8x2YNnU4/vl0kEj0JawzNvKytrf2ZsgaJRBpyAFdXVz8ea4hEot6z6uvrH29ck5qaesJe3SSmob3Gz5qenh69u+h0+mOzRkerI1pdXX1C1uhVf3//C9boZY34cVmzFhUVZWjvnzVrdEPI4zpz1tTV1b1gzRGdOWskEskL1hhkTVtrq6E5b94uHxcaIpc9hr8mbnF+/vh2pVIZGRmxe8xzCaexhr3NPuHjeYvNjoqKBPjz8w2jUCih0OC4prz8kVkzOTmZaIA1DQ0NZY/FmvT09BM8MlnZ2T3d3Yb2GjlrcnJyDAXR0OcXCHGxAI/GGpVKhfHxUet77W1tbeFCQ/RaO5k1Y2OjJ3hkhoaHs7KM3l8j4a/VlxcjkChXN48+6rJEKhhsrc3MyMzKyiqtbefJtYLdbWek//ym/hjWY6xRzA62Z2dl5+bmWtrYDc4s7G7MFWZlZWVn5+QUDs+v7azRSnIz7VzcqNSR0VHq3oOzWyewRsRZTk0gmJiaZmTmDsyuSSW73XUVmZlZWZlZVa0U7h6npiDDzNJ+bo2rt53GyRqNWikRCV1dXTfYHAAArUYmFu3x+fy9PYlcCQB1DQ0lpQ/PGq1cKhEKBN3dPYlJRABQK+TC/T0+n78vFGkAQK0oLSmpqCzXqFUq9VEon8AarUZNTIhvbGyUKTUAAFq1RCTc4/P5/D3dlrSU5PYug5wyWtZsM6fKCwts7ewCsfiJZbZUtN1UXpiZmZWVmd3YMy7VwiJ9ytU/giPSX5D7KGvUgt7Gquyc3PS0tFvm1jyJ7P9v70z/0sjSBfxf3fuhZ3qZe3t6ZjrLTCedNulO92hC1MTYLnEjERAFUZRFVDACiohxRdAIinEDNKwq4r5HFEQREBA3oO4H5pdfWgtEQwO5fZ6PYL2Up4qHU2d535VJGYfFqq+va2hsX9i2vtOPVVdQkjNzN1ZnFBPzR7+9AoFd49tc1BaiUIhHiOaO7qn1XZfNIHzFZdfVsdmcAdW0eXu9kohPy8EY7fAyjRXXbOnFOVmovGISNusBElk8OqEtycuqbu2RSqXKiZl9l0PaRv+v6w+6dDDdEAim7qWNVZxTVNOieDt2H/E0q7pf089OyyVIpDKZ7O3y2pK4lcPli29+jyiict+q1NuO37g/iGuW37bdu/8kITVT3FSR9Zys0Skwz57VCSQyqVSjX1qbHSORGd99/RmG1nkI17OJSde4ezgUJIZw7do/MPnoHvXa2nhPdnpOGYVKJtPejK94jl2sqtKHuEY33H4XmLqXqwpsbl55ZTUyN+uX9MJ3xvU6Mg5VRKCQKezm1/NLulcvKx8lPcnElA1LuocmVs8kzA7oGp+jnVHy9bXbWc8yysooQ3rDjKwtIz2PRKVSqIzRmQWFpO3uD/cy87BLZvg9IrHqGq+ipzYPQ87KRxdlxqMI7EndCDIjm/d6QCqV6hbWnbbtpgrMZ/efj2/CDxGecY3XuYROfcoSDoxKJX++9u+m4dmO6gIkiS2TyWRj6q2tucaXL7n8nv/+853m1/1j2inn8W8uQGDXnAy1Vly/m5SDQvNZRHQ5b1ItzkxDdvSPSEdkM8urUwpJPoZw65uvWN3aE7geWKy4xjTbn5b0NCEl7da/btMaRBub86U5v74ooTKZLOGA1n3omlKNfvFzXvckzNI76LxrfPb6kpy058XUMvzfvr3VPjShG+AgEjOqaplsbsf8ux2X++hg3/xz/BN6p/J8tCCuWVXy476/f+1f/0RmZTFahjbf6dBpKdjySiazrleu90DQ9pruh28+z6fxz9fHgWLUNY760jxCbXti4gN6QVopZ2RyiJOaUzKi0qg0k2bbgW1lPD3l8XUkdx9uDOq8azanRM8y8vvealqaG768+3x0cpyIQtbyJRq1ZnbZYFjSjqrnWzq7PvvrY+3yxs6e0xuia7x71QXZX9151MBhsktRdL5CLqxOz68YVWvUWv3OnmVhWldQgIq7fqNvCr5TGbOuUYtZT1Ozf4x/cP+nhIYe5cayIiv5MZ5azWRxpOMrR06bRNTzBQI/uQk/gHDGNb6DlYKnSegyKg6N/OrvP8wYzJ2MguRnBSwWs6FFYtqzHxx5Nlf1X/79Z9kizOKywK45HW6jfXsjLi7uNgpV2PpmYm36zVPE47Kql7UsrnLGAEGQekRw/X/+wurWHMeya7amJTh8RVkN+8aXX1R1qg4c7yiF2D7dqsWyt+88hCDIfWC7llwgnAjNNV5bAwnDej2mFNXdvfbVxNq7qQEujvbKYLHsWe2nXujEYWxj0x4mJZv2YB7KgrhmRdn56Ckq+cnDgvTH9f3TLsssoQAvm9+wWPacB0cHtm31xGzu4+/z8/CLdpgeb0y6xtVIzMvIL/n8T5/fScQs2TxzIw0PEOkMdl0dt31uw+Y9Oea1d9xE1jtDc41xRpKamFJKIt7+65e5GPyBY6M0LwNVSmPX1b8e1Lq9EOTZf1mWn15Y7YDrKAV+hrLSCzL+9Lfv7t/8y+MX9C33ibqrOiExm1lXx2kSrO24IQhqqCq8+8NPIs0a7MBGzLpGJa4vozehiopufnOjU7VuM6hxWKJqxWixWA8OTyEIWl9f+jq5eDw013hcy8XIF73aaQEDfefWTaf3UFBDqOqUWfYsVpvTB0H7xhkqHp2alQsbLUi/Rsqv+TEZmZMWj8pB9umN2wuDWBxtetNi2bMeHh7aLWaRZCDrwc3yqiYTXB84Vlyzqe+nVDdxuiTs0nQcGidRviW+yKE2tPeKxZKRMfOBx7m/+20SpivEfo3XxqXiuyY2IciTm5eZSmofkzRk5OCEvX29fRK1bpxTkhH3IOOHnx+NTcyd738EdY0wNbccQ6Jtabpe5JeMqOXYnOyaZkGfWDyoGNcpxWhMyd3b3+KILOMBTHPHpGv2G8hFnRrDsyfxyCdJAvX61GBDYVW70+vzejwerxeCoM7XXd/m1jlCc41BJ8aXsy2nJ28aCUl52DXDPIVAkC3v+Lxer9frtq63M6k/xj/mNcNPOAbu1+wyibjv0or6mqkEFGZgxjAmoJfW9x35fF6v98RpVspHC0op6KTbjFYp7MBG7Lqmj/uydaiGy2XjUgpLGHLVYH5mNru9u1csGlHrnafQyvLc/yYXT4ToGscyEYOftvmg450bd+4ze5VtDFxeCaOvr7e3f3B6RoN7+tOdxJz7vyRuWGDyHARxjVzIis8urW2onx3goom1Y29FWel5vC6xWCwem9TJJW2/Psv/Je6ftc39NriOTay45tCxs/Zuq6Orp6P91ebKzJJha0b7tquzU8Dnd/dLt10em82SgSx4Z4afKDn3DHViWFk02VwQBBUVFje1i8zmjYGeboFAIBB2jU3otaMD7R0dDx4mjqhnLuUat908MDyGJ5afHu0vz06tbBl1Cqmws7OTzxeNKC1Ol0zMRySmrpjhyxjGpGsOels4Q9NbKBRS21NbzuSPK0V5mbllFCqZTBGOzfggiC8UJBRxYUegzrtmZ1nZ0NTtgKD5+al/fJ/c+1bJphSji0ooFHINj9/fxcl8mnI3Piktp9AM9+sX2DX2nubG+By8RqOYH26p5PUoh9qzMpAkKpVMrexT62Q9zXfv/piejdJvwM/cx6prfLYdw4bR8pJdLx0UrSzMrhu3NNIBYWcnn8/vfzvhOIUWFuZysES7G34hxdlnqFPX8vzi/rH36Pjk0aPHav3ixsqMSCgQCDoFr8WTs3Ojb0T19fU//4JY272Ua7w2s6GpXVjDZEMe5+y0fsO0OTbQJ+js5PP5w9o5u32v8WVldj5+D3b4IHZc40fU09PSAj8Vumux4AqxR4fww35B5rzLy8tXV2D2ZPu83rIyonXv0nPexq3NMiLx8Ah+Z5bRtF1GJH5Sc96+k+PjU483Kzt7377ndrtPTk7sll2TyWQ0mqxONwRBAoGgqTnUeSif5/T4+ASCoPHxiXJi2eHxidvl2Nk2GY1G8+6e0+Xct+3xGrksNucErpECP0P5Tk9OqugMmUwGQd4Dt/vk+Ni6u2MymYwmk919DPlO6ZU0sWQw0L8fq675DywWSyqFn86fm5ujkssvO+ftcrnykHmwR+2YzcXFV9mjoFIqgqyvUarU9bE/5/3+s8G64csSxrV8dnvA9TUdl19fo9Vqq6qqYI8SiUUdATZzXrC+JmhStPp6jnTkU11fA9YNvwe45j/8P3YNWDd8BYBr3gNcE37XlJeXgz0KfoBrIuCaj9l7CVwTMFdWoFvQbrejUCjYNFpQUNcQCITFxUXYMyEQCFfIy7e2tobFYmEvIQRBRqPxE3VNdnZ2oNTCPT09ga5LcNdUVlbCHtXd3R3oR+XCnBJBcuX6c3oEejf2XRNoj4JOp8Pj8Zd1jdPpzM2Fn9je2tpCoVCwbwV3jVQqDWIThUJBp9MDvRtbrlEqlUwmEzYh1tTUVGVl5RVyZXG5XNjstnNzc7/++uvuLsy6r+CusVqtCAQiUJsODAzk5uYGyikfy65JS0s7k0T2PTgc7gr9GrVaHShz0pX3eQd3TV1d3afbr6mqqoK9qXw+HxaLDXLhArnm8PAwPj4etmTI8PBwIKEEd83s7GxFRUWg36S2trYgWRNjyzVer3doaKilpUWhUExPT0MQZLVa1Wr18PAwh8MJkig/iGscDgePx5NIJCqVymg0ulwulUrl7+yJRCJYeV2Y21yn0926dYtGo6nVan/ueLPZrFKpBgcHGQxGoJ4wFNuuSUpKOp8s1uPxyOXylJSUQJcsiGsWFxfv3bt3/l9bX1/H4/GwD7bQRa7R6/X5+fl6vR72rUAJpP3EuGvUanVCQgKfz5+cnPT3mre2tkZGRjAYjD8NUKCwQeoo1NTUpKSkyOXy91376enpN2/epKamwuY2hC5yjc/nYzAYSUlJra2ter3e39VaW1tTqVQdHR05OTlBJBBbrvEjkUhIJNL7Kh8UCqWmpmZrayvIIcFrtvirTJBIpPcpoKqqqs5XQXhPKPWhpqen8Xi8P2OT/zzJZDKTyQw05OEnll0zOzuLw+EoFAqDwTAYDEajUafT5efnIxCIjY2NQEcFcY3H4xEIBHg8nsfjra2tGY1GlUpFIpHKysoaGxsDpUm9sI4CnU6Pi4sjEonz8/NGo9FoNCqVSiqVWlpaKhAIghwY466BIGh7e7u1tdWfq8x/UxGJxMrKykB5hfwErw81MzNTXV3tv0tpNBqFQmGz2evr64Ha/8KaLQ6Ho6urC4/H+3OV+c+TRCK1trYGL5sTi67xc3x8PDY2dmF1Nz8h1r00Go3Bq9D5uVTdS6fTKZfLg3wbPySWXeNHq9VmZGRgMBgsFltVVSWXy4PfQBfWotvf3+/t7SUQCDgcLjMzk0ajBcqM7SeU+lCrq6vDw8NkMhmLxWKx2Nra2tHRUdg09R8S+655z8TEhFQqNZlMoYQNpe6l0+mUyWQKheLCynah1730eDxqtVoul59PKQ1L7LrmUoAau6H8Zeh1L10ul8vlCjT+/SEh1r10u90ulyuU8pih1708Ojryn+eFFRf9fEKuuRSgxm7AvwSuOfNiDLomdECNXeCaEAGugQG4JnSAa4BrQgS4BgbgmtABrgGuCRHgGhiAa0IHuAa4JkSAa2AArgkd4BrgmhABroEBuCZ0gGuAa0IEuAYG4JrQAa4BrgkR4BoYgGtCB7gGuCZEgGtgAK4JHeAa4JoQAa6BAbgmdIBrgGtCJAquKS0tDXGjR+gEyf1xBcxmc2lpabiifYjVan3+/PmZFyPpGgaDceUPgmVvbw+HwwXK13MFWCzW6OhouKJ9CJfLjQXXfOTHnae4uNhgMIQrmkajYTKZ4Yr2IRMTE2dywv6+rjk+Pkaj0SQSicfjNYaJpqYmBAKBQqGampo+PhqPx6uoqLh3715dXd3HRztDRUVFWlramTaJmGtGR0cJBILNZrOGCZvNtrCwkJWVZTKZwhLWbreXl5d3d3fb7faPj/YhNpuNRqP19fV92CARdo3D4Xj48CGLxQrvTRUXF0cikcISisfjYTCYhw8fhvHr6aepqQmNRp/Jnfb7usbn801OTgqFwu6w8vr16xgP6EcoFGq12jNtEjHXzM/PP3nyBB8+iouL0Wh0fHx8YWFhuAImJSU9e/asuLg4LAE/JD09/UzjR9g1Ho9HKpWG/eb/VBAKhWee9X5f1wDOEzHX+Hw+m81mNpt3woTZbN7d3bXZbGEMaLVaLRZLGE/yfWSbzXYmaUuEXQM4A3BNpImYawBnAK6JLsA1kQa4JloA10QX4JpIA1wTLYBrogtwTaQBrokWwDXRBbgm0gDXRAvgmugCXBNpgGuiBXBNdAGuiTTANdECuCa6ANdEGuCaaAFcE12AayINcE20AK6JLsA1kQa4JloA10SXK7oGi8WGcbPvHwo2m/0xO5uBa65MWFyztLREJBLDcj5/NIaGhi7tmqOjo0ePHr169UosFosAl0EsFicnJ3+MawQCQWtr65UP/yNDJpM1Gs1HBlleXk5ISIj2ffTp0dvbi0QiORzO+SYN5hqfzycSiaqrq2sAl4fNZodYERmW/v7+xMTEQsAlwWKxCARifn7+yi3v5+DgoLm5mU6nR/s++vSg0+mwWb6CuQYQRQ4PD9fX1xcBl2dzczPEWuCASAJcAwAAIgFwDQAAiATANQAAIBIA1wAAgEgAXAMAACLB/wGMdLgETXZJmgAAAABJRU5ErkJggg==" alt="" width="377" height="309" /></p>
<p><strong>（图五）</strong><strong>HA</strong><strong>写分区：</strong><strong>3</strong><strong>个写分区，</strong><strong>3</strong><strong>个</strong><strong>replication groups</strong><strong>，每个</strong><strong>replication group</strong><strong>有</strong><strong>3</strong><strong>个可选节点。</strong><strong> </strong></p>
<h2>读扩展性</h2>
<p>JE HA中读扩展性可以通过多个只读副节点来实现。JE HA并没有对replication group中节点的数目有所限制。添加一个新的节点并不会增加当前的replication group对资源的需求。但是正如上文所描述一样，添加新节点会增加写节点（即主节点）以及网络的负载。</p>
<p>通过添加新节点来提高读扩展性对于应用程序来说是完全透明的。一个新节点可以被添加进一个正在运行的replication group中，并且一旦这个新节点在本地拥有足够多的日志副本，新节点便可以开始处理读操作请求。</p>
<h1>结语</h1>
<p>JE HA通过简单、直接地扩展JE的API来提供快捷、可靠以及可扩展的数据管理功能，并且能够嵌入到应用程序当中。JE HA的配置是十分灵活的，允许用户在数据持久性、数据一致性以及性能等方面综合权衡之后，设计出具有广泛适用范围的应用程序。</p>
<p>你可以在以下网址下载Oracle Berkeley DB Java版本：</p>
<p><a href="http://www.oracle.com/technology/software/products/berkeley-db/je/index.html">http://www.oracle.com/technology/software/products/berkeley-db/je/index.html</a></p>
<p>你可以在Oracle Technology Network（OTN）上提交你对Oracle Berkeley DB Java版本的意见或者问题：</p>
<p><a href="http://forums.oracle.com/forums/forum.jspa?forumID=273">http://forums.oracle.com/forums/forum.jspa?forumID=273</a></p>
<p>关于销售或者产品支持的信息，请发送Email：berkeleydb-info_us@oracle.com</p>
<p>想了解关于新产品发布信息，请发送Email：bdb-join@oss.oracle.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2011/09/berkeley-db-java-edition-%e9%ab%98%e5%8f%af%e7%94%a8%e6%80%a7%e4%bb%8b%e7%bb%8d/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>bdb开通新浪微博</title>
		<link>http://www.bdbchina.com/2011/05/bdb%e5%bc%80%e9%80%9a%e6%96%b0%e6%b5%aa%e5%be%ae%e5%8d%9a/</link>
		<comments>http://www.bdbchina.com/2011/05/bdb%e5%bc%80%e9%80%9a%e6%96%b0%e6%b5%aa%e5%be%ae%e5%8d%9a/#comments</comments>
		<pubDate>Mon, 30 May 2011 10:41:58 +0000</pubDate>
		<dc:creator>chaohuang</dc:creator>
				<category><![CDATA[Berkeley DB]]></category>
		<category><![CDATA[Berkeley DB JE]]></category>
		<category><![CDATA[Berkeley DB XML]]></category>
		<category><![CDATA[Chao Huang]]></category>
		<category><![CDATA[生活圆桌]]></category>
		<category><![CDATA[bdb]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1537</guid>
		<description><![CDATA[各位BDB中文博客的粉丝们，为了更好的和大家交互并分享BDB的消息，我们刚刚开通的新浪微博。微博地址为：
http://www.weibo.com/bdbchina
欢迎各位朋友添加关注并和我们分享信息。感谢大家的一直以来的支持。
备注： 由于工作比较忙（很少看博客评论），我们推荐大家使用新浪微博和我们互动，从而可以得到更及时、有效的反馈。
Oracle Berkeley DB 中国开发团队
]]></description>
			<content:encoded><![CDATA[<p>各位BDB中文博客的粉丝们，为了更好的和大家交互并分享BDB的消息，我们刚刚开通的新浪微博。微博地址为：<a title="http://weibo.com/bdbchina" href="http://www.weibo.com/bdbchina" target="_blank"></a></p>
<p><a title="http://weibo.com/bdbchina" href="http://www.weibo.com/bdbchina" target="_blank">http://www.weibo.com/bdbchina</a></p>
<p>欢迎各位朋友添加关注并和我们分享信息。感谢大家的一直以来的支持。</p>
<p><em><strong>备注： 由于工作比较忙（很少看博客评论），我们推荐大家使用新浪微博和我们互动，从而可以</strong></em><em><strong>得到</strong></em><em><strong>更及时、有效的反馈。</strong></em></p>
<p>Oracle Berkeley DB 中国开发团队</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2011/05/bdb%e5%bc%80%e9%80%9a%e6%96%b0%e6%b5%aa%e5%be%ae%e5%8d%9a/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>BDB深圳新增两个职位</title>
		<link>http://www.bdbchina.com/2011/04/bdb%e6%b7%b1%e5%9c%b3%e6%96%b0%e5%a2%9e%e4%b8%a4%e4%b8%aa%e8%81%8c%e4%bd%8d/</link>
		<comments>http://www.bdbchina.com/2011/04/bdb%e6%b7%b1%e5%9c%b3%e6%96%b0%e5%a2%9e%e4%b8%a4%e4%b8%aa%e8%81%8c%e4%bd%8d/#comments</comments>
		<pubDate>Fri, 08 Apr 2011 07:54:42 +0000</pubDate>
		<dc:creator>chaohuang</dc:creator>
				<category><![CDATA[Berkeley DB]]></category>
		<category><![CDATA[Chao Huang]]></category>
		<category><![CDATA[bdb]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1532</guid>
		<description><![CDATA[Oracle(深圳)招聘嵌入式数据库研发工程师
Oracle公司 Berkeley DB (简称BDB) 是业界知名的嵌入式数据库，目前拥有开源和商业两种使用许可。BDB被广泛应用于各种场合，从小型的手持设备（如手机）到大型的分布式应用（如云存储）都可以找到BDB的身影。
BDB产品研发团队在全球拥有一批资深工程师，某些工程师有超过20年的数据库开发经验。2007年，BDB在深圳成立了中国研发团队，组内工程师均毕业于国内和香港著名高校。
本次BDB产品研发团队面向社会招聘如下两个职位：
1. 数据库核心开发工程师（1人）；
2. 数据同步服务器（Oracle Mobile Server） 开发工程师（1人）。
两个职位的工作地点均在深圳，薪酬优厚。感兴趣的朋友请发简历至：chao.huang[at]oracle.com
职位1：数据库核心开发工程师（1人）
工作职责：
- 负责 Berkeley 数据库的性能优化和新功能开发工作；
- 负责 Berkeley 数据库分布式和云计算架构的设计和开发工作；
- 负责 Berkeley 数据库测试和QA工作；
- 协助销售团队解决客户技术问题。
职位要求：
- 熟悉一项或多项项目开发流程：项目规划和协调，新功能设计和实现，产品测试和QA，产品发布；
- 熟练掌握一种或多种编程语言（C，C++ 或者Java），熟悉一种或多种操作系统：Linux，Windows，Android等；
- 对SQL语言和数据库内核有较深入理解者优先，包括缓存管理，索引，日志，恢复，并发控制等等。
职位2：Oracle Mobile Server 开发工程师（1人） 
工作职责：
- 参与Oracle Mobile Server的新功能开发、测试与性能优化；
- 协助Oracle Mobile Server软件发布。
- 为客户在使用过程中遇到的问题提供解决方案。
职位要求：
- 精通J2EE，SQL和PL/SQL的开发与测试。
- 熟练掌握一种或多种编程语言（C，C++ 或者Java），熟悉一种或多种操作系统：如Linux，Windows，Android；
- 有系统性能调优，SQL调优，Oracle数据库调优和Web/APP服务器调优经验者优先。
两个职位均要求有较好的英语读写能力，以及具有追求卓越的热情。除了参与产品本身的研发，也将有机会协助销售团队与中国的潜在 客户进行沟 通，解决客户所遇到的技术问题。目前，Berkeley数据库在中国市场（甚至是整个 亚太地区）的需求不断增大。加入我们，您可以通过 您的努力让我们的产品越来 越好，从而占领越来越多的市场。可以说，这是一份具有很大的挑战性，但是又是 充满乐趣的工作岗位！期待您的加入。

Oracle Berkeley DB is a family of embeddable database engines available [...]]]></description>
			<content:encoded><![CDATA[<p><span style="text-decoration: underline;">Oracle</span><span style="text-decoration: underline;">(深圳)招聘嵌入式数据库研发工程师</span></p>
<p>Oracle公司 Berkeley DB (简称BDB) 是业界知名的嵌入式数据库，目前拥有开源和商业两种使用许可。BDB被广泛应用于各种场合，从小型的手持设备（如手机）到大型的分布式应用（如云存储）都可以找到BDB的身影。</p>
<p>BDB产品研发团队在全球拥有一批资深工程师，某些工程师有超过20年的数据库开发经验。2007年，BDB在深圳成立了中国研发团队，组内工程师均毕业于国内和香港著名高校。</p>
<p>本次BDB产品研发团队面向社会招聘如下两个职位：<br />
1. 数据库核心开发工程师（1人）；<br />
2. 数据同步服务器（Oracle Mobile Server） 开发工程师（1人）。</p>
<p>两个职位的工作地点均在深圳，薪酬优厚。感兴趣的朋友请发简历至：<span style="text-decoration: underline;">chao.huang[at]oracle.com</span></p>
<p><strong>职位</strong><strong>1</strong><strong>：数据库核心开发工程师（</strong><strong>1</strong><strong>人）</strong></p>
<p>工作职责：<br />
- 负责 Berkeley 数据库的性能优化和新功能开发工作；<br />
- 负责 Berkeley 数据库分布式和云计算架构的设计和开发工作；<br />
- 负责 Berkeley 数据库测试和QA工作；<br />
- 协助销售团队解决客户技术问题。<br />
职位要求：<br />
- 熟悉一项或多项项目开发流程：项目规划和协调，新功能设计和实现，产品测试和QA，产品发布；<br />
- 熟练掌握一种或多种编程语言（C，C++ 或者Java），熟悉一种或多种操作系统：Linux，Windows，Android等；<br />
- 对SQL语言和数据库内核有较深入理解者优先，包括缓存管理，索引，日志，恢复，并发控制等等。</p>
<p><strong>职位</strong><strong>2</strong><strong>：</strong><strong>Oracle Mobile Server </strong><strong>开发工程师（</strong><strong>1</strong><strong>人）</strong><strong> </strong></p>
<p>工作职责：<br />
- 参与Oracle Mobile Server的新功能开发、测试与性能优化；<br />
- 协助Oracle Mobile Server软件发布。<br />
- 为客户在使用过程中遇到的问题提供解决方案。<br />
职位要求：<br />
- 精通J2EE，SQL和PL/SQL的开发与测试。<br />
- 熟练掌握一种或多种编程语言（C，C++ 或者Java），熟悉一种或多种操作系统：如Linux，Windows，Android；<br />
- 有系统性能调优，SQL调优，Oracle数据库调优和Web/APP服务器调优经验者优先。</p>
<p>两个职位均要求有较好的英语读写能力，以及具有追求卓越的热情。除了参与产品本身的研发，也将有机会协助销售团队与中国的潜在 客户进行沟 通，解决客户所遇到的技术问题。目前，Berkeley数据库在中国市场（甚至是整个 亚太地区）的需求不断增大。加入我们，您可以通过 您的努力让我们的产品越来 越好，从而占领越来越多的市场。可以说，这是一份具有很大的挑战性，但是又是 充满乐趣的工作岗位！期待您的加入。<br />
<span id="more-1532"></span></p>
<p>Oracle Berkeley DB is a family of embeddable database engines available under a dual license (Open source and commercial license). Berkeley DB is very popular, and is widely used in a variety of commercial as well as open source applications ranging from hand-held devices like cell phones to large, mission critical applications.</p>
<p>The Oracle Berkeley DB group is looking for one <strong><span style="text-decoration: underline;">Database Kernel Developer</span></strong> and one <strong><span style="text-decoration: underline;">Oracle Mobile Server Developer</span></strong> to join the development group in Shenzhen, China. The salary is negotiable.  We welcome junior level up to principal level of applicants to apply for our openings. If you want to join us, please send your resume to:  chao.huang[at]oracle.com.</p>
<p>We have a highly talented and experienced group of engineers distributed world-wide, several with more than twenty years of experience in the database industry. We have a small, but excellent development team in Shenzhen, China.</p>
<p><strong>Position1</strong><strong>： Database Kernel Developer </strong></p>
<p>Job Responsibilities：<br />
- Berkeley DB performance tuning and new feature implementation;<br />
- Berkeley DB distributed and cloud computing architecture designing and implementation;<br />
- Berkeley DB testing and QA;<br />
- Assist in providing technical support for customers.<br />
Job Requirements:<br />
- Experience in one or more aspects of product development: project planning and coordination, new features design and implementation, testing and QA, product release is highly desirable.<br />
- Expertise in one or more programming languages (C, C++ or Java) and familiarity with one or more operating system platforms like Linux, Windows, Android is required.<br />
- Excellent knowledge of SQL and database internals, including buffer management, indexing, logging, recovery, concurrency control, etc will be a strong plus.<br />
- Good interpersonal and communication (English and Chinese) skills are critical. The Berkeley DB development group has a very informal but effective and results-oriented work environment; a good cultural fit is important.</p>
<p><strong>Position2</strong><strong>：Oracle Mobile Server Developer</strong></p>
<p>Job Responsibilities:<br />
- Work on development, test and improvement of Oracle Mobile Sync Server product;<br />
- Assist in releasing of Oracle Mobile Sync Server software;<br />
- Assist in providing technical support for customers.<br />
Job Requirements:<br />
- Familiar with J2EE, SQL and PL/SQL development and testing.<br />
- Expertise in one or more programming languages (C, C++ or Java) and familiarity with one or more operating system platforms like Linux, Windows, Android is required.<br />
- Experience in Performance Profiling, Tuning SQL, Tuning Oracle Database and Tuning Web/APP Server will be an advantage.</p>
<p>Both positions require good written and verbal communication skills, and passions for excellence. Besides the opportunity to enhance the Berkeley DB family of products, there is also an opportunity to assist the local sales team with customers and prospects in China. There is a growing demand for products like Berkeley DB in the China market (and APAC in general) and the ideal candidate will be able to assist and make a difference! It&#8217;s truly a demanding, but fun opportunity!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2011/04/bdb%e6%b7%b1%e5%9c%b3%e6%96%b0%e5%a2%9e%e4%b8%a4%e4%b8%aa%e8%81%8c%e4%bd%8d/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle Open World 2010旧金山 — BDB 演讲系列 (II)</title>
		<link>http://www.bdbchina.com/2010/11/oracle-open-world-2010%e6%97%a7%e9%87%91%e5%b1%b1-%e2%80%94-bdb-%e6%bc%94%e8%ae%b2%e7%b3%bb%e5%88%97-ii/</link>
		<comments>http://www.bdbchina.com/2010/11/oracle-open-world-2010%e6%97%a7%e9%87%91%e5%b1%b1-%e2%80%94-bdb-%e6%bc%94%e8%ae%b2%e7%b3%bb%e5%88%97-ii/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 05:02:47 +0000</pubDate>
		<dc:creator>chaohuang</dc:creator>
				<category><![CDATA[Berkeley DB]]></category>
		<category><![CDATA[Chao Huang]]></category>
		<category><![CDATA[bdb]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[sync]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1505</guid>
		<description><![CDATA[这次为大家带了的是Berkeley DB与移动数据同步的演讲。具体解决了当今从移动的终端向数据中心的Oracle数据库进行数据同步、设备管理、应用管理等场合的需求。转载请注明出处。
1. Oracle Berkeley DB 和Mobile Server的架构

2. Oracle企业移动应用平台
]]></description>
			<content:encoded><![CDATA[<p>这次为大家带了的是Berkeley DB与移动数据同步的演讲。具体解决了当今从移动的终端向数据中心的Oracle数据库进行数据同步、设备管理、应用管理等场合的需求。转载请注明出处。<span id="more-1505"></span></p>
<h3>1. Oracle Berkeley DB 和Mobile Server的架构</h3>
<div id="attachment_1506" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bdbchina.com/wp-content/uploads/2010/11/12.png"><img class="size-medium wp-image-1506" title="Oracle Berkeley DB 和Mobile Server的架构" src="http://www.bdbchina.com/wp-content/uploads/2010/11/12-300x148.png" alt="Oracle Berkeley DB 和Mobile Server的架构" width="300" height="148" /></a><p class="wp-caption-text">Oracle Berkeley DB 和Mobile Server的架构</p></div>
<p class="mceTemp mceIEcenter">
<h3>2. Oracle企业移动应用平台</h3>
<div id="attachment_1507" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bdbchina.com/wp-content/uploads/2010/11/22.png"><img class="size-medium wp-image-1507" title="Oracle企业移动应用平台" src="http://www.bdbchina.com/wp-content/uploads/2010/11/22-300x223.png" alt="Oracle企业移动应用平台" width="300" height="223" /></a><p class="wp-caption-text">Oracle企业移动应用平台</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2010/11/oracle-open-world-2010%e6%97%a7%e9%87%91%e5%b1%b1-%e2%80%94-bdb-%e6%bc%94%e8%ae%b2%e7%b3%bb%e5%88%97-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OOW2010 BDB客户案例 &#8212; GenieDB 使用BDB构建云计算</title>
		<link>http://www.bdbchina.com/2010/11/oow2010-bdb%e5%ae%a2%e6%88%b7%e6%a1%88%e4%be%8b-geniedb-%e4%bd%bf%e7%94%a8bdb%e6%9e%84%e5%bb%ba%e4%ba%91%e8%ae%a1%e7%ae%97/</link>
		<comments>http://www.bdbchina.com/2010/11/oow2010-bdb%e5%ae%a2%e6%88%b7%e6%a1%88%e4%be%8b-geniedb-%e4%bd%bf%e7%94%a8bdb%e6%9e%84%e5%bb%ba%e4%ba%91%e8%ae%a1%e7%ae%97/#comments</comments>
		<pubDate>Thu, 04 Nov 2010 03:55:12 +0000</pubDate>
		<dc:creator>chaohuang</dc:creator>
				<category><![CDATA[Berkeley DB]]></category>
		<category><![CDATA[Chao Huang]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[bdb]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[geniedb]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1486</guid>
		<description><![CDATA[GenieDB (www.geniedb.com) 是一家成立于2008年，专注于SQL+NoSQL解决方案的公司，即在NoSQL storage上层提供SQL的方案。更多介绍及信息请访问其网站，及Youtube视频 &#8211; http://www.youtube.com/watch?v=gWrFKRuat-U
在2010 Oracle Open World大会上，GenieDB带来了一场十分精彩的，关于是BDB构建云计算的演讲。本文抽取部分章节，供广大读者参考。转载请注明出处，谢谢。
1. GenieDB面对的问题
2. 技术需求
3. 使用BDB的解决方案
4. 为何使用BDB？
]]></description>
			<content:encoded><![CDATA[<p>GenieDB (www.geniedb.com) 是一家成立于2008年，专注于SQL+NoSQL解决方案的公司，即在NoSQL storage上层提供SQL的方案。更多介绍及信息请访问其网站，及Youtube视频 &#8211; <a href="http://www.youtube.com/watch?v=gWrFKRuat-U">http://www.youtube.com/watch?v=gWrFKRuat-U</a></p>
<p>在2010 Oracle Open World大会上，GenieDB带来了一场十分精彩的，关于是BDB构建云计算的演讲。本文抽取部分章节，供广大读者参考。转载请注明出处，谢谢。<span id="more-1486"></span></p>
<h3>1. GenieDB面对的问题</h3>
<div id="attachment_1487" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bdbchina.com/wp-content/uploads/2010/11/1.png"><img class="size-medium wp-image-1487" title="GenieDB面对的技术挑战" src="http://www.bdbchina.com/wp-content/uploads/2010/11/1-300x223.png" alt="GenieDB面对的技术挑战" width="300" height="223" /></a><p class="wp-caption-text">GenieDB面对的技术挑战</p></div>
<h3>2. 技术需求</h3>
<div id="attachment_1488" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bdbchina.com/wp-content/uploads/2010/11/2.png"><img class="size-medium wp-image-1488" title="GenieDB的技术需求" src="http://www.bdbchina.com/wp-content/uploads/2010/11/2-300x222.png" alt="GenieDB的技术需求" width="300" height="222" /></a><p class="wp-caption-text">GenieDB的技术需求</p></div>
<h3>3. 使用BDB的解决方案</h3>
<div id="attachment_1489" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bdbchina.com/wp-content/uploads/2010/11/3.png"><img class="size-medium wp-image-1489" title="使用BDB的解决方案（架构图）" src="http://www.bdbchina.com/wp-content/uploads/2010/11/3-300x223.png" alt="使用BDB的解决方案（架构图）" width="300" height="223" /></a><p class="wp-caption-text">使用BDB的解决方案（架构图）</p></div>
<h3>4. 为何使用BDB？</h3>
<div id="attachment_1490" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.bdbchina.com/wp-content/uploads/2010/11/4.png"><img class="size-medium wp-image-1490" title="使用BDB的优势" src="http://www.bdbchina.com/wp-content/uploads/2010/11/4-300x227.png" alt="使用BDB的优势" width="300" height="227" /></a><p class="wp-caption-text">使用BDB的优势</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2010/11/oow2010-bdb%e5%ae%a2%e6%88%b7%e6%a1%88%e4%be%8b-geniedb-%e4%bd%bf%e7%94%a8bdb%e6%9e%84%e5%bb%ba%e4%ba%91%e8%ae%a1%e7%ae%97/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle Open World 2010旧金山 &#8212; BDB 演讲系列 (I)</title>
		<link>http://www.bdbchina.com/2010/10/oracle-open-world-2010%e6%97%a7%e9%87%91%e5%b1%b1-bdb-%e6%bc%94%e8%ae%b2%e7%b3%bb%e5%88%97-i/</link>
		<comments>http://www.bdbchina.com/2010/10/oracle-open-world-2010%e6%97%a7%e9%87%91%e5%b1%b1-bdb-%e6%bc%94%e8%ae%b2%e7%b3%bb%e5%88%97-i/#comments</comments>
		<pubDate>Mon, 18 Oct 2010 10:15:50 +0000</pubDate>
		<dc:creator>chaohuang</dc:creator>
				<category><![CDATA[Berkeley DB]]></category>
		<category><![CDATA[Chao Huang]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[bdb]]></category>
		<category><![CDATA[oow]]></category>
		<category><![CDATA[SQLite]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1470</guid>
		<description><![CDATA[从本文及后续博客，我将会为大家带来最新的，Berkeley DB在Oracle Open World 2010 (2010年9月19-23号在旧金山举行）的一系列讲座的精彩部分（节选）和客户案例分享。希望大家会喜欢，并欢迎留言。注意：转载请注明出处。
本人介绍的是Berkeley DB 5.o以来新推出的SQL接口 &#8212; 由Oracle和SQLite同时演讲。其中BDB部分的精彩剪辑有：
1. Oracle数据库家族的构成及区分
在Oracle，我们的数据库产品线覆盖从企业数据中心到个人移动端，覆盖到几乎所有的场合。根据计算能力和技术要求，我们划分如下图一所示：

图一 Oracle数据库家庭的构成和划分
那么，针对BDB而言，我们的强项主要集中于2个方向：仪器及设备 + 企业基础架构
2. BDB的典型应用是在仪器及设备 和 企业基础架构层
具体的使用场景和优势，请参考下图二和图三所示：

图二 BDB在仪器及设备的应用

图三 BDB在企业基础架构层的应用
3. SQLite 不是和BDB竞争，而是合作
根据SQLite的作者Dr. Richard Hipp，SQLite的设计是用来替代文件系统的fopen()。SQLite面向的更多是：要求简单的数据库功能（SQL，事物等），使用简单，性能及并发要求不高的场合。
SQLite与BDB的组合（即BDB 11gR2的SQL接口）面对的是由于SQLite本身的瓶颈，而不能达到的一些问题和场合 &#8212; 比如更好的并发性，性能，加密，集群，更好的技术支持和市场推广，等等。因而说SQLite不会和BDB直接竞争，相反是合作共赢，共同推动SQLite社区和用户发展。
如下图四所示，BDB 11gR2的SQL接口是SQLite的SQL层和BDB的底层存储引擎的完美结合。
图四 BDB 11gR2的SQL接口是SQLite的SQL层和BDB的底层存储引擎的完美结合
4. SQLite的可能发展方向

图五 SQLite 目前缺失的功能
注意，这里Dr. Richard用的词是：SQLite 目前缺失的功能，并不代表说将来会提供以及什么时候以何种方式提供。

]]></description>
			<content:encoded><![CDATA[<p>从本文及后续博客，我将会为大家带来最新的，Berkeley DB在Oracle Open World 2010 (2010年9月19-23号在旧金山举行）的一系列讲座的精彩部分（节选）和客户案例分享。希望大家会喜欢，并欢迎留言。<em>注意：转载请注明出处</em>。</p>
<p>本人介绍的是Berkeley DB 5.o以来新推出的SQL接口 &#8212; 由Oracle和SQLite同时演讲。其中BDB部分的精彩剪辑有：</p>
<h3>1. Oracle数据库家族的构成及区分</h3>
<p>在Oracle，我们的数据库产品线覆盖从企业数据中心到个人移动端，覆盖到几乎所有的场合。根据计算能力和技术要求，我们划分如下图一所示：</p>
<p style="text-align: center;"><a href="http://www.bdbchina.com/wp-content/uploads/2010/10/1.png"><img class="aligncenter size-medium wp-image-1471" title="Oracle数据库产品划分" src="http://www.bdbchina.com/wp-content/uploads/2010/10/1-300x209.png" alt="Oracle数据库产品划分" width="300" height="209" /></a></p>
<p style="text-align: center;">图一 Oracle数据库家庭的构成和划分</p>
<p style="text-align: left;">那么，针对BDB而言，我们的强项主要集中于2个方向：<strong>仪器及设备</strong> + <strong>企业基础架构<span id="more-1470"></span></strong></p>
<h3>2. BDB的典型应用是在仪器及设备 和 企业基础架构层</h3>
<p>具体的使用场景和优势，请参考下图二和图三所示：</p>
<p style="text-align: center;"><a href="http://www.bdbchina.com/wp-content/uploads/2010/10/2.png"><img class="aligncenter size-medium wp-image-1472" title="BDB在仪器及设备上的应用" src="http://www.bdbchina.com/wp-content/uploads/2010/10/2-300x209.png" alt="BDB在仪器及设备上的应用" width="300" height="209" /></a></p>
<p style="text-align: center;">图二 BDB在仪器及设备的应用</p>
<p style="text-align: center;"><a href="http://www.bdbchina.com/wp-content/uploads/2010/10/3.png"><img class="aligncenter size-medium wp-image-1477" title="BDB在企业基础架构层的应用" src="http://www.bdbchina.com/wp-content/uploads/2010/10/3-300x210.png" alt="BDB在企业基础架构层的应用" width="300" height="210" /></a></p>
<p style="text-align: center;">图三 BDB在企业基础架构层的应用</p>
<h3 style="text-align: left;">3. SQLite 不是和BDB竞争，而是合作</h3>
<p style="text-align: left;">根据SQLite的作者Dr. Richard Hipp，SQLite的设计是用来替代文件系统的fopen()。SQLite面向的更多是：要求简单的数据库功能（SQL，事物等），使用简单，性能及并发要求不高的场合。</p>
<p style="text-align: left;">SQLite与BDB的组合（即BDB 11gR2的SQL接口）面对的是由于SQLite本身的瓶颈，而不能达到的一些问题和场合 &#8212; 比如更好的并发性，性能，加密，集群，更好的技术支持和市场推广，等等。因而说SQLite不会和BDB直接竞争，相反是合作共赢，共同推动SQLite社区和用户发展。</p>
<p style="text-align: left;">如下图四所示，BDB 11gR2的SQL接口是SQLite的SQL层和BDB的底层存储引擎的完美结合。</p>
<p style="text-align: center;"><a href="http://www.bdbchina.com/wp-content/uploads/2010/10/4.png"><img class="aligncenter size-medium wp-image-1479" title="BDB 11gR2的SQL接口是SQLite的SQL层和BDB的底层存储引擎的完美结合" src="http://www.bdbchina.com/wp-content/uploads/2010/10/4-300x230.png" alt="BDB 11gR2的SQL接口是SQLite的SQL层和BDB的底层存储引擎的完美结合" width="300" height="230" /></a>图四 BDB 11gR2的SQL接口是SQLite的SQL层和BDB的底层存储引擎的完美结合</p>
<h3 style="text-align: left;">4. SQLite的可能发展方向</h3>
<p style="text-align: center;"><a href="http://www.bdbchina.com/wp-content/uploads/2010/10/5.png"><img class="aligncenter size-medium wp-image-1480" title="SQLite 目前缺失的功能" src="http://www.bdbchina.com/wp-content/uploads/2010/10/5-300x216.png" alt="" width="300" height="216" /></a></p>
<p style="text-align: center;">图五 SQLite 目前缺失的功能</p>
<p>注意，这里Dr. Richard用的词是：SQLite 目前缺失的功能，并不代表说将来会提供以及什么时候以何种方式提供。</p>
<p style="text-align: center;">
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2010/10/oracle-open-world-2010%e6%97%a7%e9%87%91%e5%b1%b1-bdb-%e6%bc%94%e8%ae%b2%e7%b3%bb%e5%88%97-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>好消息：Berkeley DB 工作机会！</title>
		<link>http://www.bdbchina.com/2010/10/%e5%a5%bd%e6%b6%88%e6%81%af%ef%bc%9aberkeley-db-%e5%b7%a5%e4%bd%9c%e6%9c%ba%e4%bc%9a%ef%bc%81/</link>
		<comments>http://www.bdbchina.com/2010/10/%e5%a5%bd%e6%b6%88%e6%81%af%ef%bc%9aberkeley-db-%e5%b7%a5%e4%bd%9c%e6%9c%ba%e4%bc%9a%ef%bc%81/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 08:16:59 +0000</pubDate>
		<dc:creator>chaohuang</dc:creator>
				<category><![CDATA[Chao Huang]]></category>
		<category><![CDATA[bdb]]></category>
		<category><![CDATA[recruit]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1464</guid>
		<description><![CDATA[大家好，
Berkeley DB中国研发团队计划招聘2名有数据库相关工作经验的人士。如果您有志于做嵌入式数据库开发或者测试，有相关的系统编程的经验（如操作系统，云存储等），并希望和Berkeley DB一起成长并从中make a difference，请速与我联系； 如果您有Oracle关系数据库及Weblogic等相关的开发、测试及性能优化经验的，也请速与我联系。
具体工作职责和职位要求，请参照“招纳贤士”板块 - http://www.bdbchina.com/recruit/。
注意：
1. 本次计划招聘一名开发及一名测试人员。薪水面议。工作地点： 深圳。
2. 简历请投递到chao.huang@oracle.com。 推荐使用gmail, hotmail, qq等邮箱；163， 263等邮箱通常投递都会失败。
3. 欢迎留言，谢绝来访。
]]></description>
			<content:encoded><![CDATA[<p><big><tt>大家好，</tt></big></p>
<p><big><tt>Berkeley DB中国研发团队计划招聘2名有数据库相关工作经验的人士。如果您有志于做嵌入式数据库开发或者测试，有相关的系统编程的经验（如操作系统，云存储等），并希望和Berkeley DB一起成长并从中make a difference，请速与我联系； 如果您有Oracle关系数据库及Weblogic等相关的开发、测试及性能优化经验的，也</tt></big><big><tt>请速与我联系</tt></big><big><tt>。</tt></big></p>
<p><big><tt>具体工作职责和职位要求，请参照“招纳贤士”板块 - http://www.bdbchina.com/recruit/。</tt></big></p>
<p><span style="text-decoration: underline;"><big><tt>注意：</tt></big></span><big><tt><br />
1. 本次计划招聘一名开发及一名测试人员。薪水面议。工作地点： 深圳。<br />
2. 简历请投递到chao.huang@oracle.com。 </tt><span style="color: #ff0000;">推荐使用gmail, hotmail, qq等邮箱；163， 263等邮箱通常投递都会失败。</span><tt><br />
3. 欢迎留言，谢绝来访。</tt></big></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2010/10/%e5%a5%bd%e6%b6%88%e6%81%af%ef%bc%9aberkeley-db-%e5%b7%a5%e4%bd%9c%e6%9c%ba%e4%bc%9a%ef%bc%81/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>使用Oracle Berkeley DB实现空间数据库</title>
		<link>http://www.bdbchina.com/2010/07/%e4%bd%bf%e7%94%a8oracle-berkeley-db%e5%ae%9e%e7%8e%b0%e7%a9%ba%e9%97%b4%e6%95%b0%e6%8d%ae%e5%ba%93/</link>
		<comments>http://www.bdbchina.com/2010/07/%e4%bd%bf%e7%94%a8oracle-berkeley-db%e5%ae%9e%e7%8e%b0%e7%a9%ba%e9%97%b4%e6%95%b0%e6%8d%ae%e5%ba%93/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 02:10:18 +0000</pubDate>
		<dc:creator>chaohuang</dc:creator>
				<category><![CDATA[Berkeley DB]]></category>
		<category><![CDATA[Berkeley DB JE]]></category>
		<category><![CDATA[Chao Huang]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[bdb]]></category>
		<category><![CDATA[JE]]></category>
		<category><![CDATA[spatial]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1332</guid>
		<description><![CDATA[关于使用Oracle Berkeley DB作为空间数据库的引擎，可以参考如下资料：
* 使用基于Key/Value 接口的场合，可以考虑Berkeley DB C版本或者Berkeley DB Java 版的产品。可以参考美国University of Virginia的叫做PRIDE的学术论文：http://www.cs.virginia.edu/~stankovic/psfiles/pride.pdf
* 使用Oracle Berkeley DB SQL产品中的R*Tree功能，具体可以参考：http://www.bdbchina.com/2010/04/bdb11gr2的r-tree功能/
更多反馈，欢迎留言。
]]></description>
			<content:encoded><![CDATA[<p>关于使用Oracle Berkeley DB作为空间数据库的引擎，可以参考如下资料：</p>
<p>* 使用基于Key/Value 接口的场合，可以考虑Berkeley DB C版本或者Berkeley DB Java 版的产品。可以参考美国University of Virginia的叫做PRIDE的学术论文：<a href="http://www.cs.virginia.edu/~stankovic/psfiles/pride.pdf">http://www.cs.virginia.edu/~stankovic/psfiles/pride.pdf</a></p>
<p>* 使用Oracle Berkeley DB SQL产品中的R*Tree功能，具体可以参考：<a href="http://www.bdbchina.com/2010/04/bdb11gr2%E7%9A%84r-tree%E5%8A%9F%E8%83%BD/">http://www.bdbchina.com/2010/04/bdb11gr2的r-tree功能/</a></p>
<p>更多反馈，欢迎留言。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2010/07/%e4%bd%bf%e7%94%a8oracle-berkeley-db%e5%ae%9e%e7%8e%b0%e7%a9%ba%e9%97%b4%e6%95%b0%e6%8d%ae%e5%ba%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BerkeleyDB 11gR2的R-Tree功能</title>
		<link>http://www.bdbchina.com/2010/04/bdb11gr2%e7%9a%84r-tree%e5%8a%9f%e8%83%bd/</link>
		<comments>http://www.bdbchina.com/2010/04/bdb11gr2%e7%9a%84r-tree%e5%8a%9f%e8%83%bd/#comments</comments>
		<pubDate>Tue, 20 Apr 2010 05:43:53 +0000</pubDate>
		<dc:creator>linchunsun</dc:creator>
				<category><![CDATA[Berkeley DB]]></category>
		<category><![CDATA[Linchun Sun]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[bdb]]></category>
		<category><![CDATA[rtree]]></category>
		<category><![CDATA[spatial]]></category>

		<guid isPermaLink="false">http://www.bdbchina.com/?p=1211</guid>
		<description><![CDATA[1 背景
R-Tree是一种和BTree类似的数据结构，支持高维数据的快速检索，被广泛应用于各种空间数据中。R-Tree的一个典型的应用是从许多空间对象的信息中找出用户关心的那个。如给定一座城市各个建筑物的经纬度坐标并存储于R-Tree中，用户可以通过“查找当前位置向西五公里内的所有餐厅”，“查找会展中心方圆一公里内的所有汽车站”等方式来查询自己感兴趣的某些特定建筑。
2 BDB11gR2的R-Tree功能
新发布的BerkeleyDB 11gR2(以下简称BDB11gR2）版本能够无缝地兼容SQLite的接口，从而支持各种基于SQLite的应用，包括SQLite自带R-Tree扩展应用。关于SQLite的R-Tree细节，可参见http://www.sqlite.org/rtree.html。
下面，本文将从编译和使用两方面，介绍如何在BDB11gR2中使用R-Tree功能。
2.1 编译
BDB11gR2通过编译开关控制是否启用R-Tree功能。默认情况下，BDB11gR2是不启用R-Tree的。要获得R-Tree的支持，则应该在编译时加上SQLITE_ENABLE_RTREE标志。
Linux平台
 cd build_unix
../dist/configure CPPFLAGS=-DSQLITE_ENABLE_RTREE --enable-sql
make dbsql

Windows平台
在工程文件的属性中，选择 Properties -&#62; Configuration Properties -&#62; c/c++ -&#62; Command Line -&#62; Additional Options, 加入/D  DSQLITE_ENABLE_RTREE，并重新编译工程。
2.2 使用R-Tree
一棵R-Tree实际上对应于一张虚拟表。建立R-Tree索引的过程，实际上就是建立虚拟表的过程。和普通表类似的，我们也可以对这张特殊的虚拟表进行插入，删除，更新等操作。
我们以下面这张图为例来说明R-Tree的典型操作和应用。

在图1中，有三个蓝色的矩形，代表三个建筑的边界，标记为1，2，3。它们的坐标信息如图所示。我们要建立一棵R-Tree，来存储这些矩形的坐标信息，并在此基础上进行一些简单的查询。
建立R-Tree索引
CREATE VIRTUAL TABLE demo_index USING rtree(
id,
minX, maxX,
minY, maxY
);
以上操作建立了一张R-Tree索引表。该索引表中每一条记录代表了一个矩形框。每条记录由5列组成，其中id是一个整数类型的主键，minX，maxX分别代表矩形框横坐标的最小值和最大值，minY，maxY分别代表矩形框纵坐标的最小值和最大值。注意，BDB11gR2中的R-Tree表的列数必须是3-11之间的基数，其中第一列是表的主键，2k和2k+1列分别代表第k维数据的下界和上界(k=1~5).
插入数据
向R-Tree的表中插入数据，和向普通表中插入数据的语法是完全一致的。
以下三条语句插入了图1中的三个矩形：
INSERT INTO demo_index VALUES(
1,
0, 2,
0, 1
);
INSERT INTO demo_index VALUES(
2,
3, 5,
3, 5
);
INSERT INTO demo_index VALUES(
3,
4, 5,
1, 4
);
基于R-Tree的查询
和普通表类似的，用户卡可以对R-Tree表进行查询。如
SELECT id FROM demo_index
WHERE id=1;
但R-Tree表上更为常用和典型的查询则是范围查询(Range-Query). 举例如下：
SELECT id FROM [...]]]></description>
			<content:encoded><![CDATA[<h2>1 背景</h2>
<p>R-Tree是一种和BTree类似的数据结构，支持高维数据的快速检索，被广泛应用于各种空间数据中。R-Tree的一个典型的应用是从许多空间对象的信息中找出用户关心的那个。<!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:RelyOnVML /> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><span style="font-family: 宋体;" lang="ZH-CN">如给定一座城市各个建筑物的经纬度坐标并存储于R-Tree中，用户可以通过“查找当前位置向西五公里内的所有餐厅”，“查找会展中心方圆一公里内的所有汽车站”等方式来查询自己感兴趣的某些特定建筑。</span></p>
<h2><span style="font-family: 宋体;" lang="ZH-CN"><span id="more-1211"></span></span>2 BDB11gR2的R-Tree功能</h2>
<p>新发布的BerkeleyDB 11gR2(以下简称BDB11gR2）版本能够无缝地兼容SQLite的接口，从而支持各种基于SQLite的应用，包括SQLite自带R-Tree扩展应用。关于SQLite的R-Tree细节，可参见<a onclick="javascript:pageTracker._trackPageview('/outgoing/www.sqlite.org/rtree.html');" href="http://www.sqlite.org/rtree.html">http://www.sqlite.org/rtree.html</a>。<br />
下面，本文将从编译和使用两方面，介绍如何在BDB11gR2中使用R-Tree功能。</p>
<h3>2.1 编译</h3>
<p>BDB11gR2通过编译开关控制是否启用R-Tree功能。默认情况下，BDB11gR2是不启用R-Tree的。要获得R-Tree的支持，则应该在编译时加上SQLITE_ENABLE_RTREE标志。</p>
<p><strong>Linux平台</strong></p>
<blockquote><p><code> cd build_unix<br />
../dist/configure CPPFLAGS=-DSQLITE_ENABLE_RTREE --enable-sql<br />
make dbsql<br />
</code></p></blockquote>
<p><strong>Windows平台</strong></p>
<blockquote><p>在工程文件的属性中，选择 Properties -&gt; Configuration Properties -&gt; c/c++ -&gt; Command Line -&gt; Additional Options, 加入/D  DSQLITE_ENABLE_RTREE，并重新编译工程。</p></blockquote>
<h3>2.2 使用R-Tree</h3>
<p>一棵R-Tree实际上对应于一张虚拟表。建立R-Tree索引的过程，实际上就是建立虚拟表的过程。和普通表类似的，我们也可以对这张特殊的虚拟表进行插入，删除，更新等操作。</p>
<p>我们以下面这张图为例来说明R-Tree的典型操作和应用。</p>
<p style="text-align: center;"><a href="http://www.bdbchina.com/wp-content/uploads/2010/04/rtree.jpg"><img class="size-medium wp-image-1213 aligncenter" title="rtree" src="http://www.bdbchina.com/wp-content/uploads/2010/04/rtree-300x278.jpg" alt="&quot;rtree-pic&quot;" width="300" height="278" /></a></p>
<p>在图1中，有三个蓝色的矩形，代表三个建筑的边界，标记为1，2，3。它们的坐标信息如图所示。我们要建立一棵R-Tree，来存储这些矩形的坐标信息，并在此基础上进行一些简单的查询。</p>
<p><strong>建立R-Tree索引</strong></p>
<blockquote><p>CREATE VIRTUAL TABLE demo_index USING rtree(<br />
id,<br />
minX, maxX,<br />
minY, maxY<br />
);</p></blockquote>
<p>以上操作建立了一张R-Tree索引表。该索引表中每一条记录代表了一个矩形框。每条记录由5列组成，其中id是一个整数类型的主键，minX，maxX分别代表矩形框横坐标的最小值和最大值，minY，maxY分别代表矩形框纵坐标的最小值和最大值。注意，BDB11gR2中的R-Tree表的列数必须是3-11之间的基数，其中第一列是表的主键，2k和2k+1列分别代表第k维数据的下界和上界(k=1~5).</p>
<p><strong>插入数据</strong></p>
<p>向R-Tree的表中插入数据，和向普通表中插入数据的语法是完全一致的。<br />
以下三条语句插入了图1中的三个矩形：</p>
<blockquote><p>INSERT INTO demo_index VALUES(<br />
1,<br />
0, 2,<br />
0, 1<br />
);<br />
INSERT INTO demo_index VALUES(<br />
2,<br />
3, 5,<br />
3, 5<br />
);<br />
INSERT INTO demo_index VALUES(<br />
3,<br />
4, 5,<br />
1, 4<br />
);</p></blockquote>
<p><strong>基于R-Tree的查询</strong></p>
<p>和普通表类似的，用户卡可以对R-Tree表进行查询。如</p>
<blockquote><p>SELECT id FROM demo_index<br />
WHERE id=1;</p></blockquote>
<p>但R-Tree表上更为常用和典型的查询则是范围查询(Range-Query). 举例如下：</p>
<blockquote><p>SELECT id FROM demo_index<br />
WHERE minX&gt;=0 AND maxX&lt;=3<br />
AND minY&gt;=0 AND maxY&lt;=2;</p>
<p>查询的结果为<br />
1</p></blockquote>
<p>上面这条查询的含义是找出图1中所有被包含在红色虚线矩形框中的矩形。</p>
<blockquote><p>SELECT id FROM demo_index<br />
WHERE maxX&gt;=1 AND minX&lt;=4<br />
AND maxY&gt;=0 AND minY&lt;=4;<br />
查询结果为<br />
1<br />
2</p></blockquote>
<p>上面这条查询的含义是找出图1中所有和黑色虚线矩形框有交集的矩形。</p>
<h2>总结</h2>
<p>R-Tree在高维数据的检索中有着广泛的应用。各种地理信息，带时间记录的归档信息等，都可以通过建立基于R-Tree的索引，来达到快速检索的目的。欢迎通过使用Berkeley DB11gR2的RTree功能来构建自己的R-Tree索引，若有任何相关问题，请联系  Linchun dot sun at Oracle dot com。</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;"><!--[if gte mso 9]><xml> <o:OfficeDocumentSettings> <o:RelyOnVML /> <o:AllowPNG /> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:TrackMoves /> <w:TrackFormatting /> <w:PunctuationKerning /> <w:ValidateAgainstSchemas /> <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid> <w:IgnoreMixedContent>false</w:IgnoreMixedContent> <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText> <w:DoNotPromoteQF /> <w:LidThemeOther>EN-US</w:LidThemeOther> <w:LidThemeAsian>ZH-CN</w:LidThemeAsian> <w:LidThemeComplexScript>X-NONE</w:LidThemeComplexScript> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:DontGrowAutofit /> <w:SplitPgBreakAndParaMark /> <w:DontVertAlignCellWithSp /> <w:DontBreakConstrainedForcedTables /> <w:DontVertAlignInTxbx /> <w:Word11KerningPairs /> <w:CachedColBalance /> <w:UseFELayout /> </w:Compatibility> <m:mathPr> <m:mathFont m:val="Cambria Math" /> <m:brkBin m:val="before" /> <m:brkBinSub m:val="&#45;-" /> <m:smallFrac m:val="off" /> <m:dispDef /> <m:lMargin m:val="0" /> <m:rMargin m:val="0" /> <m:defJc m:val="centerGroup" /> <m:wrapIndent m:val="1440" /> <m:intLim m:val="subSup" /> <m:naryLim m:val="undOvr" /> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"   DefSemiHidden="true" DefQFormat="false" DefPriority="99"   LatentStyleCount="267"> <w:LsdException Locked="false" Priority="0" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Normal" /> <w:LsdException Locked="false" Priority="9" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="heading 1" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /> <w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /> <w:LsdException Locked="false" Priority="39" Name="toc 1" /> <w:LsdException Locked="false" Priority="39" Name="toc 2" /> <w:LsdException Locked="false" Priority="39" Name="toc 3" /> <w:LsdException Locked="false" Priority="39" Name="toc 4" /> <w:LsdException Locked="false" Priority="39" Name="toc 5" /> <w:LsdException Locked="false" Priority="39" Name="toc 6" /> <w:LsdException Locked="false" Priority="39" Name="toc 7" /> <w:LsdException Locked="false" Priority="39" Name="toc 8" /> <w:LsdException Locked="false" Priority="39" Name="toc 9" /> <w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /> <w:LsdException Locked="false" Priority="10" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Title" /> <w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /> <w:LsdException Locked="false" Priority="11" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /> <w:LsdException Locked="false" Priority="22" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Strong" /> <w:LsdException Locked="false" Priority="20" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /> <w:LsdException Locked="false" Priority="59" SemiHidden="false"    UnhideWhenUsed="false" Name="Table Grid" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /> <w:LsdException Locked="false" Priority="1" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 1" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 1" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 1" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /> <w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /> <w:LsdException Locked="false" Priority="34" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /> <w:LsdException Locked="false" Priority="29" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Quote" /> <w:LsdException Locked="false" Priority="30" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 1" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 1" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 2" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 2" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 2" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 2" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 2" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 3" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 3" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 3" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 3" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 3" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 4" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 4" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 4" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 4" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 4" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 5" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 5" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 5" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 5" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 5" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /> <w:LsdException Locked="false" Priority="60" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Shading Accent 6" /> <w:LsdException Locked="false" Priority="61" SemiHidden="false"    UnhideWhenUsed="false" Name="Light List Accent 6" /> <w:LsdException Locked="false" Priority="62" SemiHidden="false"    UnhideWhenUsed="false" Name="Light Grid Accent 6" /> <w:LsdException Locked="false" Priority="63" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /> <w:LsdException Locked="false" Priority="64" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /> <w:LsdException Locked="false" Priority="65" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /> <w:LsdException Locked="false" Priority="66" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /> <w:LsdException Locked="false" Priority="67" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /> <w:LsdException Locked="false" Priority="68" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /> <w:LsdException Locked="false" Priority="69" SemiHidden="false"    UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /> <w:LsdException Locked="false" Priority="70" SemiHidden="false"    UnhideWhenUsed="false" Name="Dark List Accent 6" /> <w:LsdException Locked="false" Priority="71" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /> <w:LsdException Locked="false" Priority="72" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful List Accent 6" /> <w:LsdException Locked="false" Priority="73" SemiHidden="false"    UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /> <w:LsdException Locked="false" Priority="19" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /> <w:LsdException Locked="false" Priority="21" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /> <w:LsdException Locked="false" Priority="31" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /> <w:LsdException Locked="false" Priority="32" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /> <w:LsdException Locked="false" Priority="33" SemiHidden="false"    UnhideWhenUsed="false" QFormat="true" Name="Book Title" /> <w:LsdException Locked="false" Priority="37" Name="Bibliography" /> <w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /> </w:LatentStyles> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:宋体; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-alt:SimSun; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 135135232 16 0 262145 0;} @font-face 	{font-family:宋体; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-alt:SimSun; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 135135232 16 0 262145 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face 	{font-family:"\@宋体"; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 135135232 16 0 262145 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} pre 	{mso-style-priority:99; 	mso-style-link:"HTML Preformatted Char"; 	margin:0in; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Courier New"; 	mso-fareast-font-family:"Times New Roman";} span.HTMLPreformattedChar 	{mso-style-name:"HTML Preformatted Char"; 	mso-style-priority:99; 	mso-style-unhide:no; 	mso-style-locked:yes; 	mso-style-link:"HTML Preformatted"; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	font-family:"Courier New"; 	mso-ascii-font-family:"Courier New"; 	mso-fareast-font-family:"Times New Roman"; 	mso-hansi-font-family:"Courier New"; 	mso-bidi-font-family:"Courier New";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:宋体; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} .MsoPapDefault 	{mso-style-type:export-only; 	margin-bottom:10.0pt; 	line-height:115%;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.25in 1.0in 1.25in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin-top:0in; 	mso-para-margin-right:0in; 	mso-para-margin-bottom:10.0pt; 	mso-para-margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin;} --> <!--[endif]--></p>
<p class="MsoNormal"><span style="font-family: 宋体;" lang="ZH-CN">建立</span>R-Tree<span style="font-family: 宋体;" lang="ZH-CN">索引</span></p>
<pre>CREATE VIRTUAL TABLE demo_index USING rtree(</pre>
<pre><span>   </span>id,<span>              </span><span> </span></pre>
<pre><span>   </span>minX, maxX,<span>      </span><span> </span></pre>
<pre><span>   </span>minY, maxY<span>       </span><span> </span></pre>
<pre>);</pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">以上操作建立了一张</span><span>R-Tree</span><span style="font-family: 宋体;" lang="ZH-CN">索引表。该索引表一共由</span><span>5</span><span style="font-family: 宋体;" lang="ZH-CN">列组成，每一条记录代表了一个矩形框。其中</span><span>id</span><span style="font-family: 宋体;" lang="ZH-CN">是一个整数类型的主键，</span><span>minX</span><span style="font-family: 宋体;" lang="ZH-CN">，</span><span>maxX</span><span style="font-family: 宋体;" lang="ZH-CN">分别代表矩形框横坐标的最小值和最大值，</span><span>minY</span><span style="font-family: 宋体;" lang="ZH-CN">，</span><span>maxY</span><span style="font-family: 宋体;" lang="ZH-CN">分别代表矩形框纵坐标的最小值和最大值。注意，</span><span>r-tree</span><span style="font-family: 宋体;" lang="ZH-CN">的列数</span><span>n</span><span style="font-family: 宋体;" lang="ZH-CN">必须为</span><span>2m+1</span><span style="font-family: 宋体;" lang="ZH-CN">，其中</span><span>m</span><span style="font-family: 宋体;" lang="ZH-CN">为表示对象的维数。</span></pre>
<pre><span> </span></pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">插入数据</span></pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">在</span><span>R-Tree</span><span style="font-family: 宋体;" lang="ZH-CN">的表中插入数据，和往普通表中插入数据的语法是完全一致的。</span></pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">以下三条语句插入了图</span><span>1</span><span style="font-family: 宋体;" lang="ZH-CN">中的三个矩形：</span></pre>
<pre>INSERT INTO demo_index VALUES(</pre>
<pre style="text-indent: 24pt;">1,<span>                   </span></pre>
<pre style="text-indent: 24pt;"><span>0</span>, <span>2</span>,<span>  </span></pre>
<pre style="text-indent: 24pt;"><span>0</span>,<span> 1</span><span>     </span></pre>
<pre>);</pre>
<pre>INSERT INTO demo_index VALUES(</pre>
<pre><span>    </span>2,</pre>
<pre><span>    </span><span>3</span>, <span>5</span>,</pre>
<pre><span>    </span><span>3</span>, <span>5</span></pre>
<pre>);</pre>
<pre>INSERT INTO demo_index VALUES(</pre>
<pre><span>    </span><span>3</span>,</pre>
<pre><span>    </span><span>4</span>, <span>5</span>,</pre>
<pre><span>    </span><span>1</span>, <span>4</span></pre>
<pre>);</pre>
<pre><span> </span></pre>
<pre><span> </span></pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">基于</span><span>R-Tree</span><span style="font-family: 宋体;" lang="ZH-CN">的查询</span></pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">和普通表类似的，用户卡可以对</span><span>R-Tree</span><span style="font-family: 宋体;" lang="ZH-CN">表进行查询。如</span></pre>
<pre>SELECT id FROM demo_index</pre>
<pre><span> </span>WHERE <span>id=1;</span></pre>
<pre><span> </span></pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">但</span><span>R-Tree</span><span style="font-family: 宋体;" lang="ZH-CN">表上更为常用和典型的查询则是范围查询</span><span>(Range-Query). </span></pre>
<pre><span> </span></pre>
<pre>SELECT id FROM demo_index<span>     </span></pre>
<pre><span> </span>WHERE minX&gt;=<span>0</span> AND maxX&lt;=<span>3</span></pre>
<pre><span>   </span>AND minY&gt;=<span>0</span> AND maxY&lt;=<span>2</span>;</pre>
<pre><span> </span></pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">查询的结果为</span></pre>
<pre><span>1</span></pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">这条查询的含义是找出图</span><span>1</span><span style="font-family: 宋体;" lang="ZH-CN">中所有被包含在红色虚线矩形框中的矩形。</span></pre>
<pre>SELECT id FROM demo_index<span>     </span></pre>
<pre><span> </span>WHERE maxX&gt;=<span>1</span> AND minX&lt;=<span>5</span></pre>
<pre><span>   </span>AND maxY&gt;=<span>0</span> AND minY&lt;=<span>4</span>;</pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">查询结果为</span></pre>
<pre><span>1</span></pre>
<pre><span>2</span></pre>
<pre><span>3</span></pre>
<pre><span style="font-family: 宋体;" lang="ZH-CN">这条查询的含义是找出图</span><span>2</span><span style="font-family: 宋体;" lang="ZH-CN">中所有和黑色虚线矩形框有交集的矩形。</span></pre>
</div>
<input id="gwProxy" type="hidden" />
<input id="jsProxy" onclick="jsCall();" type="hidden" />
]]></content:encoded>
			<wfw:commentRss>http://www.bdbchina.com/2010/04/bdb11gr2%e7%9a%84r-tree%e5%8a%9f%e8%83%bd/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
Դ
