问题标签 [tikv]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
334 浏览

tidb - 我们可以将连接到同一个集群的多个 TiDB 实例运行到 PD 和(因此是 TiKV)吗?

我想为基准测试建立一个本地的 TiDB 集群。以下是我的一些疑问:

  • 多个 TiDB 实例可以连接到同一个 PD 和 TiKV 集群吗?(我们在这个官方生产部署文档中只注意到一个 TiDB 实例。)
  • 如果为正,提交到不同 TiDB 实例的事务是否满足快照隔离级别?
  • 在存储层,每个 TiKV 节点是否保留了整个数据集?(复制因子等于 TiKV 节点数?)
  • 如果是否定的,如何配置复制因子?
0 投票
1 回答
415 浏览

jdbc - 为什么更新的字段值是随机的,TiDB 性能会下降 10 倍?

我设置了 TiDB、TiKV 和 PD 集群,以便使用 YCSB 工具对它们进行基准测试,并通过 MySQL 驱动程序连接。集群由 TiDB、TiKV 和 PD 各 5 个实例组成。每个节点运行一个 TiDB、TiKV 和 PD 实例。

然而,当我在更新语句中玩弄 YCSB 代码时,我注意到如果更新字段的值是固定的并且是硬编码的,那么总吞吐量约为 30K tps,延迟约为 30ms。如果更新的字段值是随机的,则总吞吐量约为 2k tps,延迟约为 300 毫秒。

更新语句创建代码如下:

我们如何解释这种性能差距?如本文所述,是否由于 DistSQL 查询缓存

0 投票
2 回答
226 浏览

raft - TiKV 中的“多筏”是什么?

前几天我遇到了这个有趣的数据库,并在其官方网站上阅读了一些文档,我对 TiKV 中的 Raft Group 有一些疑问(here),

假设我们有一个大约有 100 个节点的集群,并且复制因子是 3,这是否意味着我们最终会得到很多微小的 Raft “气泡”,每个气泡只包含 3 个成员,它们进行领导者选举和“气泡”内的日志复制。

或者,我们只有一个包含 100 个节点的胖 Raft “buble”?

请帮忙解释一下,谢谢!

0 投票
1 回答
168 浏览

java - MacOS上的TIKV java客户端:无法为PD集群初始化客户端

我想在 MacOS 上使用它的 java 客户端访问 TIKV。

我有一个 hello-world 应用程序:

我有 docker-compose.yml (基于https://github.com/pingcap/tidb-docker-compose/blob/master/docker-compose.yml,我已经添加ports和删除了所有冗余容器)

当我这样做时,curl 0.0.0.0:32810我得到@@. 当我启动我的java代码时,我得到

如何解决这个问题?

0 投票
1 回答
1206 浏览

java - Java-grpc 和 tikv-java: NoSuchFieldError: CONTEXT_SPAN_KEY

我将 java-grpc 与 tikv-java 一起使用(它们分别工作正常)。但我一起努力解决以下错误:

我的代码客户端:

我的代码服务器:

我的代码实现:

我的原型:

我要做的部署:

  • 在下载的 repo client-java我做mvn clean install -Dmaven.test.skip=true
  • 在我的项目文件夹中
  • 在我的项目 pom.xml
  • 运行java 8:

有没有人建议如何解决?

完整代码可在此处获得

我进行了搜索,试图排除 grpc 和 opencensus,切换版本 - 没有帮助。

0 投票
1 回答
313 浏览

sql - 如何优化 TiDB 上的 count(*) 查询

我有一个大约 3000000 行的表,如下所述。

它的索引为

带计划的 178 毫秒内选择计数(*)返回的说明

实际查询大约需要2.6 sec.

trace format = 'row' select count(*) from keyvalue;

我的 TiDB 设置如下

TIDB 版本

如何加快查询速度?我也很好奇为什么查询选择了它选择的索引。

0 投票
2 回答
47 浏览

tikv - 2 个不同的 TiKv 集群之间如何复制数据?

假设我在 A 市部署了一个 TiKV 集群,在 B 市部署了另一个 TiKV 集群。我想在集群 A 中写入数据并在集群 B 中读取数据。

我知道在集群 A 内部,数据安全是由多组 raft 执行的。但是如何将集群 A 中的数据复制到集群 B 并始终保持更新呢?如何执行集群间复制?

0 投票
1 回答
81 浏览

java - 使用 TiKV 数据库进行范围查询

如何使用 TiKV 和 java-client 进行范围查询?

假设我有这个模型:

我怎样才能做一个满足这一点的查询:

  1. 如何将Hub模型存储到 TiKV 中
  2. schedules而且,在这个例子中,你如何对 进行范围查询?
0 投票
1 回答
131 浏览

database - 用于可搜索性的键值数据库建模

假设我正在建立一个像 eBay(或其他东西)这样的市场,例如,

使用如下所示的数据(伪代码):

假设我想构建一个“查询”来过滤项目,给出以下内容:

项目与字段数据(标题、价格、时间戳范围)以及一些文本(描述)一起存储。然后我需要根据以下内容进行过滤:

  • 价格范围(如100-200)
  • 位置(例如以 GeoHash 前缀开头)
  • 在给定的毫秒时间戳之间(例如,每条记录都有一个开始和结束日期)——例如项目的有效期
  • 有一个给定的关键字(每条记录在存储之前都有一个关键字数组)
  • 有一个给定的类别
  • 有创建日期和更新日期(这很常见)
  • 有一个给定的关键字文本(我认为这是不可能的,因为这是一个全文搜索)

我想根据以下内容订购结果:

  • 点赞数优先(每条记录存储点赞数)
  • 最新或最近创建的第一个
  • 仍然处于活动状态(每条记录是否处于活动状态都有一个布尔值)

这应该如何建模/存储在键值数据库中,以便可以使用上面给定的查询来检索它?那就是不使用任何模式(无模式)

0 投票
1 回答
80 浏览

go - tikv api 中的锁键有什么用途?

最近在看tikv的api文档。交易中有一个 LockKey api。当我调用它进行操作时,我直接恐慌。我有薮问题?

  1. 我想知道它为什么会恐慌
  2. lockKeys api 的用途是什么?有什么可以帮助我的

恐慌堆栈是:

发生在疼痛发生的地方,m为nil

go mod 在下面