SwayDB icon indicating copy to clipboard operation
SwayDB copied to clipboard

Persistent and in-memory key-value storage engine for JVM that scales on a single machine.

Results 83 SwayDB issues
Sort by recently updated
recently updated
newest added

Since each [Level](http://swaydb.io/implementation/level/?language=scala) can have the same configuration there should a flag that configures last level's compaction to not re-create a [Segment](http://swaydb.io/implementation/segment/?language=scala) that was copied from upper levels.

performance

This task is at API level only. Understanding core internals is not required. To test stability currently there are two apps that stress test SwayDB's API. - [Weather data simulation](https://github.com/simerplaha/SwayDB/blob/master/swaydb-stress/src/test/scala/swaydb/weather/WeatherDataSpec.scala)...

help wanted
good first issue
production release

Java configuration functions are mutable. For example the following `setClearAppliedFunctionsOnBoot` function is mutable. This function and others should be immutable. ```java Map products = PersistentMap .functionsOn(Paths.get("my_dir"), stringSerializer(), doubleSerializer(), Arrays.asList(discount)) .setClearAppliedFunctionsOnBoot(true)...

good first issue
code cleanup

Currently we do not have a strategy to reduce write amplification when handling random updates that spans over multiple Segments. Need to test the following approaches 1. Creating temporary levels...

performance
production release

Smaller [Segments](http://swaydb.io/implementation/segment/?language=java) (segments that are < [minSegmentSize](minSegmentSize)) get collapsed in the last level to create larger Segments. Currently a merge is executed which has memory and read overhead which is...

performance

- Recovering [LevelZero](http://swaydb.io/implementation/meters/levelZeroMeter/?language=java) map entries could be faster by avoiding flushes. - Compaction shutdown can be faster by ignore pending compaction tasks.

performance

More compaction tests are required to get coverage compaction behaviour.

test cases

We can very easily spawn multiple database instances like following ```scala val map1 = swaydb.persistent.Map[Int, String, Nothing, Bag.Less]("myMap1") val map2 = swaydb.persistent.Map[Int, String, Nothing, Bag.Less]("myMap2") val set = swaydb.persistent.Set[String, Nothing,...

feature

Back up all databases files to target path. ```scala db.backup(path: Path) ```

feature
core

SwayDB does not have any external dependencies other than compression libraries (LZ4 and Snappy) which are optionally enabled. Majority of the effects are implemented in `Effect.scala`. May be moving all...

feature
core