Tag Archives: tree

Percona 宣佈支援 MyRocks (MySQL 上的 RocksDB engine)

RocksDB 是 Facebook 從 Google 放出的 LevelDB 改出來,然後被更多人接受並且投注資源的 library... (看兩邊的 GitHub 應該就會有感覺了) 而 Facebook 的人在改進後又花了不少力氣 porting 到 MySQL 上... 之前 Twitter 上就有看到不少消息,這次算是在 Percona 官方的 blog 上正式公佈要支援 MyRocks 的消息:「Announcing MyRocks in Percona Server for MySQL」。 依照目前的計畫次在明年 2017 的 Q1 放出 experimental … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , , , , , , , , , , , | Leave a comment

GitHub 在 Merge Pull Request 時支援 Rebase 了

有些人認為儘量保持原狀,但有些人認為儘量維持 tree 的乾淨,而這次推出的 rebase 則是把後者的需求補上了:「Rebase and merge pull requests」。

Posted in Computer, Murmuring, Programming | Tagged , , , , , , , , , , | Leave a comment

Go 上面的白箱安全性檢查

HP 的 open source 專案「Go AST Scanner」,分析 Go 的原始程式碼拉出 AST 進行分析 (Static program analysis),再找出可能的安全性問題。 雖然是 alpha 階段,但看起來是個好東西啊... 至少寫的太誇張的 SQL injection 可以掃出來。

Posted in Computer, Murmuring, Network, Programming, Security, Software | Tagged , , , , , , , , , , | Leave a comment

Percona 正式推出相容於 MongoDB 的產品「Percona Server for MongoDB」

Percona 正式推出與 MongoDB 相容的產品 Percona Server for MongoDB:「Percona Delivers Free, Open Source Percona Server for MongoDB」。 挑重點講,其實最重要的是 data engine 多了 Percona 自家的 PerconaFT 以及 Facebook 的 RocksDB: Percona Server for MongoDB offers all the features of MongoDB 3.0 Community Edition, … Continue reading

Posted in Computer, Database, Murmuring, Software | Tagged , , , , , , , , , , , , | Leave a comment

MySQL 的 Index 設計技巧

Percona 的「Indexing 101: Optimizing MySQL queries on a single table」這篇講了最基本的 index 設計技巧,雖然文章裡沒提到,但最好是需要 B-tree 與 B+ tree 的背景知識。 MySQL 的 query 大致分成幾個階段。先決定要使用哪些 index (或是完全不用),然後透過 index 抓出符合條件資料 (或是 table scan),最後再細部過濾。 以文章裡提到的「Multiple inequalities」範例裡這樣的 SQL query 來討論: SELECT * FROM t WHERE c > … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , | Leave a comment

Percona 講 TokuDB

Percona 的「Getting to know TokuDB for MySQL」這篇文章雖然標題是想要宣傳 TokuDB,但其實把 MySQL 的歷史也講了一遍... 前面講到 InnoDB 的崛起時,就有提到就算你不使用 InnoDB 提供的 transaction,他的 crash-safe 性質也仍然是許多人選用 InnoDB 的重要因素之一: Even those that don’t really need transactions rejoice in the crash resistance strength of InnoDB. 後面提到 TokuDB 時當然都會提到 Fractal Tree … Continue reading

Posted in Computer, Database, MariaDB, Murmuring, MySQL, Software | Tagged , , , , , , , , , , , | Leave a comment

MySQL 5.7.4

在「The MySQL 5.7.4 Milestone Release is available」這篇可以看到 MySQL 5.7.4 的消息。除了 InnoDB 的改善外,可以看到對 AES 加密的功能 (AES Encryption Modes)。 不過... Historically, and still used as defaults in 5.6 and 5.7, we are using a relatively small key size (128 bits, corresponding to … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Security, Software | Tagged , , , , , , | Leave a comment

Percona 的 TokuDB

Percona 這幾個月對 TokuDB 的評價一直都很不錯,再加上在 Percona Server 5.6.16-64.0 裡加入對 TokuDB 的支援 (目前還是掛在 ALPHA 階段),看起來是打算再納入這個產品線?:「Percona Server 5.6.16-64.0 with TokuDB engine now available」。 與兩年前的 Percona XtraDB Cluster 情境有點像,看起來會是新的主打產品? 先花了一些查,發現「How TokuDB Fractal TreeTM Indexes Work」這份投影片整理的還不錯,說明了簡化版 fractal tree 的結構,以及為什麼可以取代 B-tree 或 B+tree。也說明了 fractal tree 最重要的精神是拿 … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , , | Leave a comment

Datomic 以及 RethinkDB...

Baron Schwartz (Percona 的 Chief Performance Architect) 寫了一篇「Immutability, MVCC, and garbage collection」狂酸 Datomic 與 RethinkDB (喔,還稍微提到 CouchDB)。 裡面提到了 append-only B-tree 這的資料結構,優點以及會遇到的問題。(而這些問題都是致命的...) 下面的 comment 就看到 Datomic 的人跑出來反擊了,不過我懶的看了... XD RDBMS 這麼多人發展這麼久了,不太有機會有萬靈丹突然出現解決一切問題... (這表示之前的人都是笨蛋?) 新出來一個 RDBMS 系統,官網做的很漂亮,是由一個商業公司拿錢發展出來,號稱可以解決很多問題,大概都可以先跳過去... XD

Posted in Computer, Database, Murmuring, Software | Tagged , , , , , , , , , , , , , , | Leave a comment

用 C Macro 實作的紅黑樹...

用 C Macro 實作的紅黑樹 (Red-black tree) 很經典,不過每次都忘記怎麼用... XD 紅黑樹是平衡二元搜尋樹的一種,除了二元搜尋樹有的結構外,節點的資訊多了顏色。然後利用顏色達到平衡的特性。 先定義單一節點的資料結構: struct element { char *key; int value1; char *value2; RB_ENTRY(element) meta; }; 紅黑樹的每個節點都需要紀錄母、左、右節點的指標,以及顏色,其中 RB_ENTRY() 所代表的資料結構會負責紀錄這些值。 再來是定義母節點的資料結構,這樣之後就可以使用 struct tree tree1;、struct tree tree2;、struct tree tree3; 產生許多 tree 了: RB_HEAD(tree, element); 這樣就會產生 struct … Continue reading

Posted in Computer, Murmuring, Programming | Tagged , , , , , | Leave a comment