SethDb 0.1.3-alpha.0.52

This is a prerelease version of SethDb.
dotnet add package SethDb --version 0.1.3-alpha.0.52
                    
NuGet\Install-Package SethDb -Version 0.1.3-alpha.0.52
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="SethDb" Version="0.1.3-alpha.0.52" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SethDb" Version="0.1.3-alpha.0.52" />
                    
Directory.Packages.props
<PackageReference Include="SethDb" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add SethDb --version 0.1.3-alpha.0.52
                    
#r "nuget: SethDb, 0.1.3-alpha.0.52"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=SethDb&version=0.1.3-alpha.0.52&prerelease
                    
Install SethDb as a Cake Addin
#tool nuget:?package=SethDb&version=0.1.3-alpha.0.52&prerelease
                    
Install SethDb as a Cake Tool

seth-db

An experiment in implementing an embedded storage engine.

Inspired and based on BoltDB.

Implmented using B+Tree and memory mapped files. Supports ACID transactions with a single writer using copy on write for MVCC.

Status

The project is highly exprimental. It does not have robust error handling and is not used for production workloads.

Limitations

  • No checks on limits on keys, values or database size.
  • Limited stress tests and optimizations
  • No support for buckets
  • Database file only grows, never shrinks. There could also be issues with fragmentation if large keys/values are used.
  • Expanding database size require exclusive lock, and will wait til all read transcations are done
  • Transactions must only run in a single thread, as locks are used to coordinate with write transaction.

Roadmap

  • In memory B+Tree
  • Basic storage with fake data
  • Basic functionality - integrate tree with storage engine
  • More testing and Benchmarks
  • Stats
  • Backup
  • Publish nuget package
  • Docs with how to use
  • Multithread benchmarks and tests
  • Improved api
  • Stress test
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.1.3-alpha.0.52 418 3/24/2025
0.1.3-alpha.0.51 164 3/4/2025
0.1.3-alpha.0.50 171 3/4/2025