but basically, you send a put(key, value) that is written to the wal (for recovery) and to the memstore. When the memstore reaches a threshold the memstore is written in a sorted order to disk (hfile). after a while you have multiple hfiles on disk. since you know that each file has sorted content, you can perform a (sorted) merge to query your data.