进行机器间锁定有哪些好方法?

2024-02-10

我们的服务器集群由 20 台机器组成,每台机器有 10 个 5 个线程的 pid。我们想要某种方法来防止任何机器上任何 pid 中的任何两个线程同时修改同一个对象。

我们的代码是用 Python 编写的并在 Linux 上运行(如果这有助于缩小范围)。

另外,两个这样的线程想要执行此操作的情况非常罕见,因此我们更希望能够优化“只有一个线程需要此对象”的情况,使其速度非常快,即使这意味着“一个线程已锁定”这个对象和另一个对象需要它”的情况不太好。

有哪些最佳实践?


如果你想跨机器同步,你需要一个分布式锁管理器 http://en.wikipedia.org/wiki/Distributed_lock_manager.

我快速谷歌搜索了一下并想出了:堆栈溢出 https://stackoverflow.com/questions/1059580/distributed-lock-service。 不幸的是他们只建议 Java 版本,但这是一个开始。

如果您尝试同步对文件的访问:您的文件系统应该已经有一些锁定服务。如果没有考虑改变它。

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

进行机器间锁定有哪些好方法? 的相关文章

  • 在 Python distutils 中从 setup.py 查找脚本目录的正确方法?

    我正在分发一个具有以下结构的包 mymodule mymodule init py mymodule code py scripts script1 py scripts script2 py The mymodule的子目录mymodul
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • 在Python中调整图像大小

    我有一张尺寸为 288 352 的图像 我想将其大小调整为 160 240 我尝试了以下代码 im imread abc png img im resize 160 240 Image ANTIALIAS 但它给出了一个错误TypeErro
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 任务并行库周围是否有一个接口包装器,以便我可以将其交换用于单元测试?

    I asked 这个问题 https stackoverflow com questions 3362734 unit testing concurrent software what do you do不久以前 我现在知道这是一个坏主意
  • Python urllib.request.urlopen:AttributeError:'bytes'对象没有属性'data'

    我正在使用 Python 3 并尝试连接到dstk 我收到错误urllib包裹 我对SO进行了很多研究 但找不到与这个问题类似的东西 api url self api base street2coordinates api body jso
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • 如何设置 Celery 来调用自定义工作器初始化?

    我对 Celery 很陌生 我一直在尝试设置一个具有 2 个独立队列的项目 一个用于计算 另一个用于执行 到目前为止 一切都很好 我的问题是执行队列中的工作人员需要实例化一个具有唯一 object id 的类 每个工作人员一个 id 我想知
  • 查找哪个程序运行另一个程序

    我有一个 NAS 运行在 Redhat Linux 的有限版本上 我按照指示破解了它 这样我就可以访问 shell 这很有帮助 我还做了一些修改 其他人也做过修改 除了一个问题之外 它们似乎都工作得很好 不知何故 每隔 22 天 系统就会关
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • 在 Pandas 中使用正则表达式的多种模式

    我是Python编程的初学者 我正在探索正则表达式 我正在尝试从 描述 列中提取一个单词 数据库名称 我无法给出多个正则表达式模式 请参阅下面的描述和代码 描述 Summary AD1 Low free DATA space in data
  • C++ 异步线程同时运行

    我是 C 11 中线程的新手 我有两个线程 我想让它们同时启动 我可以想到两种方法 如下 然而 似乎它们都没有按照我的预期工作 他们在启动另一个线程之前启动一个线程 任何提示将不胜感激 另一个问题是我正在研究线程队列 所以我会有两个消费者和
  • 如何确保应用程序在 Linux 上持续运行

    我试图确保脚本在开发服务器上保持运行 它会整理统计数据并提供网络服务 因此它应该会持续存在 但一天中有几次 它会因未知原因而消失 当我们注意到时 我们只需再次启动它 但这很麻烦 并且某些用户没有权限 或专有技术 来启动它 作为一名程序员 我
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x
  • Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示

    这是出现主要错误的代码 与我的本地 IP 的绑定将起作用 s bind 192 168 1 4 port 与我的公共 IP 的绑定失败并出现以下错误 s bind 99 99 99 99 port WinError 10049 请求的地址在
  • 列表值的意外更改

    这是我的课 class variable object def init self name name alias parents values table name of the variable self name 这是有问题的函数 f

随机推荐

  • libiconv 和 MacOS

    我正在尝试在 Mac OS X Lion 中编译 GCC 4 5 1 我的 libiconv 有问题 首先 它抱怨架构 x86 64 的未定义符号 它们是 iconv iconv open 和 iconv close 我发现 MacPort
  • 在 Android 库项目中包含 AAR 依赖项

    在我的 Android Studio Gradle 项目中 我使用多个库 而一个库应使用本地 AAR 文件作为依赖项 我使用流行的解决方案将 AAR 文件作为依赖项包含到我的库项目中 flatDir dirs libs compile na
  • Phusion 错误:未定义的方法“有?”对于 Sass::Util:模块

    加载网页时 我收到 Phusion 发出的以下错误 There was an error while trying to load the gem compass rails Gem Load Error is undefined meth
  • Cassandra - 具有相同时间戳的混合列更新的冲突解决方案

    我想知道在具有相同客户端时间戳的两次更新的情况下哪个写入获胜 初始数据 KeyA col1 val AA col2 val BB col3 val CC 客户端1发送更新 KeyA col1 val C1 col2 val B1 客户端2发
  • 涉及私有继承的 C++ 编译器错误

    有人可以向我解释以下编译器错误吗 struct B template
  • 更新生产 ASP.NET 网站 bin 文件夹中的 DLL

    我想更新生产 Web 应用程序中的类库 单个 DLL 文件 该网络应用程序已预编译 已发布 我在 StackOverflow 上读到了一个答案 抱歉 似乎找不到它了 因为搜索功能不能很好地工作 这让我相信我可以将新的 DLL 粘贴到 bin
  • 如何对 pandas 中的两个字段进行分组?

    给定以下输入 目标是使用 Avg 和 Sum 函数按每个日期的小时对值进行分组 按小时分组的解决方案是here https stackoverflow com questions 34941903 how group by sum and
  • 无法使用新的 Vagrant 安装 - 连接到 libvirt 时出错

    无论我是否有 Vagrant 文件 或者如果该文件不存在 我都会创建自己的文件vagrant init 顺便说一句 它有效 尝试执行此操作时出现错误 vagrant up 错误是 1 from usr share rubygems inte
  • 当 ObservableCollection 值更新时,WPF Datagrid 绑定不更新

    我有一个 WPF DataGrid 绑定到一个名为 Personnel 的 ObservableCollection 我在 DataGrid 中有一个可编辑的 DataGridCheckBoxColumn CheckBoxColumn 绑定
  • cfspreadsheet 以 d 结尾的字母数字值

  • Laravel 5 将视图和模型保留在资源视图目录中的单独文件夹中

    我已经搜索了很多我的要求 但没有找到适合我的工作解决方案 我正在使用 laravel 5 创建一个 Web 应用程序 我想将与管理员访问权限相关的所有控制器保留到控制器文件夹中的管理子文件夹中 为此我找到了很好的答案Laravel 控制器子
  • 如何在 YAML 中指定范围?

    我可以表达 第三页是扉页 in YAML title 3 那么下面的呢 第 10 至 15 页包含第 1 章 一种方法是 chapter 1 10 11 12 13 14 15 我更喜欢这里的范围 YAML中有类似的东西吗 chapter
  • 如何在 Play 中的静态方法中使用 play.cache.CacheApi!框架2.4.2

    我有一个 play 框架应用程序 我已将其迁移到 play 框架 2 4 2 上运行 它为 javascript html 前端提供 RESTful API 现在我在引入缓存时遇到了一些问题 LibraryController 将 JSON
  • Power Bi 中具有多轴的重叠条形图

    我想在 PowerBi 中有一个具有多个轴的重叠条形图 我有一个来自 Excel 的示例 如果可能的话 我希望在 PowerBi 中重新创建该示例 这里是例子 这在 PowerBi 中可能吗 也许通过使用我不知道的自定义视觉效果 提前致谢
  • AudioPlayer iOS 和 m4a

    我制作了一个使用 AVAudioPlayer 播放音乐的应用程序 它上传或下载歌曲 将它们写入核心数据 然后在选择时调用它们来播放 我测试过的所有 15 首歌曲都可以在 iPhone 音乐客户端和我自己的电脑上正常运行 但是 其中三个无法在
  • 动态复选框创建

    我想在我的 Android 应用程序运行时动态创建一组复选框 当应用程序运行时 除了按钮之外什么都不显示 我忘记了什么 提前致谢 public class DataNotificationSurvey extends Activity pr
  • 使用 PHP 在 CSV 文件中用双引号将每个字段括起来?

    我需要使用 PHP 将所有带有双引号的字符串和数字放入 CSV 文件中 如何从 PHP 创建 CSV 文件 并将所有数据放在双引号内 我正在使用此代码生成 CSV 我正在使用 codeigniter 框架 array array array
  • jQuery 切换 Cookie 支持

    我正在尝试将 jQuery Cookie 插件实现到我的幻灯片切换脚本中 但到目前为止尚未成功 这是我的代码 没有任何 cookie 实现 jQuery document ready function a toggle click func
  • Eclipse 缩进指南

    我正在尝试从以下网页安装 eclipse 的缩进指南插件 http sschaef github io IndentGuide http sschaef github io IndentGuide 我之前没有在 eclipse 中安装过插件
  • 进行机器间锁定有哪些好方法?

    我们的服务器集群由 20 台机器组成 每台机器有 10 个 5 个线程的 pid 我们想要某种方法来防止任何机器上任何 pid 中的任何两个线程同时修改同一个对象 我们的代码是用 Python 编写的并在 Linux 上运行 如果这有助于缩