CockroachDB #
CockroachDB adalah distributed SQL database berbasis arsitektur NewSQL yang dirancang sejak awal untuk:
- High Availability (HA)
- Scalability horizontal tanpa downtime
- Strong consistency (ACID, serializable)
CockroachDB sering disebut sebagai PostgreSQL-compatible database for the cloud, karena menggunakan PostgreSQL wire protocol dan SQL dialect yang sangat mirip.
Tujuan utama CockroachDB adalah memastikan database tetap berjalan meskipun terjadi kegagalan node, zone, bahkan region — sesuai filosofi “database that survives disasters”.
Arsitektur Internal CockroachDB #
Gambaran Arsitektur #
CockroachDB dibangun di atas beberapa komponen inti: SQL Layer, KV Layer, dan Consensus Layer (Raft).
┌──────────────────────────┐
│ Application │
│ (ORM / SQL Client / API) │
└─────────────▲────────────┘
│ PostgreSQL Wire Protocol
┌─────────────┴────────────┐
│ SQL Layer │
│ - Parser & Optimizer │
│ - Transaction Manager │
└─────────────▲────────────┘
│ KV Requests
┌─────────────┴────────────┐
│ KV Layer │
│ - Range-based Sharding │
│ - Leaseholder │
└─────────────▲────────────┘
│ Raft Log
┌─────────────┴────────────┐
│ Consensus Layer │
│ (Raft) │
└─────────────▲────────────┘
│ Replication
┌─────────────┴────────────┐
│ Storage Layer │
│ (SSD / Cloud Storage) │
└──────────────────────────┘
Range-based Sharding #
- Data dipecah menjadi range berukuran ±64MB
- Setiap range direplikasi (default 3 replicas)
- Satu replica bertindak sebagai leaseholder (pemimpin read/write)
Raft Consensus #
- Menjamin strong consistency
- Mayoritas replica harus menyetujui commit
- Otomatis failover jika leaseholder gagal
Mengapa CockroachDB Disebut Serverless? #
Pada CockroachCloud Serverless, konsep serverless diterapkan secara penuh:
No Server Management
- Tidak perlu provisioning node
- Tidak ada patching manual
Auto-Scaling
- Compute & storage diskalakan otomatis
- Query burst ditangani secara elastis
Pay-per-Use
Biaya berdasarkan:
- Request Units (RU)
- Storage
- Data transfer
Built-in Resilience
- Multi-zone availability default
- Recovery otomatis
Serverless CockroachDB sangat cocok untuk SaaS, startup, dan event-driven architecture.
Model Deployment CockroachDB #
Self-Hosted #
- Deploy di VM, bare metal, Kubernetes
- Kontrol penuh
- Cocok untuk kebutuhan compliance tinggi
CockroachCloud Dedicated #
- Cluster dedicated di AWS / GCP / Azure
- Managed oleh Cockroach Labs
- Cocok untuk workload stabil dan besar
CockroachCloud Serverless #
- Shared infrastructure
- Fully managed
- Elastic & cost-efficient untuk workload dinamis
Konfigurasi yang Bisa Disesuaikan #
Cluster & Infrastructure #
- Region & multi-region placement
- Replication factor
- Node sizing (Dedicated)
SQL & Query #
- Statement timeout
- Transaction retry behavior
- Cost-based optimizer
- Index & partition strategy
Data Placement #
- Geo-partitioning
- Table locality (GLOBAL / REGIONAL)
Security #
- TLS end-to-end
- Role-based access control (RBAC)
- IP allowlist
- Audit logging
Observability & Monitoring Mendalam #
Cluster Metrics #
- Node availability
- Replica imbalance
- Leaseholder distribution
SQL & Transaction #
- P95 / P99 query latency
- Transaction retries
- Contention & deadlocks
Storage & KV Layer #
- Disk usage per range
- Read/write amplification
- Cache efficiency
Integrasi Monitoring #
- Prometheus
- Grafana
- Alertmanager
- Datadog
Pros & Cons #
Pros #
- Strong consistency global
- Horizontal scaling tanpa downtime
- HA & fault tolerance built-in
- PostgreSQL-compatible
- Cocok untuk multi-region SaaS
Cons #
- Latensi lebih tinggi dibanding single-node DB
- Query kompleks lintas region mahal
- Biaya serverless bisa meningkat tanpa optimasi
- Ekosistem PostgreSQL tidak 100% kompatibel
Use Case Ideal #
- Global SaaS
- Financial systems (strong consistency)
- Multi-region backend
- Cloud-native microservices
Best Practices #
Design for Locality
- Letakkan data dekat user
Avoid Large Transactions
- Pecah batch besar
Gunakan Connection Pooler
- PgBouncer sangat direkomendasikan
Monitor Contention
- Pantau retry & conflicts
Index & Schema Awareness
- Hindari hotspot key
Load Testing
- Simulasikan traffic sebelum production
Penutup #
CockroachDB adalah database SQL terdistribusi kelas enterprise yang dirancang khusus untuk era cloud dan serverless. Dengan pemahaman arsitektur internal, strategi data placement, dan observability yang tepat, CockroachDB mampu menjadi fondasi yang sangat kuat untuk aplikasi modern berskala global.