lasher

Embeddable persistent key-value store

Лицензия

Лицензия

Категории

Категории

Сеть
Группа

Группа

net.soundvibe
Идентификатор

Идентификатор

lasher
Последняя версия

Последняя версия

0.0.2
Дата

Дата

Тип

Тип

jar
Описание

Описание

lasher
Embeddable persistent key-value store
Ссылка на сайт

Ссылка на сайт

https://github.com/soundvibe/lasher
Система контроля версий

Система контроля версий

https://github.com/soundvibe/lasher.git

Скачать lasher

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/net.soundvibe/lasher/ -->
<dependency>
    <groupId>net.soundvibe</groupId>
    <artifactId>lasher</artifactId>
    <version>0.0.2</version>
</dependency>
// https://jarcasting.com/artifacts/net.soundvibe/lasher/
implementation 'net.soundvibe:lasher:0.0.2'
// https://jarcasting.com/artifacts/net.soundvibe/lasher/
implementation ("net.soundvibe:lasher:0.0.2")
'net.soundvibe:lasher:jar:0.0.2'
<dependency org="net.soundvibe" name="lasher" rev="0.0.2">
  <artifact name="lasher" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.soundvibe', module='lasher', version='0.0.2')
)
libraryDependencies += "net.soundvibe" % "lasher" % "0.0.2"
[net.soundvibe/lasher "0.0.2"]

Зависимости

test (1)

Идентификатор библиотеки Тип Версия
org.junit.jupiter : junit-jupiter jar 5.6.2

Модули Проекта

Данный проект не имеет модулей.

Lasher

Maven Central Build Status codecov

Lasher is an embeddable key-value store written in Java.

What is Lasher?

Lasher is very lightweight (has no dependencies) embeddable persistent key-value store with very fast performance. Lasher uses linear hashing when table reaches given load factor, avoiding full table rehash which is typical for standard hash tables. This helps to sustain high performance even when the number of elements in the table is growing and is very large.

It is possible to store millions of elements in Lasher and use very little memory because all the data is persisted into memory mapped files.

Lasher could be used instead of any regular in-memory hashmap without sacrificing performance. It is even faster than ConcurrentHasMap<K,V> in our benchmarks and uses much less memory.

Lasher stores consist of 2 binary files - index and data.

LasherMap

LasherMap implements ConcurrentMap<K,V> for easier interoperability with java maps.

TimeLash

TimeLash is a time-series map backed by Lasher where data is partitioned by time intervals. It supports very efficient data retention strategies.
To put or get values from the map, timestamp should be additionally provided, e.g.:

try (var timeLash = new TimeLash<>(
    dir, //db directory
    Duration.ofHours(6), //data retention duration 
    Serdes.STRING, //key serde
    Serdes.STRING)) // value serde {
    timeLash.put("foo", "bar", Instant.now()); 
    var bar = timeLash.get("foo", Instant.now()); 
}

Artifacts

Lasher is available on Maven Central, hence just add the following dependency:

<dependency>
    <groupId>net.soundvibe</groupId>
    <artifactId>lasher</artifactId>
    <version>0.0.2</version>
</dependency>

Scala SBT

libraryDependencies += "net.soundvibe" % "lasher" % "0.0.2"

Contributions

Any helpful feedback is more than welcome. This includes feature requests, bug reports, pull requests, constructive feedback, etc.

Copyright & License

Lasher © 2020 Linas Naginionis. Licensed under the terms of the Apache License, Version 2.0.

Версии библиотеки

Версия
0.0.2
0.0.1