Category: StorageEngines

Falcon


Contents

[edit] Overview

Falcon (code name) is a transactional storage engine, based on Netfrastructure database engine, extended and integrated into MySQL.

The main goals of Falcon are to exploit large memory for more than just a bigger cache, to use threads and processors for data migration.

You can find a video-presentation on Falcon in the MySQL_Tutorials category.

[edit] Take a look

Last session of the MySQL UC is Jim Starkey giving an introduction to the new Falcon storage engine. Jim is an icon in the database field, was the creator of MVCC and the BLOB data type.


[edit] What is Falcon

[edit] Falcon is NOT


Jim's been at this for a long time, there have been some changes since he wrote his first database at DEC:

[edit] What Jim has learned

Falcon is designed for the next 20 years. Jim is comfortable saying that what he's learned about databases over the past 20 years, and has put into Falcon, will take database technology to new heights.

[edit] Goals of Falcon

[edit] Architectural Overview

Incomplete in-memory database with backfill from disk that has two caches. The traditional LRU page cache for disk. A larger row cache with age group scavenging. Falcon is multi-version in memory and single version on disk. All transaction state is in memory with automatic overflow to disk. Data and indexes are a single file plus log files. In the future, Jim would like to create BLOB repositories where the data is stored off to the side. He is hoping to provide multiple page spaces in the future.

Falcon uses B-tree indexes with prefix compression. There is no data except the key in the index.

Uncommitted row data is staged in memory (can overflow to a scratch file). Indexes are updated immediately. On commit, row data is copied to the serial log and written. A post-commit dedicated thread copies row data from serial log pages to data pages. The page cache is periodically flushed to disk. BLOB data is scheduled for write at creation.

Data reliability is protected by "careful write," where writes are sequenced to the disk so it's always valid and consistent. There is a repair mechanism, but Jim's hope is that no one will ever have to use it.

Falcon has a do/redo/undo log in the serial.

[edit] Secret Agenda

Jim's got a secret agenda of things he'd like to do in the database world, starting with MySQL:

  1. Replace varchar with string, varchar is a throwback to punchcard technology
  2. Replace tiny, small, medium, and big integers with "number"
  3. Adopt a security model useful for the web
  4. Provide gow-level security (filter sets)
  5. Teach the database world the merits free context search. Why do you have to use SELECT statements?

[edit] Q&A

[edit] Test Falcon

http://forge.mysql.com/wiki/Falcon_Feature_Preview

Source

Retrieved from "http://forge.mysql.com/wiki/Falcon"

This page has been accessed 51,086 times. This page was last modified 21:52, 24 January 2011.

Find

Browse
MySQLForge
Main Page
Current events
Recent changes
Random page
Help
Edit
Edit this page
Editing help
This page
Discuss this page
Post a comment
Printable version
Context
Page history
What links here
Related changes
My pages
Special pages
New pages
File list
Statistics
Bug reports
More...