aran

package module
v0.0.0-...-06604cc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2020 License: Apache-2.0 Imports: 17 Imported by: 0

README

Aran

Aran is an embedded key value storage based on new research paper Efficient Key-Value Stores with Ranged Log-Structured Merge Trees

Usage

 	opts := aran.DefaultOptions()
	db, err := aran.New(opts)
	if err != nil {
		panic(err)
	}
	defer db.Close()
	db.Set([]byte("hello"), []byte("schoolboy"))
	val, exist := db.Get([]byte("hello"))
	if !exist {
		panic("value not exist")
	}
	fmt.Println(string(val))
Note

Don't forget to close the db, otherwise some data will be lost.

Supported API

  • Get
  • Set

MileStones

  • Transaction API
  • WAL support
  • Loadbalancing small files

Contribution

Don't think too much. just send a PR, if you need any feature or if you find any bug.

Raising an issue is also a kind of help, so feel free to raise an issue if you find any bug.

Why another embedded KV store if badger already exist?

I was bored so I wrote this on my weekend. And, Go is awesome. btw I like Rust too.

Acknowledgments

About Me

I go with the name schoolboy and I do Go and little bit Rust. If you're looking for someone to collaborate with an open source project or to fill any junior dev position. You can DM me at @hi_balaji

அரண்

அரண் என்பது புதிய ஆராய்ச்சியின்படி எழுதப்பட்ட ஒரு தகவல் சேமிப்பு நிரல்.

பயன்பாட்டு முறை

 	opts := aran.DefaultOptions()
	db, err := aran.New(opts)
	if err != nil {
		panic(err)
	}
	defer db.Close()
	db.Set([]byte("வாழ்க"), []byte("மனிதாபிமானம்"))
	val, exist := db.Get([]byte("வாழ்க"))
	if !exist {
		panic("தகவல் கிடைக்கவில்லை")
	}
	fmt.Println(string(val))
குறிப்பு

close அழைக்கவும், இல்லையென்றால் தகவல்களை இழக்க நேரிடும்

பங்குஅளிப்பாளர் குறிப்பு

நீங்க கண்ணா மூடிக்கிட்டு கவலைபடாம PR அனுப்பலாம்

ஒப்புகை

  • ஆய்வு கட்டுரையை பதிவு இரக்கம் செய்ய உதவிய sci-hub'கு நன்றி
  • எடுத்துக்காட்டாக இருந்த badger'கு நன்றி
  • ஆய்வு கட்டுரை எழுதிய ஆசிரியர்க்கு நன்றி Efficient Key-Value Stores with Ranged Log-Structured Merge Trees

என்னை பற்றி

எனது பெயர் பாலாஜி ஜின்னா. நான் ஒரு பொறியியல் கல்லூரி மாணவன். உங்களுக்கு சந்தேகம் அல்லது ஒரு புதிய நட்பை உருவாக்க விரும்பினால் நீங்கள் எனது கிச்சாக முகவரிக்கு செய்தி அனுப்பலாம்

Documentation

Overview

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Copyright 2019 sch00lb0y.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, See the License for the specific language governing permissions and limitations under the License.

Index

Constants

View Source
const (
	UNION l1policyPush = iota
	OVERLAPPING
	NOTUNION
)

Variables

View Source
var CastagnoliCrcTable = crc32.MakeTable(crc32.Castagnoli)

Functions

func New

func New(opts Options) (*db, error)

Types

type Options

type Options struct {
	NoOfL0Files int
	// contains filtered or unexported fields
}

func DefaultOptions

func DefaultOptions() Options

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL