Comment Cassandra peut fournir une solution optimisée pour une vérification de la plage de chevauchement
-
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
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