DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
Building Scalable Real-Time Apps with AstraDB and Vaadin
Register Now

Trending

  • Exploratory Testing Tutorial: A Comprehensive Guide With Examples and Best Practices
  • How To Approach Java, Databases, and SQL [Video]
  • Effective Java Collection Framework: Best Practices and Tips
  • Top 10 Engineering KPIs Technical Leaders Should Know

Trending

  • Exploratory Testing Tutorial: A Comprehensive Guide With Examples and Best Practices
  • How To Approach Java, Databases, and SQL [Video]
  • Effective Java Collection Framework: Best Practices and Tips
  • Top 10 Engineering KPIs Technical Leaders Should Know
  1. DZone
  2. Data Engineering
  3. Databases
  4. VoltDB, and Working With Fast Data in the Age of IoT

VoltDB, and Working With Fast Data in the Age of IoT

G. Ryan Spain user avatar by
G. Ryan Spain
·
Mar. 05, 15 · Interview
Like (0)
Save
Tweet
Share
6.02K Views

Join the DZone community and get the full member experience.

Join For Free

There’s a lot of data out there to be sure. And people are constantly looking for ways to utilize that data. But the sheer amount of data is no longer the only thing we have to worry about. We’re now at the point where we need to deal with not just big data, but fast data, too.

As we develop ways of gathering data, we’re having to find ways to work with that data as it comes to us, rather than just amassing piles of data to deal with later. Take the world of the Internet of Things, for example. IoT devices allow for devices and sensors to speak with one another; but the data sent from a motion sensor won’t do much good if that data is waiting around somewhere to be analyzed. When data from a motion sensor is collected, it needs to be analyzed and dealt with in the moment, as fast as it comes.

Big data has been a buzzword for some time now, and there are many, many database tools out there to deal with the humongous amount of data being collected. But database tools are more limited when it comes to working with data that needs to be dealt with quickly.

Enter VoltDB: a proposed database solution for fast data needs. VoltDB is an in-memory NewSQL database developed by Dr. Michael Stonebraker, and the folks over at VoltDB believe that this database is the answer to fast data issues. They claim it to be fast, smart, and scalable, with the ability to handle streaming data and allow for real-time analysis, so when a sensor detects motion, that data can be utilized immediately from the DB it’s sent to.

Home

VoltDB uses a few different methods to work with fast data.  First, it partitions database tables across the CPUs of a cluster of machines.  Second, each transaction - a transaction being ad hoc SQL statements, or stored procedures containing a mix of SQL and Java logic - can be executed against that data, in memory, at each partition. This lets VoltDB execute multiple requests (transactions) simultaneously, in parallel.

By analyzing and precompiling the data access logic in the stored procedures, VoltDB can distribute both the data and the processing associated with it to the individual partitions on the cluster. In this way, each partition contains a unique "slice" of the data and the data processing. Each node in the cluster can support multiple partitions.

Partitioning Tables

It also uses serialized processing per partition, allowing for consistency between transactions “without the overhead of locking, latching, and transaction logs.”

When a procedure does require data from multiple partitions, one node acts as a coordinator and hands out the necessary work to the other nodes, collects the results and completes the task. This coordination makes multi-partitioned transactions slightly slower than single-partitioned transactions. However, transactional integrity is maintained and the architecture of multiple parallel partitions ensures throughput is kept at a maximum.

VoltDB scaling has also been designed to be simple, so that the database can be scaled without changes to schemas or application code. Nodes can even be added to the database while it is running.

VoltDB offers SQL, Java, and ACID support, and claims to run these faster than standard databases. Its architecture does not require special hardware - a few benchmarks from this article on VoltDB scaling came from instances of VoltDB run on virtual machines in Amazon’s cloud.

Fast data’s importance is growing rapidly as the Internet of Things gains traction, and VoltDB aims to solve the issue of handling streaming data in real-time. Find out more at VoltDB.com.

http://cdn.dzone.com/static/images/research/DB/DB_CoverTilt1.png


Also, make sure you check out the DZone Guide to Database and Persistence Management, coming March 9.
Big data VoltDB IoT Database Partition (database)

Opinions expressed by DZone contributors are their own.

Trending

  • Exploratory Testing Tutorial: A Comprehensive Guide With Examples and Best Practices
  • How To Approach Java, Databases, and SQL [Video]
  • Effective Java Collection Framework: Best Practices and Tips
  • Top 10 Engineering KPIs Technical Leaders Should Know

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: