simerplaha / SwayDB

Persistent and in-memory key-value storage engine for JVM that scales on a single machine.
https://swaydb.simer.au
Apache License 2.0
293 stars 16 forks source link

Processing large transactions/Streams #226

Open simerplaha opened 4 years ago

simerplaha commented 4 years ago

Problem

There are many situations that require processing large transactions. For example:

The following requirements would ensure that we can process large Streams of data with a simple API while being memory efficient.

Requirements

Expected work

If you have a different opinion on this or any suggestions, please comment!

simerplaha commented 4 years ago

We need to write down some actual use-cases so that requirements are clear:

Use-case 1 - Applying a function on multiple streams

If there are two Maps A & B and we want to perform A + B = C where C is a new Map. If A and B are continuous stream of data, we can configure the + operation (or any other function) such that

Interval - can be specified in seconds or in bytes.