问题标签 [master-slave]

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 投票
2 回答
1088 浏览

mysql - 使用 MYSQL 复制加速 Schema 更改和表优化

我听说很多人使用主从安排有助于缩短更改模式时所花费的时间,方法是使用复制设置新的临时主节点,然后停止重定位,然后在重新开始之前交换角色。我在堆栈溢出中找到了一个示例(如下)。

  1. 设置从站
  2. 停止复制。
  3. 在奴隶上进行 ALTER
  4. 让奴隶赶上主人
  5. 交换主机和从机,因此从机成为具有更改结构和最小停机时间的生产服务器

这一切都很好,但是,我不明白第 4 步,我不清楚。

我想知道是否有人可以更清楚地解释程序。

0 投票
1 回答
860 浏览

mysql - MySQL 复制和主服务器崩溃恢复

设想:

我们有一个 mySQL 主数据库 [30 GB],有 5 个从属 [部分] 用于不同目的。最后一天innodb崩溃了。自动崩溃恢复不起作用,因为服务器再次崩溃的每个写入操作。所以我用 innodb_force_recovery 4 启动服务器并转储整个数据库,然后恢复到新的数据库服务器中。整个过程花了我5个多小时,因为数据恢复很慢。

问题:

现在我正在寻找一些恢复时间最快的解决方案。我可以让另一台服务器与主服务器进行复制,但不确定在主服务器崩溃的情况下如何替换它来代替主服务器。

非常感谢您的时间和帮助。

0 投票
1 回答
3037 浏览

database - 在 master_slave 模式下配置 pgpool 无法针对后端进行身份验证

我正在尝试在 2 个以上的 Web 服务器上运行 pgpool,这些服务器也有一个 rails 应用程序等。这个想法是通过 slony 或流进行复制,并通过 pgpool 进行故障转移。将查询平衡到 replca 和 Web 服务器连接池也很好,但重要的是让 master_slave 和故障转移正常工作。

我从 Ubuntu 10.04 LTS 上的 apt 包安装了 pgpool 版本 3.4.1(lainihi)。db01 是 master 并通过 slony 复制到 db02。我的 pgpool.conf 看起来像这样:

它现在在“原始模式”下工作,我想知道我是否会从 master_slave 获得很多?无论如何,如果我取消注释 master_slave=true 我在连接时会得到以下信息:

在 pgpool 日志中,我看到以下内容

似乎 pgpool 无法通过后端进行身份验证,但我可以使用 psql 从每个客户端连接到每个后端服务器就好了,正如我所说 pgpool 在“原始模式”下工作。

任何帮助配置 pgpool 将不胜感激。它看起来是一个很好的解决方案,但设置它比预期的要困难。

TIA,

丹尼斯

0 投票
3 回答
13510 浏览

algorithm - 领袖选举算法

我正在探索集群计算中的各种架构。一些流行的是:

  1. 主从。
  2. RPC
  3. ...

在主从中,通常的方法是将一台机器设置为主机,并将一堆机器设置为由主机控制的从机。这里的一个特殊算法让我感兴趣。它被称为Leader-Election Algo,它在选择哪些机器将成为master时具有一定的随机性。

我的问题是 - 为什么有人想以这种方式选择主机?与手动选择机器作为主机相比,这种方法有什么优势?

0 投票
1 回答
3076 浏览

parallel-processing - 在 MPI 中使用非阻塞发送和阻塞接收?

我正在尝试实施主从计划。

我的主人有工人要做的工作。工人每完成一项工作,他就向主人要求一份新工作,主人把它发给他。工人们正在计算最小路径。当一个worker找到一个比他得到的全局最小值更好的最小值时,他会将它发送给包括master在内的每个人。

我计划让工人和主人使用MPI_ISEND. 另外,我认为接收应该是阻塞的。当没有人请求工作或更新最佳结果时,master 无事可做,因此他应该阻塞等待接收。此外,每个工人都应该在完成工作后等待接收以获取新的。

不过,我不确定使用非阻塞异步发送和阻塞同步接收的影响

我认为另一种方法是使用MPI_IPROBE,但我不确定这会给我带来任何优化。

请帮助我了解我所做的是否正确。这是正确的解决方案吗?

0 投票
1 回答
703 浏览

c - 使用带有 MPI 的 master-worker 时,哪个大小的块将产生最佳性能?

我正在使用 MPI 来解析一个试图解决 Metric TSP 问题的程序。我有P个处理器,N个城市要通过。

每个线程都向 master 请求工作,接收一个块——这是一个他应该检查并计算其中最小值的排列范围。我通过提前修剪不良路线来优化这一点。

共有 (N-1) 个!计算路径。每个工人都会得到一个带有数字的块,该数字代表他必须检查的第一条路线,也是最后一条路线。此外,大师向他发送已知的最近最好的结果,因此可以在其遗骸上预先设定一些下限,从而轻松应对糟糕的路线。

每次工作人员找到比全局更好的结果时,他都会异步将其发送给所有其他工作人员和主服务器。

我不是在寻找更好的解决方案——我只是想确定哪个块大小是最好的。

到目前为止,我发现的最佳块大小是 (n!)/(n/2)!,但它并没有产生那么好的结果。

请帮助我了解哪个块大小是最好的。我正在尝试在计算量和通信量之间取得平衡,谢谢

0 投票
3 回答
902 浏览

mysql - 如何检查两个大表是否相同?

我有两台服务器,一台作为主机运行,另一台作为从机运行。我想检查天气,两个表都有相同的数据。我如何检查和确认这一点?该表有超过 2300 万行。

作为第一步,我尝试运行 CHECKSUM TABLE tbl;

但我在 60 秒后收到此错误: ERROR 2013 (HY000): Lost connection to MySQL server during query

请指教。

0 投票
1 回答
410 浏览

master-slave - 主从模式:工作分配

是否有任何标准算法可以在主/从模式中的从属之间分配工作?我现在有主人通过队列在奴隶之间分配工作。但是如果我必须将工作优先级放入图片中,可以使用什么样的数据结构/算法?

寻找一些建议。

提前致谢,

比贝克·达瓦迪

0 投票
2 回答
1354 浏览

io - PIC 16f627 使用一个引脚用于输入和输出

我正在尝试将两个 PIC 16f627 芯片(使用 PICC-Lite 编程)与一个 I/O 引脚(RA2,在已知点改变方向)和一个由其中一个芯片驱动的 CLK 引脚连接在一起。

我最初设置了它,所以有一个主人和一个奴隶。主机将写入一个 8 位“命令”,I/O 引脚的 TRIS 位将被翻转,从机将以 16 位“应答”响应。

我已经进行了(临时的,大的)延迟,以确保没有时间问题。

写/读命令工作正常,两端翻转状态(TRISA)。然而,此时,当主机从之前写入的引脚读取时,即使引脚物理上为 1,它也始终读取 0!

据我所知,TRISA设置正确(=如果输入则设置为位),CMCON(=7)也是如此,我相信CONFIG字;两个芯片都是一样的(嗯,倒置),输入在从机上工作……我还试图确保两个芯片的 TRISA 永远不会同时为 0。

我试过的: - 改变从机,而不是试图发回数据,它只是在很长的时间间隔内切换它的输出引脚的值。这可以在输出线上看到,但在输入引脚的值上看不到。- 只是将状态从输入引脚传递到不同的输出引脚(输出保持为零;虚拟放置表明该引脚上的一般输出有效) - 将 PORTA 和 TRISA 的值写入 LCD - TRISA 正确,但 PORTA 为 0 (即使连接到引脚的线为高电平) - 将 I/O 线连接到 LED 表明它正在改变,但端口上的输入值没有 - 连接电压表显示合适的电压(等于 V+ ) - 我尝试将 Master 换成替代品(它认为它可能遭受了一些物理损坏),尽管这没有任何区别 - 我'

我正在用头撞墙。任何提示或想法将不胜感激!我可能不得不依靠使用两个引脚(尽管我有点希望我能够在某个时候通过一条共享 I/O 线插入多个从站……)

0 投票
1 回答
1659 浏览

mysql - mysql 代理 r/w 复制和临时表

我正在 MySQL5.1 上进行主/从复制,并使用 mysql 代理 0.8.x 进行读写拆分

它工作正常,除了临时表。MySQL 抛出一个错误,即临时表不存在。

这是主服务器的查询日志:

这是从站的查询日志:

这是mysql错误消息:

如果我直接查询master(将php db连接更改为master而不是mysql-proxy),它可以正常工作。

我正在使用这个 mysql 代理配置:

有人知道如何解决这个问题吗?感谢您的任何帮助!

// 第二天编辑

我相信我知道为什么这不起作用:

MySQL Proxy 将 create tmp 和 insert select 语句发送到 master,master 将命令正确地复制到从站,然后在下一步中将 select 发送到从站。不幸的是,在 MySQL 中,tmp 表仅对发出它的连接有效,因此复制创建的 tmp 表对于从属服务器上的 mysql 代理发出的第二个连接无效。

我现在正试图通过更改我的应用程序并将与 tmp 表的连接直接发送到主服务器来解决这个问题。

如果您认为有更好的解决方案,请告诉我。