Analyse du code source Leveldb 1.3 - Présentation de base de la classification des fichiers

Analyse du code source Leveldb 1.3 - Aperçu de base de la structure de stockage

introduction

Précédemment présenté la construction du code source et l'architecture globale de leveldb. Cet article vise principalement à comprendre les principaux systèmes de fichiers de leveldb, leur contenu de stockage et leurs objectifs fonctionnels.

1 fichier core

  • Fichier
    journal Le fichier journal est constitué des données écrites de manière persistante dans la MemTable. Chaque MemTable génère un fichier journal. Autrement dit, lorsque MemTable est converti en MemTable immuable, un nouveau fichier journal sera généré pour conserver les données nouvellement écrites par la suite. De plus, lors de l'ouverture de la base de données, le premier cache MemTable et le fichier journal correspondant seront générés. Le fichier journal se termine par ".log".
  • Le fichier
    sstable sstable est un fichier persistant de toutes les données non mises en cache. Dans le dernier code source, son extension est ".ldb", et il est compatible vers le bas et prend en charge l'extension ".sst" de l'ancienne version. Sauf que le niveau 0 est un fichier sstable contenant le contenu d'une MemTable immuable, les fichiers sstable de niveau 1 à 6 ne dépassent pas au plus 2 Mo. Mais la capacité maximale du fichier total de chaque niveau est 10 fois celle du niveau précédent (c'est-à-dire un niveau inférieur à celui-ci), et la taille totale du niveau 1 est de 10M.
  • Le manifeste du fichier
    manifeste enregistre les informations du fichier sstable de chaque niveau à un certain moment (ou une certaine version), et le fichier commence par "MANIFEST-". En particulier, après l'exécution de la base de données, le fichier manifeste ne sera pas créé. Lorsque de nouvelles informations de version doivent être écrites, le fichier manifeste sera effacé et écrit; le nouveau fichier manifeste sera créé après le prochain démarrage.
  • fichier actuel fichier
    actuel enregistre la dernière version actuelle ou la version actuelle du nom du fichier manifeste, le nom du fichier est "CURRENT".

2 Autres documents

En plus des fichiers principaux ci-dessus, il existe des fichiers auxiliaires:

  • Le
    nom de fichier du fichier de verrouillage est "LOCK", qui réalise l'exclusion mutuelle de plusieurs processus par l'ouverture exclusive, empêchant les ouvertures multiples de la même base de données.
  • fichier
    temporaire Les fichiers temporaires se terminent par ".dbtmp". Utilisé pour enregistrer des informations intermédiaires pendant le processus de réparation.
  • Le fichier d'informations du journal est
    utilisé pour enregistrer le journal d'exécution de la base de données, qui est différent du fichier journal. Dans la nouvelle version, le nom du fichier est "LOG", dans l'ancienne version, le nom du fichier est "LOG.old".

Je suppose que tu aimes

Origine blog.csdn.net/fs3296/article/details/107796703
conseillé
Classement