问题标签 [scalardb]
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.
scalardb - 在 Scalar DB 中,如果我不需要它或者我需要做一些清理,我可以保留一个事务吗?
问题是关于 Scalar DB ( https://github.com/scalar-labs/scalardb )。在下面的代码中,我检查用户是否存在。如果是这样,我会抛出一个异常。如果不是,我会在表格中添加它。我在开始时创建了一个 DistributedTransaction 实例,并在所有事务中使用它。
如果 else 阻塞,我是否需要使用 DistributedTransaction 进行一些清理/最终确定,还是可以保持原样?
scalardb - 如何使用 ScalarDB 在 Cassandra 中查找分区的大小
我正在使用 Scalar DB 库,它在 Cassandra 中添加了 ACID 支持。如何使用 Scalar DB 获取分区的大小?
在 Cassandra Java 驱动程序中,我会调用如下代码来获取大小。
ScalarDB 的等价物是什么。
Optional[Result]我打电话时得到
然后我打电话.get来获取结果的值,如果有一个值(检查后result.isPresent
我想上面只会给我一行。
我想过使用Scan它提供的效果List[Result],但从文档中不清楚我是否会得到所有结果或一些系统/可配置限制。
即使我不会一口气解决所有问题,如何获得分区的大小?
scalardb - ScalarDb 如何支持分页
我正在使用在 Cassandra 上提供 ACID 功能的 ScalarDB。ScalarDB 支持分页吗?
如果一个分区有 100 条记录,我可以一次查询 10 条记录,每个查询从前一个查询的位置开始吗?
scalardb - 协调器键空间是否需要具有相同的复制因子和应用程序的主键空间
我正在使用 ScalarDB 在 Cassandra 上添加 ACID 支持。
如果我的应用程序的主表的复制因子为 3 和 SimpleStrategy,Coordinator键空间是否也需要相同?
scalardb - Cassy 无法备份
我一直在尝试使用 Cassy 进行备份,但我只能获得元数据备份。似乎 Cassy 上没有错误日志,并且 Cassy 的 BackupList 上的状态为“已启动”。
以下是我尝试部署的步骤。是否有任何缺少的步骤或某些东西应该是正确的?
首先,我从下面使用 git clone 创建了标量 DL、cassandra 和 envoy。
git clone https://github.com/scalar-labs/scalar-samples.git
我已经确认它可以正常工作并且我可以正确执行合同。
然后我添加了 Cassy 容器,如下所示。
- 将 ssh 添加到 cassandra 节点。
- 将 commitlog_sync 从定期更改为批处理。
- 从下面 git clone https://github.com/scalar-labs/cassy
- 编辑 cassy.properties 文件以添加 S3 信息和其他路径。
- 使用克隆的 Dockerfile 创建容器。cassy/build/docker/Dockerfile
scalardb - 如何在 ScalarDB 上实现应用程序级分页
这个问题部分是 Cassandra,部分是 ScalarDB。我正在使用 ScalarDB,它在Cassandra. 图书馆似乎运作良好!不幸的是,ScalarDB 不支持分页,所以我必须在应用程序中实现它。
考虑这种情况,其中P主键C是集群键并且E是分区内的其他数据
在 ScalarDB 中,我可以指定键的开始和结束值,所以我想 ScalarDB 将只从指定的行获取数据。我也可以限制没有。获取的条目数。
https://scalar-labs.github.io/scalardb/javadoc/com/scalar/db/api/Scan.html
假设我想获取条目E3和E4来自P,C2. 对于较小的值,我可以将开始和结束聚类键指定为 C2 并将 fetch limit 设置为 4 并忽略E1and E2。但是如果有数百条记录,那么这种方法将无法扩展。
例如说P,C1有 10 条记录,P,C2有 100 条记录,我想为每个查询实现 20 条记录的分页。然后要实现这一点,我必须查询 1 - 扫描 - 主键将是 P,集群开始将是 C1,集群结束将是 Cn,因为我不知道那里有多少条记录。
- 得到
P,C1. 这将提供 10 条记录 - 得到
P,C2. 这将给我 20 条记录。我将忽略最后 10 个并将P,C110 与P,C2前 10 组合并返回结果。
我还必须维护查询的最后一个集群键是C2,并且从中获取了 10 条记录。
查询 2(用于下一个分页请求) - 扫描 - 主键为 P,聚类开始为 C2,聚类结束为 Cn,因为我不知道那里有多少条记录。现在我将获取P,C2并获取 20 个,忽略第一个 10(因为它们上次发送),获取剩余的 10 个,使用相同的 Scan 进行另一次获取并从中获取前 10 个。
这是应该怎么做还是有更好的方法?我对上述实现的担忧是,每次我都必须获取大量记录并转储它们。例如,假设我想从那里获取记录 70-90,P,C2我仍然会查询到记录 60 并转储结果!
scalardb - 如果我在 ScalarDB 中启动事务但不提交会发生什么?
我正在使用 ScalarDB 在Cassandra应用程序中添加 ACID 支持。如果我开始 aTransaction但不提交会发生什么。会不会有什么不良影响?
例如。
scalardb - 如果执行重复的 Put,ScalarDB 是否会抛出 NoMutationApplied 异常
我正在使用 ScalarDB,它将 ACID 功能添加到Cassandra. 似乎如果我使用重复Put项,即插入与现有条目相同的条目,则会NoMutationApplied引发异常。
它是否正确?是否有任何其他条件会引发此异常?
scalardb - PutIf 与 PutIfExists 和 PutIfNotExists 有何不同
我正在使用ScalarDB它在Cassandra. 参考文档,与和有何PutIf不同?PutIfExistsPutIfNotExists
我想
PutIfExists就像一个更新
PutIfNotExists就像一个新的添加
什么是 PutIf?什么时候使用它?
scalardb - 删除记录时在 ScalarDB 中获取 InvalidUsageException
我正在使用 ScalarDB,它在Cassandra. 删除记录时,出现com.scalar.db.exception.transaction.InvalidUsageException: the record to be deleted must be existing and read beforehand异常。
我正在从几个表中删除条目(因此使用 Scalar 来提供 Atomocity)。我在DistributedTransaction开始时创建了一个,然后开始删除条目。
之前的所有步骤commitTransaction似乎都可以,但是 `commitTransaction 失败并出现错误
参考https://scalardl.readthedocs.io/en/latest/trouble-shooting-guide/,似乎不允许盲目删除。但是我尝试过get在删除之前进行操作,并且还尝试过设置条件,DeleteIfExists但我仍然收到错误消息。
为什么我必须get在删除之前记录?有什么方法可以直接删除?我没有正确使用图书馆吗?