Skip to main content

Release v1.7.0: Provisioning & Batch Writing

· 2 min read
Alexey Timin
Software Engineer - Database, Rust, C++

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 ReductStoreas 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 use the ReductStore Community forum. Thanks for using ReductStore!

Share
Subscribe to our blogs