November 2016 Summaries
3 posts from Cockroach Labs
Filter
Month:
Year:
Post Summaries
Back to Blog
CockroachDB, a flexible and powerful database solution, integrates seamlessly with DigitalOcean's straightforward cloud infrastructure, making it a favorable choice for developers who prioritize simplicity and efficiency. This guide demonstrates setting up a distributed 3-node CockroachDB cluster on DigitalOcean using the command-line tool doctl in under 20 minutes, highlighting its capabilities in automatic data distribution and survivability. While the demo uses an insecure setup not recommended for production, it showcases how to install CockroachDB, create and manage DigitalOcean Droplets, and scale the database horizontally by adding nodes to the cluster. Key features such as CockroachDB’s ability to automatically distribute data across nodes without complex configurations and its resilience through three-way data replication are illustrated, ensuring that data remains accessible and consistent even if a node fails. The demonstration concludes with insights into maintaining the cluster’s integrity by rejoining nodes and updating data, encouraging users to explore more secure deployments with SSL encryption.
Nov 30, 2016
1,349 words in the original blog post.
The blog post chronicles the challenges Cockroach Labs faced in stabilizing their CockroachDB database, which led to designating its instability as a "code yellow" issue, indicating a critical company-wide concern. Initially, stability was assumed to be a natural outcome of ongoing development, but frequent issues with performance and stability, such as deadlocks and data corruption, prompted a reassessment. The team identified process and management faults, such as the rapid pace of development and lack of clear leadership, as primary causes of instability. Their strategy involved splitting the master and development branches, appointing Peter Mattis to lead a focused stability team, and reducing the core team size to enable more scrutiny over changes. Communication was key, with internal transparency maintained and external announcements made to uphold community trust. Technical efforts included refining snapshot handling, lock refactoring, and optimizing Raft, the consensus algorithm. Ultimately, the team met their stability goals, demonstrating the value of focused leadership, structured processes, and transparent communication, although they acknowledged the inevitability of initial instability in complex distributed systems.
Nov 16, 2016
3,838 words in the original blog post.
CockroachDB, a distributed SQL database built on RocksDB, manages memory usage across its nodes by allocating memory to various components, with the largest portion dedicated to the RocksDB cache, followed by memory used at rest for replica metadata and activity-related memory for store processing and SQL operations. Memory allocation is influenced by factors like the number of nodes, replication factor, and node speed, which can be monitored using CockroachDB's admin UI to observe metrics such as the number of SQL clients and queries. The database's memory usage strategies include predictable patterns for at-rest memory and less predictable trends for activity-based memory, with adjustments made through parameters like the number of stores or nodes. CockroachDB has introduced measures to prevent memory overload from SQL operations by implementing a soft limit, defaulting to 25% of total system memory, to guard against accidental client-side errors. While some memory allocations are tracked precisely, others, particularly those related to the managed Go runtime, remain less visible, leading to ongoing efforts to better quantify and manage these overheads.
Nov 10, 2016
3,810 words in the original blog post.