diff --git a/README.md b/README.md
index 54de07e2302b..570427277a14 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ geospatial analytics.
* Quick Starts:
[Accumulo](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-accumulo.html) |
[HBase](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-hbase.html) |
- [Cassandra](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-cassandra.html) |
+ [Cassandra / ScyllaDB](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-cassandra.html) |
[Kafka](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-kafka.html) |
[Redis](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-redis.html) |
[FileSystem](https://www.geomesa.org/documentation/current/tutorials/geomesa-quickstart-fsds.html)
@@ -42,7 +42,7 @@ geospatial analytics.
[**Accumulo**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-accumulo_2.12-5.1.0-bin.tar.gz) |
[**HBase**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-hbase_2.12-5.1.0-bin.tar.gz) |
- [**Cassandra**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-cassandra_2.12-5.1.0-bin.tar.gz) |
+ [**Cassandra / ScyllaDB**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-cassandra_2.12-5.1.0-bin.tar.gz) |
[**Kafka**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-kafka_2.12-5.1.0-bin.tar.gz) |
[**Redis**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-redis_2.12-5.1.0-bin.tar.gz) |
[**FileSystem**](https://github.com/locationtech/geomesa/releases/download/geomesa-5.1.0/geomesa-fs_2.12-5.1.0-bin.tar.gz) |
diff --git a/build/templates/README.md b/build/templates/README.md
index ac1244bdf07b..2f1a406e530f 100644
--- a/build/templates/README.md
+++ b/build/templates/README.md
@@ -29,7 +29,7 @@ geospatial analytics.
* Quick Starts:
[Accumulo](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-accumulo.html) |
[HBase](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-hbase.html) |
- [Cassandra](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-cassandra.html) |
+ [Cassandra / ScyllaDB](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-cassandra.html) |
[Kafka](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-kafka.html) |
[Redis](https://www.geomesa.org/documentation/tutorials/geomesa-quickstart-redis.html) |
[FileSystem](https://www.geomesa.org/documentation/current/tutorials/geomesa-quickstart-fsds.html)
@@ -42,7 +42,7 @@ geospatial analytics.
[**Accumulo**](https://github.com/locationtech/geomesa/releases/download/geomesa-${geomesa.release.version}/geomesa-accumulo_${scala.binary.version}-${geomesa.release.version}-bin.tar.gz) |
[**HBase**](https://github.com/locationtech/geomesa/releases/download/geomesa-${geomesa.release.version}/geomesa-hbase_${scala.binary.version}-${geomesa.release.version}-bin.tar.gz) |
- [**Cassandra**](https://github.com/locationtech/geomesa/releases/download/geomesa-${geomesa.release.version}/geomesa-cassandra_${scala.binary.version}-${geomesa.release.version}-bin.tar.gz) |
+ [**Cassandra / ScyllaDB**](https://github.com/locationtech/geomesa/releases/download/geomesa-${geomesa.release.version}/geomesa-cassandra_${scala.binary.version}-${geomesa.release.version}-bin.tar.gz) |
[**Kafka**](https://github.com/locationtech/geomesa/releases/download/geomesa-${geomesa.release.version}/geomesa-kafka_${scala.binary.version}-${geomesa.release.version}-bin.tar.gz) |
[**Redis**](https://github.com/locationtech/geomesa/releases/download/geomesa-${geomesa.release.version}/geomesa-redis_${scala.binary.version}-${geomesa.release.version}-bin.tar.gz) |
[**FileSystem**](https://github.com/locationtech/geomesa/releases/download/geomesa-${geomesa.release.version}/geomesa-fs_${scala.binary.version}-${geomesa.release.version}-bin.tar.gz) |
diff --git a/docs/common.py b/docs/common.py
index d34593c4b15b..aeaae87128a2 100644
--- a/docs/common.py
+++ b/docs/common.py
@@ -99,6 +99,8 @@
.. |cassandra_version| replace:: 3
+.. |scylladb_version| replace:: 6.2
+
.. |redis_supported_versions| replace:: versions 5.0 and later
.. |spark_required_version| replace:: %(spark_version)s
diff --git a/docs/tutorials/geomesa-quickstart-cassandra.rst b/docs/tutorials/geomesa-quickstart-cassandra.rst
index 8096bbff780c..f55e7a3daffb 100644
--- a/docs/tutorials/geomesa-quickstart-cassandra.rst
+++ b/docs/tutorials/geomesa-quickstart-cassandra.rst
@@ -1,7 +1,7 @@
-GeoMesa Cassandra Quick Start
-=============================
+GeoMesa Cassandra / ScyllaDB Quick Start
+========================================
-This tutorial is the fastest and easiest way to get started with GeoMesa using Cassandra.
+This tutorial is the fastest and easiest way to get started with GeoMesa using Cassandra / ScyllaDB.
It is a good stepping-stone on the path to the other tutorials, that present increasingly
involved examples of how to use GeoMesa.
@@ -12,9 +12,9 @@ In the spirit of keeping things simple, the code in this tutorial only
does a few small things:
1. Establishes a new (static) SimpleFeatureType
-2. Prepares the Cassandra tables to store this type of data
+2. Prepares the Cassandra / ScyllaDB tables to store this type of data
3. Creates a few thousand example SimpleFeatures
-4. Writes these SimpleFeatures to Cassandra
+4. Writes these SimpleFeatures to Cassandra / ScyllaDB
5. Queries for a given geographic rectangle, time range, and attribute
filter, writing out the entries in the result set
6. Uses GeoServer to visualize the data (optional)
@@ -27,14 +27,14 @@ Before you begin, you must have the following installed and configured:
- `Java `__ JDK 1.8
- Apache `Maven `__ |maven_version|
- a GitHub client
-- a Cassandra |cassandra_version| instance, either standalone or cluster
-- a Cassandra user that has both create-table and write permissions
+- a Cassandra |cassandra_version| instance or a ScyllaDB |scylladb_version| instance, either standalone or cluster
+- a Cassandra / ScyllaDB user that has both create-table and write permissions
(not needed for standalone instances)
-Create A Cassandra Namespace
-----------------------------
+Create A Cassandra / ScyllaDB Namespace
+---------------------------------------
-You will need a namespace in Cassandra to contain the tutorial tables. The easiest way to do
+You will need a namespace in Cassandra / ScyllaDB to contain the tutorial tables. The easiest way to do
this is with the ``cqlsh`` tool provided with Cassandra distributions. Start ``cqlsh``, then type:
.. code-block:: bash
@@ -42,7 +42,7 @@ this is with the ``cqlsh`` tool provided with Cassandra distributions. Start ``c
cqlsh> CREATE KEYSPACE geomesa WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor' : 3};
This creates a key space called "geomesa". This is a top-level name
-space within Cassandra and it will provide a place for GeoMesa to put
+space within Cassandra / ScyllaDB and it will provide a place for GeoMesa to put
all of its data, including data for spatial features and associated
metadata.
@@ -88,20 +88,20 @@ On the command line, run:
where you provide the following arguments:
-- ```` the hostname and port your Cassandra instance is
- running on. For Cassandra standalone this will be ``localhost:9042``. More
+- ```` the hostname and port your Cassandra / ScyllaDB instance is
+ running on. For Cassandra / ScyllaDB standalone this will be ``localhost:9042``. More
information on how to find your connection is available
- `here `__.
+ `here `__.
- ```` keyspace your table will be put into. If you followed the instructions above,
this will be ``geomesa``. More information on how to setup keyspaces is available
- `here `__.
+ `here `__.
- ```` the name of the destination table that will
accept these test records. This table should either not exist or
should be empty
-- ```` (optional) the name of a Cassandra user that has
+- ```` (optional) the name of a Cassandra / ScyllaDB user that has
permissions to create, read and write tables
- ```` (optional) the password for the previously-mentioned
- Cassandra user
+ Cassandra / ScyllaDB user
Optionally, you can also specify that the quick start should delete its data upon completion. Use the
``--cleanup`` flag when you run to enable this behavior.
@@ -256,7 +256,7 @@ Register the GeoMesa Store with GeoServer
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Log into GeoServer using your user and password credentials. Click
-"Stores" and "Add new Store". Select the ``Cassandra (GeoMesa)`` vector data
+"Stores" and "Add new Store". Select the ``Cassandra / ScyllaDB (GeoMesa)`` vector data
source, and fill in the required parameters.
Basic store info:
@@ -269,7 +269,7 @@ Connection parameters:
- these are the same parameter values that you supplied on the
command line when you ran the tutorial; they describe how to connect
- to the Cassandra instance where your data reside
+ to the Cassandra / ScyllaDB instance where your data reside
Click "Save", and GeoServer will search your Cassandra table for any
GeoMesa-managed feature types.
diff --git a/docs/user/cassandra/commandline.rst b/docs/user/cassandra/commandline.rst
index 1cf20d0e0848..500c93a2bc87 100644
--- a/docs/user/cassandra/commandline.rst
+++ b/docs/user/cassandra/commandline.rst
@@ -15,12 +15,12 @@ Once installed, the tools should be available through the command ``geomesa-cass
Commands:
...
-All Cassandra commands are described in the common tools chapter :doc:`/user/cli/index`.
+All Cassandra / ScyllaDB commands are described in the common tools chapter :doc:`/user/cli/index`.
General Arguments
-----------------
-Most commands require you to specify the connection to Cassandra. This generally includes a contact point,
+Most commands require you to specify the connection to Cassandra / ScyllaDB. This generally includes a contact point,
key space, username and password. Specify the contact point and key space with ``--contact-point`` and
``--key-space`` (or ``-P`` and ``-k``). Specify the username and password with ``--user`` and ``--password``
(or ``-u`` and ``-p``). In order to avoid plaintext passwords in the bash history
diff --git a/docs/user/cassandra/configuration.rst b/docs/user/cassandra/configuration.rst
index 9cb15fdc2b14..d2f6f1c3dfef 100644
--- a/docs/user/cassandra/configuration.rst
+++ b/docs/user/cassandra/configuration.rst
@@ -1,13 +1,13 @@
-Cassandra Configuration
-=======================
+Cassandra / ScyllaDB Configuration
+==================================
-This section details Cassandra-specific configuration properties. For general properties,
+This section details Cassandra / ScyllaDB specific configuration properties. For general properties,
see :ref:`geomesa_site_xml`.
Connection Properties
---------------------
-The following properties control the configuration of the Cassandra session.
+The following properties control the configuration of the Cassandra / ScyllaDB session.
geomesa.cassandra.connection.timeout
++++++++++++++++++++++++++++++++++++
diff --git a/docs/user/cassandra/geoserver.rst b/docs/user/cassandra/geoserver.rst
index 66f279647bd8..6664fa1ef010 100644
--- a/docs/user/cassandra/geoserver.rst
+++ b/docs/user/cassandra/geoserver.rst
@@ -12,11 +12,11 @@ interface by clicking "Data > Stores" in the left-hand menu and then
clicking "Add new Store".
If you have properly installed the GeoMesa Cassandra GeoServer plugin as described
-in :ref:`install_cassandra_geoserver`, "Cassandra (GeoMesa)" should be included in the list
+in :ref:`install_cassandra_geoserver`, "Cassandra / ScyllaDB (GeoMesa)" should be included in the list
under **Vector Data Sources**. If you do not see this, check that you unpacked the
plugin JARs into in the right directory and restart GeoServer.
-On the "Add Store" page, select "Cassandra (GeoMesa)", and fill out the
+On the "Add Store" page, select "Cassandra / ScyllaDB (GeoMesa)", and fill out the
parameters. The parameters are described in :ref:`cassandra_parameters`.
-Click "Save", and GeoServer will search Cassandra for any GeoMesa-managed feature types.
+Click "Save", and GeoServer will search Cassandra / ScyllaDB for any GeoMesa-managed feature types.
diff --git a/docs/user/cassandra/heatmaps.rst b/docs/user/cassandra/heatmaps.rst
index 357a1f4f495a..16da4f3cceba 100644
--- a/docs/user/cassandra/heatmaps.rst
+++ b/docs/user/cassandra/heatmaps.rst
@@ -1,7 +1,7 @@
Cassandra Heatmaps
==================
-Cassandra can generate client-side heatmaps in GeoServer by defining a style and using the built in ``gs:Heatmap``
+Cassandra / ScyllaDB can generate client-side heatmaps in GeoServer by defining a style and using the built in ``gs:Heatmap``
process within GeoServer.
To start, add a new SLD style to GeoServer named "heatmap" and use this sld
diff --git a/docs/user/cassandra/index.rst b/docs/user/cassandra/index.rst
index bdac4e27410e..fde32ae98ca3 100644
--- a/docs/user/cassandra/index.rst
+++ b/docs/user/cassandra/index.rst
@@ -1,17 +1,25 @@
-Cassandra Data Store
+Cassandra / ScyllaDB Data Store
====================
.. note::
GeoMesa currently supports Cassandra version |cassandra_version|.
+.. note::
+
+ GeoMesa currently supports ScyllaDB version |scylladb_version|.
+
The GeoMesa Cassandra Data Store is an implementation of the GeoTools
-``DataStore`` interface that is backed by `Apache Cassandra`_.
+``DataStore`` interface that is backed by `Apache Cassandra`_ or `ScyllaDB`.
It is found in the ``geomesa-cassandra`` directory of the GeoMesa
-source distribution.
+source distribution. As `ScyllaDB` is API-compatible with `Apache Cassandra`_,
+it is also supported and work with the same configuration
+just by pointing to `ScyllaDB`_ in connection string.
.. _Apache Cassandra: https://cassandra.apache.org/
+.. _ScyllaDB: https://www.scylladb.com/
+
.. toctree::
:maxdepth: 1
diff --git a/docs/user/cassandra/install.rst b/docs/user/cassandra/install.rst
index 0e74737c6032..cb5837c9bb9f 100644
--- a/docs/user/cassandra/install.rst
+++ b/docs/user/cassandra/install.rst
@@ -5,6 +5,10 @@ Installing GeoMesa Cassandra
GeoMesa currently supports Cassandra version |cassandra_version|.
+.. note::
+
+ GeoMesa currently supports ScyllaDB version |scylladb_version|.
+
.. note::
The examples below expect a version to be set in the environment:
@@ -14,23 +18,25 @@ Installing GeoMesa Cassandra
$ export TAG="|release_version|"
$ export VERSION="|scala_binary_version|-${TAG}" # note: |scala_binary_version| is the Scala build version
-Connecting to Cassandra
------------------------
+Connecting to Cassandra or ScyllaDB
+-----------------------------------
-The first step to getting started with Cassandra and GeoMesa is to install
-Cassandra itself. You can find good directions for downloading and installing
-Cassandra online. For example, see Cassandra's official `getting started`_ documentation.
+The first step to getting started with Cassandra / ScyllaDB and GeoMesa is to install
+Cassandra / ScyllaDB itself. You can find good directions for downloading and installing
+Cassandra / ScyllaDB online. For example, see Cassandra's official `getting started`_ or official `ScyllaDB's getting started`_ documentation.
.. _getting started: https://cassandra.apache.org/doc/latest/getting_started/index.html
-Once you have Cassandra installed, the next step is to prepare your Cassandra installation
-to integrate with GeoMesa. First, create a key space within Cassandra. The easiest way to
-do this with ``cqlsh``, which should have been installed as part of your Cassandra installation.
+.. _ScyllaDB's getting started: https://opensource.docs.scylladb.com/stable/getting-started/index.html
+
+Once you have Cassandra / ScyllaDB installed, the next step is to prepare your Cassandra / ScyllaDB installation
+to integrate with GeoMesa. First, create a key space within Cassandra / ScyllaDB. The easiest way to
+do this with ``cqlsh``, which should have been installed as part of your Cassandra / ScyllaDB installation.
Start ``cqlsh``, then type::
CREATE KEYSPACE mykeyspace WITH REPLICATION = {'class': 'SimpleStrategy', 'replication_factor' : 3};
-This creates a key space called "mykeyspace". This is a top-level name space within Cassandra
+This creates a key space called "mykeyspace". This is a top-level name space within Cassandra / ScyllaDB
and it will provide a place for GeoMesa to put all of its data, including data for spatial features
and associated metadata.
@@ -40,12 +46,12 @@ installation. To set the variable add the following line to your ``.profile`` or
export CASSANDRA_HOME=/path/to/cassandra
-Finally, make sure you know a contact point for your Cassandra instance.
-If you are just trying things locally, and using the default Cassandra settings,
+Finally, make sure you know a contact point for your Cassandra / ScyllaDB instance.
+If you are just trying things locally, and using the default Cassandra / ScyllaDB settings,
the contact point would be ``127.0.0.1:9042``. You can check and configure the
-port you are using using the ``native_transport_port`` in the Cassandra
+port you are using using the ``native_transport_port`` in the Cassandra / ScyllaDB
configuration file (located at ``conf/cassandra.yaml`` in your Cassandra
-installation directory).
+installation directory, ``/etc/scylla/scylla.yaml`` for ScyllaDB accordingly).
Installing from the Binary Distribution
---------------------------------------
diff --git a/docs/user/cassandra/usage.rst b/docs/user/cassandra/usage.rst
index 0cda76eb0d6b..b18900a93a7c 100644
--- a/docs/user/cassandra/usage.rst
+++ b/docs/user/cassandra/usage.rst
@@ -3,7 +3,7 @@
Cassandra Data Store Parameters
===============================
-Use the following parameters for a Cassandra data store (required parameters are marked with ``*``):
+Use the following parameters for a Cassandra / ScyllaDB data store (required parameters are marked with ``*``):
==================================== ======= ========================================================================================
Parameter Type Description
@@ -11,9 +11,9 @@ Parameter Type Description
``cassandra.catalog *`` String The name of the GeoMesa catalog table (previously ``geomesa.cassandra.catalog.table``)
``cassandra.contact.point *`` String The connection point for Cassandra, in the form ``:`` - for a default
local installation this will be ``localhost:9042``
-``cassandra.keyspace *`` String The Cassandra keyspace to use (must exist already)
-``cassandra.username`` String Cassandra user
-``cassandra.password`` String Cassandra password
+``cassandra.keyspace *`` String The Cassandra / ScyllaDB keyspace to use (must exist already)
+``cassandra.username`` String Cassandra / ScyllaDB user
+``cassandra.password`` String Cassandra / ScyllaDB password
``geomesa.query.audit`` Boolean Audit queries being run. Queries will be written to a log file
``geomesa.query.timeout`` String The max time a query will be allowed to run before being killed. The
timeout is specified as a duration, e.g. ``1 minute`` or ``60 seconds``
@@ -25,7 +25,7 @@ Parameter Type Description
Programmatic Access
-------------------
-An instance of a Cassandra data store can be obtained through the normal GeoTools discovery methods,
+An instance of a Cassandra / ScyllaDB data store can be obtained through the normal GeoTools discovery methods,
assuming that the GeoMesa code is on the classpath.
.. code-block:: java
diff --git a/geomesa-cassandra/geomesa-cassandra-datastore/pom.xml b/geomesa-cassandra/geomesa-cassandra-datastore/pom.xml
index 944a4dbfb8bf..7c8b3c2e2703 100644
--- a/geomesa-cassandra/geomesa-cassandra-datastore/pom.xml
+++ b/geomesa-cassandra/geomesa-cassandra-datastore/pom.xml
@@ -9,7 +9,7 @@
4.0.0
geomesa-cassandra-datastore_2.12
- GeoMesa Cassandra DataStore
+ GeoMesa Cassandra / ScyllaDB DataStore
diff --git a/geomesa-cassandra/geomesa-cassandra-datastore/src/main/scala/org/locationtech/geomesa/cassandra/data/CassandraDataStoreFactory.scala b/geomesa-cassandra/geomesa-cassandra-datastore/src/main/scala/org/locationtech/geomesa/cassandra/data/CassandraDataStoreFactory.scala
index 88f2822f1bad..73791edc89af 100644
--- a/geomesa-cassandra/geomesa-cassandra-datastore/src/main/scala/org/locationtech/geomesa/cassandra/data/CassandraDataStoreFactory.scala
+++ b/geomesa-cassandra/geomesa-cassandra-datastore/src/main/scala/org/locationtech/geomesa/cassandra/data/CassandraDataStoreFactory.scala
@@ -130,8 +130,8 @@ object CassandraDataStoreFactory extends GeoMesaDataStoreInfo {
null,
Map(Parameter.DEPRECATED -> true, Parameter.IS_PASSWORD -> true).asJava)
- override val DisplayName = "Cassandra (GeoMesa)"
- override val Description = "Apache Cassandra\u2122 distributed key/value store"
+ override val DisplayName = "Cassandra / ScyllaDB (GeoMesa)"
+ override val Description = "Apache Cassandra / ScyllaDB \u2122 distributed key/value store"
override val ParameterInfo: Array[GeoMesaParam[_ <: AnyRef]] =
Array(
diff --git a/geomesa-cassandra/geomesa-cassandra-gs-plugin/pom.xml b/geomesa-cassandra/geomesa-cassandra-gs-plugin/pom.xml
index 6977cc27f991..722cffc71ec4 100644
--- a/geomesa-cassandra/geomesa-cassandra-gs-plugin/pom.xml
+++ b/geomesa-cassandra/geomesa-cassandra-gs-plugin/pom.xml
@@ -10,7 +10,7 @@
geomesa-cassandra-gs-plugin_2.12
- GeoMesa Cassandra GeoServer Plugin
+ GeoMesa Cassandra / ScyllaDB GeoServer Plugin
pom
diff --git a/geomesa-cassandra/pom.xml b/geomesa-cassandra/pom.xml
index fc5966839044..7b20aa937eea 100644
--- a/geomesa-cassandra/pom.xml
+++ b/geomesa-cassandra/pom.xml
@@ -8,7 +8,7 @@
4.0.0
geomesa-cassandra_2.12
- GeoMesa Cassandra
+ GeoMesa Cassandra / ScyllaDB
pom