ReductStore v1.7.0 has been released with provisioning and batch writing

Oct 9, 2023. | By: Alexey Timin

We are pleased to announce the release of the latest minor version of ReductStore, 1.7.0. ReductStore is a time series database designed for storing and managing large amounts of blob data.

To download the latest released version, please visit our Download Page.

What’s new in 1.7.0?

ReductStore v1.7.0 introduces two new features that make it easier to provision resources and write data in batches, which can improve your performance and efficiency when using ReductStore for edge computing and AI applications.

Provisioning With Environment Variables

ReductStore allows you to manage resources such as buckets and access tokens through its HTTP API. However, if you follow the Infrastructure as Code approach, you may want to provision them in your DevOps infrastructure. This is now possible with environment variables:

RS_BUCKET_A_NAME=bucket-1
RS_BUCKET_A_QUOTA_TYPE=FIFO
RS_BUCKET_A_QUOTA_SIZE=1Tb

RS_BUCKET_B_NAME=bucket-2

RS_TOKEN_A_NAME=token
RS_TOKEN_A_VALUE=somesecret
RS_TOKEN_A_READ=bucket-1,bucket-2

Here, we create two buckets bucket-1, bucket-2 and a token to read data from them. This feature could be especially useful if you use ReductStore as an Azure IoT Module so that you can deploy the database on an edge device with all settings even if the device isn’t available from the Internet.

Read the documentation for more details.

Batch Writing

We’re continually working on the performance of our database. In this version, we implemented the POST /api/v1/b/:bucket/:entry/batch endpoint, which receives a batch of records in one HTTP request. This can help in reducing HTTP overhead when you’re frequently writing numerous small records. The official client SDK already has support for this feature, and in Python, it can be implemented as follows:

from reduct import Client, Bucket, Batch

async def main():
    # Create a client for interacting with a ReductStore service
    client = Client("http://localhost:8383")
    
    # Create a bucket and store a reference to it in the `bucket` variable
    bucket: Bucket = await client.create_bucket("my-bucket", exist_ok=True)
    
    # Prepare a batch
    batch = Batch()
    batch.add(timestamp=1000, data=b"new")
    batch.add(timestamp=2000, data=b"reocrd")
    
    # Write it
    await bucket.write_batch("entry-3", batch)

Check out our other SDKs to learn how to write batch data.


I hope you find this release useful. If you have any questions or feedback, don’t hesitate to reach out in Discord or by opening a discussion on GitHub.

Thanks for using ReductStore!

#News

About

ReductStore is a time series database designed specifically for storing and managing large amounts of blob data. It offers high performance for writing and real-time querying, making it suitable for edge computing, computer vision, and IoT applications. ReductStore is licensed under the Business Source License 1.1.

Imprint

ReductStore LLC
651 N BROAD ST STE 201
MIDDLETOWN, DE 19709
info@reduct.store