Hi Renato, Your original statement is not entirely correct, and the video Sebastian is suggesting can probably help make it clearer. It's not that Cassandra favors the AP side of CAP. It more that Cassandra allows you to tune what level of consistency you require. Cassandra does force you to reckon with the impact of the tunablility - it's not known to be possible to beat the CAP theorem yet, despite some occasional rumblings to the contrary.
If you want to optimize for consistency, you can use CL_ALL on both write and read, but you'll sacrifice availability when a node fails which has a required replica of your data. If you want to optimize for performance and fault tolerance, you can read and write at CL_ONE, in which case you won't always have consistency. In general, if you write at QUORUM and read at ONE (or LOCAL variants thereof if you have multiple data centers), your apps will work well despite the theoretical consistency issues. If you need better consistency guarantees, there's always the world of SQL and distributed transactions... Steve On Thu, Oct 8, 2015 at 5:04 PM, Renato Perini <renato.per...@gmail.com> wrote: > I'm asking because the DataStax DS-201 course states that C* is an ideal > fit for messaging applications. > What I'm not understanding? :-) > Messaging applications generally must be totally consistent, expecially > real-time ones. > > > Il 09/10/2015 01:34, Jonathan Haddad ha scritto: > > Your options are > > 1. Read & write at quorum > 2. Recognize that, in general, if you've got a real need for Cassandra, > your data is out of date almost immediately after you've read it no matter > what guarantee your DB gives you, so you might as well just forget about > ever getting the "right" answer because you probably can't even define what > that is. > > On Thu, Oct 8, 2015 at 4:17 PM Renato Perini < <renato.per...@gmail.com> > renato.per...@gmail.com> wrote: > >> How the two things can fit together? >> Cassandra endorses the AP side of the CAP theorem. So how Cassandra can >> deliver realtime consistent data? >> AFAIK, choosing a consistency level equals to ALL can be a huge >> performance hit for C*, so, please, explain me why I should choose C* >> for realtime data >> that should be consistent across reads after the data has been written. >> >> Thank you. >> >> > -- Steve Robenalt Software Architect sroben...@highwire.org <bza...@highwire.org> (office/cell): 916-505-1785 HighWire Press, Inc. 425 Broadway St, Redwood City, CA 94063 www.highwire.org Technology for Scholarly Communication