Frequently asked questions about DataStax Enterprise (DSE)
This page answers general questions about DataStax Enterprise (DSE).
What is DSE
DataStax Enterprise (DSE) is a self-managed database built on Apache Cassandra® that empowers you to manage your data infrastructure with enterprise-grade capabilities. DSE provides all the capabilities of Cassandra as well as advanced workloads.
What hardware is required to run DSE
This depends on your intended workloads and cluster infrastructure. To get started planning your deployment, see Capacity planning and hardware selection for DSE deployments.
How do I configure DSE
For recommended settings, see Recommended production settings. Other settings and use cases are explored throughout the DSE documentation.
How do I upgrade DSE
See the DSE upgrade guide.
Connections and tools
Does DataStax provide cluster management tools
Yes. You can use DSE OpsCenter.
How do I interact with DSE
DSE’s architecture allows any authorized user to connect to any node in any datacenter and access data using the Cassandra Query Language (CQL). CQL uses a similar syntax to SQL.
You can issue CQL statements with the following tools:
-
CQL shell (
cqlsh): This CLI tool supports CQL statements as well as uniquecqlshcommands. -
Cassandra drivers: Client libraries in multiple programming languages for application development with CQL.
-
DataStax Studio: Provides an IDE for syntax validation, type checking, validations specific to the domain, and content assistance for CQL and DSE Graph.
-
Apache Cassandra Spark Connector: A driver for integration with Apache Spark™ and access to the Spark shell. SQL access is also available with Apache Spark’s ODBC/JDBC support.
Architecture and consistency
What is NoSQL
The NoSQL term originally referred to a new generation of databases that shunned SQL for other interfaces. The term NoSQL has recently become a catch-all term for post-relational "not-only SQL" databases that use a method of storage different from a relational, or SQL, database.
How is DSE different from relational databases
DSE is a distributed and highly available database that uses peer-to-peer communication.
Cassandra-based databases, like DSE, are different from relational databases. For example:
-
DSE uses a data model based on the types of queries rather than modeling entities and relationships.
-
DSE uses denormalization to achieve more robust querying, whereas relational databases use joins between tables for relationships.
-
DSE uses atomic, isolated, and durable transactions with eventual/tunable consistency instead of RDBMS ACID transactions.
DataStax highly recommends reviewing the DSE architecture to learn about key concepts and functionality that are essential to proper configuration and optimal performance.
Does DSE support lightweight transactions (compare-and-set) with linearizable consistency
Yes. See the following:
How does the database perform reads and writes
Most clusters consist of multiple nodes that store replicas of the data to ensure high availability and fault tolerance. In this configuration, one node acts as the coordinator for a given query. The coordinator node selects replicas to complete the request and returns the result to the client. For more information about the mechanics of read and write requests, including failure handling, see the following:
Advanced workloads
What is Apache Spark and how is DSE Analytics different
Apache Spark is an open source analytics project that provides a fast and general engine for large-scale data processing. DSE integrates Apache Spark real-time and batch analytics processing to more easily manage both database and analytics with a single operational system.
What is Apache Solr™ and how is DSE Search different
Apache Solr is an open source search project that produces a highly reliable, scalable, and distributed search system that provides search for databases. DSE Search integrates Solr to manage search indexes with a persistent store. DSE Search provide enterprises with the ability to perform text search and text analysis.
What are DSE Management Services
DSE Management Services automatically handle administration and maintenance tasks and assist with overall database cluster management:
Can I leave DSE Search Performance Service objects enabled continuously
This depends on your use case. If you need to collect data pertaining to a problem that occurs sporadically, and you chose configuration values that don’t substantially degrade performance, there is no significant downside to leaving the objects enabled permanently.
Is there a performance impact caused by enabling DSE Search performance objects
Typically, performance overhead (CPU and memory usage) is negligible when using the default configuration values provided by DataStax Enterprise (DSE). Performance overhead might increase if you use a non-default configuration. For example, setting longer TTLs and shorter refresh intervals leads to higher memory and disk consumption.
Should I enable DSE Search performance objects on every node in my cluster
Only enable DSE Search performance objects on DSE Search nodes. Specifically, this means nodes where DSE Search indexes reside that can observe search operations.
Start by enabling these performance objects on one DSE Search node. Then, if needed, you can enable the objects across all DSE Search nodes in the cluster.
Can I mix secondary indexes (2i) with DSE Search indexes
Don’t mix indexes on the same table. Using 2i and DSE Search indexes on the same table isn’t supported.
Can I use RLAC with DSE Graph
No.
GRANT statements using an ON filter ROWS IN clause don’t produce errors, and LIST ALL PERMISSIONS returns the defined restriction.
However, the permissions aren’t enforced.
|
Granting access on rows in a table provides access to data in all graph keyspaces. |
Security
What communication protocols are used by DSE
All communication occurs over TCP sockets and can be secured by using the standard Java Security SSL/TLS implementation in the JVM. Additional application specific protocols, like gossip and the CQL Binary Protocol, rely on these sockets for transport.
Why is the default cassandra role a security risk
The default role is a superuser role that has full access to the database, and the default credentials are publicly known.
DataStax recommends using firewall rules to isolate the cluster until you create a non-default superuser role and disable the cassandra role.
How does DSE manage permissions and user access
DSE uses role-based access control (RBAC) to manage permissions and user access. Initially, the database has one default superuser role.
To properly secure your database, you must create a non-default superuser role, disable the default cassandra role, and create non-superuser roles for other users and service accounts that need to access your database.
With DSE Unified Authentication enabled, the DSE Role Manager determines which roles to assign to authenticated users.
For more information, see About Role Based Access Control.
How does DSE grant user-action permissions
DSE supports standard object permission management to assign roles specific permissions at the table and row level. Permissions to access all keyspaces, specific keyspaces, tables, functions, or MBeans can be granted to a role. For more information, see Setting up Logins and Users.
Which LDAP servers are supported
DSE supports Microsoft Active Directory, OpenLDAP, and Oracle Directory Server Enterprise Edition. For more information, see Defining an LDAP Scheme.
Does DSE RBAC support LDAP group mapping
DSE supports role management based on LDAP group membership.
|
Roles (users) inherit all permissions granted to roles that are mapped to the user’s LDAP groups. This includes direct group membership and indirect group membership through nested groups. The inherited permissions include login permission, scheme permissions, proxy execution permissions, and object permissions. |
Configure an LDAP scheme with group lookup, set the Role Management mode to LDAP, create roles that match the group names, and then assign permissions to those roles. For more information, see Defining an LDAP Scheme.
DataStax recommends using the memberof search method for group lookup, but DSE also supports directory search.
Can I restrict access with IP access lists and block lists
In general, arbitrary client programs don’t directly access the database. Database access by the general user population is controlled at the application layer. Access between application nodes and database nodes should be controlled with conventional firewall mechanisms, such as Linux iptables. Database administrators are an exception to allow connections from DBA hosts.
Can I restrict access at the row level
You can grant or revoke permissions at the row level within a table. This is known as row-level access control (RLAC), which is an aspect of RBAC.
RLAC grants and revokes permissions on individual rows within a table by filtering on a text partition column.
For more information, see Setting up Row Level Access Control (RLAC).
How are encryption keys secured and managed
Encryption keys can be managed off-server or locally:
-
Key Management Interoperability Protocol (KMIP) encryption: For keys that are stored on another server and cached locally in heap memory when used by DSE.
-
Local encryption: For keys that are stored locally and secured using Linux access control permissions.
Can client-to-node encryption be configured as two-way SSL
Yes, although the client certificate DN is not used as a database user principal. For more information, see Configuring SSL for Client-to-Node Connections.
How is data at rest encrypted
You can enable Transparent Data Encryption (TDE) on individual tables.
Use the ALTER TABLE command to set encryption and compression on a table.
When a table is encrypted, your applications can read and write to SSTables that use different encryption algorithms or use no encryption.
For more information, see Transparent Data Encryption.
How does TDE compare to AWS EBS encryption
EBS encryption is another way to encrypt data files like audit logs, system logs, and SSTable index files (which store partition keys in plain text when using TDE). EBS encryption is considered less complex operationally, so you might prefer it over TDE. Typically, use TDE when full-disk encryption is cost prohibitive or not feasible.
Can I encrypt individual records (rows, columns, or cells)
No. TDE applies to the entire table.
Does DSE generate audit logs
Yes, DSE provides configurable audit logging:
-
Include or exclude categories of database activity, such as querying or DML.
-
Write audit logs to a database table, or use
logbackto write log files in each node’s file system. -
Use RBAC to secure table-based audit logs in the same way you apply RBAC to other database tables.
-
Use standard Linux file system permissions to secure file-based audit logs on each node.
For more information, see Setting up Database Auditing and Configure logging.