问题标签 [cockroachdb]

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 回答
670 浏览

kubernetes - 如何在 Kubernetes 上设置可从 NodeJs 访问的安全 cockroachdb

我是 Kubernetes 和 CockroachDB 的新手。我在 Kubernetes 集群上运行了一个安全的多节点节点数据库,并且能够将其暴露在外部并使用 cockroach UI 对其进行监控。

服务清单

现在我想使用 pg for Node 或 sequelize 从节点应用程序访问它。但是我得到连接超时。

我相信我必须创建一个客户端证书并使用它来建立连接,但我找不到关于如何执行此操作的 Kubernetes 特定文档。如果有人成功了,你是如何创建证书的,你是如何在你的节点应用程序中使用它的?

0 投票
1 回答
175 浏览

cockroachdb - 仲裁丢失后重试 SQL 插入时重复键值

我目前正在使用 3 个 cockroachDB 节点测试失败场景。

使用这种情况:

  1. 在循环中插入记录
  2. 关闭 3 个节点中的 2 个(模拟仲裁丢失)
  3. 等待足够长的时间,以便 Postgres JDBC 驱动程序引发 IO 异常
  4. 重启一个节点以恢复 Quorum
  5. 重试上一个失败的语句

然后我遇到了以下异常

这意味着当 Quorum 再次可用时,插入在第一次尝试时成功(我从中获得了 IO 异常)。问题是我不知道。

我不能假设“重复键值”异常是由应用程序逻辑问题引起的。是否有任何参数可以调整,以便基础语句在 IO Exception 之前回滚?或者也许是更好的方法?

测试是使用

  • CockroachDB v1.1.5(3个节点)
  • MyBatis 3.4.0
  • PostgreSQL 驱动程序 42.2.1
  • 爪哇 8
0 投票
1 回答
1102 浏览

postgresql - libbqxx C++ API 连接到没有数据库名称的 PostgreSQL

我正在使用 PostgreSQL 的 libpqxx C++ 客户端 API 作为 cockroachDB 的驱动程序。来自 cockroachDB 文档:

这需要用户和数据库作为前提。是否有任何 C++ API 将其分为如下两个步骤?

我已经尝试了下面的代码,但它失败了,因为它需要 root 用户权限。

谢谢你的帮助!

0 投票
2 回答
658 浏览

hibernate - 带有 CockroachDB 的简单 CRUD 应用程序中的 org.hibernate.TransactionException

以下使用 Spring Boot、Hibernate、JpaRepository、CockroachDB 和 Kotlin 的最小 CRUD 示例生成org.springframework.orm.jpa.JpaSystemException/ org.hibernate.TransactionException

有问题的实体Thing只有两个字段:

为了使这篇文章简短,我将实际的源文件存储在 gists 中:

./src/main/kotlin/ThingService.kt

./src/main/resources/application.properties

./build.gradle.kts

./stress_test.py

使用这些文件,可以使用以下命令重现问题(在我的情况下是在 Ubuntu 16.04 上)。

下载并初始化 CockroachDB:

运行数据服务:

运行压力测试:

stress_test.py同时向服务发送PUT请求和GET请求(按值查找)。大多数请求工作正常,但在输出之间看起来如下:

Spring 应用程序的日志显示了更多详细信息:

没有并发写入。所有写入都是严格顺序的。仅当并发读取起作用时才会出现此问题。但是我认为这不应该导致需要重试任何事务。我的数据库连接配置是否有问题,或者可能是什么问题?

0 投票
1 回答
829 浏览

hibernate - 休眠和使用数据库索引会在 CockroachDB 上创建 SQL 语法错误

以下使用带有 Spring Boot、Hibernate、JpaRepository、CockroachDB 和 Kotlin 的数据库索引的最小示例无法重新启动。

我还使用 PostgresSQL 而不是 CockroachDB 进行了测试,这很好。

但是对于 CockroachDB,它会以 SQL 语法错误结尾(请参阅本问题末尾的日志)。

这是重现问题的代码。


./src/main/kotlin/ThingService.kt


./src/main/resources/application.properties


./build.gradle.kts


以下是重现问题的步骤。

下载并初始化 CockroachDB:

运行数据服务:

现在让我们看一下数据库中生成的表:

输出:

然后

输出


然而运行

第二次不起作用。应用程序在启动时崩溃。

这是第二次(失败)运行的日志摘录:

关于什么可能导致这个问题或如何解决它的任何想法?

0 投票
1 回答
499 浏览

hibernate - 休眠并在 CockroachDB 中使用 @GeneratedValue 会导致 SQLGrammarException

以下使用 Spring Boot、Hibernate、JpaRepository、CockroachDB 和 Kotlin 生成的 id 的最小示例生成一个org.hibernate.exception.SQLGrammarException.

我还使用 PostgresSQL 而不是 CockroachDB 进行了测试,这很好。

这是重现问题的代码。


./src/main/kotlin/ThingService.kt


./src/main/resources/application.properties


./build.gradle.kts


以下是重现问题的步骤。

下载并初始化 CockroachDB:

运行数据服务:

现在尝试将东西放入服务中:

回应是:

但是,当使用 CockroachDB 的 PostgreSQL 插入时,结果很好

知道是什么导致了问题,或者在使用 CockroachDB 时如何避免它?

以下是完整的日志:

0 投票
1 回答
721 浏览

npgsql - 将 npgsql 与 CockroachDB 和 .Net Core 一起使用

我成功使用 npgsql (Npgsql.EntityFrameworkCore.PostgreSQL) 连接到 PostgreSQL 数据库。我听说同一个 EF 提供程序与 CockroachDB 配合得很好。我正在尝试使用它,但需要帮助来定义CockroachDB的连接字符串。对于 PostgreSQL,我使用了以下连接字符串:

如果我想将连接字符串连接到CockroachDB,有人知道连接字符串应该是什么样子吗?

0 投票
1 回答
78 浏览

cockroachdb - 如何构建集群以便在节点之间进行完整的数据复制?

我如何构建/配置一个 cockroach 集群以便在所有节点中拥有所有数据?我不是在谈论将数据片段分布在节点上。

我尝试使用位置标志启动一个集群,但是一旦我在第一次接收数据的机器中杀死 cockroach 进程,我就不再能够执行选择,并且该命令仅在我再次启动此实例时返回数据.

换句话说,我想实现一个场景,如果我总共有 3 个节点并且我丢失了其中 2 个或者它们变得不可用,我仍然想正常工作。

如果 cockroachdb 不支持此功能。实现它的最佳方法是什么?

0 投票
1 回答
321 浏览

sql - SQL - 无需全表扫描即可获取特定行

我正在使用 Postgresql (cockroachdb),我想选择一个特定的行。例如,有数千条记录,我想选择行号 999。

在这种情况下,我们将使用 LIMIT 和 OFFSET,SELECT * FROM table LIMIT 1 OFFSET 998;

但是,根据这篇文章,使用 LIMIT 和 OFFSET 可能会导致性能问题。所以我想知道是否有办法在没有全表扫描的情况下获取特定行。

我觉得这是可能的,因为数据库似乎按主键对数据进行排序,当我这样做时,SELECT * FROM table;它总是显示排序结果。由于它是按主键排序的,数据库可以使用索引来访问特定的行,对吧?

0 投票
1 回答
401 浏览

jsonb - cockroachdb jsonb 选择查询

我在 CockroachDB v2.0-beta 中有一个简单的表:

我可以运行一个选择查询来查找 acct->properties 下的特定属性,如下所示:

有没有办法选择 Json blob 的子集,例如嵌套属性?这样的事情会有所帮助:

提前感谢您的任何提示!

干杯,〜g