title: HBase - What's the difference between WAL and MemStore?
body: <p>I am trying to understand the <code>HBase</code> architecture. I can see two different terms are used for same purpose.</p>
  
  <p><code>Write Ahead Logs</code> and <code>Memstore</code>, both are used to store new data that hasn't yet been persisted to <code>permanent storage</code>.</p>
  
  <p>What's the difference between <code>WAL</code> and MemStore?</p>
  
  <p><strong>Update:</strong></p>
  
  <p>WAL  - is used to recover not-yet-persisted data in case a server crashes.
  MemStore - stores updates in memory as Sorted Keyvalue.</p>
  
  <p>It seems lot of duplication of data before writing the data to Disk.</p>