求一个算法
craks 2004-10-20 02:08:52 有n个节点,保护一个服务,要求任何时刻必须有且仅有一个节点在运行着该服务,
解释:
有N个计算机,一个共享磁盘,他们要跑M个服务,但是每个服务只能跑在一个机器上,如果一个服务跑在一台服务器上时,该服务器就会在共享磁盘上做一个标记,表示服务在他上面已经运行了,如果一个服务在某一台机器上停止了,那么这N个服务器就会去抢着启动这个服务,问题就在这里了,注意各个服务器是相互独立的,所以本机的进程和其他机器是没有关系的,不要想用进程锁,互斥来做,而是通过一个好的数据结构(或说是数据描述),然后一个巧妙的算法来完成的,我现在已有一个了,想看看有没有高人能给一个更好的方案。