etolabo / kumofs

kumofs is a scalable and highly available distributed key-value store.
http://kumofs.sourceforge.net/
Other
301 stars 16 forks source link

m_stream_core を accept用と connect用に分離 #13

Open tmtm opened 13 years ago

tmtm commented 13 years ago

kumo-server に -M を指定した状態で kumoctl full-replace すると Copying のままになってしまう現象が発生します。 accept() と connect() が同時に発生すると stream_connected() が呼ばれないようです。 kumoctl full-replace 時は自ノードに対しても replace を行うため、connect() と accept() がほぼ同時に行われるため発生しやすいようです。

ですが、理屈上は他ノードとの通信においても、accept() と connect() が同時に行われると同じ現象が発生すると思われます。

m_stream_core を connect用と accept用にわけることで回避できたみたいです。