Browse Source

[1911] Update guide on how to configure in-mem datasource with sqlite3 backend

Mukund Sivaraman 13 years ago
parent
commit
bc9d78dae2
1 changed files with 56 additions and 10 deletions
  1. 56 10
      doc/guide/bind10-guide.xml

+ 56 - 10
doc/guide/bind10-guide.xml

@@ -1321,9 +1321,10 @@ This may be a temporary setting until then.
       <varname>class</varname> to optionally select the class
       (it defaults to <quote>IN</quote>);
       and
-      <varname>zones</varname> to define the
-      <varname>file</varname> path name and the
-      <varname>origin</varname> (default domain).
+      <varname>zones</varname> to define
+      the <varname>file</varname> path name,
+      the <varname>filetype</varname> (e.g., <varname>sqlite3</varname>),
+      and the <varname>origin</varname> (default domain).
 
       By default, this is empty.
 
@@ -1333,7 +1334,8 @@ This may be a temporary setting until then.
         Only the IN class is supported at this time.
         By default, the memory data source is disabled.
         Also, currently the zone file must be canonical such as
-        generated by <command>named-compilezone -D</command>.
+        generated by <command>named-compilezone -D</command>, or
+        must be an SQLite3 database.
       </simpara></note>
 
               </simpara>
@@ -1478,6 +1480,39 @@ This may be a temporary setting until then.
 	  after it is loaded.
 	</para>
 
+      </section>
+
+      <section id="in-memory-datasource-with-sqlite3-backend">
+	<title>In-memory Data Source With SQLite3 Backend</title>
+
+	<para>
+<!--	  How to configure it. -->
+	  The following commands to <command>bindctl</command>
+	  provide an example of configuring an in-memory data
+	  source containing the <quote>example.org</quote> zone
+	  with a SQLite3 backend file named <quote>example.org.sqlite3</quote>:
+
+<!--
+	  <screen>&gt; <userinput> config set Auth/datasources/ [{"type": "memory", "zones": [{"origin": "example.org", "file": "example.org.sqlite3", "filetype": "sqlite3"}]}]</userinput></screen>
+-->
+
+          <screen>&gt; <userinput>config add Auth/datasources</userinput>
+&gt; <userinput>config set Auth/datasources[1]/type "<option>memory</option>"</userinput>
+&gt; <userinput>config add Auth/datasources[1]/zones</userinput>
+&gt; <userinput>config set Auth/datasources[1]/zones[0]/origin "<option>example.org</option>"</userinput>
+&gt; <userinput>config set Auth/datasources[1]/zones[0]/file "<option>example.org.sqlite3</option>"</userinput>
+&gt; <userinput>config set Auth/datasources[1]/zones[0]/filetype "<option>sqlite3</option>"</userinput>
+&gt; <userinput>config commit</userinput></screen>
+
+	  The authoritative server will begin serving it immediately
+	  after it is loaded.
+	</para>
+
+      </section>
+
+      <section id="in-memory-datasource-loading">
+	<title>Reloading an In-memory Data Source</title>
+
 	<para>
 	  Use the <command>Auth loadzone</command> command in
 	  <command>bindctl</command> to reload a changed master
@@ -1496,6 +1531,10 @@ This may be a temporary setting until then.
 	</para>
 -->
 
+      </section>
+      <section id="in-memory-datasource-disabling">
+	<title>Disabling In-memory Data Sources</title>
+
         <para>
 	By default, the memory data source is disabled; it must be
 	configured explicitly.  To disable all the in-memory zones,
@@ -1628,12 +1667,6 @@ TODO
     </para>
 <!-- TODO: http://bind10.isc.org/ticket/1279 -->
 
-    <note><simpara>
-     In the current development release of BIND 10, incoming zone
-     transfers are only available for SQLite3-based data sources,
-     that is, they don't work for an in-memory data source.
-    </simpara></note>
-
     <section>
       <title>Configuration for Incoming Zone Transfers</title>
       <para>
@@ -1753,6 +1786,19 @@ what if a NOTIFY is sent?
       </para>
     </section>
 
+    <section>
+      <title>Incoming Transfers with In-memory Datasource</title>
+
+      <para>
+        In the case of an incoming zone which is served by an in-memory
+        datasource with an SQLite3 backend, the zone is first stored in
+        the corresponding backend file. Then,
+        <command>b10-auth</command> is automatically sent a
+        <varname>loadzone</varname> command to reload the corresponding
+        zone into memory from the backend file.
+      </para>
+    </section>
+
 <!-- TODO: can that retransfer be used to identify a new zone? -->
 <!-- TODO: what if doesn't exist at that master IP? -->