Sembra che tu non possa fare transazioni in riak. Come si garantisce che i dati siano corretti?Garantire la correttezza in riak?
Diciamo che vogliamo inserire un commento. In Redis Farei
commentId=incr commentCount
multi
SET comment_post:commentId postId //for later use when we flag comments. We'll need to know where in the db it is
RPUSH post_comment:postId binaryValue //contains commentId in it + comment body
exec
in SQL mi piacerebbe inserire una nuova riga in una tabella commento con il testo e post id. Entrambi usano più di una dichiarazione. Come posso inserire il corpo del commento e associare il post al commento in riak in quanto non ha transazioni?
Un altro problema è se modifico un post. Come aggiorno il post e aggiorno l'elenco di tag del post usando quel tag
Non so molto di riak come ho dato una breve occhiata a questo. Quando conosco le nozioni di base o più le inserirò lì ma non ora. Voglio avere un'idea generale su cosa è adatto per come ho scoperto redis è male ad essere un db dal momento che deve essere in grado di montare tutto in memoria. Non so nulla di 'Vector Clock 'ma hai appena detto che posso avere più valori per una chiave che suona strana ma farò finta che riak sia abbastanza efficiente. Quindi riak è progettato per avere tutta la logica di coerenza fatta dall'app? Questo è interessante –
Ho fatto un po 'di lettura. Sono un po 'confuso in quanto l'esempio mostrava che allow_mult era impostato su true. Quindi cosa succede se ho qualcosa che ha un conflitto di scrittura ed è falso ... Quindi sembra che tutto abbia un vclock in esso? Sembra che tu abbia reso disponibile la scrittura alta. Posso vedere l'uso e il compromesso lì. Posso immaginare come risolvere e correggere le cose per i miei bisogni ma non posso immaginare/pensare a cosa succede se non ho impostato multis ed è falso? Si sovrascriverà l'altro? Fallirà? Posso vedere come gestire le cose se fallisce (ma dovrò annullare altre scritture) –
ma non riesco a vedere cosa succede se non riesce e un lavoro è finito mentre l'altro lavoro è iniziato e finito un po 'dopo e ha sovrascritto i dati . –