Download presentation
Presentation is loading. Please wait.
Published byPeregrine Chapman Modified over 9 years ago
1
NoSQL Databases Oracle - Berkeley DB
2
Content A brief intro to NoSQL About Berkeley Db About our application
3
3 ???
4
What is NoSQL? Stands for Not Only SQL Class of non-relational data storage systems Usually do not require a fixed table schema nor do they use the concept of joins, group by, order by and so on. All NoSQL offerings relax one or more of the ACID properties.
5
What is NoSQL ? Next generation databases Characteristic: –Large Data Volumes –Non-relational –Distributed –Open-source –Scalable replication and distribution
6
CAP Theorem
7
8 History of NoSQL The term NoSQL was introduced by Carl Strozzi in 1998 to name his file based database. It was again re-introduced by Eric Evans when an event was organized to discuss open source distributed databases.
8
Why NoSQL Databases ? Bigness Massive write performance Fast key-value access Flexible schema and Flexible data types No single point of failure Programming ease of use
11
12 Scaling to size vs complexity.
14
Berkeley DB - Introduction An open-source, embedded transactional data management system. A key/value store. Runs on everything from cell phone to large servers. Distributed as a library that can be linked directly into an application. Berkeley DB has high reliability and high performance.
15
Berkeley DB Product Family Architecture
16
Berkeley DB: The Design Philosophy Provide mechanisms without specifying policies. For example, Berkeley DB is abstracted as a store of pairs. –Both keys and values are opaque byte-strings. – Berkeley DB has no schema. –Application that embeds Berkeley DB is responsible for imposing its own schema on the data.
17
Data Access Services Indexing methods –B-Tree –Hash –Queue –A record-number-based index
18
Advantages of pairs An application is free to store data in whatever form is most natural to it. –Objects (like structures in C language) –Rows in Oracle, SQL Server –Columns in C-store Different data formats can be stored in the same databases.
19
Data Management Services Concurrency Transactions Recovery
20
Berkeley DB Applications Local Directory Access Protocol Mail Servers Manage access control lists Store user keys in a public-infrastructure Record machine-to-network address mappings in address servers
24
Berkeley DB for Computationally Intensive Algorithms Algorithms that repeatedly execute a computationally intensive operation –E.g. Factorial Useful to create a cache containing the already computed results –Cache = Set of pairs containing Advantages: –avoid to re-compute results for the same input (even over different executions) –In a process crash, we can still start again the process and quickly go back to the point where it stopped
25
In memory map Simple Very efficient (b/s in completely memory) Need considerable amount of memory No fault tolerance (We need to manually save data to a file) Relation Databases ACID properties may not be necessary Cannot handle Big data Slow NoSQL databases (Berkeley DB) Fast key-value access Flexible schema and Flexible data types Ease of use Fault tolerance
26
Berkeleydb.java
27
Open Environment: EnvironmentConfig class specify environment configuration parameters Open Class Catalog: Class catalog : specialized database store that contain java class descriptions of all serialized objects stored in the database Create Database and StoredClassCatalog object
29
Open Database: Close Environment, Class Catalog and Databases:
30
DBViews.java
31
Factorial.java
36
Factorial (Berkeley DB ) – Memory Usage
37
Factorial (MySQL) – Memory Usage
38
Factorial (HashMap) – Memory Usage
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.