偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

RoseDB V2 版本發(fā)布!你發(fā)現(xiàn)了什么?

存儲(chǔ) 數(shù)據(jù)管理
RoseDB 存儲(chǔ)數(shù)據(jù)的文件使用預(yù)寫(xiě)日志(Write Ahead Log)進(jìn)行了重新設(shè)計(jì),這些日志文件是具有 block 緩存的只追加寫(xiě)入(append-only)文件。

RoseDB V2 重構(gòu)的第一個(gè)版本發(fā)布了!

RoseDB 是一個(gè)基于 Bitcask 存儲(chǔ)模型,輕量、快速、可靠的 KV 存儲(chǔ)引擎。Bitcask 存儲(chǔ)模型的設(shè)計(jì)主要受到日志結(jié)構(gòu)化的文件系統(tǒng)和日志文件合并的啟發(fā)。

感興趣可參考 Bitcask 論文:https://riak.com/assets/bitcask-intro.pdf

RoseDB 存儲(chǔ)數(shù)據(jù)的文件使用預(yù)寫(xiě)日志(Write Ahead Log)進(jìn)行了重新設(shè)計(jì),這些日志文件是具有 block 緩存的只追加寫(xiě)入(append-only)文件。

wal: https://github.com/rosedblabs/wal

我將原來(lái) rosedb 中的 Redis 數(shù)據(jù)結(jié)構(gòu)和協(xié)議拆分了出去,后面會(huì)單獨(dú)形成一個(gè)項(xiàng)目,方便接入不同的存儲(chǔ)引擎,比如 rosedb、badger、pebble、levledb 等等。

所以 rosedb 只專(zhuān)注于單機(jī)存儲(chǔ)引擎的功能,目前處于積極維護(hù)狀態(tài),歡迎大家 issue 或者貢獻(xiàn),點(diǎn)點(diǎn) start ??。 

項(xiàng)目地址:https://github.com/rosedblabs/rosedb

以下是 RoseDB 的一些簡(jiǎn)單介紹和使用示例:

主要特點(diǎn)

優(yōu)勢(shì)

讀寫(xiě)低延遲

這是由于 Bitcask 存儲(chǔ)模型文件的追加寫(xiě)入特性,充分利用順序 IO 的優(yōu)勢(shì)。高吞吐量,即使數(shù)據(jù)完全無(wú)序

寫(xiě)入 RoseDB 的數(shù)據(jù)不需要在磁盤(pán)上排序,Bitcask 的日志結(jié)構(gòu)文件設(shè)計(jì)在寫(xiě)入過(guò)程中減少了磁盤(pán)磁頭的移動(dòng)。

能夠處理大于內(nèi)存的數(shù)據(jù)集,性能穩(wěn)定

RoseDB 的數(shù)據(jù)訪問(wèn)涉及對(duì)內(nèi)存中的索引數(shù)據(jù)結(jié)構(gòu)進(jìn)行直接查找,這使得即使數(shù)據(jù)集非常大,查找數(shù)據(jù)也非常高效。

一次磁盤(pán) IO 可以獲取任意鍵值對(duì)

RoseDB 的內(nèi)存索引數(shù)據(jù)結(jié)構(gòu)直接指向數(shù)據(jù)所在的磁盤(pán)位置,不需要多次磁盤(pán)尋址來(lái)讀取一個(gè)值,有時(shí)甚至不需要尋址,這歸功于操作系統(tǒng)的文件系統(tǒng)緩存以及 WAL 的 block 緩存。

性能快速穩(wěn)定

RoseDB 寫(xiě)入操作最多需要一次對(duì)當(dāng)前打開(kāi)文件的尾部的尋址,然后進(jìn)行追加寫(xiě)入,寫(xiě)入后會(huì)更新內(nèi)存。這個(gè)流程不會(huì)受到數(shù)據(jù)庫(kù)數(shù)據(jù)量大小的影響,因此性能穩(wěn)定。

崩潰恢復(fù)快速

使用 RoseDB 的崩潰恢復(fù)很容易也很快,因?yàn)?RoseDB 文件是只追加寫(xiě)入一次的?;謴?fù)操作需要檢查記錄并驗(yàn)證CRC數(shù)據(jù),以確保數(shù)據(jù)一致。

備份簡(jiǎn)單

在大多數(shù)系統(tǒng)中,備份可能非常復(fù)雜。RoseDB 通過(guò)其只追加寫(xiě)入一次的磁盤(pán)格式簡(jiǎn)化了此過(guò)程。任何按磁盤(pán)塊順序存檔或復(fù)制文件的工具都將正確備份或復(fù)制 RoseDB 數(shù)據(jù)庫(kù)。

批處理操作可以保證原子性、一致性和持久性

RoseDB 支持批處理操作,這些操作是原子、一致和持久的。批處理中的新寫(xiě)入操作在提交之前被緩存在內(nèi)存中。如果批處理成功提交,批處理中的所有寫(xiě)入操作將持久保存到磁盤(pán)。如果批處理失敗,批處理中的所有寫(xiě)入操作將被丟棄。即一個(gè)批處理操作中的所有寫(xiě)入操作要么全部成功,要么全部失敗。

缺點(diǎn)

所有的 key 必須在內(nèi)存中維護(hù)

RoseDB 始終將所有 key 保留在內(nèi)存中,這意味著您的系統(tǒng)必須具有足夠的內(nèi)存來(lái)容納所有的 key。

快速上手

基本操作

package main

import "github.com/rosedblabs/rosedb/v2"

func main() {
 // 指定選項(xiàng)
 options := rosedb.DefaultOptions
 options.DirPath = "/tmp/rosedb_basic"

 // 打開(kāi)數(shù)據(jù)庫(kù)
 db, err := rosedb.Open(options)
 if err != nil {
  panic(err)
 }
 defer func() {
  _ = db.Close()
 }()

 // 設(shè)置鍵值對(duì)
 err = db.Put([]byte("name"), []byte("rosedb"))
 if err != nil {
  panic(err)
 }

 // 獲取鍵值對(duì)
 val, err := db.Get([]byte("name"))
 if err != nil {
  panic(err)
 }
 println(string(val))

 // 刪除鍵值對(duì)
 err = db.Delete([]byte("name"))
 if err != nil {
  panic(err)
 }
}

批處理操作

// 創(chuàng)建批處理
 batch := db.NewBatch(rosedb.DefaultBatchOptions)

 // 設(shè)置鍵值對(duì)
 _ = batch.Put([]byte("name"), []byte("rosedb"))

 // 獲取鍵值對(duì)
 val, _ := batch.Get([]byte("name"))
 println(string(val))

 // 刪除鍵值對(duì)
 _ = batch.Delete([]byte("name"))

 // 提交批處理
 _ = batch.Commit()

完整代碼可查看 examples 示例代碼。

責(zé)任編輯:武曉燕 來(lái)源: roseduan寫(xiě)字的地方
相關(guān)推薦

2023-06-24 23:11:07

2024-11-05 09:47:08

VGG網(wǎng)絡(luò)模型

2024-05-20 08:25:55

2020-04-14 15:30:00

微信群管理朋友圈

2021-10-29 11:45:26

Python代碼Python 3.

2022-04-26 06:43:12

文檔TCPLinux

2012-04-24 18:10:56

華為E5

2021-03-06 13:31:52

網(wǎng)絡(luò)釣魚(yú)惡意郵件攻擊

2020-06-16 08:39:35

JavaScript圖像處理庫(kù)

2010-08-05 17:00:04

RIP V2協(xié)議

2010-08-06 14:07:21

RIP V2

2021-07-15 10:14:37

網(wǎng)絡(luò)安全漏洞攻擊

2021-08-19 15:05:08

微信功能技巧

2021-06-17 10:01:54

APT活動(dòng)Victory 后門(mén)惡意軟件

2020-04-01 08:40:44

Vue.jsweb開(kāi)發(fā)

2022-04-18 07:42:31

配置機(jī)制Spring

2024-06-03 11:43:55

2021-01-26 11:16:12

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2021-01-21 09:35:36

云計(jì)算云計(jì)算產(chǎn)業(yè)云應(yīng)用
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)