Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(ci): add workflow for broken links check #65

Merged
merged 12 commits into from
Nov 26, 2024
Prev Previous commit
Next Next commit
transaction related issue
WanYixian committed Nov 26, 2024
commit 21fb5e9747263779fde4233f9dbd848460e6704e
3 changes: 2 additions & 1 deletion mint.json
Original file line number Diff line number Diff line change
@@ -429,7 +429,8 @@
"processing/sql/temporal-filters",
"processing/sql/joins",
"processing/sql/time-windows",
"processing/sql/top-n-by-group"
"processing/sql/top-n-by-group",
"processing/sql/transactions"
]
},
"processing/deletes-and-updates",
26 changes: 26 additions & 0 deletions processing/sql/transactions.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
---
title: "Transactions"
---

Transactions in databases refer to logical units of work that consist of one or more database operations. A transaction is a sequence of database operations, such as reads (queries) and writes (updates or inserts), that are treated as a single indivisible and consistent unit. The main purpose of transactions is to ensure data integrity and maintain the ACID (Atomicity, Consistency, Isolation, Durability) properties of the database.

## Read-only transactions

RisingWave supports read-only transactions, where all reads within a transaction are executed against the consistent Hummock snapshot. Hummock is the LSM-Tree-based storage engine in RisingWave that is specifically optimized for streaming workloads.

To initiate a transaction, use either the `START TRANSACTION READ ONLY` or `BEGIN READ ONLY` command. Subsequently, you can execute queries to read data from the consistent snapshot. To finalize the transaction and submit the queries as a single unit, use the `COMMIT` command.

Please note that data modifications are not allowed while a transaction is initiated but not yet committed. The statements listed below are not allowed within a transaction:

- All DDL statements (`CREATE`, `ALTER`, and `DROP`)
- Most of DML statements (`INSERT`, `UPDATE`, and `DELETE`)
- Statements related to `USER`. This category may overlap with DDL statements.
- All privilege-related statements, including `GRANT` and `REVOKE`.

## Transactions within a CDC table

When you create a table to ingest CDC streams, you can enable this feature by setting transactional to true in the `WITH` clause of the `CREATE TABLE` statement. Note that this feature is only available if you are using the native [MySQL CDC](/integrations/sources/mysql-cdc) or [PostgreSQL CDC](/integrations/sources/postgresql-cdc) connectors.

For performance considerations, transactions involving changes to more than 4096 rows cannot be guaranteed.


4 changes: 2 additions & 2 deletions sql/commands/sql-begin.mdx
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ title: "BEGIN"
description: "RisingWave supports read-only transactions. You can use the `BEGIN READ ONLY` command to start a read-only transaction."
---

For more information about transactions in RisingWave, see [Transactions](/docs/current/transactions/).
For more information about transactions in RisingWave, see [Transactions](/processing/sql/transactions).

The `BEGIN` command starts the read-write transaction mode, which is not supported yet in RisingWave. For compatibility reasons, this command will still succeed but no transaction is actually started. That is why you need to specify the `READ ONLY` option to start a transaction in read-only mode.

@@ -23,7 +23,7 @@ BEGIN
## Related topics

<CardGroup>
<Card title="Transactions" icon="rotate" href="/docs/current/transactions/"
<Card title="Transactions" icon="rotate" href="/processing/sql/transactions"
iconType="solid" horizontal/>
<Card title="START TRANSACTION" icon="play" href="/sql/commands/sql-start-transaction" iconType="solid"horizontal/>
<Card title="COMMIT" icon="check" href="/sql/commands/sql-commit"iconType="solid"horizontal/>
4 changes: 2 additions & 2 deletions sql/commands/sql-commit.mdx
Original file line number Diff line number Diff line change
@@ -3,7 +3,7 @@ title: "COMMIT"
description: "RisingWave supports read-only transactions. You can use the `COMMIT` command to commit the current transaction."
---

For more information about transactions in RisingWave, see [Transactions](/docs/current/transactions/).
For more information about transactions in RisingWave, see [Transactions](/processing/sql/transactions).

You can start a read-only transaction by using the `BEGIN READ ONLY` or `START TRANSACTION READ ONLY` command.

@@ -28,7 +28,7 @@ COMMIT
title="Transactions"
icon="rotate"
iconType="solid"
href="/docs/current/transactions/"
href="/processing/sql/transactions"
horizontal
/>
<Card
4 changes: 2 additions & 2 deletions sql/commands/sql-start-transaction.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "START TRANSACTION"
description: "RisingWave supports read-only transactions. You can use the `START TRANSACTION READ ONLY` command to start a read-only transaction. For more information about transactions in RisingWave, see [Transactions](/docs/current/transactions/)."
description: "RisingWave supports read-only transactions. You can use the `START TRANSACTION READ ONLY` command to start a read-only transaction. For more information about transactions in RisingWave, see [Transactions](/processing/sql/transactions)."
---

The `START TRANSACTION` command starts the read-write transaction mode, which is not supported yet in RisingWave. For compatibility reasons, this command will still succeed but no transaction is actually started. That is why you need to specify the `READ ONLY` option to start a transaction in read-only mode.
@@ -36,7 +36,7 @@ START_TRANSACTION
title="Transactions"
icon="exchange"
iconType="solid"
href="/docs/current/transactions/"
href="/processing/sql/transactions"
horizontal
/>