title: NoSQL: What does it mean for MongoDB or BigTable to not always be "Available"
body: <p>Reading Nathan Hurst's <a href="http://blog.nahurst.com/visual-guide-to-nosql-systems" rel="noreferrer">Visual Guide to NoSQL Systems</a>, he includes the <code>CAP</code> triangle:</p>
  
  <ul>
  <li><code>C</code>onsistency</li>
  <li><code>A</code>vailibility</li>
  <li><code>P</code>artition Tolerance</li>
  </ul>
  
  <p><img src="https://i.stack.imgur.com/iMkdg.png" alt="enter image description here"></p>
  
  <p>With SQL Server being an <code>AC</code> system, and MongoDB being a <code>CP</code> system.</p>
  
  <p>These definitions from come a <a href="http://www.julianbrowne.com/article/viewer/brewers-cap-theorem" rel="noreferrer">UC Berkley professor Eric Brewer, and his talk at PODC 2000</a> (Principles of Distributed Computing):</p>
  
  <blockquote>
    <p><strong>Availability</strong></p>
    
    <p>Availability means just that - the service is available
    (to operate fully or not as above). When you buy the book you want to
    get a response, not some browser message about the web site being
    uncommunicative. Gilbert &amp; Lynch in their proof of CAP Theorem make
    the good point that availability most often deserts you when you need
    it most - sites tend to go down at busy periods precisely because they
    are busy. A service that's available but not being accessed is of no
    benefit to anyone.</p>
  </blockquote>
  
  <p>What does it mean, in the context of MongoDB, or BigTable, for the system to not be "available"?</p>
  
  <p>Do you go to connect (e.g. over TCP/IP), and the server does not respond? Do you attempt execute a query, but the query never returns - or returns an error?</p>
  
  <p>What does it <em>mean</em> to not be available?</p>