Kacam.net

Systèmes

write 返回了,断电之后数据还在吗

write 返回了,一秒后断电 —— 数据还在吗?

Copiez la consigne, puis choisissez un modèle. Il joue l'examinateur et vous interroge acte par acte au lieu de vous donner la réponse.

Sur un téléphone où l'application est installée, le système l'ouvre directement. Dans WeChat, les liens n'ouvrent pas les applications externes : ouvrez-le d'abord dans un navigateur.

Le texte copié se termine par le corrigé dont le modèle se sert pour vous évaluer. Ne le lisez pas avant : ce qui compte, c'est de l'avoir déduit vous-même.

这是所有「重启之后数据没了」「日志少了最后几行」类事故的源头。

中心问题是一个很多人从没想过的:新建一个文件、写完、fsync 了,断电之后这个文件一定在吗? 文件内容落盘了,但「这个目录下有这个文件」这条目录项呢。

最后一幕是那个著名的坑:fsync 返回错误之后重试,可能返回成功而数据从来没写进去。知道这一条的人不多,踩上的代价很大。

★★★★☆ · environ 35 min · Ce qui est évalué : page cache 与持久化的分界、新建文件要 fsync 几次、fsync 失败能不能重试

Ce que celle-ci travaille

Durabilité Le chemin des E/S Espace utilisateur et noyau

Déjà fait celui-ci ?

Connectez-vous pour noter que vous l'avez fait : la prochaine fois, vous verrez quel jour c'était.

Notes de ceux qui l'ont fait

Personne n'a encore écrit. Une fois terminé, racontez ce qui est sorti de l'échange : quel acte vous a bloqué, quelle conclusion vous avez changée ensuite.

Se connecter pour écrire une note.

Comment s'en servir

Cette série enseigne au lieu d'interroger : elle vous guide au lieu de pousser jusqu'à ce que vous n'ayez plus rien à dire. Quand vous bloquez, elle demande d'abord à quel niveau (jamais entendu / je sais mais pas pourquoi / je sais pourquoi mais je n'y arrive pas), puis décide quoi donner. Elle ne donne la réponse qu'après deux tentatives de guidage — et vous demande ensuite de la redire avec vos mots.

Elle vous réclamera des chiffres sans relâche : répondez « ça coûte un peu » ou « c'est plus rapide » et elle vous coupe. Une conclusion sans ordre de grandeur est une conclusion apprise par cœur — c'est exactement ce que cette série travaille.

Comment démarrer

  1. Choisissez-en une, ouvrez-la, copiez l'invite.
  2. Collez-la dans une conversation toute neuve, ne dites rien, attendez sa première question.
  3. Attendez-vous à devoir chiffrer : combien de nanosecondes, de microsecondes, combien de fois plus lent. Dire que vous ne savez pas suffit, elle le note et continue.

Quatre commandes à lancer à tout moment

  • 跳过 passer tout de suite à la scène suivante
  • 换个说法 réexpliquer ce point sous un autre angle
  • 直说吧 donner la réponse complète, puis me la faire redire
  • 复盘 sauter à la conclusion et sortir la fiche de bilan

Trois pièges

  • Ne lisez pas le corrigé de la fin en premier — sa rubrique « erreurs de raisonnement courantes » contient la réponse à chaque question.
  • Ne vous jetez pas sur le jargon. Dire « c'est un défaut de TLB » est facile ; dire de combien c'est moins cher qu'un défaut de page, c'est ça qui compte.
  • Quand elle se met à vous complimenter, renvoyez-la à la règle « ne me complimente pas ». Guider n'est pas cajoler.

Pour vous faire les ordres de grandeur : les lectures aléatoires puis le premier octet. Pour le débogage en production : malloc, les blocages TCP, les changements de contexte. Pour le code concurrent : réordonnancement et faux partage.