Skip to content

yito88/amphis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Nov 8, 2024
43ed2be · Nov 8, 2024

History

35 Commits
Nov 4, 2023
Nov 8, 2024
Nov 4, 2023
Aug 9, 2020
Nov 16, 2023
Aug 9, 2020
Nov 8, 2024
Nov 6, 2023

Repository files navigation

Amphis

An embedded key-value store

TODO

  • API

    • get()
    • scan()
    • put()
      • including insert and update
    • delete()
  • Config

    • FPTree config
    • SSTable config
  • FPTree

    • Simplified FPTree
    • Leaf file
    • Concurrency
    • Flush (converted to SSTable)
    • Recovery (flush)
    • tail header (for durable write)
    • Extended leaf page
  • SSTable

    • SSTable file
    • Bloom filter/Sparse index
    • Compaction
    • Recovery
  • Others

    • Error handling
    • Backgound thread

Threshold for flushing

Basically, the number of keys triggers flushing (Converting FPTree to SSTable) because the number of the root split times on the FPTree is the threshold. Where you insert K keys and the N split happens, the relation between K and N would be:

K = 8 × ( 3 N + 1 + 1 )

If you set the root_split_threshold to 6, flush would happen every 17,504 insertions.

About

An embedded key-value store

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages