vania-janet/multiturn-rag-retrieval-data huggingface dataset:
CAP Theorem 

IBM® Cloudant® for IBM Cloud® uses an [Eventually Consistent](https://en.wikipedia.org/wiki/Eventual_consistency) model. When you make an update to one part of IBM Cloudant, the update is eventually seen by other parts of the system.

To understand how this model works, and why it's an essential part of using IBM Cloudant, consider what is meant by Consistency.

Consistency is one of the four [ACID](https://en.wikipedia.org/wiki/ACID) properties that are necessary for transactions within a database to be processed and reported reliably.

Additionally, consistency is one of the three attributes in the [CAP](https://en.wikipedia.org/wiki/CAP_Theorem) theorem. The attributes are Consistency, Availability, and Partition tolerance. The theorem states that it's not possible for a distributed computer system such as IBM Cloudant to guarantee three attributes simultaneously:



* Consistency, where all nodes see the same data at the same time.
* Availability, which guarantees that every request receives a response about whether it succeeded or failed.
* Partition tolerance, where the system continues to operate even if any one part of the system is lost or fails.



The impossibility of guaranteeing all three attributes at the same time means that IBM Cloudant doesn't guarantee the Consistency attribute. As the update propagates, the system is said to "converge" on complete consistency.

Eventual consistency is good for performance. With a strong consistency model, a system must wait for any updates to propagate completely and successfully before a write or update request can be completed. With an eventually consistent model, the write or update request can return almost immediately, while the propagation across the system continues behind the scenes.

A database can demonstrate only two of these three attributes for both theoretical and practical reasons. A database prioritizing consistency and availability is simple: a single node stores a single copy of your data. But this model is difficult to scale as you must upgrade the node to get more performance, rather than use extra nodes. And, even a minor system failure can shut down a single-node system, while any message loss means significant data loss. To endure, the system must become more sophisticated.
Terraform v1.3.7
on linux_amd64
Show more





 Version 3.14 

To view the contents of version 3.14, from the running image, type default_versions.sh. The 3.x branch provides images with the current tool versions. The current Java™ version is Java™ 17. Node.js no longer uses nvm to manage different node.js versions. It provides the current LTS version of Node.js at the time that it was built. And it is still based on ubi8 because ubi9 doesn't provide the correct version of openssl.

The IBM Cloud CLI provides code risk analysis commands. You can use the IBM Cloud CLI to analyze your code for vulnerabilities and compliance with certain rules. Code Risk Analyzer is available in all IBM Cloud regions where toolchains are supported. For more information about Code Risk Analyzer, see [Code Risk Analyzer plug-in](https://cloud.ibm.com/docs/code-risk-analyzer-cli-plugin).

This image includes the following tools:

 node --version
v18.12.1

 npm --version
8.19.2

 jq --version
jq-1.6

 yq --version
yq (https://github.com/mikefarah/yq/) version v4.30.5

 kubectl version --client
WARNING: This version information is deprecated and will be replaced with the output from kubectl version --short. Use --output=yaml|json to get the full version.
* Scaling options to customize throughput, storage capacity, or both.



The architecture is highly available when you choose to deploy into a multi-zone region. The service is distributed across three availability zones, which means that the cluster is resilient to the failure of a single zone or any component within that zone.





 Satellite plan 

The IBM Cloud Satellite® plan is appropriate if you want to deploy an Enterprise plan into Satellite locations of your own choice. Using Satellite, you can create a hybrid environment that brings the scalability and on-demand flexibility of public cloud services to the applications and data that run in your secure private cloud.

The Event Streams Satellite plan does not yet provide the compliance certifications that the Enterprise or Standard plans conform to.





 What is supported by the Lite, Standard, Enterprise, and Satellite plans 

The following table summarizes what is supported by the plans:



Table 1. Plan comparison table

 Lite plan Standard plan Enterprise plan Satellite plan 

 Tenancy Multi-tenant Multi-tenant Single tenant Single tenant 
 Availability zones 3 3 3 <br>(1 in single zone locations) 3 
 Availability 99.99% <br><br>[1] 99.99% 99.99% (99.9% in single zone locations) <br><br>[2] Not applicable 
 Kafka version on cluster Kafka 3.3 Kafka 3.3 Kafka 3.3 Kafka 3.3 
 Kafka Connect and Kafka Streams supported No Yes Yes Yes 
 Stream to Cloud Object Storage by using SQL Query No Yes Yes No 
 Managed Schema Registry supported No No Yes Yes <br><br>[3] 
 Customer-managed encryption No No Yes <br><br>[4] No 
 Fine-grained access control Yes Yes Yes Yes 
 Activity tracker events No Yes Yes No 
 Monitoring Event Streams metrics by using IBM Cloud Monitoring Yes Yes Yes Yes 
 Cloud Service Endpoint support No No Yes Not applicable 
 Scale plan capacity No No Yes No 
 Maximum number of partitions 1 <br><br>[5] 100 3000 - 9000 scales with throughput <br><br>[6] 3000
* [Plan highly available deployments](https://cloud.ibm.com/docs/containers?topic=containers-plan_deployhighly_available_apps) that use features such as replica sets and pod anti-affinity across multizones.
* [Run containers that are based on images in a cloud-based public registry](https://cloud.ibm.com/docs/containers?topic=containers-images).
* [Plan data storage](https://cloud.ibm.com/docs/containers?topic=containers-storage-plan). Especially for multizone clusters, consider using a cloud service such as [IBM Cloudant](https://cloud.ibm.com/docs/Cloudant?topic=Cloudant-getting-started-with-cloudant) or [IBM Cloud Object Storage](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-getting-started-cloud-object-storage).
* For multizone clusters, enable a [load balancer service](https://cloud.ibm.com/docs/containers?topic=containers-loadbalancermulti_zone_config) or the Ingress [multizone load balancer](https://cloud.ibm.com/docs/containers?topic=containers-managed-ingress-about) to expose your apps publicly.
FAQs for VPC landing zone deployable architectures 

FAQs for the VPC landing zone deployable architectures. To find all FAQs for IBM Cloud®, see our [FAQ library](https://cloud.ibm.com/docs/faqs).



  What is a deployable architecture? 

A deployable architecture is a combination of capabilities from one or more technologies that solve a customer-defined problem, and it can have one or more reference architectures based on the customer business needs. For more about deployable architectures, read about [infrastructure architectures](https://cloud.ibm.com/docs/overview?topic=overview-secure-enterprisedefine-architecture) in "Running secure enterprise workloads on IBM Cloud".





  What is infrastructure as code? 

Infrastructure as code (IaC) is code to manage and provision infrastructure (for example, networks, virtual machines, load-balancers, clusters, services and connection topology) in a descriptive model rather than a by using manual processes.

With IaC, code defines your infrastructure, specifying your resources and their configuration. Your infrastructure code is treated the same as app code so that you can apply DevOps core practices such as version control, testing, and continuous monitoring. The VPC landing zone deployable architectures use [Terraform](https://www.terraform.io/) to specify the infrastructure and [IBM Cloud Schematics](https://cloud.ibm.com/docs/schematics?topic=schematics-getting-started) to manage the deployment.





  How do I estimate costs? 

You can view and estimate of starting costs for a variation of the deployable architecture from the IBM Cloud catalog details page. When you deploy by using IBM Cloud® projects, the starting costs for the project are estimated from the validation window after your changes to the configuration are saved and validated.





  Are new releases compatible with previous ones? 

Changes adhere to semantic versioning, with releases labeled as {major}.{minor}.{patch}. For more information, see the [release compatiblity](https://terraform-ibm-modules.github.io/documentation//versioning) in the IBM Cloud Terraform modules documentation.
Service availability in the IBM Cloud console, APIs, SDKs, CLIs, and Terraform 

IBM Cloud® is composed of multiple services that are available in various interfaces for a consistent cloud experience.

Services that are available in the IBM Cloud console are also available through APIs, SDKs, CLIs, and Terraform at their

general availability (GA)release. SDKs are, at a minimum, available in the Java, Node, Python, and Go programming languages.



*  [IBM Cloud catalog](https://cloud.ibm.com/catalog)
*  [IBM Cloud API and SDK reference library](https://cloud.ibm.com/docs?tab=api-docs)
*  [IBM Cloud CLI reference](https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_cli)
*  [IBM Cloud Terraform reference](https://cloud.ibm.com/docs/ibm-cloud-provider-for-terraform?topic=ibm-cloud-provider-for-terraform-resources-datasource-list)



For every service, release notes and change logs are recorded for each update that is delivered. As of 1 January 2022, services will maintain release notes for a minimum of three years. You can view release notes in each service's documentation, or you can go to the [IBM Cloud Status UI](https://cloud.ibm.com/status/release-notes) to view release notes for all services in one place where you can search, filter by component, or filter by date.

From the Explore tab on the [Docs home page](https://cloud.ibm.com/docs), you can quickly find what you're looking for whether it's a specific API and SDK reference for a service you're using, or how to get started with the CLI. Check out the following demo that shows you how to filter the API and SDK reference library for all AI/Machine Learning services, and then move to the Develop tab to copy the CLI install command to get set up.

Your browser does not support the video tag.
--version-locator VERSION_NUMBER
: To get the version locator for this offering, run ibmcloud catalog offering list and locate the specified version that you want to use.

--output FORMAT (optional)
: Specifies output format. Default is terminal compatible and the only supported alternative is JSON. For example, --output json.







 ibmcloud catalog install 

Run the following command to install a software version from the IBM Cloud catalog.

ibmcloud catalog install [--version-locator VERSION_NUMBER] [--cluster CLUSTER_ID] [--namespace NAME] [--override-values VALUES] [--timeout TIMEOUT] [--wait WAIT] [--workspace-name NAME] [--workspace-tags TAGS] [--workspace-tf-version VERSION] [--workspace-region REGION] [--workspace-rg-id ID] [schematics-delete VALUE]



 Command options 

--version-locator VERSION_NUMBER
: To get the version locator for this offering, run ibmcloud catalog offering list and locate the version that you want to use.

--cluster CLUSTER_ID
: Specify the cluster name or ID.

--namespace NAME
: Specify the namespace that you'd like to use.

--override-values VALUES
: Provide any custom configurations for the installation. You can provide this value either inline or by using a JSON or TXT file. For example, override-values values.json.

--timeout TIMEOUT
: Specify in seconds how long the Schematics workspace waits before it installs. Default is 180.

--wait WAIT
: Wait and track the progress of the Schematics workspace job. If true, installation waits. If false, the software installs immediately. Default is true.

--workspace-name NAME (optional)
: Provide a workspace name. Default is OfferingName-Date.

--workspace-tags TAGS (optional)
: Provide a comma-separated list of tags.
If you have recently deleted a Lite instance and then receive a 400 - Only one free environment is allowed per resource group error message when creating a new environment in a new Lite instance, you need to finish deleting the original Lite instance. See [ibmcloud resource reclamations](https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_commands_resourceibmcloud_resource_reclamations) and follow the reclamation-delete instructions.





 Is there size limitation on the length of Natural Language Queries (NLQ)? 

The maximum query string length for a natural language query is 2048. For more information, see [Natural language query](https://cloud.ibm.com/docs/discovery?topic=discovery-query-parametersnlq).





 How do you improve query results? 

The relevance of natural language query results can be improved in IBM Watson Discovery with training. You can train your private collections using either the Discovery tooling, or the Discovery APIs. For information, see [Improving result relevance with the tooling](https://cloud.ibm.com/docs/discovery?topic=discovery-improving-result-relevance-with-the-tooling).





 How do you know that relevancy training is complete? 

For answers to common questions about training a collection and explanations of common error and warning messages, see [Relevancy training tips](https://cloud.ibm.com/docs/discovery?topic=discovery-relevancy-tips).





 Where can I learn more about uploading documents to Watson Discovery? 

You can upload documents using the API or the Discovery tooling. You can also connect to several different data sources (including Box, Salesforce, SharePoint Online, SharePoint 2016, and IBM Cloud Object Storage), or do a web crawl. For details, see [Adding content](https://cloud.ibm.com/docs/discovery?topic=discovery-addcontent).





 What document types are supported for ingestion?
* UI
* CLI
* API







 Applying a plan 

When you apply a plan, the IBM Cloud® resources are deployed to build a Spectrum LSF cluster instance on your IBM Cloud account with your specific choice of configuration properties.



 Applying a plan using the UI 



1. After you generate a plan in the IBM Cloud console, click Apply plan. This action generates a new log that can be viewed in the Jobs tab.
2. Review the log file for any errors, fix the errors, and then click Apply plan again.
3. After you successfully apply a plan, you can review all of the resources that are deployed under this workspace by clicking the Resources tab.







 Applying a plan using the CLI 

Run the following command to apply a plan to your workspace:

ibmcloud schematics apply --id <WORKSPACE_ID>

While the resources are being deployed, you can monitor the log files for errors or confirm that the action was completed successfully. This step can take some time based on how many virtual servers are being provisioned as part of your configuration file. Run the following command to monitor your log files:

ibmcloud schematics logs --id <WORKSPACE_ID>

Sample response:

2021/04/05 09:44:54 Terraform apply | Apply complete! Resources: 14 added, 0 changed, 0 destroyed.
2021/04/05 09:44:54 Terraform apply 
2021/04/05 09:44:54 Terraform apply | Outputs:
2021/04/05 09:44:54 Terraform apply 
2021/04/05 09:44:54 Terraform apply | sshcommand = ssh -J root@52.116.124.67  root@10.241.0.6
2021/04/05 09:44:54 Command finished successfully.
2021/04/05 09:45:00 Done with the workspace action

After the plan is successfully applied, it generates an sshcommand in the Outputs section in the Terraform code. You can use this command to log in to the Spectrum LSF cluster.
As the following diagram illustrates, the IBM Cloud platform is composed of multiple components that work together to provide a consistent and dependable cloud experience.



* A robust console that serves as the front end for creating, viewing, managing your cloud resources
* An identity and access management component that securely authenticates users for both platform services and controls access to resources consistently across IBM Cloud
* A catalog that consists of hundreds of supported products
* A search and tagging mechanism for filtering and identifying your resources
* An account and billing management system that provides exact usage for pricing plans and secure credit card fraud protection



Zoom

![Components of the IBM Cloud platform.](https://cloud.ibm.com/docs-content/v1/content/adcecdbe4e86955f88aac7f3c1e7ec3ff44992ef/overview/images/IBM-Cloud-Platform.svg)

Figure 1. Components of the IBM Cloud platform

Whether you have [existing code](https://cloud.ibm.com/docs/apps?topic=apps-tutorial-byoctutorial-byoc) that you want to modernize and bring to the cloud or you're developing a brand new application, your developers can tap into the rapidly growing ecosystem of available services and runtime frameworks in IBM Cloud.





 Setting up your account 

If you're a developer and you're just trying out IBM Cloud, you can go straight to the catalog and browse the products that you'd like to explore. Try filtering for all Lite and Free pricing plans to test out IBM Cloud with no costs. When you're ready to get started with an environment and get apps running in production, consider setting up the basics in your account:



* Access groups for organizing users and service IDs into one entity to make assigning access a streamlined process
* Resource groups for organizing your resources to make assigning access to a set of resources quick and easy
* IAM access policies for your access groups or individual developers



For more information, see the [best practices for organizing your resources and assigning access](https://cloud.ibm.com/docs/account?topic=account-account_setup).
[IBM Cloud Shell icon](https://cloud.ibm.com/docs-content/v1/content/adcecdbe4e86955f88aac7f3c1e7ec3ff44992ef/icons/terminal-cloud-shell.svg) to open a browser-based shell environment that you can use to work with your IBM Cloud resources.
* Click the Cost estimator icon ![Cost estimator icon](https://cloud.ibm.com/docs-content/v1/content/adcecdbe4e86955f88aac7f3c1e7ec3ff44992ef/icons/calculator.svg) to open the cost estimator.
* Click the Notifications icon ![Notifications icon](https://cloud.ibm.com/docs-content/v1/content/adcecdbe4e86955f88aac7f3c1e7ec3ff44992ef/icons/Notification.svg) to view and control all incidents, maintenance, and announcements that are likely to affect your account.
* Click the Avatar icon ![Avatar icon](https://cloud.ibm.com/docs-content/v1/content/adcecdbe4e86955f88aac7f3c1e7ec3ff44992ef/icons/i-avatar-icon.svg) to access your profile, guided tours, console theme options, and more.



In addition to the console, [command-line interfaces (CLIs)](https://cloud.ibm.com/docs/cli?topic=cli-getting-started), APIs, and SDKs are available for interacting with you cloud account and resources. [Terraform](https://cloud.ibm.com/docs/ibm-cloud-provider-for-terraform?topic=ibm-cloud-provider-for-terraform-getting-started) support is also available through use of the IBM Cloud Provider plug-in for managing cloud resources at enterprise scale through templates and scripting.
The relevant DPA exhibit for IBM Cloudant can be found on the [IBM Cloud Terms site](https://www.ibm.com/support/customer/csol/contractexplorer/cloud/datasheets/2052E430379B11E58B2CB2A838CE4F20/en).

IBM Cloud relies on Standard Contractual Clauses (as our primary data transfer mechanism) in our customer contracts. IBM Cloud also relies on numerous supplementary measures to help clients ensure an adequate level of protection when they transfer personal data outside of the EU/EEA. For more information, see EU Standard Contractual Clauses that are signed by all [IBM Cloud Data Importers](https://www.ibm.com/software/sla/sladb.nsf/sla/eumc), if applicable.

IBM Cloudant does not move your data without notification. IBM Cloudant relies on centralized components for aspects of the service. Of particular interest for data residency are logs that contain URLs. These logs are sent out of region-specific infrastructure, to centralized logging components. For any data where residency is a concern, avoid its inclusion within URLs such as in the path or query string. IBM Cloudant documentation describes how this task can be achieved for various areas of our API. For more information, see [Multi-query a MapReduce view](https://cloud.ibm.com/apidocs/cloudantpostviewqueries) for an example of how to use POST for view queries rather than GET.

For the position of IBM Cloud on trust and transparency, in relation to customer data, see [Trust principles](https://www.ibm.com/blogs/policy/trust-principles/).

If more questions that are associated with the privacy principles of IBM Cloud arise, email [DPA.Help.project@uk.ibm.com](mailto:DPA.Help.project@uk.ibm.com). For more information, see [Compliance](https://cloud.ibm.com/docs/Cloudant?topic=Cloudant-compliance) about the overall standards for compliance of IBM Cloudant.
"language": "javascript"
}

When this design document is saved, IBM Cloudant completely invalidates the old index and begins building the new index from scratch, iterating over every document in turn. As with the original build, the time that it takes depends on how many documents are in the database. The build also blocks incoming queries on that view until it's complete.

But there's a problem...

If you have an application that is accessing this view in real time, then you might experience a deployment dilemma:



* Version 1 of the code, which relied on the original design document, might no longer work because the old view is invalidated.
* Version 2 of the code uses the new design document. This version can't be released immediately because the new view isn't finished building yet. Remember the build process takes longer if the database includes many documents.
* A more subtle problem that affects the code is that versions 1 and 2 expect different result data from the view: Version 1 expects a list of matching documents, while version 2 expects a 'reduced' count of results.







 Coordinating changes to design documents 

You can deal with this change control problem in two ways.



 Versioned design documents 

One solution is to use versioned design document names:



* The code is initially written to use a view called _design/fetchv1.
* When you release a new version, you create a new view that is called _design/fetchv2, and query the view to ensure that it builds.
* IBM Cloudant polls _active_tasks until the work of building the new index is complete.
* Now, you're ready to release the code that depends on the second view.
* Delete _design/fetchv1 when we're sure it's no longer needed.



Using versioned design documents is a simple way to manage change control in your design documents, but you must remember to remove the older versions later.





 Move and switch design documents 

Another approach relies on the fact that IBM Cloudant recognizes when it has two identical design documents, and doesn't waste time and resources to rebuild views that it already has.