Skip to content
DataMiner DoJo

More results...

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Search in posts
Search in pages
Log in
Menu
  • Blog
  • Questions
  • Learning
    • E-learning Courses
    • Open Classroom Training
    • Certification
      • DataMiner Fundamentals
      • DataMiner Configurator
      • DataMiner Automation
      • Scripts & Connectors Developer: HTTP Basics
      • Scripts & Connectors Developer: SNMP Basics
      • Visual Overview – Level 1
      • Verify a certificate
    • Tutorials
    • Video Library
    • Books We Like
    • >> Go to DataMiner Docs
  • Expert Center
    • Solutions & Use Cases
      • Solutions
      • Use Case Library
    • Markets & Industries
      • Media production
      • Government & defense
      • Content distribution
      • Service providers
      • Partners
      • OSS/BSS
    • DataMiner Insights
      • Security
      • Integration Studio
      • System Architecture
      • DataMiner Releases & Updates
      • DataMiner Apps
    • Agile
      • Agile Webspace
      • Everything Agile
        • The Agile Manifesto
        • Best Practices
        • Retro Recipes
      • Methodologies
        • The Scrum Framework
        • Kanban
        • Extreme Programming
      • Roles
        • The Product Owner
        • The Agile Coach
        • The Quality & UX Coach (QX)
    • DataMiner DevOps Professional Program
  • Downloads
  • More
    • Feature Suggestions
    • Climb the leaderboard!
    • Swag Shop
    • Contact
      • General Inquiries
      • DataMiner DevOps Support
      • Commercial Requests
    • Global Feedback Survey
  • PARTNERS
    • All Partners
    • Technology Partners
    • Strategic Partner Program
    • Deal Registration
  • >> Go to dataminer.services

Logger Table Configuration

Solved1.08K views14th January 2022Cassandra logger table protocol
3
Joey Vanhalst [SLC] [DevOps Advocate]1.80K 13th January 2022 0 Comments

Hi,

I'm implementing a logger table in a protocol that will be used to store a configuration object linked to a specific booking. A logger table is used in this case because there are a huge amount of bookings on the system and this configuration object can be quite big.

How I should design this logger table? I have read through the explanation in the DataMiner Development Library, but still have a couple of doubts:

Clustering

"In case the logger table persists in Cassandra, also provide a Database.CQLOptions.Clustering tag. From DataMiner version 9.0.0 onwards, if the Param.Database.CQLOptions.Clustering tag is used, the primary key (i.e. index) set in the ArrayOptions tag will be replaced by the primary key defined in the Clustering tag."

In my case, this configuration object will always be linked to the primary key (id of the booking), does this mean I don't have to configure a Clustering tag? The logger table in my case will persist in Cassandra so if it would be required, I'm not sure exactly what to configure.

Partitioning

"Partitioning in Cassandra is supported from DataMiner version 9.0.0 onwards. If ColumnDefinition is set to "DATETIME" and the Partition tag is set, Cassandra will use a TTL with the specified time."

The configuration objects can be updated multiple times until the booking has finished. After that, we should still have the last version of this object available to allow duplicating passed bookings. What would the best partitioning configuration be for this case?

Thanks!

Joey Vanhalst [SLC] [DevOps Advocate] Selected answer as best 14th January 2022

1 Answer

  • Active
  • Voted
  • Newest
  • Oldest
1
Thomas Deweer [SLC]286 Posted 13th January 2022 2 Comments

Hello,

How I would consider interpreting these 2 options:
Clustering: How do I request my data? (partitioning keys should always be given to request data and clustering keys are optional). In your case, you will always request using a booking ID, so just having that set as a primary key should make it the partitioning key and you don't have to bother with clustering.

Partitioning: If i understood correctly, you don't want documents to be automatically deleted. So I believe that if you don't set a partition tag, we will not perform any TTL actions on this so the data will be in there untill you call DeleteRow (I believe that's the name of the call that can be used).

I hope this helps,
Kind regards,

Joey Vanhalst [SLC] [DevOps Advocate] Selected answer as best 14th January 2022
Laurens Moutton [SLC] [DevOps Enabler] commented 13th January 2022

If the partitioning key is set to the booking id then won’t this cause a high cardinality resulting in a slow lookup in the future when there are a lot of records?
According to the Datastax guidelines, suppose that there’s a table with millions of users:
-Avoid very low cardinality: when the partition key is set to gender (male/female) then you have wide partitions for male & female, which is bad
-Avoid very high cardinality: when the partition key is set to user e-mail then when looking up the data it will by chance find it on the first node, but with bad luck, or when not existing, it will need to go through all nodes.

It’s kind of like looking up an address (suppose that every street in a country would be unique): if the partitioning key is on the country then it can find that partitioning key easily, but it needs to go through all the streets in that partition (low cardinality), if the partitioning key is on the street then it needs to search through all the streets (partitions) in the country to be able to find it (high cardinality). If you add the city as partition key then you can have a faster lookup by first getting the partition that contains the city before narrowing it down to the street lookup.

Joey Vanhalst [SLC] [DevOps Advocate] commented 14th January 2022

Hi Laurens, interesting and useful info to keep in mind. Thanks for sharing! In our case, we are talking about (ten)thousands and not millions so I believe this should be fine. Also note that as we have 1 entry per id, we will also manually delete these based on an expiration configuration in our manager element.

You are viewing 1 out of 1 answers, click here to view all answers.
Please login to be able to comment or post an answer.

My DevOps rank

DevOps Members get more insights on their profile page.

My user earnings

0 Dojo credits

Spend your credits in our swag shop.

0 Reputation points

Boost your reputation, climb the leaderboard.

Promo banner DataMiner DevOps Professiona Program
DataMiner Integration Studio (DIS)
Empower Katas

Recent questions

When using the Setter = true attribute, will the copy action always be executed first? 1 Answer | 1 Vote
Multiple Set on Table parameters for DVE’s 0 Answers | 1 Vote
DOM Definition relations returned in Definition query 0 Answers | 2 Votes

Question Tags

adl2099 (115) alarm (62) Alarm Console (82) alarms (100) alarm template (83) Automation (223) automation scipt (111) Automation script (167) backup (71) Cassandra (180) Connector (109) Correlation (68) Cube (150) Dashboard (194) Dashboards (188) database (83) DataMiner Cube (57) DIS (81) DMS (71) DOM (140) driver (65) DVE (56) Elastic (83) Elasticsearch (115) elements (80) Failover (104) GQI (159) HTTP (76) IDP (74) LCA (152) low code app (166) low code apps (93) lowcodeapps (75) MySQL (53) protocol (203) QAction (83) security (88) services (51) SNMP (86) SRM (337) table (54) trending (87) upgrade (62) Visio (539) Visual Overview (345)
Privacy Policy • Terms & Conditions • Contact

© 2025 Skyline Communications. All rights reserved.

DOJO Q&A widget

Can't find what you need?

? Explore the Q&A DataMiner Docs

[ Placeholder content for popup link ] WordPress Download Manager - Best Download Management Plugin