Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
    • Switch to GitLab Next
  • Sign in / Register
D
dalmatinerdb
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 30
    • Issues 30
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 0
    • Merge Requests 0
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Project-FiFo
  • DalmatinerDB
  • dalmatinerdb
  • Issues
  • #129

Closed
Open
Opened Jun 06, 2017 by Heinz N. Gies@LicenserOwner

Disable automatic bucket creation

Created by: szarsti

We run ddb with multiple buckets in different resolution.

Whenever ddb receives new point to unknown bucket, it will create one with default resolution and number of points per file.

This behaviour has caused us some serious problems on our production. When we were adding new box to cluster we used automated provisioning which opened incoming traffic to newly started node. I imagine that it started receiving data, before it fully synchronised all buckets meta-data. AS a result it just created buckets with default parameters and even some of those new values got populated to other nodes in a cluster. We ended up with in a situation that some mstores were created with 1sec resolution, other with 10s resolution for the same bucket.

This whole situation was very difficult to diagnose and took a lot of effort to restore. We had to delete some mstores that were created with wrong resolution, potentially loosing some data.

I am proposing to make ddb log error and not accept data for unknown buckets. I think this will make it less prone to error due to not so careful management.

I have also noticed, that one can run command line utility to create the same bucket multiple times with different resolution. Calling it that way effectively acts as altering bucket meta-data. I think that should be blocked as well, because if one truly wants to change bucket resolution, they should make sure that all mstores get converted. Otherwise node will run into errors on next restart.

If you think that this is too much change, breaking backwards compatibility, maybe we should make it driven by some configuration switch. We would definitely want to run ddb with that setting enabled.

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: Project-FiFo/DalmatinerDB/dalmatinerdb#129