CouchDB 每用户 db 具有共享数据可扩展性

2024-03-08

I have an application with the following architecture: enter image description here

主 couchdb 需要在用户之间共享数据。 EG:如果 user-1 将数据写入云,则会复制到主服务器并返回到 user-2 和 user-3。

然而,随着用户基数的增加,云用户 couchDB 的数量也会增加,这导致云用户 couchDB 和主 couchDB 之间存在大量复制链接。

我相信这会导致一个巨大的瓶颈。有没有更好的方法来解决这个问题?


你是对的:CouchDB 的每用户 db 模式可能会遇到可扩展性问题。这是因为 CouchDB 复制器将难以满足要求处理的同步复制作业的数量。如果您知道您的用户数量会随着时间的推移而增长,那么值得考虑将许多用户的数据复用到单个(或少数)数据库中的架构。

这使得身份验证和复制变得更加棘手,因为 CouchDB 仅对每个数据库进行身份验证,并且您可能最终需要中间的另一层来解决此问题。

一种方法是使用复制代理,例如克劳德特使 https://github.com/cloudant-labs/envoy/blob/master/README.md,这让您的 PouchDB 应用程序保持不变 - 客户端的模型仍然是“每用户 db”,但实际写入会转到单个数据库服务器端。这也意味着您可以避免服务器端复制到单个主数据库,因为您已经在主 Envoy 数据库中拥有了该数据库。

免责声明:我是 Envoy 的作者之一。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CouchDB 每用户 db 具有共享数据可扩展性 的相关文章

  • 如何实现从一个进程到另一个进程的快速上下文切换?

    我需要在沙箱进程上运行不安全的本机代码 并且需要减少进程切换的瓶颈 两个进程 控制器和沙箱 共享两个自动重置events http msdn microsoft com en us library windows desktop aa964
  • android 的 SQLiteDatabase 的单个实例可以管理多个线程之间的同步吗?

    我需要从不同的 AsyncTask 线程写入数据库 但问题是我们需要确保一次只有一个线程正在写入数据库 我的问题是 如果我使用单例模式在整个应用程序中创建 SQLiteDatabase 对象的单个实例 该单个实例是否会管理不同线程之间的同步
  • 多大的电子商务网站速度这么快? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我一直致力于基于NopCommerc
  • Unison:仅在一个方向上同步

    如果我有文件夹 A 和 B 是否可以将新文件从 A 同步到 B 并且不删除 B 中的文件而删除 A 中的文件 也就是说 我想用B作为任何文件的大容器 包括我曾经从A同步然后删除的文件 我认为这被认为是一种 单向同步 我了解您对 Unison
  • 如何使用 Angular-Cli/Webpack 导入 PouchDb-Find

    我想将 Angular 2 Typescript 与 PouchDb 和 PouchDb Find 一起使用 并使用 Angular cli 现在基于 webpack 生成的项目 PouchDb 通过一个简单的 import 语句连接起来
  • Vulkan:在多个命令缓冲区中排序图像内存屏障

    对于资源转换 您需要了解 之前 和 之后 VkImageLayout资源的 例如 在VkImageMemoryBarrier传递给vkCmdPipelineBarrier Vulkan 不保证命令缓冲区执行的任何顺序 除非 API 文档中明
  • 如何使用CURL/CygWin将文件从本地Windows机器发送到服务器?

    我的目标是使用 cygwin curl 将 CouchDB 文档从我的 Windows 计算机上传到远程服务器 以下教程展示了如何在 Mac 上执行相同操作 http net tutsplus com tutorials getting s
  • 复制已过滤的数据子集:合并或事务复制?

    首先感谢您的阅读 我需要复制基于连接过滤器的数据子集 基于与其他表的联接的过滤器 Microsoft 使用联接过滤器 您可以将行过滤器从一个已发布的表扩展到另一个 这是设置 SQL Server 2012 事务复制订阅上的复制源 复制需要是
  • Django 多个数据库 - 一个并不总是可用

    我正在开发一个 Django 应用程序 它将使用多个数据库后端 我想在运行 django 应用程序的机器上放置一个 sqlite 数据库 并同步到远程 mysql 数据库 棘手的部分是 运行应用程序的机器并不总是有互联网连接 因此 mysq
  • couchdb:设计文档中的地图给出了compilation_error

    我在 Debian 测试中使用 Couchdb 1 1 1 我在数据库中有这个设计文档 id design Page rev 9 1944cdebabf20ae569eab7b534b43e67 views all map function
  • 扩展 ASP.NET 应用程序

    这是一个非常广泛的问题 但希望我能得到有用的提示 目前我有一个在单个服务器上运行的 ASP NET 应用程序 我现在需要进行扩展以适应不断增加的客户负载 所以我的计划是 1 将 ASP NET 和 Web 组件扩展到五台服务器上 2 将数据
  • 本地实例不支持 couchdb POST 方法

    我的本地 couchdb 实例似乎不支持 POST 方法 这是我从 chrome 开发工具得到的答案 POST http localhost 5984 epos couch design epos couch view ri 415 Uns
  • 什么时候应该使用各个线程同步对象?

    在什么情况下应该使用以下每个同步对象 读写锁 信号 Mutex 由于每次调用 post 时 wait 都会返回一次 因此信号量是一种基本的生产者 消费者模型 除了信号之外最简单的线程间消息形式 使用它们是为了让一个线程可以告诉另一个线程发生
  • 如何在多台机器上同步本地托管的 Greasemonkey 脚本?

    我希望能够在我使用的所有计算机上访问我的 Greasemonkey 脚本 我已经启用了 启用 Firefox 同步用户脚本 在 Greasemonkey 的设置对话框中进行设置 但后来我读到它仅同步外部托管的脚本 然后我尝试使用以下方法设置
  • 移动应用程序的后台数据同步

    我们正在数据库之上构建 API 和移动应用程序 该数据库的主表中有数十万条记录 我们的移动开发人员正在努力推动应用程序在本地数据库中预加载完整的表 然后提供一项服务 让手机可以将更改与数据库同步updated at column 虽然这肯定
  • store.sync() 回调

    store sync 有回调吗 我正在尝试这样做 store sync function alert 1 但它不起作用 这家店是当地的一家店 sync 没有 回调 为了实现此行为 您需要监听存储的写入事件 查看这个解决方案 https st
  • 在同一个应用程序上创建多个 PouchDB 数据库是否被认为是糟糕的设计?

    我有 Mysql 背景 现在使用 Pouchdb 我习惯了每个应用程序有 1 个数据库和许多表的 SQL 模式 在 pouchDB 中情况有所不同 因为数据不是存储在表中而是存储在文档中 因此 在我的应用程序中 我有一个任务数据库 使用以下
  • couchdb读取身份验证

    我如何处理 couchdb 中的读取身份验证 我知道角色可以在单独的数据库中定义 但我想在文档级别实现读取身份验证 我正在考虑使用node js 但它似乎不是一个优雅的解决方案 因为couchdb也有一个http服务器 我不想再添加一个 或
  • 可扩展性和弹性有什么区别?

    我听说很多人交替使用这两个术语 但在我看来 它们之间还是有区别的 可扩展性 的能力软件系统在其当前硬件资源上处理更大的工作负载 scale up 或当前和额外的硬件资源 向外扩展 应用程序服务不中断 弹性 的能力硬件层下面 通常是云基础设施
  • 内置方法读取couchdb文件大小?

    我正在尝试使用 couchdb 作为消息存储 并想报告消息大小 理想情况下 读取 size 属性会很好 最坏的情况是我可以检查整个文档 JSON 的字符串长度 我什至可能想使用尺寸作为查看键 您认为记录文档大小的最佳方法是什么 为什么您认为

随机推荐