DataDraw 3.1.1

DataDraw is an ultra-fast persistent database for high performance programs written in C.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
GPL (GNU General Public License) 
3.3/5 20
Bill Cox
ROOT \ Programming \ Code Generators
DataDraw is an ultra-fast persistent database for high performance programs written in C. The DataDraw project is so fast that many programs keep all their data in a DataDraw database, even while being manipulated in inner loops of compute intensive applications.

Unlike slow SQL databases, DataDraw databases are compiled, and directly link into your C programs. DataDraw databases are resident in memory, making data manipulation even faster than if they were stored in native C data structures (really).
DataDraw databases can be persistent.

Modifications to persistent data are written to disk as they are made, which of course dramatically slows write times. However, DataDraw databases can also be volatile. Volatile databases exist only in memory, and only for the duration that your program needs it. Volatile databases can be directly manipulated faster than C structures, since data is better organized in memory to optimize cache performance.

DataDraw supports modular design. An application can have one or more common persistent databases, and multiple volatile databases to support various tools' data structures. Classes in a tool's database can extend classes in the common database.
DataDraw is also 64-bit optimized, allowing programs to run much faster and in less memory than standard C programs using 64-bit pointers. This is because DataDraw databases supports over 4 billion objects of a given class with 32-bit object references.

DataDraw is released under the GNU Library General Public License, Version 2. It costs you nothing to use, and does not restrict your application in any way. Only the DataDraw program itself is covered by the license.

When to use DataDraw vs MySQL and PHP

LAMP is a very powerful combination for creating web applications: Linux, Apache, MySQL, and PHP. Apache provides an incredibly powerful framework built around a world-class web server. PHP provides a powerful language for developing web applications rapidly. MySQL provides a way for these web applications to manage data. DataDraw is not meant to replace any of this.

However, Apache is bloated, PHP is a slow interpreted language, and MySQL interprets ASCII commands that it reads through sockets that communicate with PHP. All this slows the system down 100-1000X, relative to plain old C code. Most applications don't care: if I'm just trying to sell stuff over the Internet, being able to process even one transaction per second is probably fine.

DataDraw is for demanding applications for which LAMP is too slow and/or bloated. While running, a DataDraw application owns the database, and does not share it with others. That makes it well suited for implementing some tasks, and not others. For example, it is well suited for building SQL servers, or BitTorrent trackers, and embedded servers, but not well suited for Apache modules. In these cases, consider embedding both DataDraw, and a free, fast, tiny HTML server, such as the MiniWeb HTTP server, directly in your application. This will allow you to serve many times more requests per second, in far less memory..


DataDraw3.0 is under heavy development, so it is wise to download and compile it directly from source. Use subversion like this:

$ svn co datadraw

Then, just switch to the datadraw directory, and type:

$ makemake

This should create a 'datadraw' executable. To figure out how to use it, read the manual, found in "manual.odt".

What's New in This Release:

This release includes DataView, an automatic class diagram generator.
Resulting diagrams are very high quality, and useful for visualizing complex class relationships.

Last updated on March 31st, 2008

#fast database #persistent database #high performance programs #DataDraw #fast #persistent #database

Add your review!