xeoncross / indexer

Indexer is a persistent indexing library which utilizes MMAP and atomic values for fast and thread-safe incrementing.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Indexer

Indexer is a persistent indexing library which utilizes MMAP and atomic values for fast and thread-safe incrementing.

Usage

New

func ExampleNew() {
	var err error
	if exampleIndexer, err = New("./indexer.idb"); err != nil {
		log.Fatal(err)
	}
}

Indexer.Next

func ExampleIndexer_Next() {
	value := exampleIndexer.Next()
	fmt.Println("Indexer next value is", value)
}

Indexer.Set

func ExampleIndexer_Set() {
	exampleIndexer.Set(1337)
}

Indexer.Close

func ExampleIndexer_Close() {
	if err := exampleIndexer.Close(); err != nil {
		log.Fatal(err)
	}
}

Performance

BenchmarkIndexer_Next-4                    187052113    6.43 ns/op
BenchmarkIndexer_Next_inside_bolt_txn-4    183006438    6.46 ns/op
BenchmarkDBUtils_Next-4                    2148330      485 ns/op

About

Indexer is a persistent indexing library which utilizes MMAP and atomic values for fast and thread-safe incrementing.


Languages

Language:Go 100.0%