object storage past, present, and future douglas k. barry principal barry & associates, inc....
TRANSCRIPT
Object Storage Past, Present, and Future
Douglas K. BarryPrincipal
Barry & Associates, Inc.13504 4th Avenue SouthBurnsville, Minnesota 55337 USA
voice: +1-952-892-6113 fax: +1-952-892-5966email: [email protected]: http://www.barryandassociates.com
Barry & Associates, Inc.
Full disclosure
Background• Training and industry practice in relational DBMSs• Got involved in object DBMS technology in 1987
Current Practice• Consultant in the area of selecting object DBMS
and object-relational mapping products• Serve as the Executive Director of the Object
Data Management Group (ODMG)
Barry & Associates, Inc.
We will cover ...
Why object storage started the way it did
What is the current state of the industry
What impacts good object storage decisions
What distinguishes current object storage products
What will happen with object storage in the future
What standards will be important
What will characterize the major players in object storage
Barry & Associates, Inc.
Why object storage started the way it did
Need for high performance on complex data
Need for multi-user database access to
replace flat file single-user systems
Computer-Aided Design (CAD) drove many of
the requirements
Barry & Associates, Inc.
Complex data
often lacks unique, natural identification
often has a significant number of many-to-many relationships
often requires traversing a graph structure in the application(s)
Barry & Associates, Inc.
Why not relational DBMSs?
Provided the desired multi-user database access
But performance was terrible on complex data
Barry & Associates, Inc.
Why performance was terrible
ServerClient
Objects in theapplication
Tuples stored on disk
Impedancemismatch
Barry & Associates, Inc.
Model mapping
ObjectApplication
DBMSServer
ModelMapping
Object programminglanguage uses one datamodel (object model)
Model mapping translatesthe two data models
DBMS server uses anotherdata model (relational model)
Barry & Associates, Inc.
C++ entered the scene
Object-oriented languages existed for some time
The most notable language was Smalltalk Others included Lisp (CLOS), Objective-C,
and Eiffel C++, however, captured the market
Barry & Associates, Inc.
C++ binding for object DBMSs
ServerClient
Objects in theapplication
Objects stored on disk
No impedancemismatch
Barry & Associates, Inc.
C++ binding for object DBMSs
Possible to store any C++ data structure directly with no mapping code
One model for both the application and database
No impedance mismatch Cache management Performance was 100 to 1000 times faster
the relational DBMSs on complex data Less code to write -- lower development costs
Barry & Associates, Inc.
Object DBMS cache management
ObjectApplication
DBMSServer
Cache
Object programminglanguage uses an object model
Cache management ispart of the binding with nomodel mapping
DBMS server uses the sameobject model as the objectprogramming language
Barry & Associates, Inc.
Object DBMSs use
Aerospace Design Financial Manufacturing Publication Telecommunications Transportation
Barry & Associates, Inc.
Object DBMS market size
0
200
400
600
800
1000
1200
1400
1600
1998 1999 2000 2001 2002 2003 2004 2005
$ M
illio
ns
Source: Frost & Sullivan, www.frost.com
Compound Annual Growth Rate (1998-2005): 46.9%
Barry & Associates, Inc.
Effect of Y2K on object DBMS market
1998 and 1999 were low-growth years for object DBMS products
A significant portion of new development money went into Y2K fixes during these years
This had a major impact on the object DBMS market since object DBMSs are primarily used for new development
Barry & Associates, Inc.
What is the current state of the industry
Relational DBMSs have maintained their market
The relational DBMS market has effectively become the object-relational market
Object DBMSs have exhibited a healthy growth rate
Large disparity between market size for Object DBMSs and Relational market
XML is entering the scene
Barry & Associates, Inc.
And Java has entered the scene
Significant use in new development
Created new demands for object storage
options
Barry & Associates, Inc.
And XML has entered the scene
XML model is basically an object model And like Java, XML has:
• Significant use in new development
• Created new demands for object storage options
Barry & Associates, Inc.
XML
<?xml version="1.0"?><?xml-stylesheet href="catalog.xsl" type="text/xsl"?><!DOCTYPE catalog SYSTEM "catalog.dtd"><catalog> <product description="Cardigan Sweater" product_image="cardigan.jpg"> <catalog_item gender="Men's"> <item_number>QWZ5671</item_number> <price>39.95</price> <size description="Medium"> <color_swatch image="red_cardigan.jpg">Red</color_swatch> <color_swatch image="burgundy_cardigan.jpg">Burgundy </color_swatch> </size> <size description="Large"> <color_swatch image="red_cardigan.jpg">Red</color_swatch> <color_swatch image="burgundy_cardigan.jpg">Burgundy . . .
Barry & Associates, Inc.
XML is complex data
some nodes lack unique, natural identification
has a significant number of many-to-many relationships
requires traversing a graph structure in the application(s)
CardiganSweater
description
Men's
Women's
item numberprice
description
Medium
description
Large
description
Small
description
Medium
description
Large
description
Extra Large
Red
Navy
Burgundy
Black
Product CatalogItem
Size ColorSwatch
ProductImage
item numberprice
Barry & Associates, Inc.
Java and XML are going to drive object storage
Java appears to be the language of choice for new development
XML will be used more extensively as time goes on
The Java and XML object models will drive the need for efficient object storage – particularly in the middle tier
Barry & Associates, Inc.
Three-tier or n-tier architecture
Internet
Middle tier
Bottom tier
XML
XML and Java
Existing data
Barry & Associates, Inc.
Object storage growth will be primarily in the middle tier
Internet
Middle tier
Bottom tier
XML
XML and Java
Existing data
Barry & Associates, Inc.
Middle-tier object storage options
Object DBMSs (ODBMSs)
Object-relational mapping (OR Mapping)
Relational DBMSs (RDBMSs)
Native XML DBMSs
Barry & Associates, Inc.
What impacts good object storage decisions
Need to know your application needs – especially the nature of your data and how you will use the data
Need to study the features of the various products
Need to analyze how the features of products fit or modify your application needs
Barry & Associates, Inc.
What distinguishes current object storage products
Object DBMSs (ODBMSs)
Object-relational mapping (OR Mapping)
Relational DBMSs (RDBMSs)
Barry & Associates, Inc.
Object DBMSs
ObjectApplication
DBMSServer
Cache
Tight binding with object programming language
Application cache (some also have a server cache)
No model mapping DBMS and application
use same model Highest performance on
complex data Lowest development cost
Barry & Associates, Inc.
Object-relational mapping
ObjectApplication
DBMSServer
Cache
ModelMapping
Tight binding with object programming language
Application & server cache
Model mapping DBMS and application
use different models Moderate performance
on complex data Moderate development
cost
Barry & Associates, Inc.
Relational DBMSs
ObjectApplication
DBMSServer
ModelMapping
Loose binding with object programming language
No application cache Model mapping DBMS and application
use different models Lowest performance on
complex data Highest development
cost
Barry & Associates, Inc.
More on model mapping
Product
Catalog Item
Product Image Size Color Color Swatch
Size
ProductImage
Product
CatalogItem
Size
Color Swatch
Tables Objects
XML
Barry & Associates, Inc.
Product classification summary
Product Type Performance on complex data
Development Cost
ODBMSs Highest – there is caching and no model mapping
Lowest – there is only one model
OR Mapping Moderate – cost of model mapping depends on ratio of reads to writes
Moderate – model mapping is separate from application
RDBMSs Lowest – model mapping and no caching
Highest – model mapping is not separate from application
Barry & Associates, Inc.
Consider ODBMSs when...
You have a new application that needs high performance on complex data• 10 to 1,000 times faster than relational DBMSs
depending on data complexity• Allows for lower hardware costs to achieve
performance
You have a new application, but the data is not necessary complex• Allows for reduced development costs
Barry & Associates, Inc.
Consider OR Mapping when…
You have a new application that uses existing data from one or more existing databases
You have a new application that uses complex data, that has a high read to write ratio• Need to 10 to 100 reads of an object for every
write to meet performance of ODBMSs, or• Plan on running with more powerful hardware to
meet the performance of ODBMSs• Higher development costs than with ODBMSs
Barry & Associates, Inc.
Consider RDBMSs when...
You want to add some object characteristics to an existing application/database to improve performance
You want to develop a new application, but your data is not complex• Development cost, however, is higher than with
ODBMSs or OR Mapping products since you will have more code to write
• Nevertheless, you probably have people who are familiar with the RDBMS on staff
Barry & Associates, Inc.
Options for new data
Middle tier
Bottom tier
ObjectApplication
DBMSServer
Cache
ObjectApplication
DBMSServer
CacheModel
Mapping
ObjectApplication
DBMSServer
ModelMapping
Object DBMS RDBMS OR Mapping
Barry & Associates, Inc.
Options for using existing data directly
Middle tier
Bottom tier
DBMSServer
ObjectApplication
CacheModel
Mapping
RDBMS OR Mapping
ObjectApplication
DBMSServer
ModelMapping
Barry & Associates, Inc.
Object DBMS with relational DBMS
Middle tier
Bottom tier
ObjectApplication
DBMSServer
Cache
Object DBMS Object DBMS and RDBMS
ObjectApplication
DBMSServer
ModelMapping
Cache
Barry & Associates, Inc.
Object DBMS with object-relational mapping
Middle tier
Bottom tier
ObjectApplication
DBMSServer
Cache
Object DBMS Object DBMS and OR Mapping
ObjectApplication
DBMSServer
Cache CacheModel
Mapping
Barry & Associates, Inc.
Middle-tier ODBMS/RDBMS example
The Chicago Stock Exchange uses the Versant ODBMS for its trading system in the middle tier. The trading system stores data at the end of the trading day in Oracle for running existing back-office programs. There is a description of the trading system along with architectural diagrams at www.howstevedidit.com. This URL will re-direct you to a Microsoft site that provides several choices. Follow the Technical Roadmap choice.
Barry & Associates, Inc.
What will happen with object storage in the future
RDBMS vendors will universally adopt parts of SQL: 1999 (SQL3) • Will still have impedance mismatch with object
programming languages since the SQL: 1999 object model does not match with Java or C++
Tight object language bindings with caching will become universal• The JDO specification is the most likely candidate
for a standard
Barry & Associates, Inc.
What standards will be important
SQL-1999 (www.incits.org) ODMG 3.0 (www.odmg.org) Java Data Objects or JDO
(access1.sun.com/jdo)
Barry & Associates, Inc.
More on SQL: 1999
Overriding principle is backward compatibility with SQL-92
As a result of this principle, the SQL: 1999 object model does not match either Java or C++ object models
Barry & Associates, Inc.
More on ODMG 3.0
Overriding principle is transparent persistence for object languages
As a result of this principle, the ODMG 3.0 object model matches both the Java and C++ object models
Barry & Associates, Inc.
More on Java Data Objects
Overriding principle is to provide transparent persistence to both object and relational DBMSs
As a result of this principle, the JDO object model matches both the C++ and Java object models and provides an automatic mapping to relational DBMSs where needed
Barry & Associates, Inc.
What will characterize the major players in object storage
Ease of Java use Performance with Java Ease of XML use Performance with XML Ease of use with J2EE-compliant application
servers, including both container-managed and bean managed-persistence
Barry & Associates, Inc.
Free online overview articles
Object databases: www.odbmsfacts.com/articles
Object-relational mapping: www.object-relational.com/articles