喂 我想分享的少量数据(< 1K)之间的python和进程。数据是物理pc/104IO数据的变化迅速和经常(24x7x365).将有一个单一的"服务"书面数据和多个客户阅读部分。该系统将运行在使用快速存储器(CF卡),而不是一个硬盘驱动器,所以我担心穿的闪存与基于文件的方案。我也喜欢使用低功率(处理时间),因为我们都是100%的太阳能供电。

  • 这是一个有效的担心吗?我们可以改变的CF卡的一个SSD。
  • 不会改变的一个值使用mmap物理数据写入磁盘或者这是一个虚拟的文件?
  • 我们将运行在Debian所以也许POSIX IPC python模块是最好的解决方案。有任何人使用吗?
  • 有没有人尝试过的 蟒蛇的对象分享(辣妹) 模块?它看起来很有希望的第一眼,但它是在"阿尔法"似乎并不是积极的开发。

谢谢你

更新:我们缓慢下来的最高数据的更新率约为10赫兹,但更典型的1赫兹。客户将只是通知时,一个价值变化,而不是在一个不断更新率。我们已经去了一个多个服务器/多个客户模型,其中的每一个服务器,专门从事某些类型的器械的或功能。因为它原,大部分的编程将是通过Java程序员,我们最终采用书RPC over TCP。服务器将被书写在Java但我还是希望写的主要客户在Python和我调查星RPC实现。

有帮助吗?

解决方案

替代写数据文件服务器中的过程可能是直接写给客户的过程:

使用UNIX domain sockets(或TCP/IP socket如果客户运行在不同的机器)连接每一个客户服务器和服务器编写入这些座。根据你的特别处理的模型,选择一个客户/socket可以通过服务器(例如循环)或由客户表明他们准备好更多。

其他提示

创建一个ramfs分区和写。(你可以使用tmpfs,但不同tmpfs,ramfs是不是换到盘)。然而,如ramfs没有一个尺寸限制,必须照顾你不要跑出来的存;因为你只能写一个微小的比特数据的存在,它不应该是一个问题。

这样,数据永远不会被写入磁盘(注:你会失去他们如果电力失败)。

也见ramfs文档.

根据 维基百科条约mmap系统通话, 、存储器的映射文件的内容 写回到磁盘 当更新。

你有没有看着多处理模块(在图书馆标准),特别是分享国家之间的进程?

Ramfs如Piskvor也似乎是一个很好的解决方案-特别是当没有所有进程都写在蟒蛇。

当上运行的闪光系统,确保文件系统设计适当,以最大限度地生活的快速存储器(穿平). JFFS 而且,我相信,其他人现在能够这样做有效。如果你使用这种系统,你不应该过分关注有关使用闪光灯,但是当然如果你正在写的恒定流的数据你想要避免这样做闪光灯。

使用RAM文件系统是一个好主意。更好的是的是避免文件系统完全如果系统的设计将让你。为此你更辣妹。我从来没有尝试过,但我们已经找到了 ("蟒蛇的远程的对象")是一个优雅的和有效的解决方案在一些类似的案件。

当然还有的标准图书馆 multiprocessing 模块,它承担着某些相似之处方面如何相通之间的进程。我开始有任何新的发展在这一领域,去其他地方仅如果它未能成功。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top