Updating a data domain

You update a data domain with the endeca-cmd update-dd name --dd-profile-name command, where name is the name of your data domain, and the --dd-profile-name option specifies the data domain profile you want to use (this option is required). Running this command is equivalent to using the updateDataDomain operation in the Manage Web Service request.

Using the update-dd command is useful when, for example, you would like to troubleshoot the Dgraph process for the data domain. In this case, you can create a data domain profile that is equivalent to the used profile in all respects, but with additional flags, and then update the data domain to use this profile. Also, updating a data domain is useful when you want to change any characteristics of the data domain specified in its profile, (such as, whether the leader node should process queries, or the cache size for the data domain).

If you compare the update-dd command to rescale-dd, in rescale--dd, you can only add more nodes to a running data domain. By comparison, update-dd lets you change any parameter of a data domain that is controlled by its data domain profile, but, unlike rescale-dd, the update-dd command only works on an offline data domain: you disable the data domain, update it, and then re-enable it.

Before you update a data domain in the Endeca Server, the following conditions must be met:
  • The data domain must be disabled.
  • Another data domain profile (different from the profile used by your data domain) must exist. You specify it when you update a data domain. For information on data domain profiles, see the Oracle Endeca Server Cluster Guide.
  • The Endeca Server must have sufficient resources to utilize the new data domain profile.

To update a data domain:

  1. Disable the data domain: endeca-cmd disable-dd name.
  2. Use a command-line window (for example, open a Command Prompt in Windows) and navigate to the endeca-cmd directory.
  3. Use endeca-cmd list-dd-profiles --verbose or the equivalent operation in the Manage Web Service (listDataDomainProfiles), to obtain a list of all defined data domain profiles.

    The Endeca Server returns a list of all defined data domain profiles, including their characteristics, such as name, description, the number of data domain nodes, the number of processing threads for the Dgraph processes, the cache size, whether the data domain requires a dedicated leader node, and others. This list also includes the default data domain profile.

  4. Select the data domain profile you would like to use from this list. You will use its name to update a data domain.
  5. Update a data domain to use the new data domain profile, using the command similar to the following example:
    endeca-cmd update-dd MyDD --dd-profile-name test
    where:
    • MyDD is the name of the data domain you are updating.
    • test is the name of the data domain profile that will be used (this option is required).
    Note: The name of the data domain can include spaces (for example, if it consists of two words). In this case, the name should be enclosed in double quotes, as in this example: endeca-cmd update-dd "My data" --dd-profile-name test. Thereafter, the name should also be enclosed in double quotes when used in other Endeca Server commands.
    Alternatively, you can issue the request similar to the following example, with the Manage Web Service:
    <ns1:updateDataDomain xmlns:ns1="http://www.endeca.com/endeca-server/manage/2/0">
        <ns1:name>MyDD</ns1:name>
        <ns1:ddProfileName>test</ns1:ddProfileName>
    </ns1:updateDataDomain>
    This example uses the data domain profile named test.

    As a result of this command, the Endeca Server changes those parameters of the data domain that are specified in the data domain profile, and automatically reallocates the data domain on the nodes in the Endeca Server cluster. If the data domain profile exists, and the Endeca Server cluster has sufficient resources, the data domain is updated.

  6. To verify the data domain has been updated successfully, issue one of these commands: endeca-cmd list-dd, or endeca-cmd get-dd name

    Alternatively, you can issue listDataDomains, or getDataDomain requests, using the Manage Web Service.

    You can also now enable the data domain.

The following example illustrates the result of the getDataDomain operation. It lists the details of the successfully updated data domain MyDD. This data domain is not yet enabled, and it uses the data domain profile with additional arguments, (as compared with the default data domain profile):
<ns3:getDataDomainResponse xmlns:ns2="http://www.endeca.com/endeca-server/types/2/0" 
    xmlns:ns3="http://www.endeca.com/endeca-server/manage/2/0">
 <ns3:dataDomainDetail>
  <ns2:name>MyDD</ns2:name>
  <ns2:allowOversubscribe>true</ns2:allowOversubscribe>
  <ns2:allowQueriesOnLeader>true</ns2:allowQueriesOnLeader>
  <ns2:numFollowers>0</ns2:numFollowers>
  <ns2:readOnly>false</ns2:readOnly>
  <ns2:enabled>false</ns2:enabled>
  <ns2:numComputeThreads>4</ns2:numComputeThreads>
  <ns2:computeCacheSizeMB>0</ns2:computeCacheSizeMB>
  <ns2:startupTimeoutSeconds>600</ns2:startupTimeoutSeconds>
  <ns2:shutdownTimeoutSeconds>30</ns2:shutdownTimeoutSeconds>
  <ns2:sessionIdType>header</ns2:sessionIdType>
  <ns2:sessionIdKey>X-Endeca-Session-ID</ns2:sessionIdKey>
 </ns3:dataDomainDetail>
</ns3:getDataDomainResponse>