Evaluation of Massively Scalable Database Management Systems for Erlang

14
Evaluation of Massively Scalable Evaluation of Massively Scalable Database Management Systems for Database Management Systems for Erlang Erlang Fifth ACM SIGPLAN Erlang Workshop Fifth ACM SIGPLAN Erlang Workshop Portland, September 16 Portland, September 16 th th , 2006 , 2006 Emil Hellman [email protected]

description

Fifth ACM SIGPLAN Erlang Workshop Portland, September 16 th , 2006. Evaluation of Massively Scalable Database Management Systems for Erlang. Emil Hellman [email protected]. Contents. Mnesia DBMS survey Open Source Alternatives Conclusions. Mne s ia. - PowerPoint PPT Presentation

Transcript of Evaluation of Massively Scalable Database Management Systems for Erlang

Page 1: Evaluation of Massively Scalable Database Management Systems for Erlang

Evaluation of Massively Scalable Evaluation of Massively Scalable Database Management Systems for Database Management Systems for

ErlangErlang

Fifth ACM SIGPLAN Erlang WorkshopFifth ACM SIGPLAN Erlang WorkshopPortland, September 16Portland, September 16thth, 2006, 2006

Emil [email protected]

Page 2: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 2

ContentsContents

• MnesiaMnesia• DBMS surveyDBMS survey• Open Source AlternativesOpen Source Alternatives• ConclusionsConclusions

Page 3: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 3

MneMnessiaia

• Primarily designed as a in-memory databasePrimarily designed as a in-memory database– Very fast lookup times

• Great connectivity/interface to ErlangGreat connectivity/interface to Erlang– Tight coupling to Erlang

• Limited to 4 GB table size (8GB on 64 Bit Limited to 4 GB table size (8GB on 64 Bit machines)machines)

• Lacking in ability to maintain constraintsLacking in ability to maintain constraints• Awkward to modify schemasAwkward to modify schemas

Page 4: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 4

DBMS SurveyDBMS Survey

• Important attributesImportant attributes– Safety Mechanisms– Replication– Large Storage Capabilities– Maintaining Logical Constraints– Erlang Interface

Page 5: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 5

Open Source AlternativesOpen Source Alternatives

• Berkeley DBBerkeley DB– Embedded databases

• MySQLMySQL– Web applications

• PostgreSQLPostgreSQL– Complex databases / Web applications

• IngresIngres– Enterprise grade databases

How do we know which one to use???How do we know which one to use???

Page 6: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 6

Berkeley DBBerkeley DB

• Pros:Pros:– Good for term storage– Fast lookups with memory cache

• Cons:Cons:– Does not support constraints– Application involvement needed for replication– Limited in size capabilites (256 GB/DB and 4GB/record)– Lots of things left to the using application

• Erlang:Erlang:– Several open source drivers exist

Page 7: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 7

MySQLMySQL

• Pros:Pros:– MySQL clusters– Supports failover (however, additional scripting needed)

• Cons:Cons:– Some storage engines may force invalid data into valid– Size limitations (different for different storage engines)– No partial recovery

• Erlang:Erlang:– The Erlang ODBC driver is available– A primitive driver exists through the YXA project.– Erlang Training and Consulting will soon be releasing its

driver.

Page 8: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 8

PostgreSQLPostgreSQL

• Pros:Pros:– Storage capabilities– Supports fail and switchover (with additional software)– Good constraint system– Soon an open source driver available

• Cons:Cons:– Some limitations in replicating large objects– No partial recovery

• Erlang:Erlang:– Erlang Training and Consulting has released its driver– The Erlang ODBC driver is available

Page 9: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 9

IngresIngres

• Pros:Pros:– Supports failover– Support partial recovery of inconsistent tables– Can attempt automatic resolution of inconsistencies– Replication granularity– Great constraint system– Clustering capabilities

• Cons:Cons:– Only interface is through Erlang ODBC application

• ErlangErlang– The Erlang ODBC driver is available

Page 10: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 10

ConclusionsConclusions

• We evaluated the questionnaire results using We evaluated the questionnaire results using a method called the Analytical Hierarchy a method called the Analytical Hierarchy ProcessProcess– Evaluation method invented by Dr. Thomas Saaty in the

1970's– Based on pairwise comparison of alternatives to reduce

complexity

DBMS ScoreIngres 0.37

PostgreSQL 0.35MySQL 0.19

BerkeleyDB 0.09

Page 11: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 11

ConclusionsConclusions

From the survey, we conclude Erlang Users are From the survey, we conclude Erlang Users are not giving up using Mnesia. Asked what not giving up using Mnesia. Asked what

survey participants use when Mnesia is not survey participants use when Mnesia is not enough, two replies we got were…enough, two replies we got were…

“We still use Mnesia, with care.”

In order not to complicate design, “one of our applications uses

Mnesia to store about 200,000,000 rows/record. The database consists

of two logical tables: one set of 512 fragments is used for data, and another consisting of 128

fragments is used to store indexes.”

Page 12: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 12

ConclusionsConclusions

• Is a comparison of Berkeley DB and relational Is a comparison of Berkeley DB and relational databases fair?databases fair?

• What licenses are available for the DBMSs?What licenses are available for the DBMSs?

Page 13: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 13

Questions ?Questions ?

Page 14: Evaluation of Massively Scalable Database Management Systems for Erlang

Page 14

SummarySummary

• MnesiaMnesia• DBMS surveyDBMS survey• Open Source AlternativesOpen Source Alternatives• ConclusionsConclusions