Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Perimeter

2/6/2010
04:08 PM
Adrian Lane
Adrian Lane
Commentary
50%
50%

Amazon's SimpleDB Not Your Typical Database

Several cloud providers offer databases specifically designed for cloud deployment. Amazon's SimpleDB, while technically a database, deviates from what most of us recognize as a database platform. Although SimpleDB is still in prerelease beta format, developers have begun designing applications for it.

Several cloud providers offer databases specifically designed for cloud deployment. Amazon's SimpleDB, while technically a database, deviates from what most of us recognize as a database platform. Although SimpleDB is still in prerelease beta format, developers have begun designing applications for it.SimpleDB, like its name implies, is a very simple data repository. It's designed to provide storage and retrieval services with minimal complexity. The core operations are put (insert), select, batch put (bulk upload), and delete. Data can be divided into domains, much like database schemas, but the similarities end there.

This cloud database service is not for transactional systems where data accuracy and integrity are mandatory.

The fundamental difference with SimpleDB is it lacks a schema that defines structure and data types, which relational databases require. The lack of the logical schema and table constructs drastically changes operations.

First, you do not need to define data before you insert it, so you can choose data types dynamically. Second, there are no primary or foreign key requirements to force referential integrity relationships because, quite simply, the concepts of columns and keys do not exist. Data elements are not evaluated for conformity prior to insertion. Third, stored data is automatically indexed, but done in a simple Google-esque manner that does not require the overhead associated with relational indices.

Finally, SimpleDB relies on indexed flat files. Rather than following the model of using a predefined block structure, adhering to a database vendor proprietary format, SimpleDB writes data out to file without imposing a rigid structure. Data need not be clustered physically in the same location on disk to boost performance.

When you strip away all of the relational database management overhead, insertions and queries are much faster. Insertion performance is very fast because there is no processing to perform data integrity, conformity, and consistency checks. Queries by nature are not complex and use a direct indexing system, which quickly locates data that matches query attributes. There are no issues with joining tables together, and much like a Google search, unstructured and dissimilar types of information are quickly located.

Flexibility is also a big advantage. With no need to worry about data types, your application can store different data types without knowing what you will be storing in advance. Applications built on this platform can offer dynamic storage capabilities, and changes to the application or data types do not require restructuring the database. But these advantages in speed, cost of ownership, and programmatic simplicity do have a downside. SimpleDB does not offer transactional consistency support. Database "state" is not guaranteed, and operational processes endemic to most relational databases like "two phased commit" to ensure your data was actually stored are not present. That means if something goes wrong during the insertion or deletion process, then data you meant to store may not be available.

Integrity checks on the data to ensure type, integrity, or range validation are not available. Underlying cloud storage is cheap and readily available, but multitenant (shared) in nature, which may not meet regulatory confidentiality and security requirements.

Amazon SimpleDB is in many ways more like a file system you dump your data into than a traditional relational database platform. As its name implies, it was designed for simplicity. By stripping functions down to the very basic elements of insertion, look-up, and deletion, there is not a lot of overhead to slow things down.

Just keep in mind that this will be very good for file and photo- sharing applications, but SimpleDB is not suitable for transactional systems.

Adrian Lane is an analyst/CTO with Securosis LLC, an independent security consulting practice. Special to Dark Reading. Adrian Lane is a Security Strategist and brings over 25 years of industry experience to the Securosis team, much of it at the executive level. Adrian specializes in database security, data security, and secure software development. With experience at Ingres, Oracle, and ... View Full Bio

Comment  | 
Print  | 
More Insights
Comments
Newest First  |  Oldest First  |  Threaded View
Commentary
How SolarWinds Busted Up Our Assumptions About Code Signing
Dr. Jethro Beekman, Technical Director,  3/3/2021
News
'ObliqueRAT' Now Hides Behind Images on Compromised Websites
Jai Vijayan, Contributing Writer,  3/2/2021
News
Attackers Turn Struggling Software Projects Into Trojan Horses
Robert Lemos, Contributing Writer,  2/26/2021
Register for Dark Reading Newsletters
White Papers
Video
Cartoon Contest
Write a Caption, Win an Amazon Gift Card! Click Here
Latest Comment: George has not accepted that the technology age has come to an end.
Current Issue
2021 Top Enterprise IT Trends
We've identified the key trends that are poised to impact the IT landscape in 2021. Find out why they're important and how they will affect you today!
Flash Poll
How Enterprises are Developing Secure Applications
How Enterprises are Developing Secure Applications
Recent breaches of third-party apps are driving many organizations to think harder about the security of their off-the-shelf software as they continue to move left in secure software development practices.
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2021-23351
PUBLISHED: 2021-03-08
The package github.com/pires/go-proxyproto before 0.5.0 are vulnerable to Denial of Service (DoS) via the parseVersion1() function. The reader in this package is a default bufio.Reader wrapping a net.Conn. It will read from the connection until it finds a newline. Since no limits are implemented in ...
CVE-2009-20001
PUBLISHED: 2021-03-07
An issue was discovered in MantisBT before 2.24.5. It associates a unique cookie string with each user. This string is not reset upon logout (i.e., the user session is still considered valid and active), allowing an attacker who somehow gained access to a user's cookie to login as them.
CVE-2020-28466
PUBLISHED: 2021-03-07
This affects all versions of package github.com/nats-io/nats-server/server. Untrusted accounts are able to crash the server using configs that represent a service export/import cycles. Disclaimer from the maintainers: Running a NATS service which is exposed to untrusted users presents a heightened r...
CVE-2021-27364
PUBLISHED: 2021-03-07
An issue was discovered in the Linux kernel through 5.11.3. drivers/scsi/scsi_transport_iscsi.c is adversely affected by the ability of an unprivileged user to craft Netlink messages.
CVE-2021-27365
PUBLISHED: 2021-03-07
An issue was discovered in the Linux kernel through 5.11.3. Certain iSCSI data structures do not have appropriate length constraints or checks, and can exceed the PAGE_SIZE value. An unprivileged user can send a Netlink message that is associated with iSCSI, and has a length up to the maximum length...