问题标签 [high-availability]
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.
sql-server - 高性能 wiki 模式
我正在使用 MS SQL Server 2005。
类 Wiki 系统的最佳架构是什么?用户编辑/修改提交,系统跟踪这些提交。
假设我们正在做一个简单的基于 wiki 的系统。将跟踪每个修订以及每个修订的视图和最新活动。在其他屏幕中,系统将列出“最新提交”和“观看次数最多”,并按标题搜索。
我当前的模式(我知道它不好)正在使用单个表。当我需要查看“最新提交”时,我按“LatestActivity”排序,按“DocumentTitle”分组,然后获取前 N 条记录。我认为很多分组(尤其是在 nvarchar 上分组)是个坏消息。为了列出观看次数最多的我也这样做:按视图排序,按名称分组,获取前 N 条记录。大多数时候,我也会做一个“WHERE DocumentName LIKE '%QUERY-HERE%'”。
我当前的模式是“版本 1”,见下文: 替代文本 http://www.anaimi.com/junk/schemaquestion.png
我认为这是不可接受的。因此,我正在尝试提出另一种/性能更高的设计。第 2 版听起来如何?在第二版中,我获得了对 WikiHeadId 进行分组的优势,这是一个数字——我假设对数字进行分组比 nvarchar 更好。
或者是版本 3 的极端情况,我不会进行分组,但有几个缺点,例如重复值、在代码中维护这些值等。
或者这种系统是否有更好/已知的模式?
谢谢。
(从 ServerFault 移出 - 我认为这是一个开发问题,而不是 IT 问题)
database - 是否可以在 PostgreSQL 中自动释放锁?
我正在测试配置为 JDBC Master/Slave 的 ActiveMQ 系统的容错性。在这个设置中,有一个 postgres 数据库和两个代理——一个是主代理,另一个是从代理。这种机制的工作方式是master在db中的一个表上取出一个排他锁。从站也尝试这样做并等待直到锁可用。如果 master 死了,锁应该被释放,slave 将接管。但是,如果 master 失去与数据库的网络连接,则永远不会释放锁,从而导致死锁情况。这里似乎需要一种方法来告诉 Postgres 如果在指定的时间段内没有更新,则自动释放锁。POSA 3 设计模式书将其称为租赁模式。是否有可能让 Postgres 做到这一点?如果不,
performance - 在高流量网站中进行规范化或非规范化
对于像 stackoverflow 这样的高流量网站,数据库设计和规范化的最佳实践是什么?
应该使用规范化数据库进行记录保存还是使用规范化技术或两者兼而有之?
设计一个规范化数据库作为记录保存的主数据库以减少冗余并同时维护另一种非规范化形式的数据库以进行快速搜索是否明智?
或者
是否应该对主数据库进行非规范化但在应用程序级别使用规范化视图以实现快速数据库操作?
或其他方法?
oracle - Where\如何存储分布式配置数据
我们产品的单个安装将其配置存储在一组数据库表中。
没有任何安装“知道”任何其他安装。
客户在地理位置相距遥远的不同数据中心安装我们产品的多个副本一直很常见。这意味着配置信息需要创建一次,然后导出到其他系统。然后修改一些配置以适应当地条件。例如更改 IP 地址等。这是一种笨重且容易出错的方法。
我们现在收到要求能够制定更无缝的全球数据共享策略,但仍允许本地修改。
如果不是本地修改位,那么我们可以使用 Oracle 的数据复制功能。
由于 HA 要求,在一个数据库中拥有所有配置不是一种选择。
有没有其他人遇到过这个问题,你有没有为此找到一个好的编程解决方案?知道任何可以描述部分或完整解决方案的好论文吗?
我们是基于 *nix 的,并且使用 Oracle。更改应该很快(一秒或两秒)复制到所有节点。
design-patterns - 可扩展性的设计模式(或技术)
您使用了哪些专门针对可伸缩性的设计模式或技术?
Flyweight模式等模式在我看来是Factory Pattern的特殊版本,用于提高可伸缩性或在内存或存储限制下工作。
你还用过什么其他的?(数据库的非规范化等)当高可用性或可伸缩性是您的主要目标时,您是否发现规则发生了变化?
可能的情况有:
- 与台式机或笔记本电脑相比,内存、处理能力和连接性更有限的移动设备
- 有限硬件上的高用户数(缓存策略等)
- 优化数据库架构以代替标准化设计(例如用于存储的 SharePoint 列换行)以提高效率
c# - C# 性能问题
qudry 是 - 以下两种方法中哪一种表现最好
目标 - 获得 Wrapper 类型的对象(定义如下)
标准 - 存储速度
不。记录 - 大约 1000 - 大约 2000,最多大约 6K
选择 - 动态创建对象或从字典中查找
执行速度 - 称为每秒 x 次
注意 - 我需要先提供工作代码然后进行优化,因此如果任何理论家可以提供幕后信息的一瞥,这将有助于在我可能通过 eod thu 进行实际性能测试之前
定义 -
方法一
方法二
sql-server - SQL Server 2008 高可用性最简单的解决方案?
我有一堆 SQL 服务器,我会定期对其进行维护(Windows 更新补丁等)。现在我想让数据库 24/7 在线,需要为 SQL server 实现高可用性解决方案之一。解决方案必须便宜且易于使用。
我在调整数据库客户端的连接字符串时没有问题,所以目前我正在研究在关闭合作伙伴实例以进行修补等时使用手动故障转移进行数据库镜像。
这是最好的做法,还是有其他不涉及设置故障转移集群的选项?
服务器使用完全冗余的存储解决方案进行虚拟化。
任何提示表示赞赏,在此先感谢!
design-patterns - 故障转移服务的挑战和最佳实践
有没有人知道运行 Windows 服务(在我的情况下,是在 .NET 中开发)的任何已建立的最佳实践,以便它们将(自动)正确地故障转移到另一台服务器,以实现高可用性目的?
我可以看到完成此操作的主要方法是在需要时启动辅助服务器(在这种情况下,需要有一些东西来监视另一台服务器),或者让两个服务一起运行(在这种情况下,它们需要同步它们的工作,所以他们不会尝试做同样的事情)。
这类问题有模式或模型吗?我知道确切的情况会产生很大的不同,但这似乎是一个相当普遍的问题。
谢谢
约翰
mysql - 如何在不中断网站的情况下刷新 MySQL 表?
每天一次,我需要使用 ftp 和 mysqlimport 从网上下载一个新文件来更新 MySQL 表。但是,我希望我的网站在 mysqlimport 操作期间保持平稳运行,这需要相当长的时间(这是一张大桌子)。什么是确保用户不等待导入完成的好方法?我正在考虑导入一个临时表,然后重命名它。这是个好计划吗?
windows - Windows 服务高可用性的任何模式?
情况
我有一个 Windows 服务,我想让它高度可用。
我有两台非集群服务器(Windows server 2003 标准版)。
问题是:
我必须有哪些选项以自动化方式使我的服务高度可用?
我可以想到非对称主从选项,它包括保持服务在两台机器上运行,它们之间有一个通信心跳,因此一个充当主机,当主机没有响应时,从机自动接管。
你知道实现这个的任何其他方法吗?
注意:请不要指向我这个答案,我没有/不会/不能有集群。