Index
A
- access
- controlling / Controlling access
- permissions, viewing / Viewing permissions
- revoking / Revoking access
- accidental updates
- and optimistic locking / Optimistic locking and accidental updates
- aggregate analytics observations
- recording / Recording aggregate analytics observations
- right question, answering / Answering the right question
- precomputation versus read-time aggregation / Precomputation versus read-time aggregation
- aggregation, possibilities / The many possibilities for aggregation
- discrete observations, role / The role of discrete observations
- ALL
- immediate consistency / Immediate consistency with ALL
- analytics observations
- recording / Recording analytics observations
- counter column, updating / Updating a counter column
- counters and upserts / Counters and upserts
- counter columns, setting / Setting and resetting counter columns
- counter columns, resetting / Setting and resetting counter columns
- counter columns, deletion / Counter columns and deletion
- counter columns, own table / Counter columns need their own table
- Apache CQL documentation
- ascii type / Strings
- authentication
- enabling / Enabling authentication and authorization
- about / Authentication, authorization, and fault tolerance
- with cqlsh / Authentication with cqlsh
- in application / Authentication in your application
- security, beyond / Security beyond authentication and authorization
- security beyond / Security beyond authentication and authorization
- authorization
- about / Authentication, authorization, and fault tolerance
- URL / Authentication, authorization, and fault tolerance
- in action / Authorization in action
- as hedge, against mistakes / Authorization as a hedge against mistakes
- security, beyond / Security beyond authentication and authorization
- autocomplete function
- building / Building an autocomplete function
B
C
- CAP conjecture
- URL / The CAP theorem
- CAP theorem
- about / The CAP theorem
- Cassandra
- about / What Cassandra offers, and what it doesn't
- horizontal scalability / Horizontal scalability
- high availability / High availability
- write optimization / Write optimization
- structured records / Structured records
- secondary index / Secondary indexes
- result ordering / Efficient result ordering
- immediate consistency / Immediate consistency
- writable collections / Discretely writable collections
- relational joins / Relational joins
- MapReduce / MapReduce
- comparing, to alternatives / Comparing Cassandra to the alternatives
- on Ubuntu / Installing on Windows
- interacting with / Interacting with Cassandra
- mental model, developing / Developing a mental model for Cassandra
- mental model / Refining our mental model
- columns, missing / Missing columns in Cassandra
- collection columns / Collection columns and concurrent updates
- data distribution / Data distribution in Cassandra
- consistency / Consistency in Cassandra
- cassandra-cli
- using / Using cassandra-cli
- cells, simple primary key table
- exploring / Exploring cells
- client-to-node encryption
- cluster / Horizontal scalability
- clustering column / Anatomy of a compound primary key
- restricting by / Restricting by clustering column
- clustering order
- reversing, at query time / Reversing clustering order at query time
- reversing, in schema / Reversing clustering order in the schema
- collection columns
- and concurrent updates / Collection columns and concurrent updates
- defining / Defining collection columns
- reading, from multiple rows / Reading a collection column from multiple rows
- collections
- serializing / Serializing the collection
- and upserts / Collections and upserts
- INSERT statement / Collections in inserts
- and secondary indexes / Collections and secondary indexes
- limitations / The limitations of collections, Collection size limit, Performance of collection operations
- discrete values, reading from / Reading discrete values from collections
- size limit / Collection size limit
- operation performance / Performance of collection operations
- column families
- compound primary keys / Compound primary keys in column families
- collection columns / Collection columns in column families
- set columns / Set columns in column families
- map columns / Map columns in column families
- list columns / List columns in column families
- columns / Table and column options
- about / Beyond two columns
- adding, to tables / Adding columns to tables
- deleting / Deleting columns
- multiple columns, updating / Updating multiple columns
- value, removing from / Removing a value from a column
- missing, in Cassandra / Missing columns in Cassandra
- specific columns, deleting / Deleting specific columns
- compound primary key
- used, for creating table / Creating a table with a compound primary key
- anatomy / Anatomy of a compound primary key
- compound primary keys
- in column families / Compound primary keys in column families
- complete mapping / A complete mapping
- wide row, data structure / The wide row data structure
- empty cell / The empty cell
- concurrency / Introducing concurrency
- concurrent updates
- issue / The problem with concurrent updates
- collection, serializing / Serializing the collection
- concurrency / Introducing concurrency
- conditional insert
- conditional updates
- optmistic locking with / Optimistic locking with conditional updates
- conflicting data
- handling / Handling conflicting data
- Last-write-wins conflict resolution / Last-write-wins conflict resolution
- write timestamps, introspecting / Introspecting write timestamps
- write timestamps, overriding / Overriding write timestamps
- consistency
- about / Consistency
- immediate consistency / Immediate and eventual consistency
- eventual consistency / Immediate and eventual consistency
- in Cassandra / Consistency in Cassandra
- successful request, anatomy / The anatomy of a successful request
- tuning / Tuning consistency
- eventual consistency, with ONE / Eventual consistency with ONE
- immediate consistency, with ALL / Immediate consistency with ALL
- fault-tolerant immediate consistency, with QUORUM / Fault-tolerant immediate consistency with QUORUM
- consistency, levels
- comparing / Comparing consistency levels
- selecting / Choosing the right consistency level
- coordinator node / Partition keys group data on the same node
- counter column
- updating / Updating a counter column
- setting / Setting and resetting counter columns
- resetting / Setting and resetting counter columns
- and deletion / Counter columns and deletion
- own tables / Counter columns need their own table
- CQL
- CQL binary protocol / Interacting with Cassandra
- cqlsh
- table schema, viewing / Viewing a table schema in cqlsh
- authentication with / Authentication with cqlsh
D
- data
- inserting / Inserting data
- about / Writing data does not yield feedback
- partial inserts / Partial inserts
- selecting / Selecting data
- missing rows / Missing rows
- multiple rows, selecting / Selecting more than one row
- rows, retrieving / Retrieving all the rows
- results, paginating through / Paginating through results
- data, discrete analytics observations
- dicing / Slicing and dicing our data
- slicing / Slicing and dicing our data
- data distribution
- about / Data distribution in Cassandra
- data integrity
- and write complexity / Write complexity and data integrity
- data replication
- in Cassandra / Data replication in Cassandra
- masterless replication / Masterless replication, Replication without a master
- DataStax Cassandra documentation
- DataStax CQL
- DataStax CQL documentation
- ALTER TABLE command, URL / Deleting columns
- UPDATE statement, URL / Updating the existing rows
- URL / Removing values from maps, Introspecting write timestamps, Setting up a user, Revoking access
- DataStax CQL reference
- for DELETE statement URL / Unfollowing users
- for CREATE INDEX statement, URL / Other uses of secondary indexes
- URL / Controlling access
- DataStax Enterprise
- data structures
- comparing / Comparing data structures
- dates and times / Dates and times
- decimal type / Floating point and decimal numbers
- DELETE statement
- denormalization / Write optimization
- about / Denormalization
- avoiding, secondary indexes used / Using secondary indexes to avoid denormalization
- denormalization, partial
- about / Partial denormalization
- home timeline, displaying / Displaying the home timeline
- read performance / Read performance and write complexity
- write complexity / Read performance and write complexity
- discrete analytics observations
- recording / Recording discrete analytics observations
- using / Using discrete analytics observations
- data, slicing / Slicing and dicing our data
- data, dicing / Slicing and dicing our data
- discrete list manipulation
- about / Discrete list manipulation
- data, writing at specific index / Writing data at a specific index
- elements, removing from list / Removing elements from the list
- discrete observations
- distributed database
- deletion / Distributed deletion
- double type / Floating point and decimal numbers
E
- eventual consistency
- with ONE / Eventual consistency with ONE
F
- fault-tolerant immediate consistency
- with QUORUM / Fault-tolerant immediate consistency with QUORUM
- fault tolerance
- federation
- about / Data distribution in Cassandra
- float type / Floating point and decimal numbers
- follow relationships
- looking up for / Looking up follow relationships
- users, unfollowing / Unfollowing users
- follow relationships, modeling
- about / Modeling follow relationships
- outbound follows / Outbound follows
- inbound follows / Inbound follows
- follow relationships, storing
- about / Storing follow relationships
- queries, designing around / Designing around queries
- denormalization / Denormalization
H
- hinted handoff
- about / Replication without a master
- home timeline
- generating / Generating the timeline
- displaying / Displaying the home timeline, Displaying the home timeline
- denormalizing / Fully denormalizing the home timeline
- status update, creating / Creating a status update
- horizontal scalability
- about / Horizontal scalability
I
- immediate consistency / Immediate consistency
- with ALL / Immediate consistency with ALL
- inbound follows, follow relationships / Inbound follows
- inserts
- about / Inserts, updates, and upserts
- existing data, overwriting / Inserts can overwrite existing data
- checking / Checking before inserting isn't enough
- INSERT statement / Partial inserts
- collections / Collections in inserts
- integers
- int type / Integers
K
- key-value pairs
- storing, with maps / Using maps to store key-value pairs
- keyspace
- about / Creating a keyspace
- selecting / Selecting a keyspace
L
- last-write-wins conflict resolution / Last-write-wins conflict resolution
- lightweight transactions
- list
- using, for ordered values / Using lists for ordered, nonunique values
- using, for nonunique values / Using lists for ordered, nonunique values
- writing / Writing a list
- elements, removing / Removing elements from the list
- list column
- defining / Defining a list column
- list columns
- in column families / List columns in column families
- lists
- values, appending / Appending and prepending values to lists
- values, prepending / Appending and prepending values to lists
- operations / Other list operations
M
- map columns
- in column families / Map columns in column families
- MapReduce / MapReduce
- maps
- used, for storing key-value pairs / Using maps to store key-value pairs
- writing / Writing a map
- discrete values, updating / Updating discrete values in a map
- values, removing from / Removing values from maps
- masterless replication
- multiple partitions
- paginating over / Paginating over multiple partitions
- and read efficiency / Multiple partitions and read efficiency
N
- natural key / Structuring of tables
- node / Horizontal scalability
- node-to-node encryption
- normalized approach
- about / A normalized approach
- timeline, generating / Generating the timeline
- ordering / Ordering and pagination
- pagination / Ordering and pagination
- multiple partitions / Multiple partitions and read efficiency
- read efficiency / Multiple partitions and read efficiency
O
- ONE
- eventual consistency / Eventual consistency with ONE
- optimistic locking
- optmistic locking
- with conditional updates / Optimistic locking with conditional updates
- in action / Optimistic locking in action
- and accidental updates / Optimistic locking and accidental updates
- outbound follows, follow relationships / Outbound follows
P
- paginating
- over multiple partitions / Paginating over multiple partitions
- parent-child relationships
- about / Compound keys represent parent-child relationships, Coupling parents and children using static columns
- static columns used / Coupling parents and children using static columns, Defining static columns
- static columns, working with / Working with static columns
- static columns / Interacting only with the static columns
- partition
- rows, looking up by / Looking up rows by partition
- rows, paginating over / Paginating over rows in a partition
- partition key / Anatomy of a compound primary key
- part of partition key, restricting by / Restricting by part of a partition key
- about / Cassandra's partitioning strategy: partition key tokens
- distributing / Distributing partition tokens
- group data, on same node / Partition keys group data on the same node
- virtual nodes / Virtual nodes
- virtual nodes, redistribution / Virtual nodes facilitate redistribution
- permissions
- viewing / Viewing permissions
- precomputed aggregation
- versus read-time aggregation / Precomputation versus read-time aggregation
- primary key / Structuring of tables
- project
- bootstrapping / Bootstrapping the project
Q
- query-driven design
- about / Designing around queries
R
- range slice query / Selecting a slice of a partition
- read-time aggregation
- versus precomputed aggregation / Precomputation versus read-time aggregation
- rebalancing
- replication factor
- about / Data replication in Cassandra
- Rich Site Summary (RSS) / When lightweight transactions aren't necessary
- RowKey, simple primary key table / A model of column families: RowKey and cells
- rows
- missing / Missing rows
- multiple rows, selecting / Selecting more than one row
- retrieving / Retrieving all the rows
- looking up, by partition / Looking up rows by partition
- paginating over, in partition / Paginating over rows in a partition
- counting / Counting rows
- order, reversing / Reversing the order of rows
- clustering order, reversing at query time / Reversing clustering order at query time
- clustering order, reversing in scheme / Reversing clustering order in the schema
- existing rows, updating / Updating the existing rows
- multiple columns, updating / Updating multiple columns
- multiple rows, updating / Updating multiple rows
S
- secondary indexes
- used, for avoiding denormalization / Using secondary indexes to avoid denormalization
- single table, form / The form of the single table
- adding / Adding a secondary index
- uses / Other uses of secondary indexes
- limitations / Limitations of secondary indexes, Secondary index lookup is not as efficient as primary key lookup
- and collections / Collections and secondary indexes
- on map columns / Secondary indexes on map columns
- security
- beyond authentication / Security beyond authentication and authorization
- beyond authorization / Security beyond authentication and authorization
- protects, against vulnerabilities / Security protects against vulnerabilities
- set columns
- in column families / Set columns in column families
- sets
- reading / Reading and writing sets
- writing / Reading and writing sets
- advanced manipulation / Advanced set manipulation
- values, removing from / Removing values from a set
- uniqueness / Sets and uniqueness
- sharding
- about / Data distribution in Cassandra
- simple primary key table
- about / The structure of a simple primary key table
- cells, exploring / Exploring cells
- RowKey / A model of column families: RowKey and cells
- cells / A model of column families: RowKey and cells
- single-column primary key
- anatomy / Anatomy of a single-column primary key
- static columns
- defining / Defining static columns
- working with / Working with static columns
- interacting with / Interacting only with the static columns
- static-only inserts / Static-only inserts
- like predefined joins / Static columns act like predefined joins
- using / When to use static columns
- status update
- looking for / Looking up a specific status update
- UUIDs, generating automatically / Automatically generating UUIDs
- status updates
- table / A table for status updates
- table, structure / The structure of the status updates table
- working with / Working with status updates
- retrieving, for specific time range / Retrieving status updates for a specific time range
- time UUID ranges, creating / Creating time UUID ranges
- partition slice, selecting / Selecting a slice of a partition
- creating / Creating a status update
- strings
T
- table
- creating, compound primary key used / Creating a table with a compound primary key
- table properties
- about / Table and column options
- tables
- columns, adding / Adding columns to tables
- table schema
- viewing, in cqlsh / Viewing a table schema in cqlsh
- text type / Strings
- time-to-live (TTL) / Expiring columns with TTL
- timestamps
- and UUIDs / UUIDs and timestamps
- extracting / Extracting timestamps
- time UUID ranges
- creating / Creating time UUID ranges
- timeuuid type / UUIDs
- tombstones
- stumbling on / Stumbling on tombstones
- columns, expiring with TTL / Expiring columns with TTL
- tunable consistency / Consistency in Cassandra
- tuple column
- creating / Creating a tuple column
- tuples
- working with / Working with tuples
- about / Working with tuples
- column, creating / Creating a tuple column
- URL / Creating a tuple column
- writing / Writing to tuples
- indexing / Indexing tuples
- and user-defined types, selecting between / Choosing between tuples and user-defined types
- type system
- about / The type system
- strings / Strings
- integers / Integers
- floating point / Floating point and decimal numbers
- decimal numbers / Floating point and decimal numbers
- dates and times / Dates and times
- UUIDs / UUIDs
- boolean type / Booleans
- blob type / Blobs
- purpose / The purpose of types
U
- universally unique identifiers (UUIDs)
- updates
- new rows, creating / Updates can create new rows
- UPDATE statement
- upsert
- about / Inserts, updates, and upserts
- user
- setting up / Setting up a user
- password, setting up / Changing a user's password
- accounts, viewing / Viewing user accounts
- user-defined column
- data, adding / Adding data to a user-defined column
- user-defined type
- about / User-defined types
- using / User-defined types
- creating / Creating a user-defined type
- URL / Creating a user-defined type, Assigning a user-defined type to a column
- assigning, to column / Assigning a user-defined type to a column
- indexing / Indexing and querying user-defined types
- querying / Indexing and querying user-defined types
- partial selection / Partial selection of user-defined types
- and tuples, selecting between / Choosing between tuples and user-defined types
- users
- unfollowing / Unfollowing users
- user table
- about / Creating the users table
- structuring / Structuring of tables
- properties / Table and column options
- UUIDs
- and timestamps / UUIDs and timestamps
- generating automatically / Automatically generating UUIDs
- advantages / Another advantage of UUIDs
- uuid type / UUIDs
V
- value
- removing, from column / Removing a value from a column
- syntactic sugar, for deletion / Syntactic sugar for deletion
- values
- appending, to lists / Appending and prepending values to lists
- prepending, to lists / Appending and prepending values to lists
- varint type / Integers
- virtual nodes
- about / Virtual nodes
W
- WHERE keyword
- limitations / The limits of the WHERE keyword
- clustering column, restricting by / Restricting by clustering column
- part of partition key, restricting by / Restricting by part of a partition key
- wide row
- data structure / The wide row data structure
- Windows
- Cassandra, installing on / Installing on Windows
- write complexity
- and data integrity / Write complexity and data integrity
- write timestamps
- introspecting / Introspecting write timestamps
- overriding / Overriding write timestamps