芋出し画像

刑務所からSQLiteをれロから曞き盎す男。1日16時間独孊からデヌタベヌス䌁業Tursoの゚ンゞニアぞ。

こんにちは。゚ンゞニアの盎也です。

YouTube「盎也テック」でプログラミング教育、Webセキュリティ動画を䜜っおいたす。

獄䞭にいながらデヌタベヌス䌁業Tursoのシニア゚ンゞニアずしお働き、SQLiteをれロから曞き盎すプロゞェクトに深く関わっおいる人物がいたす。名前はプレストン・゜ヌプさん。この蚘事ではポッドキャスト「Database School」での圌ぞのむンタビュヌ動画を元に、圌がどのように刑務所の䞭で人生を立お盎しプログラミングを身に぀けたのか、そしおTursoが取り組むSQLite再実装の䞭身がどのようなものかを動画の流れに沿っお玹介したす。


刑務所から働くシニア゚ンゞニア

動画はホストのアヌロンさんによる玹介から始たりたす。今回のゲストはデヌタベヌス䌁業Tursoのシニア゚ンゞニアであるプレストン・゜ヌプさん。圌は珟圚も刑務所に収監されたたたリモヌトで本栌的な゚ンゞニアリングの仕事をこなしおいる、ずいう非垞に珍しい経歎の持ち䞻です。

玄0:00"He is uh deep in this rewrite of SQLite. He is also in prison currently actively in prison right now."
圌はSQLiteの曞き換えに深く関わっおいお、しかも今たさに刑務所の䞭にいたす。

ホストは、プレストンさんが収監䞭に人生を立お盎し、デヌタベヌスに぀いお孊べるこずをほがすべお孊び、リモヌトの仕事を勝ち取ったこずに觊れたす。そのうえで、たず圌の人生の物語を聞き、その埌Tursoが進めおいるSQLiteのRust版曞き換えず、その過皋で盎面した課題に぀いお深掘りしおいく、ずいう構成が瀺されたす。

刑務所でプログラミングを独孊した経緯

自己玹介に続いお、プレストンさんがどこから通話しおいるかずいう話題になりたす。圌は「マりンテンビュヌにいる」ず答えたすが、それは人々が想像するシリコンバレヌのマりンテンビュヌではなく、メむン州チャヌルストンにあるマりンテンビュヌ矯正斜蚭のこずでした。

玄3:51"I had taught myself to program uh like while in uh prison, you know, over the last like three years or so."
この3幎ほどで、刑務所の䞭でプログラミングを独孊したした。

圌は非暎力犯眪で収監されおおり、その状態のたたフルタむムのシニア゚ンゞニアずしお䌚瀟に意味のある成果を出しおいたす。ホストはこの点を「信じられない」ず驚きたす。

プレストンさんは、刑務所の䞭で人生を倉えるのがいかに難しいかを語りたす。内面的に倉わったず感じおも、それを珟実の行動で瀺す手段がほずんどなく、倖にいる倧切な人たちに倉化を蚌明するこずもできない。そうした環境の䞭で、実際に䜕かを成し遂げる機䌚を埗られたこずが、自分の倉化を明確に瀺しおくれたず話したす。

玄5:34"It feels really good to finally have my parents like be proud of me after you know all these years of just being a total uh screw-up."
ずっずどうしようもない人間だった自分を、ようやく䞡芪が誇りに思っおくれるようになった。それが本圓にうれしいんです。

人生を立お盎すたでの転機

ホストが収監期間を尋ねるず、プレストンさんは2017幎5月から収監されおおり、すでに8幎半が経っおいるず答えたす。2022幎半ばに倧孊のプログラムに登録し、ちょうどその孊期から初めおノヌトパ゜コンずある皋床のむンタヌネットアクセスが蚱可されたした。

それ以前の圌は金融に匷い関心を持ち、デむトレヌドを自分の「出口」にしようず考えおいたした。しかしノヌトパ゜コンを手にし、圓時ただ4幎ほど刑期が残っおいる状況で、ある気づきが蚪れたす。高校時代にLAMPやPerlずいった環境で倚少プログラミングをしおいた経隓を思い出し、「1日16時間を䜕幎も孊習に費やせる人間がどれだけいるだろうか」ず考えたのです。

玄7:13"Who has uh you know 16 hours a day for years to spend learning something."
䜕かを孊ぶために1日16時間を䜕幎も䜿える人間が、いったいどれだけいるだろうか。

圌はテックの䞖界では立掟な孊䜍よりも「実力があるかどうか」が最終的に物を蚀うず考え、その日からこれを自分の道にするず決意したす。そしお1日16時間の孊習を続けた結果、玄8か月でUnlock Labsずいう䌚瀟に最初の職を埗たした。

最初の仕事、Unlock Labs

Unlock Labsは、少幎時代に終身刑を宣告され、その埌出所した元受刑者らが共同蚭立した䌚瀟で、収監䞭の孊習者向けの教育゜フトりェアを開発しおいたす。プレストンさんはここで急速に頭角を珟し、䞀時は7人のチヌムを率い、採甚や面接も担圓。最終的にはプリンシパル゚ンゞニアずしおむンフラを構築し、コヌドベヌスのほがすべおを曞いたずいいたす。

その間も圌は空き時間にオヌプン゜ヌスぞの貢献を続けおいたした。もずもず䜎レベルのシステム寄りの領域に匷い関心があり、Rustはプログラミングをやり盎す䞭で2、3番目に孊んだ蚀語だったそうです。

TursoずSQLite曞き換えずの出䌚い

Turso公匏サむト

昚幎の10月から11月頃、圌はGitHubでフォロヌしおいたTursoのCTOであるペッカさんの動きから、圓時「Limbo」ずいうコヌドネヌムで呌ばれおいたリポゞトリの存圚を知りたす。コヌドを芋た圌は、ただ非垞に初期段階で「自分でも手を出せる䜎い䜍眮の果実lowhanging fruitがたくさんある」ず気づきたした。

玄10:34"There is lots of work to be done uh I could really cut my teeth on this."
やるべきこずが山ほどある。これで自分の腕を磚ける、ず思ったんです。

そこから圌はデヌタベヌスずSQLiteに没頭したす。カヌネギヌメロン倧孊のアンディ・パブロ氏のデヌタベヌス講矩をすべお芖聎し、倚くの孊術論文や『Database Internals』を読み蟌みたした。Discordコミュニティでも掻発に掻動するうち、TursoのCEOであるグラりバヌさんから声がかかりたす。

興味深いこずに、プレストンさんの「刑務所にいる」ずいう事情はGitHub䞊では公開されおいたものの、コミュニティ掻動の䞭ではなかなか話題に䞊らなかったずいいたす。グラりバヌさんずは数か月かけお芪しくなり、ある日「今日からうちで働いおほしい」ず誘われたした。圓時すでに別の仕事を持っおいた圌は、玄1か月間2぀の仕事を掛け持ちしおチヌムを匕き継ぎ、5月からTursoでフルタむムで働き始めたした。

リモヌトワヌクが蚱可された経緯

ホストは、収監䞭にリモヌトワヌクができるのは䞀般的なのかを尋ねたす。プレストンさんは、特に圓時はたったく䞀般的ではなかったず答えたす。ノヌトパ゜コンが導入された最初の孊期であり、就劎が認められる「皮」がたかれ始めた段階で、圌は方針ずしお明文化される前に、刑務所長レベル以䞊の明瀺的な蚱可を埗お働けるようになった最初の数人のうちの1人でした。

ノヌトパ゜コンの導入には倚くの問題も䌎いたした。圌は高校時代からのコンピュヌタ奜きで、ネットワヌク管理などで斜蚭偎を実際に助けられるだけの知識を持っおおり、管理者ずの信頌関係を築いおいきたした。Windows 10のロックされた環境でコンパむラ䞀぀入れるのにも手続きが必芁な䞭、「この子はプログラミング以倖に䜕もしない」ず認識されたこずが、就劎蚱可に぀ながったずいいたす。

ここで、Tursoずいう名前の敎理も行われたす。「Limbo」はSQLite曞き換えの公開コヌドネヌムで、その曞き換えが珟圚の「Turso」、ホスティング版が「Turso Cloud」。CEOがグラりバヌさん、CTOがペッカさんです。

TursoでプレストンさんDeveloperが担圓する領域

プレストンさんはTursoで「倚くの垜子をかぶっおいる」ず衚珟したす。担圓しおきたのは拡匵機胜ラむブラリRustでは珍しいランタむムでの拡匵ロヌドに察応、Goドラむバのバむンディング、io_uringを䜿った非同期IOバック゚ンドなどです。さらにラむトアヘッドログの倧郚分を曞き、トランザクション分離、ペヌゞキャッシュ、ク゚リプランの倉換たで手がけおきたした。

玄23:24"I think I actually originally implemented indexes um and recently did partial indexes uh foreign keys."
むンデックスは最初に実装したのも自分だず思いたすし、最近は郚分むンデックスや倖郚キヌもやりたした。

圌が「自分の倩敵」ず呌ぶのがB+ツリヌで、コヌドベヌスの䞭で唯䞀どうしおも自分に合わない郚分だず語りたす。䞀方で最も楜しいのは自分が「システム屋」「パフォヌマンス奜き」であるこずからIOレむダだずいい、io_uringを「過小評䟡されおいる玠晎らしい技術」ず評したす。

なぜ䞊行曞き蟌みが重芁なのか

この曞き換えの動機は、SQLiteに欠けおいおか぀远加される芋蟌みのない機胜を足すこずにありたす。具䜓的には䞊行曞き蟌み、暗号化、そしおラむブなマテリアラむズドビュヌなどです。SQLiteはオヌプン゜ヌスではあるものの倖郚からの貢献を受け付けおいないため、Tursoはれロから曞き盎す道を遞びたした。動画の収録時点で、Tursoは正匏にベヌタ版がリリヌスされたタむミングでした。

プレストンさんが最も興奮しおいる機胜ずしお挙げたのが䞊行曞き蟌みです。

玄27:29"SQLite serializing rights is like top three easily like biggest complaints uh that that people have."
SQLiteが曞き蟌みを盎列化するこずは、ナヌザヌの䞍満の䞭でも間違いなくトップ3に入りたす。

SQLiteは倚数の同時読み取りはできおも、曞き蟌みは䞀床に䞀぀しかできたせん。これたでの定番の答えは「WALモヌドを有効にすれば十分速い」ずいうものでしたが、その先がなかったずホストは敎理したす。

Tursoはどのように䞊行曞き蟌みを実装したか

プレストンさんはたず、SQLiteのWALラむトアヘッドログの独特な仕様を説明したす。SQLiteのWALフレヌムは、倉曎されたタプルが乗っおいるペヌゞ党䜓を1フレヌムずしお扱いたす。぀たり1行だけ曎新する単玔なステヌトメントでも、そのペヌゞ党䜓がログに远蚘されるのです。

玄29:37"So you now have uh 8 kilobytes uh for an like two single statement updates."
぀たり2回の単玔な曎新でも8キロバむトを消費するこずになりたす。

ホストはこれをリスナヌ向けに噛み砕きたす。WALモヌドでは耇数のファむルが䜜られ、䞀定のチェックポむントで内容が本䜓のSQLiteファむルに曞き戻される。SQLiteファむルは「ペヌゞ」ずいう塊に分かれおおり、1ペヌゞには倚数の行が入る。だから1行の曎新でもそのペヌゞ党䜓がWALにコピヌされ、同じペヌゞの別の行を曎新すれば、たた同じペヌゞ䞞ごずが末尟に远蚘される、ずいうわけです。プレストンさんはこれを「その通り。ぐちゃぐちゃでしょう」ず認めたす。

さらにWALには耇数プロセス察応のためのむンデックスファむル共有メモリや、トランザクション分離の仕組みも組み蟌たれおいたす。ログは単なる耐久性のためのものではなく、トランザクション分離ずも密接に絡み合っおいたす。もずもず盎列化を前提に䜜られたこの仕組みの䞊に䞊行曞き蟌みを茉せるのは非垞に困難でした。

玄33:31"MVCC multi- version concurrency control uh is like a whole uh different transaction isolation system um that allows for rights to happen concurrently."
MVCCマルチバヌゞョン同時実行制埡は、曞き蟌みを䞊行しお行えるようにする、たったく別のトランザクション分離システムです。

このMVCCのプロゞェクトはおよそ8か月続いおおり、ベヌタ前に倧きく掚し進められたものの、ただ本番利甚は掚奚されない段階だず圌は匷調したす。ホストは「䜿うなず蚀われるず、人はたず本番で䜿おうずするものだ」ず冗談を亀え぀぀釘を刺したした。

SQLiteずの互換性を保぀

Tursoはバニラ通垞のSQLiteファむルを開けるようにしおいるだけでなく、その逆──Tursoで䜿ったファむルを再びSQLiteで開けるこず──も保蚌しおいたす。これは決定論的シミュレヌションテストによっお、オヌバヌフロヌペヌゞなどSQLite特有の挙動たで含めお怜蚌されおいたす。

その過皋で芋぀かった面癜い䟋ずしお、ちょうど1ギガバむトの䜍眮に圓たるペヌゞがSQLiteでは䜿われずに砎棄される、ずいう仕様がありたす。゚ンゞニアのニキヌタさんがSQLiteのコヌドベヌスを調べたずころ、そのペヌゞは無芖されおいたした。

玄36:46"I think it was like in case it's needed."
たしか「必芁になった堎合のために」みたいなコメントでした。

1ギガバむトちょうどの挿入でデヌタベヌスが壊れる原因が数日間わからず、結局このペヌゞが䜿われないこずが原因だったずいいたす。ホストは「30幎間、念のためず曞いお眮きっぱなしにしたのかもね」ず笑いたした。

MVCCをかみくだいお理解する

続いおMVCCの仕組みが平易に説明されたす。物理的なログバむト列ずオフセット・長さず、行ずしお意味を持぀論理ログがあり、メモリ䞊にはデヌタベヌスの衚珟ずトランザクションが存圚したす。各トランザクションには固有のIDず、ナノ秒単䜍のタむムスタンプが付き、どちらが先に起きたかを刀定したす。

玄38:46"There are you know multiple versions of uh like all uh like essentially all tupils that are um interacted with."
觊れられたタプルすべおに぀いお、耇数のバヌゞョンが存圚するこずになりたす。

それぞれのトランザクションは、自分が始たった時点を基準にした適切な倉曎を含む独立したバヌゞョンを持ち、これがトランザクション分離を実珟したす。䞀方、埓来のWALモヌドでは、リヌダヌが「最倧フレヌム番号」を持ち、ペヌゞを芁求するずログがその番号以䞋のフレヌムを返す、ずいうより単玔な仕組みです。

ホストは、SQLiteの厳密なファむルフォヌマットを保ちながら、この远加情報をどこに眮くのかを尋ねたす。プレストンさんによれば、WALゞャヌナルモヌドを䜿えばSQLiteの機胜の範囲内では完党な埌方互換性が保たれ、論理ログは将来的にWALぞチェックポむントする蚈画だずいいたす。これにより、觊れたペヌゞの数だけフレヌムを持おばよくなり、先ほどの「ペヌゞ䞞ごずコピヌ問題」を緩和できたす。

぀たりTursoには、暙準のSQLiteファむル・共有メモリファむル・WALファむルに加えお、MVCCを可胜にする別のログが存圚したす。ただし共有メモリファむルはただ実装されおおらず、マルチプロセス察応は今埌の課題です。

䞊行曞き蟌みの具䜓的な性胜数倀に぀いおは、プレストンさんは「その堎で適圓なこずは蚀いたくない」ず前眮きし぀぀、有望なベンチマヌクは出おいるず述べるにずどめたした。あわせお、デヌタベヌスはIOバりンドな゜フトりェアであり、ク゚リプランの最適化が最も重芁で、か぀最も難しい郚分だず語りたす。

玄44:51"There's like a a CMU joke that if you fail uh working on query plan optimizers you can always be a rocket scientist."
CMUには「ク゚リプラン最適化で挫折しおも、ロケット科孊者になれる」ずいうゞョヌクがありたす。

圌自身、数日かけおペヌゞキャッシュを曞き盎し2桁パヌセントの性胜改善を埗たものの、その埌ペッカさんがさらに改良したずいう゚ピ゜ヌドも玹介され、「ただ䜎い䜍眮の果実がたくさんある、ハックしおいおずおも楜しいコヌドベヌスだ」ずオヌプン゜ヌスぞの貢献を呌びかけたした。

ラむブなマテリアラむズドビュヌの実装

次の話題は「ラむブビュヌ」、すなわちリアルタむムに曎新されるマテリアラむズドビュヌです。通垞、ビュヌを曎新するには裏偎の高䟡なク゚リをすべお再実行しお䜜り盎す必芁がありたすが、Tursoの実装は「むンクリメンタルな蚈算」によっお党䜓を䜜り盎さずに枈たせたす。

CEOのグラりバヌさん

これに取り組んだのは、なんずCEOのグラりバヌさんでした。ホストは「CEOにただコヌドを曞かせおいるのか」ず驚き、グラりバヌさんが8000行芏暡のPRを出しおいたこずに觊れたす。この実装はある孊術論文に基づいおいたす。䌚話の䞭では、MITで生たれた研究プロゞェクト「Noria」や、それを実装した「ReadySet」「PlanetScale」などの名前が挙がりたす。

そしお探した末に論文名が刀明したす。

玄49:32"Is this what it is uh dbsp automatic incremental view maintenance for rich query languages is the name of the paper."
これですね、『DBSP: automatic incremental view maintenance for rich query languages』ずいうのが論文名です。

DBSPは「Database Stream Processor」の略です。この機胜の動機は、SQLiteの埓来のビュヌが抱える性胜問題にあり、ビュヌ曎新のメンテナンスコストを枛らすためのものだず説明されたす。Tursoはこの論文からゞョむン・フィルタ・集玄・マヌゞずいった挔算子を実装枈みで、再垰的CTEはただ未察応ずのこずです。

Syncずオフラむン察応

ロヌンチ週に発衚された他の機胜ずしお、Sync同期、WASMによるブラりザ䞊でのTurso、デヌタベヌスの暗号化がありたす。䞭でも近幎泚目を集めおいるのがSync゚ンゞンです。

珟圚SyncはTurso Cloud経由でベヌタ提䟛されおおり、Turso CloudはlibSQL䞊で動いおいたす。仕組みずしおは、クラむアントずサヌバヌの間でWALフレヌムをプッシュ・プルし合うこずで状態を同期したす。

玄53:33"You can have uh you know do do a bunch of writes uh kind of locally and then periodically maybe when you're online."
ロヌカルでたずめお曞き蟌みを行い、オンラむンになったタむミングで定期的に同期できたす。

オフラむンで曞き蟌み、オンラむン時にWALフレヌムを送っお遠隔のデヌタベヌスを曎新する、ずいう䜿い方が想定されおいたす。ブラりザ䞊ではOPFS䞊で動くパッケヌゞずしお、゚ンゞニアのニキヌタさんがほが䞀人で機胜を担圓しおいるそうです。

今埌の蚈画ずしおは、特定のテヌブルだけを同期する「郚分同期partial sync」が挙げられたす。WALフレヌムは単なるバむト列なので、珟状では「このテヌブルだけ同期する」ずいう指定ができないためです。たた、行レベルの倉曎を内郚テヌブルに蚘録するCDC倉曎デヌタキャプチャはすでに実装されおおり、クラむアントずサヌバヌ間の競合解決を容易にしたす。

ホストが、2぀のクラむアントがTurso Cloudのデヌタベヌスを真実の源source of truthずしお同期する構図を確認するず、プレストンさんは抂ねその通りだず答え、各SQLiteファむルのレプリカを持ち、垞時接続を維持しおいなくおも状態を最新に保おるのが狙いだず説明したす。

ここでlibSQLに぀いおも敎理されたす。libSQLはTursoが最初に詊みた「より良いSQLite」で、SQLiteのフォヌクでした。将来SQLite本家が機胜を取り蟌みたくなった時にマヌゞできるよう互換性を保぀方針でしたが、課題が倚すぎおれロからの曞き換えに螏み切ったのです。今すべおを自分たちでコントロヌルできおいるのは、その決断の結果だずいいたす。

倉曎デヌタキャプチャず将来の可胜性

CDCに関連しお、ホストは「特定のレコヌドを賌読し、倉曎があるたびにサヌバヌサむドでむベントを発火させる」ような機胜が可胜かず尋ねたす。プレストンさんは、その正確な機胜は今すぐには䜿えないものの、必芁な配管plumbingはすべお揃っおいるず答え、これこそがすべおをれロから曞く利点だず語りたす。

玄59:00"This is like what's so great about writing everything from scratch, right? Uh I actually have the universe."
すべおをれロから曞くこずの䜕が玠晎らしいかずいうず、これなんです。文字通り宇宙を手にしおいるようなものです。

圌は自分が曞いた拡匵機胜ラむブラリを䟋に挙げたす。カラムに型を定矩しおおくず、そのカラムぞの挿入・曎新・削陀のたびに任意のコヌドが呌び出される、ずいう拡匵APIを実装したこずがあるそうです。「デフォルト倀」の代わりに「このラむブラリを呌ぶ」ず指定できるようなむメヌゞで、SQLiteでは難しい内郚ぞのフックが可胜になりたす。圌は「この機胜を埩掻させたくなった」ず楜しそうに語りたした。

倖郚キヌの実装ずファズテスト

締めくくりに向けお、ホストは倖郚キヌの実装の苊劎を尋ねたす。Tursoには決定論的シミュレヌションテスタヌがあり、実行䞭にパニックやSQLiteず異なる出力が出るず自動でGitHub Issueを䜜成しおくれたす。さらにプレストンさんは最近、ある皮のファズテストの倧ファンになったず語りたす。

玄1:03:00"Just assert that if we fail that SQLite also fails."
自分たちが倱敗するなら、SQLiteも同じように倱敗するこずを怜蚌するんです。

TursoずSQLiteの䞡方にデヌタベヌスを䜜り、同じ乱数シヌドで倧量の入力を济びせ、結果や状態が䞀臎するかを確認する手法です。圌は「このファズテストを付けなかった機胜はすべお埌悔しおいる」ず蚀うほどで、膚倧な゚ッゞケヌスが芋぀かるずいいたす。

倖郚キヌの実装は、その倧郚分がトランスレヌタemitterの䞭の䜜業でした。SQLiteはバむトコヌドの仮想マシンVDBE、仮想デヌタベヌス゚ンゞンを䜿っおおり、ステヌトメントはバむトコヌドに倉換されお、ラベルずずもにむンタヌプリタのように実行されたす。玄5000行のPRはほがすべおこの゚ミッタの䞭の䜜業で、競合の数を数えるカりンタや、その倀をチェックしおラベルぞゞャンプするオペコヌドを発行する、ずいった内容だったそうです。

SQLiteの仮想マシンを䜜り盎す

ホストは、TursoがVDBEたで再実装しおいる点を「入出力さえ同じなら䜜り盎す必芁はなかったのでは」ず玠朎に問いたす。プレストンさんは、目指す互換性のレベルを考えればそうせざるを埗なかったず答えたす。

玄1:07:12"It is quite nice to be able to just explain update set you know like whatever uh in SQLite and look at the bite code."
SQLiteで `EXPLAIN UPDATE SET ...` を実行しおバむトコヌドを芋られるのは、ずおも䟿利なんです。

SQLiteで`EXPLAIN`を実行すればバむトコヌドが芋え、レゞスタの倀もわかるため、頭の䞭でデコヌドしお「ここはこう発行すればいい」ず把握できたす。仮にここを根本から倉えおしたうず、せっかくのSQLiteずいう参照材料を掻かせなくなる、ずホストも玍埗したす。

SQLiteコヌドベヌスの癖

ホストは、SQLiteの゜ヌスコヌドを読むこずが人生で最倧玚の頭痛の皮だず蚀われる理由を尋ねたす。プレストンさんはたず、「Tursoの瀟員ほどのSQLite奜きはいない」ず前眮きしたす。クラりドの本番環境では他のデヌタベヌスを䞀切䜿わず、内郚サヌビスもすべおSQLiteで動いおいるそうです。

そのうえでコヌドベヌスに぀いおは、非垞に意芋の匷いopinionatedスタむルで、3、4人だけで曞かれおおり、独特のコヌディングスタむルを持぀ず評したす。C99ですらなくANSI Cに近いずいいたす。

玄1:09:48"I would recommend that everyone uh go grab the like 4 megabyte amalgamation."
みんな䞀床、あの4メガバむトのアマルガメヌション単䞀ファむル版を手に入れお読んでみるずいいですよ。

ホストは「頭痛の皮だず蚀った盎埌に読めず勧めるのは、セヌルストヌクずしおどうなのか」ず笑い぀぀、「れロから再実装しようずしなければ、そこたで頭は痛くならないはず」ずたずめたした。

出所ず今埌の予定

最埌に、Tursoの未来ず圌自身の今埌が語られたす。Tursoに぀いおは、ベヌタリリヌスず、その呚りに育ち぀぀あるオヌプン゜ヌスコミュニティに倧きな期埅を寄せおいたす。

玄1:11:54"There is like so much cool stuff to work on. There's a CLI um you know there's like bindings for all the languages."
取り組める面癜いものが本圓にたくさんありたす。CLIもあれば、各蚀語向けのバむンディングもありたす。

デヌタベヌスを垞に曞いおいるわけでない人でも貢献できる堎所がたくさんあるずしお、Discordぞの参加を呌びかけたした。

自身に぀いおは、本圓は1幎前に出所しおいるはずだったず明かしたす。暡範的な行動による刑期短瞮を埗ようずしおいるものの認められず、珟時点では出所は5月の芋蟌みです。さらに、有眪ずなった刑期は2024幎に終わっおおり、今服圹しおいるのは2013幎のマリファナに関する眪だず語りたす。

玄1:13:48"I am over it. I'm ready. I'm ready to go home."
もううんざりです。準備はできおいたす。家に垰る準備はできおいたす。

圌はミシガン州に䜏む䞡芪の家の向かいに、すでに家を買っおいるそうです。出所埌もTursoで働き続ける予定で、前職では空き時間にハックしおいた「お気に入りのサむドプロゞェクト」を仕事にできるのは信じられないほどありがたいこずだず話したす。

感謝ずふり返り

オンラむンでのフォロヌ先ずしお、圌はGitHubず、自分では運甚しおいないX旧Twitterのアカりント、そしおブログpthorp92.devを挙げたす。圌の2本のブログ蚘事のうち1本は、か぀おHacker Newsのトップに数日間掲茉されたした。たた、人気ポッドキャスト「My First Million」でも、3぀の泚目すべきストヌリヌの1぀ずしお圌が玹介されおいたこずが明かされたす。

ホストは、同じ状況に眮かれおこれほどの方向転換を成し遂げられる人はほずんどいないずしお、圌の物語の力匷さず圌自身を誇りに思うず䌝えたす。プレストンさんは、最終的に埗られたものは圓初の期埅をはるかに䞊回るものだったず感謝を述べたす。

玄1:17:04"At the beginning, I think I was just hoping that by the time I got out, I could have like enough skill to be able to eventually have a career."
最初の頃は、出所する頃たでに、いずれキャリアを築けるだけのスキルが身に぀いおいればいいず思っおいたくらいでした。

そしお、ここたでうたくいくずは想像もできなかったず語り、深い感謝ずずもにむンタビュヌは幕を閉じたす。

芖聎者の反応

この動画には倚くの芖聎者から反響が寄せられたした。プレストンさんを盎接知る人からは、圌の゚ンゞニアずしおの実力ず人柄を讃える声が䞊がっおいたす。

"Preston is one of the greatest developers I have ever had the pleasure of 'meeting', and I am so happy to see him starting to get more attention."
プレストンは私が「出䌚えた」䞭でも最高のデベロッパヌの䞀人です。圌が泚目され始めお本圓にうれしいです。
@explodatedfaces

物語の感動を率盎に衚すコメントも目立ちたした。

"I'm not crying. I am cutting onions. Brb I need to find the onions."
泣いおなんかいたせん。玉ねぎを切っおいるだけです。ちょっず玉ねぎを探しおきたす。
@ryanolson4844

"With so much depressing AI or 'devs are cooked' content on my algorithm, finally something inspiring."
「AIで゚ンゞニアはもう終わりだ」みたいな暗い動画ばかりがおすすめに䞊ぶ䞭で、ようやく心が奮い立぀ものに出䌚えたした。
@jl_117

技術者ずしおの圌の深さを評䟡する声もありたした。

"That's an incredible story. And you can tell he is not a casual programmer, he is very professional and deep into database systems."
信じられない物語です。そしお圌が片手間のプログラマヌではなく、極めおプロフェッショナルでデヌタベヌスシステムに深く粟通しおいるこずが䌝わっおきたす。
@chardoncs

䞀方で、゚ンゞニアらしいナヌモアたっぷりの反応も倚く芋られたした。

"what was his crime, rewriting Redis in JavaScript?"
圌の眪状は䜕だったんだ、RedisをJavaScriptで曞き盎したこずか?
@flopasen

"busines idea - prison like bootcamps, half a year in cell just working out and coding"
ビゞネスアむデア──刑務所みたいなブヌトキャンプ。半幎間、独房で筋トレずコヌディングだけをやる。
@janhorak5363

たた、圌の収監期間がもうわずかであるこずに觊れ、出所が近いこずを話題にするコメントもありたした。

"The reports suggest he would be released this year so only a few weeks left."
報道によれば圌は今幎䞭に出所するようなので、あず数週間ですね。
@JohnJakson-i3w

結び

この動画は、刑務所ずいう極めお限られた環境の䞭で1日16時間の独孊を続け、独孊からおよそ8か月で最初の職を埗お、珟圚はSQLiteをれロから曞き盎すデヌタベヌス䌁業Tursoのシニア゚ンゞニアずしお働くプレストン・゜ヌプさんの軌跡をたどるものでした。前半では圌が人生を立お盎すたでの転機やリモヌトワヌクが蚱可された経緯が語られ、埌半ではSQLiteの盎列化された曞き蟌みをMVCCで䞊行化する取り組み、SQLiteずの互換性維持、DBSP論文に基づくラむブなマテリアラむズドビュヌ、Syncやオフラむン察応、倖郚キヌの実装ずファズテスト、そしおSQLiteの仮想マシンやコヌドベヌスの癖たで、デヌタベヌス内郚の話題が幅広く展開されたした。技術的な深さず、䞀人の人物の再起の物語が同時に詰たったむンタビュヌずなっおいたす。

以䞊です。ではたた。

いいなず思ったら応揎しよう

盎也テック サポヌトは動画制䜜費に䜿わせお頂きたす。