Sans test, parce que je suis coincé dans un train et à court de batterie ...Hazelcast IMap - Mises à jour simultanées à la même clé, valeur différente
Je dois déterminer si oui ou non les mises à jour simultanées imap Hazelcast sont thread safe mettant à jour la même clé mais des valeurs différentes de cette clé.
Par exemple:
Disons que j'ai 2 fils différentes mise à jour de la même clé imap ...
Pour toutes fins utiles, cette carte se présente comme suit:
key: {value1: 1, value2: 2}
Un fil dit,
"I am updating value1 to 3"
l'autre fil dit (en même temps)
"I am updating value2 to 4".
Comment Hazelcast gère-t-il cela?
Le résultat final ressemblera-t-il à ce qui suit?
key: {value1: 3, value2: 4}
Oui, donc dans mon exemple de la clé « valeur » est en fait une carte. Vous dites qu'une partition est mono-thread. Cela signifie-t-il que Hazelcast verrouillera la clé pour chaque mise à jour de sa valeur? Je veux m'assurer que je n'ai pas besoin de verrouiller la clé moi-même. J'ai différents processus qui mettront à jour différentes variables dans la carte de valeur simultanément. Ils ne mettront jamais à jour la même variable, mais ils mettront à jour la même clé. –
Pas besoin de verrouiller. Chaque mise à jour de valeur pour une seule touche est à un seul thread. (Peu importe quelle est la valeur réelle). –
comment éviter d'avoir à verrouiller si deux threads tentent de créer la clé en même temps? Dans ce cas, je voudrais que le second thread utilise ma logique de mise à jour au lieu de ma logique de création. –