问题标签 [okvs]

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

amazon-web-services - AWS DynamoDB 多租户表架构

提前致谢!

我想为多个租户创建一个使用 AWS 的 Saas 解决方案,每个租户都有多个用户。每个用户(例如:Admin、Manager、Supervisor)都必须上传他们的部门用户数据(例如:姓名、SurName、电子邮件、电话等,这些用户属性一起由 HashKey 标识)

简而言之,我必须存储多个公司多个部门的所有用户信息,包括每个用户 HashKey

如何使用 DynamoDB 做到这一点?有人可以帮助创建表模式吗?

最常用的查询模式是:租户将提供 HashKey,并希望通过提供 HashKey 和一些字段从中获取所有用户信息或部分用户信息。

问候,

0 投票
1 回答
538 浏览

rocksdb - 在rocksdb中按值排序

Rocksdb 允许按键对记录进行排序,但我想按值对记录进行排序。有可能这样做吗?

0 投票
0 回答
271 浏览

digital-ocean - 在 DigitalOcean 块存储上使用嵌入式数据库(RocksDB、BoltDB、BadgerDB)是否安全?

DigitalOcean 块存储使用 ceph,这意味着附加到液滴的卷将物理上位于不同的机器上。因此,写入此卷的数据库文件将使用网络,而不是本地磁盘。

BoltDB 特别提到通过网络文件系统使用是不安全的,但我不确定这是否也适用于 DO 块存储(它不是 NFS,但它确实使用网络)。

将 DO 块存储用于嵌入式数据库是否安全?是的,性能不会那么好,但如果它完全不安全,那就无关紧要了。

如果答案是“不,嵌入式数据库应该只使用本地磁盘”,那么复制数据库的简单方法是什么(例如每天一次或几个小时)?

0 投票
1 回答
370 浏览

algorithm - 范围查询如何与排序字符串表一起使用?

我有点困惑。我找不到有关如何对排序字符串表执行范围查询的任何信息。

LevelDB 和 RocksDB 支持范围迭代器,允许您在范围之间进行查询,这对于 NoSQL 来说是完美的。我不明白的是它是如何实现高效的。

表在内存(和磁盘)中排序 - 什么算法或数据结构允许在范围查询中有效地查询排序字符串表?您是否只是遍历条目并依赖缓存行充满数据?

通常我会在前面放一个前缀树,这给了我键的索引。但我猜排序字符串表会做一些不同的事情,并以某种方式利用排序。

0 投票
1 回答
32 浏览

database - 在 DB 事务中实现 UNDO

我正在实现一个嵌入式键值存储,并希望在其中支持事务。这是我现在一直在研究的模型:

我读过的所有文献都谈到在日志记录中维护以下状态(在 WAL 中): TxId, OldValue, NewValue其中 OldValue 将用于 Undo,而 NewValue 用于 Redo。

我的问题是如何获得每个键 K 的 OldValue ?如果我需要搜索我的键值存储,即get(K)每个put(K,V)操作,那么这将非常低效,因为我将每次写入与通过存储搜索前一个值联系起来(因为它可能不存在于内存缓存中.)

0 投票
0 回答
54 浏览

performance - 随机和大量写入的工作负载是否适合 LMDB?

我们正在探索具有以下工作负载的 LMDB(闪电映射数据库 - C,嵌入式)。20M+ 左右的条目是随机写入的(keysize:大约 32 个字节,value avg 大约 300 个字节)。在静止系统上,写入速率可能是几千/秒。但有时可能会在一分钟内达到 1M 的高度。除了随机写入之外,还会查找和更新条目(因此也是随机读取)。这是否代表 LMDB 的适当工作负载?

更新更多信息:有两个数据库(DB1、DB2)。DB1 将被独占写入(100% 写入,大约 8M 左右的条目)。DB1 将在守护程序重新启动时读取一次,但这可以解释为。DB2 包含大约 8M 左右的条目,这些条目被频繁地读写(所以 50% 的读/写)。读取是由于数据被读入内存并被操作和写回。

0 投票
0 回答
29 浏览

performance - 各种类似 LevelDB 的键值存储如何比较?

在 LevelDB、RocksDB、HyperLevelDB、LMDB 以及其他任何属于此类别的产品中,它们之间的预期性能属性和权衡是什么?

我发现各种基准和文章就我正在寻找的部分内容提出声明,但没有一个是最近的,因此不清楚有多少信息仍然准确/相关。例如,我发现后三个在并发性和读取性能等方面可能比 Level 更好,但我不确定其中有多少是正确的,或者它们如何相互比较。

0 投票
1 回答
57 浏览

python - 如何使用 lmdb 形成树形数据库结构

在这里,我正在尝试创建其结构如下所示的图形数据库。随着我不断添加更多节点,我看不到depth of the tree increasing. 有人可以建议我在这里可能做错了什么吗?

0 投票
1 回答
50 浏览

rocksdb - 多个 RocksDB 实例可以共享和读取同一个键范围吗?

Stack Overflow 上的过去答案表明 RocksDB 的单线程性质意味着答案是否定的,但官方 FB 文档有这样的页面http://rocksdb.org/blog/2021/05/27/rocksdb-secondary-cache.html其中多个实例似乎共享一个缓存。

1)这些实例是否使用相同的键范围?

  1. 如果是这样,更新是如何从一个数据库实例传递到另一个实例的?据我所知,RocksDB 没有任何 interDB 通信?