Come Cassandra può fornire una soluzione ottimizzata per un controllo della gamma di sovrapposizione

StackOverflow https://stackoverflow.com//questions/25073634

  •  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
.

Ho una soluzione con una query di una gamma e una soluzione di controllo programmatica

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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top