Skip to content

Commit

Permalink
Update Examples to use new TableTransaction instead of old deprecated…
Browse files Browse the repository at this point in the history
… Transaction
  • Loading branch information
pnv1 committed Mar 22, 2024
1 parent 8a9ebdf commit 9d761ba
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 27 deletions.
15 changes: 9 additions & 6 deletions basic_example/src/main/java/tech/ydb/example/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import org.slf4j.LoggerFactory;

import tech.ydb.auth.iam.CloudAuthHelper;
import tech.ydb.common.transaction.TxMode;
import tech.ydb.core.Status;
import tech.ydb.core.grpc.GrpcReadStream;
import tech.ydb.core.grpc.GrpcTransport;
Expand All @@ -24,6 +25,7 @@
import tech.ydb.table.result.ResultSetReader;
import tech.ydb.table.settings.BulkUpsertSettings;
import tech.ydb.table.settings.ExecuteScanQuerySettings;
import tech.ydb.table.transaction.TableTransaction;
import tech.ydb.table.transaction.Transaction;
import tech.ydb.table.transaction.TxControl;
import tech.ydb.table.values.ListType;
Expand Down Expand Up @@ -362,19 +364,20 @@ private void multiStepTransaction(long seriesID, long seasonID) {

private void tclTransaction() {
retryCtx.supplyStatus(session -> {
Transaction transaction = session.beginTransaction(Transaction.Mode.SERIALIZABLE_READ_WRITE)
.join().getValue();
// Create new transaction.
// It is not active and has no id until any query is executed on it
TableTransaction transaction = session.createNewTransaction(TxMode.SERIALIZABLE_RW);

String query
= "DECLARE $airDate AS Date; "
+ "UPDATE episodes SET air_date = $airDate WHERE title = \"TBD\";";

Params params = Params.of("$airDate", PrimitiveValue.newDate(Instant.now()));

// Execute data query.
// Transaction control settings continues active transaction (tx)
TxControl<?> txControl = TxControl.id(transaction).setCommitTx(false);
DataQueryResult result = session.executeDataQuery(query, txControl, params)
// Execute data query on new transaction.
// Transaction will be created on server and become active
// Query will be executed on it, but transaction will not be committed
DataQueryResult result = transaction.executeDataQuery(query, params)
.join().getValue();

logger.info("get transaction {}", result.getTxId());
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
<log4j.version>2.22.1</log4j.version>
<jcommander.version>1.82</jcommander.version>

<ydb.sdk.version>2.1.11</ydb.sdk.version>
<ydb.sdk.version>2.2.0-SNAPSHOT</ydb.sdk.version>
</properties>

<modules>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
package tech.ydb.examples.simple;

import java.time.Duration;

import tech.ydb.common.transaction.TxMode;
import tech.ydb.core.grpc.GrpcTransport;

import tech.ydb.examples.SimpleExample;
import tech.ydb.table.Session;
import tech.ydb.table.TableClient;
import tech.ydb.table.description.TableDescription;
import tech.ydb.table.query.DataQueryResult;
import tech.ydb.table.transaction.Transaction;
import tech.ydb.table.transaction.TableTransaction;
import tech.ydb.table.transaction.TxControl;
import tech.ydb.table.values.PrimitiveType;

Expand Down Expand Up @@ -40,20 +42,20 @@ protected void run(GrpcTransport transport, String pathPrefix) {
.join()
.expectSuccess("cannot create table");

Transaction transaction = session.beginTransaction(Transaction.Mode.SERIALIZABLE_READ_WRITE)
TableTransaction transaction = session.beginTransaction(TxMode.SERIALIZABLE_RW)
.join()
.getValue();

String query1 = "UPSERT INTO [" + tablePath + "] (key, value) VALUES (1, 'one');";
DataQueryResult result1 = session.executeDataQuery(query1, TxControl.id(transaction))
DataQueryResult result1 = transaction.executeDataQuery(query1)
.join()
.getValue();
System.out.println("--[insert1]-------------------");
DataQueryResults.print(result1);
System.out.println("------------------------------");

String query2 = "UPSERT INTO [" + tablePath + "] (key, value) VALUES (2, 'two');";
DataQueryResult result2 = session.executeDataQuery(query2, TxControl.id(transaction))
DataQueryResult result2 = transaction.executeDataQuery(query2)
.join()
.getValue();
System.out.println("--[insert2]-------------------");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import tech.ydb.common.transaction.TxMode;
import tech.ydb.core.Result;
import tech.ydb.core.Status;
import tech.ydb.core.grpc.GrpcTransport;
Expand All @@ -16,6 +17,7 @@
import tech.ydb.table.TableClient;
import tech.ydb.table.impl.PooledTableClient;
import tech.ydb.table.rpc.grpc.GrpcTableRpc;
import tech.ydb.table.transaction.TableTransaction;
import tech.ydb.table.transaction.Transaction;
import tech.ydb.table.transaction.TxControl;
import tech.ydb.topic.TopicClient;
Expand Down Expand Up @@ -137,12 +139,10 @@ public void onMessages(DataReceivedEvent event) {
return; // retry or shutdown
}
Session session = sessionResult.getValue();
Transaction transaction = session.beginTransaction(Transaction.Mode.SERIALIZABLE_READ_WRITE)
.join()
.getValue();
TableTransaction transaction = session.createNewTransaction(TxMode.SERIALIZABLE_RW);

// do something else in transaction
session.executeDataQuery("SELECT 1", TxControl.tx(transaction)).join();
transaction.executeDataQuery("SELECT 1").join();
// analyzeQueryResultIfNeeded();

Status updateStatus = reader.updateOffsetsInTransaction(transaction,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import tech.ydb.common.transaction.TxMode;
import tech.ydb.core.Result;
import tech.ydb.core.grpc.GrpcTransport;
import tech.ydb.examples.SimpleExample;
import tech.ydb.table.Session;
import tech.ydb.table.TableClient;
import tech.ydb.table.transaction.TableTransaction;
import tech.ydb.table.transaction.Transaction;
import tech.ydb.table.transaction.TxControl;
import tech.ydb.topic.TopicClient;
Expand Down Expand Up @@ -56,12 +58,10 @@ protected void run(GrpcTransport transport, String pathPrefix) {
return; // retry or shutdown
}
Session session = sessionResult.getValue();
Transaction transaction = session.beginTransaction(Transaction.Mode.SERIALIZABLE_READ_WRITE)
.join()
.getValue();
TableTransaction transaction = session.createNewTransaction(TxMode.SERIALIZABLE_RW);

// do something else in transaction
session.executeDataQuery("SELECT 1", TxControl.tx(transaction)).join();
transaction.executeDataQuery("SELECT 1").join();
// analyzeQueryResultIfNeeded();

//Session session
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import tech.ydb.common.transaction.TxMode;
import tech.ydb.core.Result;
import tech.ydb.core.grpc.GrpcTransport;
import tech.ydb.examples.SimpleExample;
import tech.ydb.table.Session;
import tech.ydb.table.TableClient;
import tech.ydb.table.transaction.TableTransaction;
import tech.ydb.table.transaction.Transaction;
import tech.ydb.table.transaction.TxControl;
import tech.ydb.topic.TopicClient;
Expand Down Expand Up @@ -70,12 +72,10 @@ protected void run(GrpcTransport transport, String pathPrefix) {
return; // retry or shutdown
}
Session session = sessionResult.getValue();
Transaction transaction = session.beginTransaction(Transaction.Mode.SERIALIZABLE_READ_WRITE)
.join()
.getValue();
TableTransaction transaction = session.createNewTransaction(TxMode.SERIALIZABLE_RW);

// do something else in transaction
session.executeDataQuery("SELECT 1", TxControl.tx(transaction)).join();
transaction.executeDataQuery("SELECT 1").join();
// analyzeQueryResultIfNeeded();

try {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import tech.ydb.common.transaction.BaseTransaction;
import tech.ydb.common.transaction.TxMode;
import tech.ydb.core.Result;
import tech.ydb.core.grpc.GrpcTransport;
import tech.ydb.examples.SimpleExample;
import tech.ydb.table.Session;
import tech.ydb.table.TableClient;
import tech.ydb.table.transaction.TableTransaction;
import tech.ydb.table.transaction.Transaction;
import tech.ydb.table.transaction.TxControl;
import tech.ydb.topic.TopicClient;
Expand Down Expand Up @@ -65,12 +67,10 @@ protected void run(GrpcTransport transport, String pathPrefix) {
return; // retry or shutdown
}
Session session = sessionResult.getValue();
Transaction transaction = session.beginTransaction(Transaction.Mode.SERIALIZABLE_READ_WRITE)
.join()
.getValue();
TableTransaction transaction = session.createNewTransaction(TxMode.SERIALIZABLE_RW);

// do something else in transaction
session.executeDataQuery("SELECT 1", TxControl.tx(transaction)).join();
transaction.executeDataQuery("SELECT 1").join();
// analyzeQueryResultIfNeeded();
try {
String messageString = "message" + i;
Expand Down

0 comments on commit 9d761ba

Please sign in to comment.