Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rework DB layer for better performance and enable indexes #341

Open
9 of 17 tasks
Frostman opened this issue Jun 21, 2018 · 0 comments
Open
9 of 17 tasks

Rework DB layer for better performance and enable indexes #341

Frostman opened this issue Jun 21, 2018 · 0 comments

Comments

@Frostman
Copy link
Collaborator

Frostman commented Jun 21, 2018

  • bolt schema improvements
    • bucket per type
    • simplified keys w/o namepaces and kind in it, for policy objects key will return ns/name
    • use binary.LittleEndian.PutUint64 for version encoding
    • replace current key with "reference" that include kind, namespace and name
    • deleted flag should be handled outside of DB layer, it's just a Versioned object with deleted field
    • do setting of new generation inside same transaction
  • add indexes support
    • implement indexes primarily w/o using reflection
    • support list / first / last indexes
    • automatic index for versioned object to query last version
    • get should use index for getting last version of the versioned object
  • cover all parts of new DB layer with at least basic unit and integration tests
  • encoding improvement
    • separated codec w/o kind manipulation for higher performance
    • use god or message pack by default
    • codec benchmark to find best codec for DB
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant