Come Cassandra può fornire una soluzione ottimizzata per un controllo della gamma di sovrapposizione
-
26-12-2019 - |
Domanda
Nel mio ingresso ho una chiave, un limite inferiore di range R1, un limite superiore della gamma R1.e alcuni dati. Devono inserire questi dati solo dopo aver assicurato che il mio intervallo di ingresso R1 non si sovrapponga a qualsiasi altro presente gamme già presenti in Cassandra.
Quindi con prima di ogni inserto Devo firmare una query di selezione
key | lowerbound | upperbound | data
------+------------+------------+------------------------------------------------------------------------
1024 | 1000 | 1100 | <blob>
1024 | 1500 | 1900 | <blob>
1024 | 2000 | 2900 | <blob>
1024 | 3000 | 3900 | <blob>
1024 | 4000 | 4500 | <blob>
Case1 Given Range R(S,E)=(1,999)
This is a positive case hence system should Insert the data
Case2: Given Range R(S,E)=(1001,1010)
this is a Negative case hence system should discard the data
.
Per favore fammi sapere se questo tipo di dichiarazione dei problemi ha una soluzione in Cassandra se sì può essere ottimizzato per ottenere una prestazione migliore
Soluzione
Non hai una soluzione migliore per il tuo problema: questo è l'unico modo.Forse nelle future transazioni leggere potrebbero aiutare anche per queste situazioni, ma ora l'unica soluzione che hai è leggi prima di scrivere.Un'altra considerazione: assicurarsi di evitare il doppio inserimento nella situazione di concorrenza (se ciò può accadere nella tua applicazione).
Cheers, Carlo