ååæãã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æžãæããšã®åºäŒã

æšå¹Žã®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ã«ãŸã ã³ãŒããæžãããŠããã®ãããšé©ããã°ã©ãŠããŒããã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ã®ä»®æ³ãã·ã³ãã³ãŒãããŒã¹ã®çãŸã§ãããŒã¿ããŒã¹å éšã®è©±é¡ãå¹ åºãå±éãããŸãããæè¡çãªæ·±ããšãäžäººã®äººç©ã®åèµ·ã®ç©èªãåæã«è©°ãŸã£ãã€ã³ã¿ãã¥ãŒãšãªã£ãŠããŸãã
以äžã§ããã§ã¯ãŸãã
ãããªãšæã£ããå¿æŽãããïŒ
ãµããŒãã¯åç»å¶äœè²»ã«äœ¿ãããŠé ããŸãã