What you will learn in ScyllaDB in Action
Chapter by chapter
Concepts explained in this book
- partitioning keyA partition key is the key component that determines a row’s partition and enables routing a query to the node owning that partition.
- ScyllaDBScyllaDB is a distributed wide-column database designed for high scalability, availability, and compatibility with Cassandra’s data model and protocol.
- query-first designQuery-first design is a data-modeling method that starts with required application queries and structures tables and schemas to support them.
- primary keyA primary key is a table key that uniquely identifies rows and determines their key-based ordering.
- database driverA database driver is client software that implements the protocol and programming interface an application uses to communicate with a database.
- consistencyConsistency is the property that data observed through a system conforms to its specified rules for ordering and validity across replicas or operations.
- clustering keyA clustering key is a primary-key component after the partition key that orders rows within a partition.
- data typeA data type specifies the kind of values that a database column can store and the operations applicable to those values.
- schemaA database schema is the formal structure that defines a database's data entities, fields, relationships, and constraints.
- denormalizationDenormalization is a data-modeling technique that stores related data together, often duplicating information to support access patterns without additional lookups.
- database clusterA database cluster is a group of networked database nodes that jointly provide storage and database service.
- compactionCompaction is a storage-maintenance process that merges multiple immutable database files into fewer, more compact files while reconciling their contents.
- PrometheusPrometheus is an open-source monitoring and alerting toolkit that collects and stores time-series metrics, typically by scraping instrumented endpoints.
- materialized viewA materialized view is a stored, automatically maintained representation of base-table data organized according to a different key or query access path.
- fault toleranceFault tolerance is the ability of a system to continue providing correct or available service despite component failures.
- nodeA node is an individual computing instance participating in a distributed database or system.
- keyspaceA keyspace is a ScyllaDB or Cassandra namespace that contains tables and defines settings such as replication and durable writes.
- eventual consistencyEventual consistency is a consistency model in which replicas converge toward the same correct state over time rather than immediately.
- percentile95th-percentile read latency is the read-latency value at or below which 95 percent of read requests fall.
- load testingLoad testing is the technique of applying representative or increasing workload to a system to evaluate its performance, behavior, and capacity limits.
- consistency levelA selectable database setting that determines how many replicas or nodes must participate in an operation and what consistency it provides.
- timeuuidA TIMEUUID is a UUID type that encodes a timestamp, allowing identifiers to be ordered by generation time while retaining uniqueness.
- hash ringA hash ring is a circular partitioning structure that maps hashed keys to responsible nodes in a distributed database cluster.
- LOCAL_QUORUMLOCAL_QUORUM is a consistency level requiring acknowledgments from a quorum of replicas in the local datacenter.
- parameterized queryA pre-parsed database statement whose structure is cached so that it can be executed repeatedly with separately bound parameter values.
- SSTableAn SSTable is an immutable on-disk file containing sorted database data produced by flushing in-memory state.
- tunable consistencyTunable consistency is a database mechanism that lets clients select the consistency level required for individual operations.
- row cacheA row cache is an in-memory cache that stores database rows accessed by reads and can serve subsequent reads directly.
- Cassandra Query LanguageCQL is the Cassandra Query Language for defining, querying, and manipulating data in Cassandra-compatible databases.
- tombstoneA tombstone is a marker stored with database data to record that a value, row, or partition has been deleted without immediately removing the underlying data.
- user-defined typeA user-defined type is a named custom data type whose fields can have different types and that can be used as a column, collection element, or key value in ScyllaDB.
- nodetoolnodetool is a command-line administration and diagnostic utility for inspecting and managing a ScyllaDB or Cassandra node and cluster.
- CQL shellcqlsh is a command-line shell for connecting to Cassandra-compatible databases and executing Cassandra Query Language statements.
- repairRepair is a database maintenance process that synchronizes replicated data across nodes.
- scalabilityScalability is the ability of a system to accommodate increasing workload or data volume by expanding its resources while maintaining acceptable performance.
- RaftRaft is a distributed consensus algorithm designed to make replicated-state coordination understandable through leader election, log replication, and safety rules.
- unique identifierA unique identifier is a value intended to distinguish one stored entity from all others, such as an author or article identifier.
- range deletionA range deletion removes rows whose clustering-key values fall within a specified ordered range inside a partition.
- lightweight transactionA lightweight transaction is a conditional database operation that uses distributed consensus to verify a condition and apply a mutation atomically with respect to competing requests.
- metricA metric is a numeric measurement of a system, database, or workload property collected for observation over time.
- idempotencyIdempotency is the property of an operation whereby repeating it produces the same resulting state as performing it once.
- authorizationAuthorization is the process of determining whether an authenticated identity has permission to perform a requested operation.
- validationData validation is the process of checking that migrated data is complete and accurate relative to its source.
- cluster topologyCluster topology is the arrangement of database nodes across physical or logical failure domains such as racks, zones, and datacenters.
- major compactionMajor compaction is a user-triggered compaction that processes every SSTable in a selected scope.
- collectionA collection type is a ScyllaDB data type that stores multiple related values, such as set elements or map key-value pairs, in a single column value.
- setA set is a collection data type that stores distinct elements without associating them with keys.
- quorumThe QUORUM consistency level requires a majority of replicas for a key to acknowledge an operation.
- change-data-captureChange data capture is a database feature that records table mutations in a change-log table so they can be consumed over time.
- last-write-winsLast-write-wins is a conflict-resolution technique that retains the value from the most recent write when updates conflict.
- drop table statementA DROP TABLE statement removes a table and all of its stored rows from a database schema.
- truncateA TRUNCATE statement removes every row from a table while leaving the table structure intact.
- GossipingPropertyFileSnitchGossipingPropertyFileSnitch is a Cassandra-compatible topology provider that obtains datacenter and rack information from node properties and disseminates it through gossip.
- GrafanaGrafana is an open-source visualization and dashboard platform for querying and displaying data from monitoring and other data sources.
- replication factorA replication factor is the configured number of copies maintained for each piece of data.
- universally unique identifierA UUID is a standardized 128-bit identifier format designed to provide uniqueness across systems and commonly represented as hexadecimal characters.
- quorum consistencyQuorum consistency is a distributed consistency level in which an operation requires acknowledgments from a quorum of replicas.
- metric endpointA metrics endpoint is an API access point that exposes a system's measurable operational data for collection.
- Spark MigratorSpark Migrator is a Scylla data-migration tool that uses Apache Spark to move data from Cassandra-compatible databases into ScyllaDB.
- monitoring stackA monitoring stack is a collection of software components that collects, stores, analyzes, and presents operational system measurements.
- nowThe now() function is a ScyllaDB function that generates a TIMEUUID from the current time and the hardware MAC address.
- roleA role is a database identity to which permissions can be assigned and through which users can receive those permissions.
- distributed databaseA distributed database stores or processes data across multiple networked nodes rather than relying on one database server.
- ALLOW FILTERING clauseALLOW FILTERING is a CQL query option that permits filtering operations that may require examining rows beyond the query's directly supported access path.
- CDC tableA CDC table is a ScyllaDB table that stores records describing changes made to rows in a corresponding source table.
- stream IDA stream ID is an identifier for the CDC stream assigned to changes from a partition within a stream generation.
- NoSQL databaseA NoSQL database is a non-relational database system that uses data models other than the traditional relational table model.
- partition toleranceNetwork partition tolerance is the ability of a distributed system to continue operating despite disconnected nodes or network partitions.
- TINYINTTINYINT is a signed ScyllaDB integer type that stores small whole-number values.
- PromQLPromQL is Prometheus's query language for selecting, aggregating, transforming, and analyzing time-series metrics.
- recording ruleA recording rule is a named Prometheus expression that is evaluated and stored as a derived time-series value for convenient reuse.
- where clauseA WHERE clause is a query-language clause that restricts returned or affected rows according to a condition.
- hinted handoffHinted handoff is a replication technique that temporarily stores writes intended for an unavailable node and forwards them when that node recovers.
- smallintSMALLINT is a signed ScyllaDB integer type with a larger range than TINYINT.
- seed nodeA seed node is an already-running cluster node that provides an initial contact point for a joining node to discover cluster membership.
- replicaA replica is a copy of database data maintained on another node for availability, resilience, or read serving.
- MemtableA memtable is an in-memory data structure that temporarily stores database writes before they are flushed to durable storage.
- transaction logA commit log is an append-only persistent record of database writes that supports recovery after a node failure.
- authenticationAuthentication is the process of verifying an application or user's identity before granting access to a database or service.
- composite keyA composite primary key is a primary key formed from multiple columns whose combined values identify a row.
- global secondary indexA global secondary index is an index whose partitioning differs from that of its base table and whose indexed data can be distributed across different cluster nodes.
- USING TIMESTAMP clauseThe USING TIMESTAMP clause is a CQL write clause that specifies the timestamp assigned to an operation.
- leveled compaction strategyLeveled compaction strategy is an SSTable compaction strategy that organizes fixed-size files into levels with non-overlapping key ranges within each level.
- size-tiered compaction strategySize-tiered compaction strategy is an SSTable compaction strategy that groups files into size-based buckets and compacts full buckets together.
- time-window compaction strategyTime-window compaction strategy is an SSTable compaction strategy that groups and compacts time-series data within bounded time windows.
- wide-column storeA wide-column database stores rows with flexible sets of columns and distributes data across nodes.
- SSTableLoaderSSTableLoader is a Cassandra-compatible command-line utility for bulk-loading SSTables into a database cluster.
- gossip protocolA gossip protocol is a distributed communication protocol in which nodes periodically exchange state, membership, and failure information.
- AlertmanagerAlertmanager is an open-source service in the Prometheus ecosystem that groups, routes, and delivers alert notifications.
- bloom filterA Bloom filter is a probabilistic membership structure that can report possible membership or definite non-membership with a configurable false-positive rate.
- permissionA database permission is an authorization grant allowing a role to perform specified operations on database resources.
- conditional updateA conditional update is a database write that is applied only when a specified condition on the target data holds.
- AP systemAn AP system prioritizes availability and partition tolerance, potentially allowing temporarily inconsistent results during a network partition.
- toTimestamp()toTimestamp() is a ScyllaDB conversion function that converts a date or time-based UUID value to a timestamp.
- checkpointingCheckpointing records completed progress so that a process can pause and resume from an earlier point without restarting.
- timestampA timestamp is a value representing the time assigned to a database write or cell value for conflict resolution.
- cdc streamA CDC stream is a grouping of changes for a partition that provides an ordered way to read those changes.
- stream generationA stream generation is a topology-specific version of CDC stream assignment that maintains a set of stream IDs.
- replicated logA replicated log is an ordered append-only sequence of state-changing entries maintained consistently across multiple nodes.
- all consistency levelThe ALL consistency level requires every replica for a key to acknowledge an operation.
- one consistency levelONE is a ScyllaDB consistency level requiring a successful response from one replica for an operation.
- token rangeA token range is an interval of the token space whose partitions are assigned to one or more nodes in a distributed database cluster.
- compaction strategyA compaction strategy is a table-level policy that determines how SSTables are grouped and merged.
- time seriesTime-series data is data associated with specific points or intervals in time, often subject to time-based expiration.
- write amplificationWrite amplification is the amount of data written by a storage system relative to the original data size.
- ExecutionProfileExecutionProfile is a database-driver configuration object that controls request execution settings such as retry, row handling, and load-balancing policies.
- LIMIT clauseA LIMIT clause is a CQL query clause that caps the number of rows returned without capping the number of rows scanned.
- listA list is an ordered collection type that can contain multiple values, including duplicate values, of one specified type.
- endpointAn API endpoint is a network-accessible path or interface through which an application receives requests and returns responses.
- dashboardA dashboard is a visual interface that organizes monitoring data into panels for observing system behavior and performance.
- CAP theoremThe CAP theorem states that a distributed data system cannot simultaneously guarantee consistency, availability, and partition tolerance under network partition conditions.
- seeds argumentA seeds argument is a node configuration setting that specifies seed nodes for initial cluster discovery.
- nodetool statusnodetool status is a nodetool command that reports the membership, health, data ownership, and location of nodes in a ScyllaDB cluster.
- speculative retryA speculative retry is a database-driver technique that reissues an unfinished request after a delay to reduce response time when the original may be stalled.
- each quorum consistencyEACH_QUORUM is a consistency level that requires a quorum of replicas in every datacenter to acknowledge an operation.
- index summaryAn index summary is an in-memory sample of index keys and positions that helps locate a target within an index.
- log-structured merge-treeA log-structured merge-tree is a storage structure that buffers writes in memory and periodically persists them as immutable disk files merged by compaction.
- NetworkTopologyStrategyNetworkTopologyStrategy is a Cassandra-compatible keyspace replication strategy that places replicas according to datacenter and rack topology and supports per-datacenter replication factors.
- dual-write modeDual writing is a migration technique that sends each data update to both the source and destination databases.
- downgrading consistency policyA consistency downgrade retry is a write strategy that retries an operation with progressively weaker consistency requirements until it succeeds.
- scheduling groupA scheduling group is a Seastar execution construct that groups scheduled tasks and manages their workload allocation.
- ACIDACID is a set of transaction guarantees comprising atomicity, consistency, isolation, and durability.
- float64DOUBLE is a ScyllaDB floating-point data type for storing double-precision numeric values.
- DockerDocker is a platform for building, packaging, and running applications in isolated containers.
- dual readDual-read validation is a migration-validation technique that reads corresponding data from source and destination stores and compares the results.
- replicationReplication is the maintenance of copies of data on multiple nodes.
- horizontal scalingCluster scaling is the operation of increasing a cluster's capacity by adding nodes while retaining its existing nodes.
- coreA CPU core is an independent processing unit within a central processing unit that can execute instructions.
- distributed systemA distributed system is a system whose components run on multiple networked nodes and coordinate to provide a unified service.
- joinA join is a database operation that combines related rows from two or more relations according to a matching condition.
- access patternA query pattern is a recurring form of data retrieval or mutation that an application must support.
- paginationPagination is a data-retrieval technique that divides query results into bounded pages fetched sequentially.
- create role statementA CREATE ROLE statement is a CQL command that creates a named authorization role.
- grant statementA GRANT statement is a database command that assigns permissions or role membership to a role.
- constant speculative execution policyConstantSpeculativeExecutionPolicy is a driver policy that retries a request at a fixed interval up to a configured number of reattempts.
- nonspeculative retryA nonspeculative retry is a retry performed only after the driver receives the result of the preceding request and detects a retryable server-side error.
- speculative execution policyA speculative execution policy defines when and how a database driver launches additional attempts for an unfinished request.
- anti-entropy mechanismAn anti-entropy mechanism is a distributed-database process that detects and reconciles differences among replicas.
- token functionThe TOKEN function computes or exposes the token position associated with a database key in the partitioning ring.
- Docker ComposeDocker Compose is a tool for defining and running applications composed of multiple Docker containers.
- nodetool toppartitionsnodetool toppartitions is a Cassandra-compatible administration command that samples traffic to identify the most frequently queried partitions.
- cassandra-stresscassandra-stress is a command-line benchmarking utility that generates database workloads for measuring Cassandra-compatible systems.
- linearizabilityLinearizability is a consistency property in which each operation appears to occur atomically in an order that respects real-time ordering.
- read-your-writesRead-your-writes consistency is a consistency guarantee that a client’s later reads reflect its completed writes.
- serial consistencySERIAL consistency is a ScyllaDB consistency level that provides linearizable reads by coordinating determination of the latest value.
- write timestampA write timestamp is the timestamp attached to a database write for ordering concurrent updates.
- WRITETIME functionThe WRITETIME function is a CQL function that returns the write timestamp associated with a non-primary-key column value.
- tokenA token is a value used to determine a data partition's placement and ownership in a distributed database cluster.
- N + 1 query problemThe N+1 problem is a performance problem in which loading a collection and related data requires one initial query plus a separate query for each item.
- two-way scanningTwo-way scanning is a migration-validation technique that checks row presence from source to destination and then from destination to source.
- PasswordAuthenticatorPasswordAuthenticator is a ScyllaDB authentication provider that permits connections only when supplied credentials are valid.
- single-partition queryA single-partition query retrieves data from exactly one ScyllaDB partition identified by a partition key.
- nodetool compactnodetool compact is a Cassandra-compatible administration command that triggers a major compaction for selected database data.
- CassandraAuthorizerCassandraAuthorizer is a ScyllaDB authorizer configuration that enforces permissions assigned to users or roles and denies unauthorized operations.
- cluster testingCluster testing is the evaluation of a database cluster against representative workloads to determine whether its resources and configuration meet operational requirements.
- storage capacityDisk space is the persistent storage capacity available for database data and related files.
- memory-to-data ratioThe RAM-to-disk storage ratio is the amount of system memory relative to the persistent disk capacity available to a database.
- network bandwidthNetwork bandwidth is the maximum rate at which data can be transferred across a network connection.
- memoryMemory is volatile storage available to a computing instance for holding active program and database state.
- scylla_setupscylla_setup is a ScyllaDB utility that guides configuration of a node's underlying operating-system and hardware resources.
- BASEBASE is a distributed-systems consistency model characterized by basic availability, soft state, and eventual consistency.
- quorum lossQuorum loss is a condition in which an operation cannot obtain the required responses from enough replicas to satisfy its consistency requirement.
- role-based access controlRole-based access control is an authorization model in which permissions are assigned to roles and clients act through those roles.
- datacenterA datacenter is a logical or physical grouping of nodes within a database cluster.
- node lifecycleA node lifecycle state describes a node's membership transition or position in a cluster, such as joining, normal, leaving, or moving.
- node statusNode status indicates whether a database node is up and healthy or down and unavailable.
- redundancyRedundancy is the inclusion of duplicate data or components so that a system can continue operating when one becomes unavailable.
- token-range readToken-range scanning is a database extraction technique that queries data by contiguous token intervals aligned with cluster ownership boundaries.
- DecimalDECIMAL is a ScyllaDB arbitrary-width decimal data type that represents values precisely.
- varintVARINT is a ScyllaDB integer data type capable of storing values with arbitrarily large sizes.
- query specificationA query specification is a load-test configuration that defines a database query and how its input fields are generated.
- uniform distributionA uniform distribution assigns equal probability across the values in a specified range.
- YAMLYAML is a human-readable data serialization standard commonly used for configuration files.
- availability zoneAn availability zone is an isolated infrastructure failure domain within a cloud region that contains computing resources.
- rate limitA rate limit is a control that restricts the number of requests or database operations allowed within a specified interval.
- nodetool describeringnodetool describering is a Cassandra-compatible cluster-administration command that displays token ranges and their owning endpoints for a keyspace.
- describeThe DESCRIBE command is a Cassandra-compatible database shell command that displays the schema definition and configuration of a database object.
- timeA time is a database data type representing a time of day with fractional-second precision.
- SeastarSeastar is a C++ framework for building high-performance asynchronous server applications with per-core resource management.
- gc_grace_secondsgc_grace_seconds is a ScyllaDB table setting that specifies how long a tombstone must remain before it may be removed by garbage collection.
- countA COUNT function is a database aggregate function that returns the number of rows matching a query.
- port forwardingPort forwarding maps a port on one network endpoint to a port on another endpoint so that connections can reach a service.
- read repairRead repair is a replica-reconciliation technique that detects inconsistent read responses and updates divergent replicas.
- throughputThroughput is the rate at which a system completes operations or processes data over time.
- query fanoutQuery fanout is the distribution of one logical database query into subqueries across multiple partitions or nodes.
- log aggregationLog aggregation is the centralized collection and organization of log entries from multiple systems or nodes.
- leader-follower topologyA leader-follower topology assigns one node as leader with special responsibilities while other nodes follow its coordination.
- conflict resolutionConflict resolution is the process of selecting a resulting value when concurrent writes assign different values to the same data.
- lost writeA lost write is an update that is overwritten by a concurrent update and therefore does not remain in the resulting data.
- Alternator APIThe Alternator API is ScyllaDB's DynamoDB-compatible client API and protocol.
- DynamoDBAmazon DynamoDB is a fully managed cloud key-value and document database service.
- cql protocolThe CQL protocol is the client-facing protocol for submitting Cassandra Query Language operations to a Cassandra-compatible database.
- JMXJMX is a Java management interface standard for interacting with applications and their runtime-managed resources.
- Scylla JMXScylla JMX is an adapter that accepts JMX requests and translates them into operations understood by ScyllaDB.
- upsertAn upsert is a write operation that combines insert and update behavior by creating missing data or modifying existing data.
- tabletA tablet is a ScyllaDB data-partitioning unit intended to replace vnode-based replication and support finer-grained distribution.
- CREATE TABLE statementA CREATE TABLE statement is a CQL schema-definition command that creates a table with columns and keys.
- replication strategyA replication strategy is a database configuration algorithm that determines which nodes store replicas of each partition.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
