Tag Archives: lock

MySQL 總算要拔掉 mysql_query_cache 了

半官方的 MySQL blog 上宣佈了拔掉 mysql_query_cache 的計畫:「MySQL 8.0: Retiring Support for the Query Cache」。 作者開頭引用了 ProxySQL 的人對 MySQL Query Cache 的說明: Although MySQL Query Cache was meant to improve performance, it has serious scalability issues and it can easily become a … Continue reading

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

Google 弄出來的 Grumpy:把 Python 2.7 的程式碼轉成 Go...

Google 放出 Grumpy,可以把 Python 2.7 的程式碼轉成 Go:「Grumpy: Go running Python!」。 下面看到一個留言頗有趣的: This sad to see that Grumpy is mean to be a replacement of CPython 2.7 instead of CPython 3.x . I presume the code from youtube was written in … Continue reading

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

關閉 MySQL 的 Query Cache

MySQL 的 Query Cache 是目前已知效能不好的主要因素之一 (global mutex lock 的緣故),在正式環境裡的 best practice 一般都是關閉,之前測過也是一開下去效能就會狂掉... 而 Percona 的人在討論要怎麼樣才能完全關閉 MySQL 的 Query Cache:「Is Your Query Cache Really Disabled?」,而他們發現只有在 query_cache_type 與 query_cache_size 都設為 0,而且重開 MySQL 才能完全避免 global mutex lock: [W]e can see it is not … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , , , , , | 1 Comment

Netflix 開發的 Delayed Queue

原來這個叫做 Delayed Queue,難怪之前用其他關鍵字都找不到什麼資料... (就不講其他關鍵字了 XD) Netflix 發表了他們自己所開發的 Delayed Queue:「Distributed delay queues based on Dynomite」。 本來的架構是用 Cassandra + Zookeeper 來做: Traditionally, we have been using a Cassandra based queue recipe along with Zookeeper for distributed locks, since Cassandra is the de … Continue reading

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

Composer 出現 lock file out of date 的解法

之前也有遇到,結果 Lorna Jane Mitchell 寫了一篇「Handling Composer "lock file out of date" Warning」給了不少解法。 第一種是 composer upgrade,直接全部升級。 第二種是先用 composer update --dry-run 看看是不是有人加到 composer.json 後忘記更新,如果是的話再用 composer update [package] 處理。 第三種是用 composer update nothing 閉上眼睛更新 hash 值,當作什麼都沒看到 XDDD Sometimes this is the right answer … Continue reading

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

Berkeley DB 的介紹

在滿滿都是 NoSQL 的世代中,意外在「Berkeley DB: Architecture」這邊看到 Berkeley DB 的介紹... 2006 年 Berkeley DB 的公司 Sleepycat 被 Oracle 收購。在收購後 Oracle 改變了 open source 授權部份,從之前的 Sleepycat License 改成了 AGPLv3。 Berkeley DB 算是早期功能很完整的 database library,由於 page level locking、crash-safe 加上有 transaction,也曾經被 MySQL 拿去當作 engine,不過在 MySQL … Continue reading

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

MySQL InnoDB 遇到 Deadlock 時的判讀

在 Percona 的「How to deal with MySQL deadlocks」這篇文章裡面提到了 MySQL InnoDB Deadlock 的判讀與處理。 在支援 transaction 的 engine 裡 deadlock 是不可避免的常態。 在 MySQL 5.5 以及之前的版本,可以透過 Percona 的 pt-deadlock-logger 這隻 script,每固定幾秒鐘就跑一次 SHOW ENGINE INNODB STATUS 記錄下來。在 MySQL 5.6 之後,可以直接使用 innodb_print_all_deadlocks 這個參數,遇到 deadlock 時就寫到 … Continue reading

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

Percona Server 5.5.30-30.2 (based on MySQL 5.5.30) 的改善

Percona 在前幾天推出基於 MySQL 5.5.30 的 Percona Server 5.5.30-30.2:「Percona Server for MySQL 5.5.30-30.2 now available」。 5.5.30-30.2 這個版本引入了 jemalloc: Percona Server for MySQL will now be shipped with the libjemalloc library. Benchmark showing the impact of memory allocators on MySQL performance can … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Software | Tagged , , , , , , , , , | 3 Comments

MySQL 內 JOIN 的應用...

「Common use cases for the MySQL Join statement」這篇給的範例與把 MySQL 上常用到的幾種 JOIN 提出來分析,包括 index 與 explain。另外在「Managing hierarchical data with MySQL」也提到了要怎麼處理階層式資料。 對於 JOIN 大概分幾個階段: 在使用 MyISAM 的時候會儘量避免 JOIN,因為當 SQL 執行時間久的時候會有好幾個 table 同時卡住無法寫入。 改用 InnoDB 後一直用 JOIN,不論是報表或是 web SQL query,造成 CPU bound (雖然不是 … Continue reading

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

MySQL 中,MyISAM 與 InnoDB 帶來的差異...

標題所提到的兩個 engine 是在 MySQL 中最常用到的兩個 engine。其中 MyISAM 是在 MySQL 5.1 之前的 default engine,InnoDB 則是 MySQL 5.5 之後的 default engine。 這篇主要是講 MySQL 5.1 + InnoDB Plugin,或是 MySQL 5.5 後的情況。 MyISAM 是 Table-level lock,當有寫入時其他人無法讀取 (有少數例外,像是 bulk insert)。而 InnoDB 設計成 Row-level lock,在寫入時有很大機會還是可以讀取。 另外,InnoDB … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Software | Tagged , , , , , | 3 Comments