问题标签 [datastax-php-driver]

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

php - 通过 datastax/php-driver 管理连接

如何管理与 的连接总数datastax/php-driver

我们遇到了 TCP 连接过多的问题,我们怀疑这与该驱动程序的工作方式有关。

我们已经将YACassandraPDO 驱动程序移到了这个驱动程序上。我发现的最大问题之一是连接池将为每个HTTP 线程连接到集群中的所有服务器。

我们的集群中有 4 个盒子。这是 4 个打开的持久连接,每个Apache 子节点。我怀疑这是我们麻烦的罪魁祸首。

从历史上看,我们使用过 YACassandra PDO,它每个线程只使用 1 个连接。

我们如何优化它?无论如何要停止datastax/php-drive进行集群发现吗?

0 投票
1 回答
41 浏览

datastax - AWS 中的 Datastax 实例类型升级问题

我计划将 AWS 中的 datastax 实例从 t2.large 升级到 t2.2xlarge。我们当前的集群包含 6 个 SearchGraph 节点

由于我们的复制因子是 3,即使我们的 2 实例出于实例升级目的而停机,我们也可以生存。我需要明确我计划进行的以下升级步骤是否正确?

第1步)

步骤 2) 获取实例的 AMI

步骤 3) 从采用的 AMI 启动一个新的 t2.2xlarge 实例。
(注意:新实例 ip 应与前一个相同)

步骤 4) sudo service dse start

0 投票
1 回答
118 浏览

php - PHP Cassandra Timeuuid 构造函数达到整数限制(32 位)

我在我的项目中使用 cassandra timeuuid。但由于整数限制,无法创建 timeuuid。

如果我运行上面的代码,我会得到以下结果。

这意味着 Timeuuid 构造函数需要以毫秒为单位的时间戳。但是,如果我尝试以毫秒为单位传递参数,它将达到我的 php(32 位)的整数限制。

上述代码出现以下错误。

由于它高于整数限制,因此它被强制转换为浮点数。

知道如何解决这个问题吗?

0 投票
1 回答
148 浏览

datastax - 从 Datastax 数据中心删除种子节点

我的数据中心有 6 个节点,其中 3 个节点也充当种子节点。我计划从 rack2 中删除 3 个节点,并将种子节点数减少到两个。使用“nodetool decommission”,我们可以删除节点,但是否有任何额外的步骤涉及删除种子节点。

0 投票
1 回答
414 浏览

cassandra - Dse\Exception\RuntimeException:所有 I/O 线程上的所有连接都忙

我们的网络应用程序中有一个工具可以删除大量数据。我们通过对找到的所有记录进行分页来做到这一点u_id

我们拥有的键是为我们在应用程序中拥有的其他查询而设计的——理想情况下,拥有一个主键会很棒,u_id但这会破坏我们所有的其他查询。

以下方法在大多数情况下运行良好,但是,在删除大约 6-8 百万条记录后,我们得到:

Dse\Exception\RuntimeException:所有 I/O 线程上的所有连接都忙

我们有时还会收到稍有不同的错误消息:

Dse\Exception\ReadTimeoutException:操作超时 - 仅收到 0 个响应

您会在下面的代码usleep(2500000)中注意到暂停脚本。这是我们的解决方法,但最好能解决这个问题,因为 Cassandra 应该能够处理这么多的删除。

以下是我们的表格供您参考:

我们正在运行具有 8GB RAM 的服务器。

DSE 驱动程序的版本是 6.0.1。

先感谢您!

0 投票
1 回答
230 浏览

c++ - MacOS High Sierra 上的 Cassandra C++ 驱动程序:make: no rule to make target

按照这些说明在 MacOS High Sierra 上安装 DataStax C++ 驱动程序,作为安装适用于 Cassandra 的 DataStax PHP 驱动程序的先决条件。

一切运行良好,直到我到达“构建和安装 C/C++ 驱动程序”部分中的“make install”行。这就是我收到消息的地方:“make: *** No rule to make target ‘install’. Stop.”

有人可以帮我完成这一步吗?

0 投票
1 回答
359 浏览

cassandra - 想知道如何在 Cassandra 中准备好的插入语句中使用 php 驱动程序绑定映射类型列

有人可以帮助我使用包含映射类型列的准备好的插入/更新语句的确切语法。认为 :

其中 map 是地图类型列,

我找到了一个答案 Cassandra Prepared statements with collections 但它只包含生成特定地图类型对象而不是绑定的语法。

0 投票
1 回答
505 浏览

cassandra - 检查每张桌子上的 cassandra 负载

有没有办法弄清楚每张桌子上有多少请求(读/写)?

我想弄清楚我们在哪里有很大的负担。

已经尝试使用:

这不好,因为我看不到请求的数量。

谢谢

0 投票
1 回答
530 浏览

cassandra - 如何获取 cassandra 时间戳列的字符串表示形式?

我正在从 datastax php 潜水员查询 cassandra 的时间戳列

结果以json格式返回

我想获得日期格式的简单字符串表示,例如YYYY-mm-dd它出现在 cql 客户端而不是 json 上一样。

我试过TODATE函数,但返回相同的结果。

0 投票
1 回答
131 浏览

php - 将 3 小时添加到由 php 中的 new Cassandra\Timestamp() 生成的时间戳

我已经使用new Cassandra\Timestamp()php 生成了时间戳。现在我想使用 php 为这个生成的时间添加 2 小时,然后将其存储在数据库(Cassandra)中。

基本上我想做这样的事情:

**HERE 截止日期列的数据类型设置为时间戳。

我在这里面临的问题是 $dt 返回一个对象数据类型,所以我不能直接向它添加 3 小时。即使我能够以某种方式增加 3 个小时,cassandra 也不会接受它作为可行的输入。

那么,是否可以通过这种方式直接将 3 小时添加到 cassandra 时间戳,或者我应该处理在数据库中存储为字符串的时间。

我的结局是存储截止日期,然后将当前时间与存储的截止日期进行比较,如果当前时间大于则执行一些代码。像这样的东西: