diff --git a/content/docs/5.1/deploy/operate/operate.md b/content/docs/5.1/deploy/operate/operate.md index 308f515..6af5e98 100644 --- a/content/docs/5.1/deploy/operate/operate.md +++ b/content/docs/5.1/deploy/operate/operate.md @@ -1,13 +1,13 @@ --- title: Operate TiKV -description: Learn how to maintain and operate a TiKV cluster +description: Learn how to maintain and operate a TiKV cluster. menu: "5.1": parent: Deploy weight: 5 --- -This section introduces how to maintain and operate a TiKV cluster. +This section introduces how to maintain and operate a TiKV cluster, including the following operations: - [Upgrade a TiKV cluster using TiUP](../upgrade) - [Scale out/in a TiKV cluster using TiUP](../scale) diff --git a/content/docs/5.1/develop/clients/cpp.md b/content/docs/5.1/develop/clients/cpp.md index 1c1829f..c51a856 100644 --- a/content/docs/5.1/develop/clients/cpp.md +++ b/content/docs/5.1/develop/clients/cpp.md @@ -7,10 +7,10 @@ menu: weight: 5 --- -TiKV client for C++ is built on top of [TiKV Client in Rust](https://github.com/tikv/client-rust) via [cxx](https://github.com/dtolnay/cxx). - -This client is still in the stage of prove-of-concept and under heavy development. You can track development at [tikv/client-cpp](https://github.com/tikv/client-cpp/) repository. - {{< warning >}} -You are not suggested to use the C++ client for production use until it is released. +Currently, the TiKV client for C++ is not released yet. {{< /warning >}} + +The TiKV client in C++ is built on top of [TiKV client in Rust](https://github.com/tikv/client-rust) using [cxx](https://github.com/dtolnay/cxx). + +This C++ client is still in the stage of prove-of-concept and under heavy development. You can track the development progress at the [tikv/client-cpp](https://github.com/tikv/client-cpp/) repository. diff --git a/content/docs/5.1/develop/rawkv/ttl.md b/content/docs/5.1/develop/rawkv/ttl.md index 4e0d18f..023afe1 100644 --- a/content/docs/5.1/develop/rawkv/ttl.md +++ b/content/docs/5.1/develop/rawkv/ttl.md @@ -1,26 +1,39 @@ --- title: TTL -description: How to use RawKV's TTL API +description: How to use TTL via RawKV API. menu: "5.1": parent: RawKV weight: 4 --- -This document walks you through how to use RawKV’s `TTL` API. +Time To Live (TTL) is ... TiKV provides the TTL support via the RawKV API. -## Config TiKV to enable TTL +This document provides two examples to show you how to set TTL via the RawKV API. -TTL is disabled by default. Use the following TiKV configuration to enable TTL. +## Enable TTL + +Before you set TTL via RawKV API, you must enable TTL in your TiKV cluster. + +TTL is disabled by default. To enable it, set the following TiKV configuration to `true`. ```yaml [storage] enable-ttl = true ``` -## Java +## Use TTL in Java client -The following example shows a simple example of how to use `TTL` int `put` API. +After TTL is enabled in TiKV, you can set it in Java client via the `put` API or `CAS` API. The following two examples shows how to set TTL via the `put` API and `CAS` API. + +### Set TTL in the `put` API + +In the following examples, these operations are performed: + +1. Two key-value pairs, `(k1, v1)` and `(k2, v2)`, are written into TiKV via the `put` API. `(k1, v1)` is written with a TTL of 10 seconds. `(k2, v2)` is written without TTL. +2. Try to read `k1` and `k2` from TiKV. Both values are returned. +3. Let TiKV sleep for 10 seconds, which is the time of TTL. +4. Try to read `k1` and `k2` from TiKV. `v2` is returned, but `v1` is not returned because the TTL has expired. ```java import java.util.Optional; @@ -33,44 +46,46 @@ TiConfiguration conf = TiConfiguration.createRawDefault("127.0.0.1:2379"); TiSession session = TiSession.create(conf); RawKVClient client = session.createRawClient(); -// write (k1, v1) with ttl=10 seconds +// Writes the (k1, v1) into TiKV with a TTL of 10 seconds. client.put(ByteString.copyFromUtf8("k1"), ByteString.copyFromUtf8("v1"), 10); -// write (k2, v2) without ttl +// Writes the (k2, v2) into TiKV without TTL. client.put(ByteString.copyFromUtf8("k2"), ByteString.copyFromUtf8("v2")); -// get k1 returns v1 +// Reads k1 from TiKV. v1 is returned. Optional result1 = client.get(ByteString.copyFromUtf8("k1")); assert(result1.isPresent()); assert("v1".equals(result1.get().toStringUtf8())); System.out.println(result1.get().toStringUtf8()); -// get k2 returns v2 +// Reads k2 from TiKV. v2 is returned. Optional result2 = client.get(ByteString.copyFromUtf8("k2")); assert(result2.isPresent()); assert("v2".equals(result2.get().toStringUtf8())); System.out.println(result2.get().toStringUtf8()); -// sleep 10 seconds +// Let TiKV sleep for 10 seconds. System.out.println("Sleep 10 seconds."); Thread.sleep(10000); -// get k1 returns null, cause k1's ttl is expired +// Reads k1 from TiKV. NULL is returned, because k1's TTL has expired. result1 = client.get(ByteString.copyFromUtf8("k1")); assert(!result1.isPresent()); -// get k2 returns v2 +// Reads k2 from TiKV. v2 is returned. result2 = client.get(ByteString.copyFromUtf8("k2")); assert(result2.isPresent()); assert("v2".equals(result2.get().toStringUtf8())); System.out.println(result2.get().toStringUtf8()); -// close +// Close client.close(); session.close(); ``` -`TTL` is also supported in the `CAS` API. Let's see an example. +## Set TTL in the `CAS` API + +You can also set TTL via the `CAS` API. See the following example: ```java import java.util.Optional; @@ -114,4 +129,4 @@ client.close(); session.close(); ``` -The code example used in this chapter can be found [here](https://github.com/marsishandsome/tikv-client-examples/blob/main/java-example/src/main/java/example/rawkv/TTL.java). \ No newline at end of file +The example code above is available [here](https://github.com/marsishandsome/tikv-client-examples/blob/main/java-example/src/main/java/example/rawkv/TTL.java). diff --git a/content/docs/5.1/reference/TiUP.md b/content/docs/5.1/reference/TiUP.md index ffafd03..ad7554a 100644 --- a/content/docs/5.1/reference/TiUP.md +++ b/content/docs/5.1/reference/TiUP.md @@ -7,6 +7,6 @@ menu: weight: 3 --- -Starting with TiKV 4.0, TiUP, as the package manager, makes it far easier to manage different cluster components in the TiKV ecosystem. +Starting with TiKV 4.0, TiUP, as the package manager, makes it easier to manage different cluster components in the TiKV ecosystem. -Please refer to [TiUP documentation guide](https://docs.pingcap.com/tidb/stable/tiup-documentation-guide) to find more TiUP commands and usages. +Refer to the [TiUP documentation guide](https://docs.pingcap.com/tidb/stable/tiup-documentation-guide) to find more TiUP commands and usages.