Sziasztok,
Tudnátok nekem tanácsot adni, ti miként szoktátok orvosolni az elosztott cache és a class változások problémáját? Adott egy JbossCache, synchronized replicated clusterrel, és az initial state transfer be van kapcsolva. Amikor megváltozik egy cachelt osztály (és vele a SerialVersionUID), akkor a cache elhasal mikor az első node-ra releaselek, hiszen a többi node-on még a régi verzió van cachelve. Hogy lehet downtime nélkül megoldani ezt a problémát?
Ami eszembe jutott, az eléggé macerás: előszőr local only cache módban releaselek minden node-ra, és mikor mindehol az új verzió van, akkor újraindítgatom a cacheket clusterezett módban.
Előre is köszönöm a válaszokat, minden ötletet szívesen látok.
Üdv
- 8366 megtekintés
Hozzászólások
up
- A hozzászóláshoz be kell jelentkezni
Nem tudod elválasztani a replicated cachek "tartományát"? Tehát a nem updalt nodeok csak egymás között replikálnak, míg az új nodeok is csak az újak között? Így szép lassan mindenki átkerül az új replicated cache használók közé.
- A hozzászóláshoz be kell jelentkezni
Koszi ez lesz a megoldas, ha olyan valtoztatast eszkozolok, akkor a jgroups udp kommunikaciot masik portra allitom az uj verziokban :D
--
zsebHUP-ot használok!
- A hozzászóláshoz be kell jelentkezni
Megpróbálhatod elkerülni a problémát, azzal hogy minden classnak adsz serialversionUID-et, és csak akkor módosítod, ha nem visszafelé kompatibilisen változik az osztály. Ha csak addicionális változásaid vannak akkor jó lehet. De figyelni kell, hogy logikailag se hasaljon el a program régi változata. Érdemes a frissítendő lábról leterelni a forgalmat, majd valami takarító mechanizmust berakni, ami kipucolja a régi példányokat, amíg a másik láb is frissül. De azt is megteheted, hogy verziózod a cache példányokat serialversionUID-al, hogy biztos ne legyen ütközés.
- A hozzászóláshoz be kell jelentkezni
Pont az a baj, ha valtozik, a uid benne van a classba maskulonben soha el sem idulna a replikacio, mert negy egy classloadert hasznalnak a nodeok.
--
zsebHUP-ot használok!
- A hozzászóláshoz be kell jelentkezni