Photo by Daniel Cooke on Unsplash

Starburst Enterprise, based on open source Trino (formerly PrestoSQL) is a SQL-based MPP query engine. It enables you to run Trino on a single machine, a cluster of machines, on-prem or in the cloud. Further, Starburst Galaxy offers a SaaS experience.

Aerospike is a fast NoSQL database, which is extensively used for low latency and high throughput use cases in Ad Tech, Financial services, Telco, and several other verticals. With its hybrid memory architecture, it serves as an ideal database for data analysis. …


Set up an Aerospike server using a GitHub action with ease

Aerospike is a highly available and scalable NoSQL distributed database used in production to provide blazingly fast performance at a Petabyte scale.

As a software engineer developing with Aerospike, you probably needed integration tests, and you already have your own way to set up an Aerospike cluster for this.

In this short post I will show you how to add an Aerospike server to your development workflows using the GitHub Action in seconds.

As a GitHub user, you may already know what GitHub actions are. They were launched in late 2018 and set a new standard for CI/CD on GitHub.

Getting Started


Or how to communicate with Aerospike using Redis clients

Photo by James Donovan on Unsplash

Aerospike is a highly available and scalable NoSQL distributed database used in production to provide blazingly fast performance at Petabyte scale. Production deployments of Aerospike are almost always serving their data from NVMe drives, though it’s possible to run namespaces in memory.

Redis is a well loved key-value data store that is widely used by developers, which was designed to run single node (single-threaded originally) and in-memory.

This article might be interesting to developers who are using Redis and looking for more scalable and highly available alternatives, or maybe already have some applications running on Aerospike.

Migrating to a different…


Data to insights, quick and easy

Aerospike Connect for Presto was released earlier this year to address the need to convert data stored in Aerospike into valuable insights quickly using the Trino (formerly known as PrestoSQL) distribution of Presto. Based on the feedback that we received from our users, we are pleased to announce that you can now deploy the Presto connector along with Trino quickly using Docker.

Here are the salient features of our Docker based solution:

  1. Supports multiple deployment modes depending on your use case:
  • Standalone - both coordinator and worker are launched within the same container, which when coupled with Aerospike launched within…


A quick introduction from installation to insights

Vault 1.7.0 is released, and it includes my contribution to support the Aerospike database as backend storage. See the release notes for more details.

From now on, Aerospike users can store their sensitive data using Vault almost seamlessly.

I will not talk about the benefits of using Vault and will jump into the installation and configuration details right away.

Setup

First thing you’ll need is to install Vault if you haven’t done this yet.

Make sure that the Vault binary is available on the PATH. See this page for instructions on setting the PATH on Linux and Mac.


A lightweight Java SQL layer for Aerospike

Photo by Daniel Frank on Unsplash

One of the most common ways to interact with databases on JVM is the JDBC API.

JDBC stands for Java Database Connectivity, which is a standard Java API for database-independent connectivity between the Java programming language and a wide range of databases.

Aerospike is a fast and durable No-SQL database. It has its own Java client, but this article will introduce you to a supplementary way of interacting with it using SQL.

Get yourself a hot cup of tea or coffee (for the true Java look and feel) and we will dive into the details of the Aerospike journey into…


Discover data in Aerospike, quick and easy, using SQL

Photo by Tobias Fischer on Unsplash

Aerospike is an extremely fast and reliable data store that supports millions of transactions with incredibly low read and write latency. SQL is the lingua franca for data analysis. The key challenge here is that Aerospike is a No-SQL database, hence you cannot use standard SQL tools to analyze data stored in it. Aerospike offers AQL for lightweight administrative tasks for database maintenance. However, our developer community has been asking for a tool that would enable them to quickly browse or discover data stored in the Aerospike clusters visually along with the ability to run ANSI SQL queries. …


Different approaches with examples

Photo by Micah Williams on Unsplash

In this article we will explain and give some examples of the authentication and authorization flows with the Aerospike REST client.

If you’re new to the Aerospike REST client please read the introduction blog post by Robert Marks.

Starting from version 1.0.0, the Aerospike REST client has support for a user and password configuration used to login to the Aerospike cluster. Database administrators need to create these credentials first with the required permissions.

It’s important to mention that the Access Control feature is available only in Aerospike Enterprise Edition.

This setup works perfectly, but what if we want to support…


Diving deeper

Photo by Adi Goldstein on Unsplash

In the previous part we spoke about using simple Predicate Expression Filters with the Aerospike REST Client. In this post I want to dive deeper and show how special filter operators could come in handy.

LAST_UPDATE

Asserts the last update time before processing the transaction.

Parameters:

  • comparison operator
  • time in seconds since the epoch time (1970–01–01)

Example:

LAST_UPDATE(>=, 1577880000)

Java equivalent:

PredExp.recLastUpdate()
PredExp.integerValue(1577880000000000000) //in nano
PredExp.integerGreaterEq()

VOID_TIME

Asserts the record’s expiration time before processing the transaction.

Parameters:

  • comparison operator
  • time in seconds since the epoch time (1970–01–01)

Example:

VOID_TIME(>=, 1577880000)

Java equivalent:

PredExp.recVoidTime()
PredExp.integerValue(1577880000000000000) //in nano
PredExp.integerGreaterEq()

DIGEST_MODULO

Asserts a…


A simple how-to read with examples

Photo by Luke Southern on Unsplash

If you’re already an Aerospike user, you’ve likely developed with one of the client libraries available on GitHub, and might be familiar with Predicate Expression Filters, which became available for all transactions starting from Aerospike Server v4.8.

I want to show how you would use PredExp filters with the REST client.

So what is the PredExp filter and why do we need it?
Predicate Expression Filters are applied to scan, query and key-value results on the server. Meaning, if an expression evaluates to false, the transaction is ignored.

The Aerospike REST client uses the Java client under the covers, where…

Eugene Rizhkov

Software Engineer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store