Jakie są praktyczne ograniczenia dotyczące rodziny kolumn w Cassandrze?

10

W Cassandrze nie zaleca się posiadania więcej niż kilku tysięcy rodzin kolumn , na przykład 2000 dla argumentu. W przypadkach, w których trzeba utrwalić ponad 2000 rodzajów danych, jednym podejściem byłoby podzielenie wielu niepowiązanych typów danych na każdą rodzinę kolumn.

Na przykład pojedynczy CF może zawierać Zamówienia, Faktury i Klientów, pod warunkiem, że ich klucze wierszy są odrębne (np. Z prefiksem typu obiektu, tj. Klucze pojedynczego CF mogą zawierać zarówno Order|1234i Customer|1234). Drugi system CF może zawierać powiedzmy adresy, linie elementów i typy zamówień. Biorąc pod uwagę podstawową wykonalność tego podejścia, jakie są jego praktyczne ograniczenia? Na przykład, co byłoby nie tak z umieszczeniem wszystkich 10 000 typów obiektów w jednym CF? O ile wiem z wiki Cassandra , nie ma żadnych poważnych ograniczeń dotyczących rozmiaru CF.

Andrew Swan
źródło

Odpowiedzi:

6

Nie jestem fanem. Jest to równie dobry pomysł, jak utworzenie tabeli relacyjnej OrderOrCustomers z kolumnami zdefiniowanymi dla obu. Kara za silnik magazynujący jest nieco niższa w Cassandrze z powodu przechowywania rzadkich komórek pod maską, ale wciąż jest to zła praktyka.

To cię gryzie później, gdy chcesz zmapować / zmniejszyć swoje dane; każde zadanie będzie musiało zeskanować wszystkie dane i odfiltrować wiersze, które nie pasują do tego, co naprawdę Cię interesuje (np. klientów). I powodzenia w rozumieniu statystyk, które Cassandra śledzi na CF. („Czy to CF jest źródłem 80% mojej aplikacji, która czyta z powodu danych zamówienia? Lub z powodu sesji klienta, z którymi jest połączona? Lub pozostałych pięciu typów danych, w które wrzuciłem?”)

Jeśli absolutnie pozytywnie potrzebujesz dziesiątek lub setek tysięcy CF? Nawet wtedy wolę uruchomić Cassandrę bez alokacji areny, niż okaleczyć mój model danych w ten sposób.

jbellis
źródło
Dzięki za odpowiedź, Jonathan. Będę musiał przeczytać o przydziale areny, aby zrozumieć ostatnie zdanie. Czy korzystanie z alokacji aren jest opcją konfiguracji?
Andrew Swan
A jeśli alokacja aren jest obecnie wprowadzana do Cassandry, jak trudno byłoby cofnąć przydział aren rodzin rodzin, do których nie uzyskano dostępu w określonym czasie? Czy warto logować o tym bilet JIRA?
Andrew Swan,
1
Cassandra jest już mądra w kwestii spłukiwania w celu zmniejszenia presji pamięci. Problem dotyczy najgorszych scenariuszy, w których wszystko jest aktywne.
jbellis
W którym przypadku jest jedyne rozwiązanie, aby mieć drugi pierścień?
Andrew Swan