Skip to content

[Enhancement] Research, Benchmark and Implement k-ary trie types #14

@h5law

Description

@h5law

Objective

The SMT currently is a binary trie. This issue aims to introduce the ability to customise the number of child nodes.

In doing so we will introduce new constants that are the optimum number of child nodes for different underlying databases, and add the ability to set the number of child nodes during the creation of an SMT.

The logic to determine the correct path bit should also be exposed and altered for supporting k number of children.

Origin Document

github comment
Screenshot 2023-06-29 at 11 00 43

Goals

  • Research k-ary trees/tries
  • Add functionality to customise the number of child nodes

Deliverable

  • Create k-ary trie benchmarking suite
  • Add logic supporting k children for an inner node
  • Benchmark different values of k for different databases
  • Expose constants according to the optimal k values found for different databases

Non-goals / Non-deliverables

  • Alter any existing logic outside the scope of supporting k number of children

General issue deliverables

  • Update any relevant README(s)
  • Add or update any relevant or supporting mermaid diagrams

Testing Methodology

  • Task specific tests or benchmarks: go test ...
  • New tests or benchmarks: go test ...
  • All tests: go test -v

Creator: @h5law
Co-Owners: @Olshansk

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

Status

Backlog

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions