在 Hacker News Daily 上看到 Cloudflare 推出了新產品 D1:「Announcing D1: our first SQL database」,在 Hacker News 上對應的討論在「D1: Our SQL database (cloudflare.com)」這邊可以看到。
就如同 Hacker News 上的討論提到的,這篇文章不像一般的 Cloudflare 文章會帶有很多技術上的說明 (尤其是在描述技術產品),這篇算是非常的行銷導向的文章,目前大家只能靠「猜」的去理解:
For a Cloudflare article, this one is surprisingly light on technical details. And for the product where it most matters.
翻了一下這兩個屬名的作者,Rita Kozlov 是 Director of Product at Cloudflare,而 Glen Maddern 是 Systems Engineer at Cloudflare。
目前知道的是,D1 是架構在 SQLite 上面:
D1 is built on SQLite.
然後從範例的程式碼內可以看到,在 JavaScript 裡面的用法是透過 await env.DB.get()
操作:
export default { async fetch(request, env, ctx) { const { pathname } = new URL(request.url) if (pathname === '/num-products') { const { result } = await env.DB.get(`SELECT count(*) AS num_products FROM Product;`) return new Response(`There are ${result.num_products} products in the D1 database!`) } } }
然後從 screenshot 上沒有看到 region,但是 class 那邊出現了一個 tokyo3
不知道是什麼東西:
目前看到的就這些,沒提到 replication 機制 (這其實還蠻重要的,某些資料是有法規限制的),另外開發者會很在意的 performance 或是 latency 也沒提到 (所以可以預期應該不會太好?)。
另外在 RDBMS 內很重要的 ACID 特性與分散式系統中 CAP theorem 的性質也都沒有分析。
可以先放著看看就好...