You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pekko.apache.org by fa...@apache.org on 2023/03/23 14:12:40 UTC
[incubator-pekko-persistence-cassandra] branch main updated: fix some pekko naming issues (#36)
This is an automated email from the ASF dual-hosted git repository.
fanningpj pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-pekko-persistence-cassandra.git
The following commit(s) were added to refs/heads/main by this push:
new caf5554 fix some pekko naming issues (#36)
caf5554 is described below
commit caf55543bdacfad2ed05f64b3d2edd51516d1e5e
Author: PJ Fanning <pj...@users.noreply.github.com>
AuthorDate: Thu Mar 23 15:12:33 2023 +0100
fix some pekko naming issues (#36)
address review items
Update CassandraReadJournal.scala
more class package issues
---
.../cassandra/testkit/CassandraLauncher.scala | 6 +-
.../query/javadsl/CassandraReadJournal.scala | 12 +-
.../query/scaladsl/CassandraReadJournal.scala | 12 +-
.../cassandra/PrintCreateStatements.scala | 2 +-
docs/src/main/paradox/cleanup.md | 2 +-
docs/src/main/paradox/configuration.md | 10 +-
docs/src/main/paradox/cosmosdb.md | 2 +-
docs/src/main/paradox/events-by-tag.md | 14 +-
docs/src/main/paradox/healthcheck.md | 8 +-
docs/src/main/paradox/journal.md | 12 +-
docs/src/main/paradox/migrations.md | 279 +--------------------
docs/src/main/paradox/read-journal.md | 4 +-
docs/src/main/paradox/snapshots.md | 10 +-
docs/src/main/paradox/testing.md | 2 +-
project/project-info.conf | 4 +-
15 files changed, 53 insertions(+), 326 deletions(-)
diff --git a/cassandra-launcher/src/main/scala/org/apache/pekko/persistence/cassandra/testkit/CassandraLauncher.scala b/cassandra-launcher/src/main/scala/org/apache/pekko/persistence/cassandra/testkit/CassandraLauncher.scala
index 7cee643..37125d7 100644
--- a/cassandra-launcher/src/main/scala/org/apache/pekko/persistence/cassandra/testkit/CassandraLauncher.scala
+++ b/cassandra-launcher/src/main/scala/org/apache/pekko/persistence/cassandra/testkit/CassandraLauncher.scala
@@ -195,7 +195,7 @@ object CassandraLauncher {
* @param port the `native_transport_port` to use, if 0 a random
* free port is used, which can be retrieved (before starting)
* with [[CassandraLauncher.randomPort]].
- * @throws akka.persistence.cassandra.testkit.CassandraLauncher.CleanFailedException if `clean`
+ * @throws org.apache.pekko.persistence.cassandra.testkit.CassandraLauncher.CleanFailedException if `clean`
* is `true` and removal of the directory fails
*/
def start(cassandraDirectory: File, configResource: String, clean: Boolean, port: Int): Unit =
@@ -214,7 +214,7 @@ object CassandraLauncher {
* with [[CassandraLauncher.randomPort]].
* @param classpath Any additional jars/directories to add to the classpath. Use
* [[CassandraLauncher#classpathForResources]] to assist in calculating this.
- * @throws akka.persistence.cassandra.testkit.CassandraLauncher.CleanFailedException if `clean`
+ * @throws org.apache.pekko.persistence.cassandra.testkit.CassandraLauncher.CleanFailedException if `clean`
* is `true` and removal of the directory fails
*/
def start(
@@ -239,7 +239,7 @@ object CassandraLauncher {
* @param classpath Any additional jars/directories to add to the classpath. Use
* [[CassandraLauncher#classpathForResources]] to assist in calculating this.
* @param host the host to bind the embeded Cassandra to. If None, then 127.0.0.1 is used.
- * @throws akka.persistence.cassandra.testkit.CassandraLauncher.CleanFailedException if `clean`
+ * @throws org.apache.pekko.persistence.cassandra.testkit.CassandraLauncher.CleanFailedException if `clean`
* is `true` and removal of the directory fails
*/
def start(
diff --git a/core/src/main/scala/org/apache/pekko/persistence/cassandra/query/javadsl/CassandraReadJournal.scala b/core/src/main/scala/org/apache/pekko/persistence/cassandra/query/javadsl/CassandraReadJournal.scala
index bd52f82..bb488a9 100644
--- a/core/src/main/scala/org/apache/pekko/persistence/cassandra/query/javadsl/CassandraReadJournal.scala
+++ b/core/src/main/scala/org/apache/pekko/persistence/cassandra/query/javadsl/CassandraReadJournal.scala
@@ -31,7 +31,7 @@ object CassandraReadJournal {
/**
* The default identifier for [[CassandraReadJournal]] to be used with
- * `akka.persistence.query.PersistenceQuery#getReadJournalFor`.
+ * `org.apache.pekko.persistence.query.PersistenceQuery#getReadJournalFor`.
*
* The value is `"pekko.persistence.cassandra.query"` and corresponds
* to the absolute path to the read journal configuration entry.
@@ -41,7 +41,7 @@ object CassandraReadJournal {
}
/**
- * Java API: `akka.persistence.query.javadsl.ReadJournal` implementation for Cassandra.
+ * Java API: `org.apache.pekko.persistence.query.javadsl.ReadJournal` implementation for Cassandra.
*
* It is retrieved with:
* {{{
@@ -113,8 +113,8 @@ class CassandraReadJournal(
* `eventsByTag` is used for retrieving events that were marked with
* a given tag, e.g. all events of an Aggregate Root type.
*
- * To tag events you create an `akka.persistence.journal.EventAdapter` that wraps the events
- * in a `akka.persistence.journal.Tagged` with the given `tags`.
+ * To tag events you create an `org.apache.pekko.persistence.journal.EventAdapter` that wraps the events
+ * in a `org.apache.pekko.persistence.journal.Tagged` with the given `tags`.
* The tags must be defined in the `tags` section of the `pekko.persistence.cassandra` configuration.
*
* You can use [[pekko.persistence.query.NoOffset]] to retrieve all events with a given tag or
@@ -123,7 +123,7 @@ class CassandraReadJournal(
* The offset of each event is provided in the streamed envelopes returned,
* which makes it possible to resume the stream at a later point from a given offset.
* The `offset` parameter is exclusive, i.e. the event corresponding to the given `offset` parameter is not
- * included in the stream. The `Offset` type is `akka.persistence.query.TimeBasedUUID`.
+ * included in the stream. The `Offset` type is `org.apache.pekko.persistence.query.TimeBasedUUID`.
*
* For querying events that happened after a long unix timestamp you can use [[timeBasedUUIDFrom]]
* to create the offset to use with this method.
@@ -180,7 +180,7 @@ class CassandraReadJournal(
* The `fromSequenceNr` and `toSequenceNr` are inclusive.
*
* The `EventEnvelope` also provides an `offset`, which is the same kind of offset as is used in the
- * `eventsByTag` query. The `Offset` type is `akka.persistence.query.TimeBasedUUID`.
+ * `eventsByTag` query. The `Offset` type is `org.apache.pekko.persistence.query.TimeBasedUUID`.
*
* The returned event stream is ordered by `sequenceNr`.
*
diff --git a/core/src/main/scala/org/apache/pekko/persistence/cassandra/query/scaladsl/CassandraReadJournal.scala b/core/src/main/scala/org/apache/pekko/persistence/cassandra/query/scaladsl/CassandraReadJournal.scala
index ec2117c..cba5fa6 100644
--- a/core/src/main/scala/org/apache/pekko/persistence/cassandra/query/scaladsl/CassandraReadJournal.scala
+++ b/core/src/main/scala/org/apache/pekko/persistence/cassandra/query/scaladsl/CassandraReadJournal.scala
@@ -50,7 +50,7 @@ object CassandraReadJournal {
/**
* The default identifier for [[CassandraReadJournal]] to be used with
- * `akka.persistence.query.PersistenceQuery#readJournalFor`.
+ * `org.apache.pekko.persistence.query.PersistenceQuery#readJournalFor`.
*
* The value is `"pekko.persistence.cassandra.query"` and corresponds
* to the absolute path to the read journal configuration entry.
@@ -77,7 +77,7 @@ object CassandraReadJournal {
}
/**
- * Scala API `akka.persistence.query.scaladsl.ReadJournal` implementation for Cassandra.
+ * Scala API `org.apache.pekko.persistence.query.scaladsl.ReadJournal` implementation for Cassandra.
*
* It is retrieved with:
* {{{
@@ -259,8 +259,8 @@ class CassandraReadJournal protected (
* `eventsByTag` is used for retrieving events that were marked with
* a given tag, e.g. all events of an Aggregate Root type.
*
- * To tag events you create an `akka.persistence.journal.EventAdapter` that wraps the events
- * in a `akka.persistence.journal.Tagged` with the given `tags`.
+ * To tag events you create an `org.apache.pekko.persistence.journal.EventAdapter` that wraps the events
+ * in a `org.apache.pekko.persistence.journal.Tagged` with the given `tags`.
* The tags must be defined in the `tags` section of the `pekko.persistence.cassandra` configuration.
*
* You can use [[NoOffset]] to retrieve all events with a given tag or
@@ -269,7 +269,7 @@ class CassandraReadJournal protected (
* The offset of each event is provided in the streamed envelopes returned,
* which makes it possible to resume the stream at a later point from a given offset.
* The `offset` parameter is exclusive, i.e. the event corresponding to the given `offset` parameter is not
- * included in the stream. The `Offset` type is `akka.persistence.query.TimeBasedUUID`.
+ * included in the stream. The `Offset` type is `org.apache.pekko.persistence.query.TimeBasedUUID`.
*
* For querying events that happened after a long unix timestamp you can use [[timeBasedUUIDFrom]]
* to create the offset to use with this method.
@@ -541,7 +541,7 @@ class CassandraReadJournal protected (
* The `fromSequenceNr` and `toSequenceNr` are inclusive.
*
* The `EventEnvelope` also provides an `offset`, which is the same kind of offset as is used in the
- * `eventsByTag` query. The `Offset` type is `akka.persistence.query.TimeBasedUUID`.
+ * `eventsByTag` query. The `Offset` type is `org.apache.pekko.persistence.query.TimeBasedUUID`.
*
* The returned event stream is ordered by `sequenceNr`.
*
diff --git a/core/src/test/scala/org/apache/pekko/persistence/cassandra/PrintCreateStatements.scala b/core/src/test/scala/org/apache/pekko/persistence/cassandra/PrintCreateStatements.scala
index 0c564af..a26aed7 100644
--- a/core/src/test/scala/org/apache/pekko/persistence/cassandra/PrintCreateStatements.scala
+++ b/core/src/test/scala/org/apache/pekko/persistence/cassandra/PrintCreateStatements.scala
@@ -19,7 +19,7 @@ import org.apache.pekko.actor.ActorSystem
/**
* Main application that prints the create keyspace and create table statements.
- * It's using `pekko.persistence.cassandra` configuration from default application.conf.
+ * It's using `org.apache.pekko.persistence.cassandra` configuration from default application.conf.
*
* These statements can be copy-pasted and run in `cqlsh`.
*/
diff --git a/docs/src/main/paradox/cleanup.md b/docs/src/main/paradox/cleanup.md
index b05f088..56bc9ea 100644
--- a/docs/src/main/paradox/cleanup.md
+++ b/docs/src/main/paradox/cleanup.md
@@ -28,4 +28,4 @@ Scala
Java
: @@snip [snapshot-keyspace](/docs/src/test/java/jdoc/cleanup/CleanupDocExample.java) { #cleanup }
-By default, all operations only print what they were going to do. Once you're happy with what the cleanup tool is going to do set `akka.persistence.cassandra.cleanup.dry-run = false`
+By default, all operations only print what they were going to do. Once you're happy with what the cleanup tool is going to do set `pekko.persistence.cassandra.cleanup.dry-run = false`
diff --git a/docs/src/main/paradox/configuration.md b/docs/src/main/paradox/configuration.md
index 5342595..3b35221 100644
--- a/docs/src/main/paradox/configuration.md
+++ b/docs/src/main/paradox/configuration.md
@@ -8,17 +8,17 @@ The reference configuration file with the default values:
@@snip [reference.conf](/core/src/main/resources/reference.conf)
-Journal configuration is under `akka.persistence.cassandra.journal`.
+Journal configuration is under `pekko.persistence.cassandra.journal`.
-Snapshot configuration is under `akka.persistence.cassandra.snapshot`.
+Snapshot configuration is under `pekko.persistence.cassandra.snapshot`.
-Query configuration is under `akka.persistence.cassandra.query`.
+Query configuration is under `pekko.persistence.cassandra.query`.
-Events by tag configuration is under `akka.persistence.cassandra.events-by-tag` and shared
+Events by tag configuration is under `pekko.persistence.cassandra.events-by-tag` and shared
b `journal` and `query`.
The settings that shared by the `journal`, `query`, and `snapshot` parts of the plugin and are under
-`akka.persistence.cassandra`.
+`pekko.persistence.cassandra`.
## Cassandra driver configuration
diff --git a/docs/src/main/paradox/cosmosdb.md b/docs/src/main/paradox/cosmosdb.md
index 1e3c3e9..adb8b7e 100644
--- a/docs/src/main/paradox/cosmosdb.md
+++ b/docs/src/main/paradox/cosmosdb.md
@@ -15,7 +15,7 @@ for clustering columns than Cassandra. This will probably be fixed in CosmosDB.
When using CosmosDB you need to configure:
```
-akka.persistence.cassandra {
+pekko.persistence.cassandra {
compatibility.cosmosdb = on
journal.gc-grace-seconds = 0
events-by-tag.gc-grace-seconds = 0
diff --git a/docs/src/main/paradox/events-by-tag.md b/docs/src/main/paradox/events-by-tag.md
index 0ce3dc0..19892b7 100644
--- a/docs/src/main/paradox/events-by-tag.md
+++ b/docs/src/main/paradox/events-by-tag.md
@@ -18,7 +18,7 @@ When there is no offset provided to a query then it is not known which bucket to
It is important to override the first time bucket used to a recent time as the default will
result in a delay for queries without an offset as it is a long time ago:
-`akka.persistence.cassandra.events-by-tag.first-time-bucket = "20151120T00:00"`
+`pekko.persistence.cassandra.events-by-tag.first-time-bucket = "20151120T00:00"`
## Consistency
@@ -75,7 +75,7 @@ To detect missed events without receiving another event for the same persistence
to find events. Queries are run in the background to detect delayed events. A high frequency short back track is done
for finding events delayed a small amount and a low frequency backtrack that scans further back.
-These are configured with `akka.persistence.cassandra.events-by-tag.back-track`:
+These are configured with `pekko.persistence.cassandra.events-by-tag.back-track`:
@@snip [reference.conf](/core/src/main/resources/reference.conf) { #backtrack }
@@ -92,7 +92,7 @@ depending on the load and performance of your Cassandra cluster.
It is possible to flush the tag writes right away. By default they are batched and written as an unlogged batch which increases throughput. To write each individually
without delay use:
```
-akka.persistence.cassandra.events-by-tag.flush-interval = 0s
+pekko.persistence.cassandra.events-by-tag.flush-interval = 0s
```
Alternatively set a very small value e.g. `25ms` so some batching is done. If your application has a large number of tagged events per second
@@ -102,15 +102,15 @@ Enable pub sub notifications so events by tag queries can execute a query right
`refresh-interval`. Lower the `refresh-interval` for cases where the pub sub messages take a long time to arrive at the
query.
```
-akka.persistence.cassandra.events-by-tag.pubsub-notification = on
-akka.persistence.cassandra.query.refresh-interval = 2s
+pekko.persistence.cassandra.events-by-tag.pubsub-notification = on
+pekko.persistence.cassandra.query.refresh-interval = 2s
```
Reduce `eventual-consistency-delay`. You must test this has positive results for your use case. Setting this too low
can decrease throughput and latency as more events will be missed initially and expensive searches carried out.
```
-akka.persistence.cassandra.events-by-tag.eventual-consistency-delay = 50ms
+pekko.persistence.cassandra.events-by-tag.eventual-consistency-delay = 50ms
```
## Missing searches and gap detection
@@ -168,7 +168,7 @@ getting too large.
* 100,000s of events per day per tag -- Hour
* 1,000,000s of events per day per tag -- Minute
-The default is `Hour` and can be overridden by setting `akka.persistence.cassandra.events-by-tag.bucket-size`.
+The default is `Hour` and can be overridden by setting `pekko.persistence.cassandra.events-by-tag.bucket-size`.
This setting can not be changed after data has been written.
More billion per day per tag? You probably need a specialised schema rather than a general library like this.
diff --git a/docs/src/main/paradox/healthcheck.md b/docs/src/main/paradox/healthcheck.md
index 2ee28c2..a4c374a 100644
--- a/docs/src/main/paradox/healthcheck.md
+++ b/docs/src/main/paradox/healthcheck.md
@@ -4,19 +4,19 @@ A [health check for Akka Management](https://doc.akka.io/docs/akka-management/cu
is provided. To enable it you need to add the following configuration
```
-akka.management {
+pekko.management {
health-checks {
readiness-checks {
- akka-persistence-cassandra = "akka.persistence.cassandra.healthcheck.CassandraHealthCheck"
+ pekko-persistence-cassandra = "org.apache.pekko.persistence.cassandra.healthcheck.CassandraHealthCheck"
}
}
}
```
-By default it will try to query the `system.local` table. The query can be configured with:
+By default, it will try to query the `system.local` table. The query can be configured with:
```
-akka.persistence.cassandra.healthcheck {
+pekko.persistence.cassandra.healthcheck {
health-check-cql = "SELECT now() FROM system.local"
}
```
diff --git a/docs/src/main/paradox/journal.md b/docs/src/main/paradox/journal.md
index 04f0c14..eb33088 100644
--- a/docs/src/main/paradox/journal.md
+++ b/docs/src/main/paradox/journal.md
@@ -28,12 +28,12 @@ NetworkTopology replication strategy with a replication factor of at least 3:
CREATE KEYSPACE IF NOT EXISTS akka WITH replication = {'class': 'NetworkTopologyStrategy', '<your_dc_name>' : 3 };
```
-For local testing, and the default if you enable `akka.persistence.cassandra.journal.keyspace-autocreate` you can use the following:
+For local testing, and the default if you enable `pekko.persistence.cassandra.journal.keyspace-autocreate` you can use the following:
@@snip [journal-schema](/target/journal-keyspace.txt) { #journal-keyspace }
There are multiple tables required. These need to be created before starting your application.
-For local testing you can enable `akka.persistence.cassandra.journal.tables-autocreate`. The default table definitions look like this:
+For local testing you can enable `pekko.persistence.cassandra.journal.tables-autocreate`. The default table definitions look like this:
@@snip [journal-tables](/target/journal-tables.txt) { #journal-tables }
@@ -67,10 +67,10 @@ Old columns, no longer needed but may be in your schema if you have used older v
To activate the journal plugin, add the following line to your Akka `application.conf`:
- akka.persistence.journal.plugin = "akka.persistence.cassandra.journal"
+ pekko.persistence.journal.plugin = "pekko.persistence.cassandra.journal"
This will run the journal with its default settings. The default settings can be changed with the configuration properties defined in
-@ref:[reference.conf](configuration.md#default-configuration). Journal configuration is under `akka.persistence.cassandra.journal`.
+@ref:[reference.conf](configuration.md#default-configuration). Journal configuration is under `pekko.persistence.cassandra.journal`.
All Cassandra driver settings are via its @extref:[standard profile mechanism](java-driver:manual/core/configuration/).
@@ -86,7 +86,7 @@ The messages table that stores the events is partitioned by `(persistence_id, pa
artificial partition key to ensure that the Cassandra partition does not get too large if there are a lot of events for
a single `persistence_id`.
-`akka.persistence.cassandra.journal.target-partition-size` controls the number of events that the journal tries to put
+`pekko.persistence.cassandra.journal.target-partition-size` controls the number of events that the journal tries to put
in each Cassandra partition. It is a target as `persistAll` calls will have all the events in the same partition
even if it will exceed the target partition size to ensure atomicity.
@@ -119,7 +119,7 @@ Using a consistency level other than `QUORUM` or `LOCAL_QUORUM` is highly discou
```
datastax-java-driver.profiles {
- akka-persistence-cassandra-profile {
+ pekko-persistence-cassandra-profile {
basic.request.consistency = QUORUM
}
}
diff --git a/docs/src/main/paradox/migrations.md b/docs/src/main/paradox/migrations.md
index 9c2cabe..5cc0fde 100644
--- a/docs/src/main/paradox/migrations.md
+++ b/docs/src/main/paradox/migrations.md
@@ -1,278 +1,5 @@
# Migration
-## Migrating from 0.80+ to 1.0
-
-* Rolling update to 1.0 requires update from 0.101 to 1.0. First update to 0.101.
-* After being deprecated, the DateTieredCompactionStrategy has been removed.
-
-### Driver upgrade with significant configuration changes
-
-Version 4.x of the cassandra driver comes with a new way to configure it via [typesafe configuration](https://github.com/lightbend/config)
-which matches how Akka manages configuration.
-
-All driver related configuration e.g. query consistency, query retries etc has been removed from this
-project's `reference.conf` and now each part of the plugin (journal, snapshot and query) specify a read and write
-@extref:[execution profile](java-driver:manual/core/configuration/#execution-profiles) that gives
-fine grained control over consistencies and retires for each are. By default all read/write profiles are the same and under
-`datastax-java-driver.profile.akka-persistence-cassandra-profile`. The only value in the profile provided by the plugin is setting the `basic.request.consistency`
-to `QUORUM`.
-
-The new driver supports reconnection during initialization which was previously built into the plugin. It is recommended to turn this on with:
-`datastax-java-driver.advanced.reconnect-on-init = true`
-It can't be turned on by the plugin as it is in the driver's reference.conf and is not overridable in a profile.
-
-### Changed configuration structure
-
-In addition to the driver related configuration described above the overall configuration structure has been changed.
-It is now structured in four main sections within the top level `akka.persistence.cassandra` section:
-
- akka.persistence.cassandra {
- journal {
- }
- query {
- }
- events-by-tag {
- }
- snapshot {
- }
- }
-
-See [reference.conf](https://github.com/akka/akka-persistence-cassandra/blob/master/core/src/main/resources/reference.conf)
-for details and update your `application.conf` accordingly.
-
-This also means that the properties for enabling the plugin have changed to:
-
- akka.persistence.journal.plugin = "akka.persistence.cassandra.journal"
- akka.persistence.snapshot-store.plugin = "akka.persistence.cassandra.snapshot"
-
-#### Removals
-
-Using DateTieredCompactionStrategy with automatic schema creation
-
-### Drop static column
-
-See instructions for migrations to 0.101 below. To support rolling update if you are migrating from an
-earlier version to 1.0 you must first update to 0.101+ but the second step can be skipped and will be part of the
-1.0 update instead.
-
-After completed update to 1.0 the static column `used` should be dropped with:
-
-```
-alter table akka.messages drop used;
-```
-
-### All persistenceIds query
-
-The implementation of `persistenceIds` and `currentPersistenceIds` queries have been made more efficient
-by inserting new persistence ids into a new table `all_persistence_ids`.
-
-Create the `all_persistence_ids` table if you are not using `tables-autocreate=on`, which is not recommended for
-production. See @ref:[table definition](journal.md#schema).
-
-The following migration step is not needed if you don't use the `persistenceIds` or `currentPersistenceIds` queries.
-
-Already existing persistence ids should be inserted into the new table. This can be done with the `Reconciliation`
-tool:
-
-@@snip [reconciler](/core/src/test/scala/doc/reconciler/AllPersistenceIdsMigrationCompileOnly.scala) { #imports #migrate}
-
-You can run that migration tool while the old (or new) system is running, and it can be run several times if needed.
-
-## Migrations to 0.101 and later in 0.x series
-
-
-Versions 0.101+ make it possible to drop the static column `used`. This saves space for persistence ids
-that have been deleted. Also some cloud Cassandra versions do not support static columns.
-
-The complete removal of the static column must be performed in two steps to support rolling update where an
-Akka Cluster is running a mix of versions prior to 0.101 and 0.101+.
-
-If you can accept a full cluster shutdown you can update to the second step directly.
-
-**Step 1**
-
-0.101 is not using the static column `used` in the reads but still populates it in the writes so that earlier
-versions can read it. First upgrade to a 0.x version greater than 0.101.
-
-**Step 2**
-
-After complete roll out of a 0.101+ version in step 1 the configuration can be changed so that the static column isn't used
-at all.
-
-```
-cassandra-journal.write-static-column-compat = off
-```
-
-It can still run with an old schema where the column exists.
-
-After completed update of the configuration change the column can be dropped with:
-
-```
-alter table akka.messages drop used;
-```
-
-## Migrations to 0.80 and later in 0.x series
-
-0.80 introduces a completely different way to manage tags for events. You can skip right ahead to 0.98 without going to
-0.80.
-
-If you migrate directly to 1.0.0 you must first run the migration of the @ref:[All persistenceIds query](#all-persistenceids-query).
-
-It is very important that you test this migration in a pre-production environment as once you drop the materialized view
-and tag columns you can not roll back.
-
-Most of the migration can be done while the old version of your application is running. The remaining steps happen automatically
-when a persistent actor is recovered which may slow down actor recovery but only by a small amount if you follow the offline steps.
-
-The `EventsByTagMigration` class provides a set of tools to assist in the migration.
-
-The first two are schema changes that should be performed once on a single node
-and can be done while your application is running with the old version of this plugin:
-
-* `createTables` creates the two new tables required
-* `addTagsColumn` adds a `set<text>` column to the `messages` table
-
-For example you could put the following in a main method to do the schema migrations:
-
-```scala
-val system = ActorSystem()
-
-val migrator = EventsByTagMigration(system)
-
-val schemaMigration: Future[Done] = for {
- _ <- migrator.createTables()
- done <- migrator.addTagsColumn().recover {
- case i: ExecutionException if i.getMessage.contains("conflicts with an existing column") => Done
- }
-} yield done
-```
-
-The recover makes the adding of the tags column idempotent as cql does not include a `IF NOT EXISTS` for adding a column
-
-Next is the data migration into a new table that stores events indexed by tag. This will be a slow process as it needs
-to scan over all existing events. It can be run while your application is running but beware that it will
-produce a lot of writes to your C* cluster so should be done during a quiet period.
-
-* `migrateToTagViews` scans over all your persistence ids and writes the tagged events to the `tag_views` table. At the same
-time it keeps track of its progress in the `tag_write_progress` table so if this were to fail due to say a C* issue you can resume
-and it won't start from scratch.
-* If you have an efficient way of getting all the persistenceIds pass them into this method. Otherwise a select distinct query is used
-which is likely to time out. You can also use this method to stagger your migration.
-
-You do not need to worry if a small number of events are missed by `migrateToTagViews` as they will be
-fixed during your `PersistentActor` recovery. However do not rely on this for full migration as only active `PersistentActor`s
-will be recovered and it will mean the start up time for your `PersistentActor`s will be very long.
-Moreover, if your application consumes events through `eventsByTag` query, the missed events will only show up on the query side once you instantiate the respective `PersistentActor`.
-
-After you have migrated your data you can now remove the materialized view and `tagN` columns from the
-`messages` table. It is *highly* recommended you do this as maintaining a materialized view is expensive
-and uses a large amount of capacity in your cluster:
-
-* Drop the materialized view
-```cql
-DROP MATERIALIZED VIEW akka.eventsbytag;
-```
-* Drop the tag columns on the messages table
-```cql
-ALTER TABLE akka.messages DROP tag1;
-ALTER TABLE akka.messages DROP tag2;
-ALTER TABLE akka.messages DROP tag3;
-```
-
-Note that the new `tags` column won't be back filled for old events. This won't affect
-your `eventsByTag` queries as they come from a different table. This column is used for recovering any missed
-writes to the `tag_views` table when running persistent actors with the new version.
-
-The following configuration changes. See `reference.conf` for full details:
-
-* `pubsub-minimum-interval` has been removed. If using DistributedPubsub notifications for tag writes then set `pubsub-notification` to on
-* `delayed-event-timeout` has been replaced by `events-by-tag.gap-timeout` with the restriction removed that all
-events have to be tagged.
-* `first-time-bucket` format has changed to: `yyyyMMddTHH:mm` e.g. `20151120T00:00`
-* `eventual-consistency` has been removed. It may be re-added see [#263](https://github.com/akka/akka-persistence-cassandra/issues/263)
-
-## Migrations from 0.54 to 0.59
-
-In version 0.55 additional columns were added to be able to store meta data about an event without altering
-the actual domain event.
-
-The new columns `meta_ser_id`, `meta_ser_manifest`, and `meta` are defined in the [new journal table definition](https://github.com/akka/akka-persistence-cassandra/blob/v0.55/core/src/main/scala/akka/persistence/cassandra/journal/CassandraStatements.scala#L45-L47) and [new snapshot table definition](https://github.com/akka/akka-persistence-cassandra/blob/v0.55/core/src/main/scala/akka/persistence/cassandra/snapshot/CassandraStatements.scala#L31-L33).
-
-You can add the to existing tables by executing the following in `cqlsh`:
-
-```
-alter table akka.messages add meta_ser_id int;
-alter table akka.messages add meta_ser_manifest text;
-alter table akka.messages add meta blob;
-alter table akka_snapshot.snapshots add meta_ser_id int;
-alter table akka_snapshot.snapshots add meta_ser_manifest text;
-alter table akka_snapshot.snapshots add meta blob;
-```
-
-These columns are used when the event is wrapped in `akka.persistence.cassandra.EventWithMetaData` or snapshot is wrapped in `akka.persistence.cassandra.SnapshotWithMetaData`. It is optional to alter the table and add the columns. It's only required to add the columns if such meta data is used.
-
-It is also not required to add the materialized views, not even if the meta data is stored in the journal table. If the materialized view is not changed the plain events are retrieved with the `eventsByTag` query and they are not wrapped in `EventWithMetaData`. Note that Cassandra [does not support](https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlAlterMaterializedView.html) adding columns to an existing materialized view.
-
-If you don't alter existing messages table and still use `tables-autocreate=on` you have to set config:
-
-```
-cassandra-journal.meta-in-events-by-tag-view = off
-```
-
-When trying to create the materialized view (tables-autocreate=on) with the meta columns before corresponding columns have been added the messages table an exception "Undefined column name meta_ser_id" is raised, because Cassandra validates the ["CREATE MATERIALIZED VIEW IF NOT EXISTS"](https://docs.datastax.com/en/cql/3.3/cql/cql_reference/cqlCreateMaterializedView.html#cqlCreateMaterializedView__if-not-exists) even though the view already exists and will not be created. To work around [...]
-
-
-## Migrations from 0.51 to 0.52
-
-`CassandraLauncher` has been pulled out into its own artifact, and now bundles Cassandra into a single fat jar, which is bundled into the launcher artifact. This has allowed Cassandra to be launched without it being on the classpath, which prevents classpath conflicts, but it also means that Cassandra can't be configured by changing files on the classpath, for example, a custom `logback.xml` in `src/test/resources` is no longer sufficient to configure Cassandra's logging. To address this [...]
-
-To depend on the new `CassandraLauncher` artifact, remove any dependency on `cassandra-all` itself, and add:
-
-```scala
-"com.typesafe.akka" %% "akka-persistence-cassandra-launcher" % "0.52"
-```
-
-to your build. To modify the classpath that Cassandra uses, for example, if you have a `logback.xml` file in your `src/test/resources` directory that you want Cassandra to use, you can do this:
-
-```scala
-CassandraLauncher.start(
- cassandraDirectory,
- CassandraLauncher.DefaultTestConfigResource,
- clean = true,
- port = 0,
- CassandraLauncher.classpathForResources("logback.xml")
-)
-```
-
-## Migrations from 0.23 to 0.50
-
-The Persistence Query API changed slightly, see [migration guide for Akka 2.5](https://doc.akka.io/docs/akka/2.5/project/migration-guide-2.4.x-2.5.x.html#persistence-query).
-
-## Migrations from 0.11 to 0.12
-
-Dispatcher configuration was changed, see [reference.conf](https://github.com/akka/akka-persistence-cassandra/blob/master/core/src/main/resources/reference.conf):
-
-## Migrations from 0.9 to 0.10
-
-The event data, snapshot data and meta data are stored in a separate columns instead of being wrapped in blob. Run the following statements in `cqlsh`:
-
- drop materialized view if exists akka.eventsbytag1;
- drop materialized view if exists akka.eventsbytag2;
- drop materialized view if exists akka.eventsbytag3;
- alter table akka.messages add writer_uuid text;
- alter table akka.messages add ser_id int;
- alter table akka.messages add ser_manifest text;
- alter table akka.messages add event_manifest text;
- alter table akka.messages add event blob;
- alter table akka_snapshot.snapshots add ser_id int;
- alter table akka_snapshot.snapshots add ser_manifest text;
- alter table akka_snapshot.snapshots add snapshot_data blob;
-
-## Migrations from 0.6 to 0.7
-
-Schema changes mean that you can't upgrade from version 0.6 for Cassandra 2.x of the plugin to the 0.7 version and use existing data without schema migration. You should be able to export the data and load it to the [new table definition](https://github.com/akka/akka-persistence-cassandra/blob/v0.7/src/main/scala/akka/persistence/cassandra/journal/CassandraStatements.scala#L25).
-
-## Migrating from 0.3.x (Akka 2.3.x)
-
-Schema and property changes mean that you can't currently upgrade from 0.3 to 0.4 SNAPSHOT and use existing data without schema migration. You should be able to export the data and load it to the [new table definition](https://github.com/akka/akka-persistence-cassandra/blob/v0.9/src/main/scala/akka/persistence/cassandra/journal/CassandraStatements.scala).
-
+* Before migrating to Apache Pekko Persistence Cassandra, ensure that you have [migrated](https://doc.akka.io/docs/akka-persistence-cassandra/1.0.6/migrations.html) to akka-persistence-cassandra 1.0.6
+* The core [Pekko migration guide](https://pekko.apache.org/docs/pekko/current/project/migration-guides.html) is also worth reading.
+* Note that this project uses the `pekko` [keyspace](https://cassandra.apache.org/doc/latest/cassandra/data_modeling/data_modeling_schema.html) instead of `akka`.
diff --git a/docs/src/main/paradox/read-journal.md b/docs/src/main/paradox/read-journal.md
index b2c0ad6..88cda6f 100644
--- a/docs/src/main/paradox/read-journal.md
+++ b/docs/src/main/paradox/read-journal.md
@@ -18,9 +18,9 @@ Persistence Query usage example to obtain a stream with all events tagged with "
The default settings can be changed with the configuration properties defined in
@ref:[reference.conf](configuration.md#default-configuration).
-Query configuration is under `akka.persistence.cassandra.query`.
+Query configuration is under `pekko.persistence.cassandra.query`.
-Events by tag configuration is under `akka.persistence.cassandra.events-by-tag` and shared
+Events by tag configuration is under `pekko.persistence.cassandra.events-by-tag` and shared
by `journal` and `query`.
If using events by tag query it is important to set the @ref:[first time bucket](events-by-tag.md#first-time-bucket)
\ No newline at end of file
diff --git a/docs/src/main/paradox/snapshots.md b/docs/src/main/paradox/snapshots.md
index bd1b9a1..b658b2c 100644
--- a/docs/src/main/paradox/snapshots.md
+++ b/docs/src/main/paradox/snapshots.md
@@ -24,12 +24,12 @@ NetworkTopology replication strategy with a replication factor of at least 3:
CREATE KEYSPACE IF NOT EXISTS akka_snapshot WITH replication = {'class': 'NetworkTopologyStrategy', '<your_dc_name>' : 3 };
```
-For local testing, and the default if you enable `akka.persistence.cassandra.snapshot.keyspace-autocreate` you can use the following:
+For local testing, and the default if you enable `pekko.persistence.cassandra.snapshot.keyspace-autocreate` you can use the following:
@@snip [snapshot-keyspace](/target/snapshot-keyspace.txt) { #snapshot-keyspace }
A single table is required. This needs to be created before starting your application.
-For local testing you can enable `akka.persistence.cassandra.snapshot.tables-autocreate`.
+For local testing you can enable `pekko.persistence.cassandra.snapshot.tables-autocreate`.
The default table definitions look like this:
@@snip [snapshot-tables](/target/snapshot-tables.txt) { #snapshot-tables}
@@ -47,7 +47,7 @@ The consistency level for snapshots can be changed with:
```
datastax-java-driver.profiles {
- akka-persistence-cassandra-snapshot-profile {
+ pekko-persistence-cassandra-snapshot-profile {
basic.request.consistency = QUORUM
}
}
@@ -57,11 +57,11 @@ datastax-java-driver.profiles {
To activate the snapshot-store plugin, add the following line to your Akka `application.conf`:
- akka.persistence.snapshot-store.plugin = "akka.persistence.cassandra.snapshot"
+ pekko.persistence.snapshot-store.plugin = "pekko.persistence.cassandra.snapshot"
This will run the snapshot store with its default settings. The default settings can be changed with the configuration
properties defined in @ref:[reference.conf](configuration.md#default-configuration). Journal configuration is under
-`akka.persistence.cassandra.snapshot`.
+`pekko.persistence.cassandra.snapshot`.
## Limitations
diff --git a/docs/src/main/paradox/testing.md b/docs/src/main/paradox/testing.md
index f8d09db..39e6d27 100644
--- a/docs/src/main/paradox/testing.md
+++ b/docs/src/main/paradox/testing.md
@@ -19,7 +19,7 @@ Then there are options with tighter unit test framework integration:
For testing it can be convenient to enable automatic creation of keyspace and tables with configuration:
- akka.persistence.cassandra {
+ pekko.persistence.cassandra {
journal.keyspace-autocreate = on
journal.tables-autocreate = on
snapshot.keyspace-autocreate = on
diff --git a/project/project-info.conf b/project/project-info.conf
index 60bd1bf..ae63f70 100644
--- a/project/project-info.conf
+++ b/project/project-info.conf
@@ -10,11 +10,11 @@ project-info {
// new-tab: false
// }
issues: {
- url: "https://github.com/akka/akka-persistence-cassandra/issues"
+ url: "https://github.com/apache/incubator-pekko-persistence-cassandra/issues"
text: "GitHub issues"
}
release-notes: {
- url: "https://github.com/akka/akka-persistence-cassandra/releases"
+ url: "https://github.com/apache/incubator-pekko-persistence-cassandra/releases"
text: "GitHub releases"
}
forums: [
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pekko.apache.org
For additional commands, e-mail: commits-help@pekko.apache.org