【问题标题】:How to know if 2 processes have access to common filesystem如何知道 2 个进程是否可以访问公共文件系统
【发布时间】:2013-10-09 00:31:08
【问题描述】:

您将如何检测两个(在我的情况下为 java)进程是否可以访问至少一个共同的文件系统? (可能包括网络共享文件系统)。

假设它们可能在共享磁盘的两台机器上,在不同的机器上,或者只是在同一台机器上的两个进程。我希望我的进程具有正常的用户权限,所以假设我不能在所有文件系统的根目录中写入文件来跟踪这一点。

也许以某种方式使用临时目录。

【问题讨论】:

  • 他们是否需要告诉对方他们可以访问文件系统?
  • 他们需要唯一地识别文件系统,以便他们知道他们是否可以通过文件系统传递文件,或者他们必须通过网络发送文件。
  • 进程是否可以通过某种方式相互通信?
  • 是的,它们通信(在我的例子中是通过 JMS 消息传递)

标签: java networking filesystems distributed identification


【解决方案1】:

不要。如果它们在不同的机器上,通过文件系统传递数据将比简单的套接字连接慢很多。如果它们在同一个系统上,则套接字连接将不涉及网络物理层,并且可能也比使用磁盘更快。

使用磁盘并且必须管理两个传输只是无缘无故地引入了复杂性。

【讨论】:

  • 如果数据在同一个文件系统上,我不会复制它,因为只需要读取访问权限,我希望 process1 说“嘿,文件在 /tmp/foo. bar” 和 process2 “好的,如果我们共享同一个磁盘,我将从磁盘读取它”。 (假设文件大 100 Gb 左右)
猜你喜欢
  • 1970-01-01
  • 2011-01-30
  • 2022-06-20
  • 1970-01-01
  • 2018-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多