SwayDB

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

APACHE-2.0 License

Stars
293

Bot releases are hidden (Show)

SwayDB - v0.8-beta.7

Published by simerplaha over 5 years ago

  • Added flatMap to Stream
  • Using foldLeft to calculate Stream's size.
  • Other minor improvements
SwayDB - v0.8-beta.6

Published by simerplaha over 5 years ago

Streaming improvements and reflection based Java8 cleaner fix.

SwayDB - v0.8-beta.5

Published by simerplaha over 5 years ago

Streaming improvements

SwayDB - v0.8-beta.4

Published by simerplaha over 5 years ago

Improved Stream APIs.

SwayDB - v0.8-beta.3

Published by simerplaha over 5 years ago

Beta release contains

  • support for a more declarative API.
  • easy to integrate with other library providing IO implementations.
  • support for both synchronous and asynchronous API
  • converting databases instances to scala.collection's Map or Set.
SwayDB - v0.8-beta.2

Published by simerplaha over 5 years ago

Beta release includes changes to support more declarative APIs and other fixes.

  • Implement Streaming. Stream allows us to perform reads asynchronously.
  • Updated user APIs to be more declarative. We will be able to use Cats-effect, Scalaz-zio, Future, Try etc basically any monad easily.
  • Simplified data extensions. No need to define wrapper key and value types.
  • Performance improvement for Actor.timer
SwayDB - v0.7.1

Published by simerplaha over 5 years ago

Fix for #61

SwayDB - v0.7

Published by simerplaha over 5 years ago

Features

Resolved issues

#12 - Implement Future API for reads
#33 - allow updates using Scala functions or Java lambdas
#37 - Performance improvement for forward & backward iterators when there are too many dead updates within the current Level's iteration
#38 - TimeOrder & MergeOrder
#40 - Allow Level0 to be a standalone level
#41 - Simplify API to create a DB instance
#45 - assertLevel() function for test-cases
#46 - Handling seek during Level state changes
#48 - Timer should be persistent for persistent databases

SwayDB - v0.6

Published by simerplaha about 6 years ago

This release includes support for extending databases. This extension enables creation of multiple Maps & nested Maps similar to Tables in SQL databases.

See Extension API.

SwayDB - v0.5

Published by simerplaha about 6 years ago

  • Moved compression to be on the last Level for pre-configured persistent database
  • Compression configuration can be passed in as input for pre-configured persistent databases
  • removed cacheFunction
  • bumped library version for LZ4, Scala version to 2.12.7 & sbt to 1.2.3
  • Fixed issues #19, #18, #17 & #16
SwayDB - v0.3

Published by simerplaha over 6 years ago

This version contains updates to support APIs for expiring key-value (TTL) and update APIs that allow for modifying the value without altering the existing expiration on the key.

Full documentation on the new APIs is available on the website http://www.swaydb.io/api/

SwayDB - v0.2.1

Published by simerplaha over 6 years ago

In previous version key-values/Segments that did not contain overlaping key-values with existing Segments were being merged into at-least one of the existing Segment. This results in unnecessary IOps.

This release include the compaction improvement to simply copy new Segments/key-values into a Level that do no overlap with existing Segments which increases overall database performance (#8)

SwayDB - v0.2

Published by simerplaha over 6 years ago

Range API

  • This releases majorly includes support for Range API remove & update (#2).
  • Range APIs can also be submitted as batch operations.

Other changes

  • Added valueSize
  • Updated KeyValue types for more type-safety and removed redundant Value types.
  • New KeyValues types improve compaction speed & reduced in-memory storage by avoiding redundant type conversions.
  • Re-wrote all read APIs for more efficient forward & backward iterations and searching.
  • Internal serializers for all file formats are now type-classes, adding more type-safety for file format serializers.
  • Every internal serializer has it's own unique ID which improves handling file format's backwards compatibility if the format changes in the future.
  • Improved early detection of overlapping Segments without requiring to read the Segment files which improved overall Compaction performance.
  • Moved BloomFilters to be stored in the Segments instead of Map.
  • Added readRemainingAsString & readString APIs to Slice serializer.
SwayDB - v0.1.1

Published by simerplaha over 6 years ago

Implemented repairAppendix

SwayDB - v0.1

Published by simerplaha over 6 years ago

First version released to sonatype.

Package Rankings
Top 18.9% on Repo1.maven.org
Badges
Extracted from project README
Gitter Chat Build status Maven central
Related Projects