MySQL Falcon Storage EngineとJimおじさん

| | 編集 | コメント(0)

R0012396

スウェーデンのビール Falconをプロジェクタの周りに並べるJimおじさん

R0012394

積まれたビールと写真を撮る人の手

最後のQAで質問した人に一本ずつあげるよ、ってことだったのですが、途中で怠慢なMySQLの人間が配布するのをやめてしまったので、余ったビールは適当に持って帰って良いことに。
一本ゲットしてきました。

詳細はこちらを参照のこと。
So-net blog:今度はどこ行く?:注目のMySQLの最新ストレージエンジン Falc..

そして、速記。MediaWiki用にMediaWiki文法のまま。
==falcon==

*second, what falcon is not
**an innodb clone
**firevird
**a firefird clone
**a standalone dbms
**netfrastructure

changes since the dawn of the rdmbs
uarly 1980s

*falcon
the engine design ofor the next 20 years

goal
exploin large memory for more than just a bigger cache
use threads and processors for data migration
design to eliminate tradeoffs, minimize tuning
scale gracefully to very heavy loads

*falcon archetecture overview
**Basic model
incomplete in-memory db with backfill from disk
**two caches
traditional LRU page chache for disk
larger row cache with age group scavenging
**serial log for single write group commits

**multi-version in memory, singl eversion on disk
**all transaction state in memory with automatic overflow to disk
**data and indexes are single file plus log files
**future: blog repositories
**future: multiple gape spaces

*falcon implementation: concurrency control

**basic model is multi gen concurrency control (MVCC)
**will be extended fo relaxed consisteyncy but we don't approve
**will be extended for a serizlizable mode

*:indexes

btree index with prefix frompression
no data (except key) in index
two-stage index retrievals

index scan generates row bitmap
records are fetched from disk in physical row order

no performance difference bw primary, secondary indexes

scan bitmaps can be combined for multi index retrieval

*:data flow

**uncommitted row data is staged in memory (may overflow to scratch file)
indexes are updated immediately

**on commit, row data is copied to the serial log and written
**post commit, dedicated thread copies row data from serial log to data pages
**page cache is periodically flushed to disk
**blob data is queued for write at blob creation, backed out on rollback

*:data reliability

**physical structure protected by careful write

database on disk is alwasy valid, always consistent
simple rule, a page is written before a pointer to it

**atomicity protected by serial log

a transaction is committed when the commit record hits the oxide

**serial log is;
a do log for post commit data migration
a redo log for post-crash recovery of data
an undo log for post crash resource recovery

*my secret agenda
**replace varchar with string(forget the length)
**replace tiny, small, medium, and big integers with number
**adopt a secutiry model useful for appliation servers
**introduce useable row level security(filter sets)
**teach the database world the merits of hree context search(everyone else already knows)

カテゴリ

Search

アーカイブ