Part 1: Introducing Couchbase Server
History of Couchbase
Couchbase is an open source, distributed cache, key value and JSON document database, that ships with a powerful and rich ANSI-compliant SQL language for easy developer adoption.
It emerged out of two open source projects, Memcached and CouchDB, to address modern scalability, performance, HA and data flexibility challenges.
Memcached is a very popular open source caching technology. However it has many inherent limitations and as a result, the original engineers of Memcached developed Membase as a drop-in replacement.
Membase started out as an enterprise ready Caching and Key Value database and eventually evolved into Couchbase when CouchDB engineers added JSON document support.
As a result, Couchbase is a drop-in replacement for Memcached deployments as well as a powerful key-value and document database. In one consolidated solution you get the performance benefits of a cache and the persistence guarantees of a database.
Today, the original engineers of both open source technologies continue to work for Couchbase, adding cutting edge innovations and continuously improving performance and scale.
Key Couchbase Features
Couchbase provides a robust foundation focused on scale, performance and high availability for mission critical applications. On top of this solid foundation, Couchbase has added powerful developer features. In a nutshell it satisfies the needs of Architects/Operations & Developers.
- Enterprise grade Caching, Key-Value and Document database solution
- High availability and Disaster Recovery
- Intelligent rack/zone aware replication
- Auto-failover
- Cross data center replication
- Comprehensive monitoring stats and programmatic management via REST/CLI
- Security
- Encryption over the wire,
- On disk Encryption
- LDAP/AD integration, roles and auditing
- SQL (ANSI compliant) for JSON documents
- Reuse SQL skills to easily query documents
- Extended SQL for JSON structures (embedded documents, collections) and flexible data models
- Use prepared statements and even cache query plans
- ODBC/JDBC connectors
- Global secondary indexes
- Improve SQL query performance
- Queries can use multiple indexes (intersect-scans)
- Filters/Partial indexes using WHERE predicates
- Covering indexes
- Function based indexes
- Views (distributed indexes) built using incremental map/reduce
- Great for near realtime aggregations
- Composite indexes for powerful view queries
- Built in reducers for counts, sums, stats
- Geo-spatial & multi-dimensional indexes and queries
- Multi-dimensional scaling
- Scale up or out
- KV, query & index workload isolation
- Hadoop, Spark, Kafka, ES/Solr connectors
- Embedded database and Synchronization platform
- For offline/online mobile apps
- Great for IOT use cases
- Full Text indexes and scored search results (developer preview)
The 4 principles of Couchbase
Couchbase is built about 4 principles
-
Consistent High Performance at Scale
- A single commodity server can support hundreds of thousands of operations per second
- Sub-millisecond latency (< 1ms at the 95% percentile)
- High performance reads, writes and mixed workloads
-
Easy & Affordable Scalability
- Scale with a few clicks (so easy my computer illiterate mother can do it)
- Scale Linearly
- Small clusters (3 to 10 servers) can handle extremely high throughput @ <1ms latency
- Scale to billions of items
-
Enterprise level High Availability and Easy Maintenance
- Easily (again my mother can do it) replicate up to 3 times
- Intelligently replicate with Rack/Zone awareness, allowing for multiple server failures, even with one replica copy
- All maintenance tasks can be done with zero downtime
- Replicate an entire database(s) across multiple data-centers for Disaster recovery
-
Flexible data model with Flexibly Queries
- No need to define rigid schemas, change or extend schema at runtime
- JSON natively maps to application objects
- Extremely suited to agile development
- Use SQL to flexible express queries over your flexible data structure! (No need to learn a bespoke query API)
- Full text search (developer preview)
In the next blog post, Part 2: Couchbase architecture in a Nutshell, we dive into the nuts & bolts of Couchbase architecture, explaining how it elegantly implements these core principles into its design.
blog comments powered by Disqus