In database theory, BASE is a (contrived) term coined by Professor Eric Brewer, UC Berkeley (see also CAP theorem) to contrast the principles of massively scalable distributed databases with the ACID principles of the relational database model.

BASE, expands (awkwardly) to:

  • Basically Available
    which means, things mostly work, but it's OK if they time out or fail sometimes, because 100% success is not mission-critical.
  • Soft-state
    which means you might make a change, and then a later query might get an older answer (from a different database server). The application, not the database, determines how to handle this.
  • Eventual consistency
    which means that the system will eventually reach a consistent state, perhaps during a slow time or during a scheduled roll-up operation.

BASE, then, favors availability and performance, as opposed to ACID, which favors consistency and isolation.

BASE is important for Internet-based businesses which need massively scalable databases which are responsive under very large user load. A typical example is a large on-line retailer, which may have enormous numbers of on-line sessions at any time. Each active user may have a 'shopping cart', a list of items which they wish to buy. For such a use case, the strict ACID requirements of a relational database are overkill. In particular, the 'C' of ACID, consistency, does not have to be delivered immediately, so long as it arrives eventually. For an ephemeral entity like a shopping cart, it may not be needed at all. In the worst case, if a database server goes down, the customer's session refreshes from an older database and their cart may drop a recent change. They'll be annoyed, but it's not going to cause serious harm. It's more important that the cart always be available, and that the shopping app be responsive. Thus BASE principles are employed instead. The recent emergence of 'NoSQL' databases supports this need.

Node your homework for BQ'16 278


References