<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--ATOM based XML document generated By OpenLink Virtuoso-->
<atom:feed xmlns:atom="http://www.w3.org/2005/Atom">
<atom:id>http://docs.openlinksw.com/virtuoso/clusteroperation.html</atom:id>
<atom:title>Virtuoso Cluster Operation</atom:title>
<atom:link href="http://docs.openlinksw.com/virtuoso/clusteroperation.html" type="text/html" rel="alternate" />
<atom:link href="http://docs.openlinksw.com/virtuoso/clusteroperation.html" type="application/atom+xml" rel="self" />
<atom:subtitle>OpenLink Virtuoso Universal Server: Documentation</atom:subtitle>
 <atom:author>
  <atom:name>virtuoso.docs@openlinksw.com</atom:name>
  <atom:email>virtuoso.docs@openlinksw.com</atom:email>
  </atom:author>
<atom:updated>2008-06-18T13:00:12Z</atom:updated>
<atom:generator>OpenLink Software Documentation Team</atom:generator>
<atom:logo>http://docs.openlinksw.com/virtuoso/../images/misc/logo.jpg</atom:logo>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/clusteroperationgeneral.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>General<atom:link href="http://docs.openlinksw.com/virtuoso/clusteroperationgeneral.html" type="text/html" rel="alternate" />
  <atom:published>2008-06-18T13:00:12Z</atom:published>
  <atom:title>General</atom:title>
  <atom:content type="html">Virtuoso can be run in cluster mode where one logical database is served by a collection of server processes spread over a cluster of machines. The cluster&#39;s composition is declared in a cluster.ini file which is to be in the starting directory of each of the servers composing the cluster. This file declares the hosts and listening ports of all processes composing the cluster and which of these processes is the local process and which the master. A cluster has a single master process which is the only one allowed to run DDL operations and which is responsible for distributed deadlock resolution. In all other respects, all server processes of the cluster are interchangeable.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/clusteroperationsetcl.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Setting up a Cluster<atom:link href="http://docs.openlinksw.com/virtuoso/clusteroperationsetcl.html" type="text/html" rel="alternate" />
  <atom:published>2008-06-18T13:00:12Z</atom:published>
  <atom:title>Setting up a Cluster</atom:title>
  <atom:content type="html">To make a new empty clustered Virtuoso database, set up the individual instances. The processes must be of exactly the same version, the operating systems, byte orders or word lengths of the participating machines do not have to match. Each individual database is assigned its database files and other configuration by editing its virtuoso.ini file. No installation besides having the Virtuoso executable and the virtuoso.ini file is needed. If there is a Virtuoso installation on the machine, use the executable from that and set up an empty directory with the virtuoso.ini file.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/clusteroperationexdb.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Using Clustering with an Existing Database<atom:link href="http://docs.openlinksw.com/virtuoso/clusteroperationexdb.html" type="text/html" rel="alternate" />
  <atom:published>2008-06-18T13:00:12Z</atom:published>
  <atom:title>Using Clustering with an Existing Database</atom:title>
  <atom:content type="html">The procedure for converting a single server database into a clustered one will be specified later. For 6.0, there is no automatic way of doing this. One can take an existing database and convert it to clustered operation by copying the initial database to each node of the cluster. Set up the database so that each node would run an identical copy. Then make the cluster.ini files. Start the servers. Connect to the master and run the partitioning statements for all keys of all tables that are to be managed by the cluster.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/clusteroperationpart.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Partitioning<atom:link href="http://docs.openlinksw.com/virtuoso/clusteroperationpart.html" type="text/html" rel="alternate" />
  <atom:published>2008-06-18T13:00:12Z</atom:published>
  <atom:title>Partitioning</atom:title>
  <atom:content type="html">All databases in a cluster share precisely the same schema. Any DDL operations take effect on all nodes simultaneously. The tables can be of one of three types: Partitioning an index means that different hosts store different parts of the index. For each partitioned index one or more partitioning columns must be declared. Also each partitioned index is always held in its totality in a logical cluster. A logical cluster is a subset of the machines composing the physical cluster declared in cluster.ini. Usually the logical and physical cluster are the same.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/clusteroperationtransc.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Transactions<atom:link href="http://docs.openlinksw.com/virtuoso/clusteroperationtransc.html" type="text/html" rel="alternate" />
  <atom:published>2008-06-18T13:00:12Z</atom:published>
  <atom:title>Transactions</atom:title>
  <atom:content type="html">A Virtuoso cluster is fully transactional and supports the 4 isolation levels identically with a single server Virtuoso. Transactions are committed using single to two phase commit as may be appropriate and this is transparent to the application program. Distributed deadlocks are detected and one of the deadlocking transactions is killed, just as with a single process. Transactions are logged on the cluster nodes which perform updates pertaining to the transaction.</atom:content>
 </atom:entry>
 <atom:entry>
  <atom:id>http://docs.openlinksw.com/virtuoso/clusteroperationadmin.html</atom:id>
  <atom:author>
    <atom:name>virtuoso.docs@openlinksw.com</atom:name>
    <atom:email>virtuoso.docs@openlinksw.com</atom:email>
   </atom:author>Administration<atom:link href="http://docs.openlinksw.com/virtuoso/clusteroperationadmin.html" type="text/html" rel="alternate" />
  <atom:published>2008-06-18T13:00:12Z</atom:published>
  <atom:title>Administration</atom:title>
  <atom:content type="html">All administrative operations other than data definition take effect on the node to which they are issued. The cl_exec SQL function can be used for executing things on all nodes of a cluster. The cmd is a SQL string. If it contains parameter markers (?), the params array is used for assigning values, left to right. If is_txn is 1, the cl_exec makes a distributed transaction and does not automatically commit on locally on each node. Thus cl_exec can be used as part of a containing distributed transaction.</atom:content>
 </atom:entry>
</atom:feed>