Comment Cassandra peut fournir une solution optimisée pour une vérification de la plage de chevauchement

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

  •  26-12-2019
  •  | 
  •  

Question

Dans mon entrée, j'ai une clé, une limite inférieure de la plage R1, une limite supérieure de la plage R1.et certaines données.J'ai besoin d'insérer ces données uniquement après avoir veillé à ce que ma plage d'entrée R1 ne devrait pas chevaucher d'autres gammes présentes déjà présentes dans Cassandra.

donc avec avant chaque insert, je dois déclencher une requête SELECT

   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

J'ai une solution avec une requête d'une plage et une solution de contrôle programmatique

S'il vous plaît laissez-moi savoir si ce type d'énoncé de problème a une solution à Cassandra si oui peut-il être optimisé pour obtenir une meilleure performance

Était-ce utile?

La solution

Vous n'avez pas de meilleure solution pour votre problème: c'est le seul moyen.Peut-être dans les futures transactions légères pourraient également aider à ces situations, mais maintenant la seule solution que vous avez est de lire avant d'écrire.Une autre considération: assurez-vous d'éviter une double insertion dans la situation de la concurrence (si cela peut arriver dans votre demande).

acclamations, Carlo

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top