pure golang key database support key have value. 非常高效实用的键值数据库。

Related tags

orderfile32
Overview

orderfile32

pure golang key database support key have value

The orderfile32 is standard alone fast key value database. It have two version. one is this. two is orderfilepeta. this version is open source version. this version support database size is 32gb. max key add value length is 128kb. orderfilepeta database max size support 16peta byte. max key add value length 32mb. orderfile peta for commerce use only. if you want orderfilepeta you can contact me by email [email protected]. normal user orderfile32 is enough for using. 32gb is compressed size. this size can contain about 2billion normal item data.

this projec I devloped many years. now I release it for public. if you like it. you can use it. you will found it is very good.

feature

  1. hight performance
  2. log database.
  3. support application crash recover.
  4. small database file.
  5. embedable
  6. support rand get from database.
  7. support max match for word split.
  8. support find previous/next key by current key.
  9. support zip snappy xz lz4 flate compress type.
  10. support database compress after used long time.
  11. support multi core.
  12. support multi thread.
  13. support automatic recover.
  14. support fix key length.
  15. support unique key defined by end bytes.
  16. support normal application and large data application.
  17. support fill function using key suffix.

install

got get github.com/epowsal/orderfile32

simple example code

package main
import "github.com/epowsal/orderfile32"
db,dber:=NewOrderfile("myfirstdb",0,0,[]byte{0})
if dber!=nil {
  panic(dber)
 }
 db.PushKey([]byte("key"),[]byte("value"))
 fkey,bfkey:=db.FillKey([]byte("key"))
 if bfkey==false {
    panic("error")
 }
 fmt.Println(fkey)
 db.Close()

benchmark compare to other

write benchmark

ordefile32 write 1 million speed test screenshot: orderfile321millionwrite_ok

badger write 1 million speed test screenshot: badger1millinwrite3

bolt write 200 thousand speed test screenshot: boltwrite200thousand2

orderfilepeta write 1 million speed test screenshot: orderfilepeta1millionwrite_ok

orderfile32 write 1 million items use 7.1 second.

badger write 1 million items use 26.7 second.

bolt write 0.2 million items use 90 second.

orderfilepeta write 1 million items use 15.9 second.

so orderfile32 if the fastest writing database.the large database orderfilepeta is faster than badger.

read benchmark

ordefile32 read 1 million times speed test screenshot:

orderfile1millionread_ok

badger read 1 million times speed test screenshot: badger1millinread

bolt read 0.2 million times speed test screenshot: bolt200thousandread

ordefilepeta read 1 million times speed test screenshot: orderfilepeta1millionread_ok

after test get:

orderfile32 read 1 million items first time read use 3.9 second. second time read use 3.0 second.

badger read 1 million items use 6.5 second.

bolt read 0.2 million items use 0.5 second.

orderfilepeta read 1 million items. first read use 6.5 second. second read use 6.1 second.

so if bolt read 1 million items will use 2.5 second.

so bolt is the fastest reading database.

compare orderfile32 with badger. orderfile32 is almost two time faster than badger.

compare orderfilepeta with badger. they almost equal.

database size compare:

orderfile32 1 million item file size screenshot: orderfile32dbfilesize

badger 1 million item file size screenshot: badgrdbfilesize

bolt 0.2 million item file size screenshot: boltdb0 2millionsize

orderfilepeta 1 million item file size scrrenshot: orderfilepetadbfilesize

orderfile32 1 million items database file size is 19mb.

badger 1 million items database file size is 26.7mb.

bolt 0.2 million items database file size is 16mb.

orderfilepeta 1 million items database file size if 20mb.

bolt 5 times size is 80mb.

so bolt have largest database file size.

orderfile32 and orderfilepeta have smallest database file size.

thanks and support me by donate

paypal:

paypal

捐赠以表示感谢与支持

支付宝:

接受捐赠200pixel

Releases(orderfile32v1.0.0)
A simple, fast, embeddable, persistent key/value store written in pure Go. It supports fully serializable transactions and many data structures such as list, set, sorted set.

NutsDB English | 简体中文 NutsDB is a simple, fast, embeddable and persistent key/value store written in pure Go. It supports fully serializable transacti

徐佳军 1.7k Sep 18, 2021
pure golang key database support key have value. 非常高效实用的键值数据库。

orderfile32 pure golang key database support key have value The orderfile32 is standard alone fast key value database. It have two version. one is thi

null 5 Sep 12, 2021
Distributed cache and in-memory key/value data store.

Distributed cache and in-memory key/value data store. It can be used both as an embedded Go library and as a language-independent service.

Burak Sezer 1.9k Sep 17, 2021
Graviton Database: ZFS for key-value stores.

Graviton Database: ZFS for key-value stores. Graviton Database is simple, fast, versioned, authenticated, embeddable key-value store database in pure

null 404 Aug 12, 2021
VictoriaMetrics: fast, cost-effective monitoring solution and time series database

VictoriaMetrics VictoriaMetrics is a fast, cost-effective and scalable monitoring solution and time series database. It is available in binary release

VictoriaMetrics 4.9k Sep 21, 2021
BuntDB is an embeddable, in-memory key/value database for Go with custom indexing and geospatial support

BuntDB is a low-level, in-memory, key/value store in pure Go. It persists to disk, is ACID compliant, and uses locking for multiple readers and a sing

Josh Baker 3.5k Sep 25, 2021
immudb - world’s fastest immutable database

immudb Note: The master branch is the joint point for all ongoing development efforts. Thus it may be in an unstable state and should not be used in p

CodeNotary 3.1k Sep 25, 2021
A MySQL-compatible relational database with a storage agnostic query engine. Implemented in pure Go.

go-mysql-server is a SQL engine which parses standard SQL (based on MySQL syntax) and executes queries on data sources of your choice. A simple in-memory database and table implementation are provided, and you can query any data source you want by implementing a few interfaces.

DoltHub 620 Sep 17, 2021
🤔 A minimize Time Series Database, written from scratch as a learning project.

mandodb ?? A minimize Time Series Database, written from scratch as a learning project. 时序数据库(TSDB: Time Series Database)大多数时候都是为了满足监控场景的需求,这里先介绍两个概念:

dongdong 361 Sep 15, 2021
Fast key-value DB in Go.

BadgerDB BadgerDB is an embeddable, persistent and fast key-value (KV) database written in pure Go. It is the underlying database for Dgraph, a fast,

Dgraph 9.8k Sep 23, 2021
A decentralized, trusted, high performance, SQL database with blockchain features

中文简介 CovenantSQL(CQL) is a Byzantine Fault Tolerant relational database built on SQLite: ServerLess: Free, High Availabile, Auto Sync Database Service

CovenantSQL 1.2k Sep 19, 2021
Simple DB using yaml. A project for managing the content of yaml files.

DB Yaml Simple DB using yaml. A project for managing the content of yaml files. Table of Contents DB Yaml Features Usage Write to DB Query DB Get Firs

Christos Kotsis 41 Sep 16, 2021
The lightweight, distributed relational database built on SQLite.

rqlite is a lightweight, distributed relational database, which uses SQLite as its storage engine. Forming a cluster is very straightforward, it grace

rqlite 8.9k Sep 21, 2021
El Carro: The Oracle Operator for Kubernetes

El Carro is a new project that offers a way to run Oracle databases in Kubernetes as a portable, open source, community driven, no vendor lock-in container orchestration system. El Carro provides a powerful declarative API for comprehensive and consistent configuration and deployment as well as for real-time operations and monitoring.

Google Cloud Platform 172 Sep 24, 2021
EliasDB a graph-based database.

EliasDB EliasDB is a graph-based database which aims to provide a lightweight solution for projects which want to store their data as a graph. Feature

Matthias Ladkau 831 Sep 9, 2021
Persistent stacks and queues for Go backed by LevelDB

Goque Goque provides embedded, disk-based implementations of stack and queue data structures. Motivation for creating this project was the need for a

null 804 Sep 8, 2021
Fast Database engine in Go.

gaeadb gaeadb is a pure Go Database engine designed by nnsgmsone. The goal of the project is to provide a database engine for table or other complex d

null 14 Mar 26, 2021
🔑A high performance Key/Value store written in Go with a predictable read/write performance and high throughput. Uses a Bitcask on-disk layout (LSM+WAL) similar to Riak.

bitcask A high performance Key/Value store written in Go with a predictable read/write performance and high throughput. Uses a Bitcask on-disk layout

James Mills 0 Jul 12, 2021
Embedded key-value store for read-heavy workloads written in Go

Pogreb Pogreb is an embedded key-value store for read-heavy workloads written in Go. Key characteristics 100% Go. Optimized for fast random lookups an

Artem Krylysov 810 Sep 10, 2021