Psíquico
.pdf .xmind otro lugar para usar Xmind para registrar problemas básicos de CS. La versión xmind es "xmind 2020".
En 2020, tardó aproximadamente 2 meses en organizar la primera base de conocimiento Xmind: Zeromind. La razón por la que creé un repositorio adicional para hacer lo mismo es porque, por un lado, mi estética ha cambiado y, por otro lado, tengo una comprensión más profunda de los problemas más importantes pero básicos.
Confucio nunca me engañará revisando el pasado y aprendiendo lo nuevo. En el proceso de resolver los puntos de conocimiento básico, tengo mi propia comprensión del contenido como CFS-Vruntime, Variables de condición POSIX, TCP y EPOLL, y siento que de repente me doy cuenta.
La razón por la que uso xmind para registrar estos contenidos es porque me gusta mucho una línea en "rescate marciano":
A veces, todas las situaciones serán malas para ti. Cuando todas las cosas malas suceden juntas, puedes pensar, eso es todo, este es mi fin. Frente a esta situación, lo aceptas o encuentras una manera de resolverla, y este es el verdadero significado de todo. Para resolver el problema, piensa en varias formas de resolver un problema y luego resolver el siguiente problema, repitiendo el ciclo y cuando resuelve suficientes problemas, puede irse a casa.
En otras palabras, al enfrentar un gran problema, debe aprender a dividirlo en pequeños problemas uno por uno y luego lidiar con él uno por uno, es decir, "dividirlo y conquistarlo". Aquí hay algunas imágenes que pueden ayudarlo a comprender mejor lo que hace este proyecto:

? Tabla de contenido
- Base de datos
- Sistema distribuido
- Middleware
- Programación de red de Linux
- Sistema operativo
- Golang
- Kubernetes
- C ++
? Base de datos
Mysql
- ¿Por qué MySQL usa B+Tree?
- Estructura de la página de datos innoDB
- Índice innoDB
- Innodb wal
- InnoDB Group Commit
- Innodb deshacer log y mvcc
- Bloqueo global, bloqueo a nivel de mesa y bloqueo de fila (Parte 1)
- Bloqueo global, bloqueo a nivel de mesa y bloqueo de fila (medio)
- Bloqueo global, bloqueo a nivel de mesa y bloqueo de fila (Parte 2)
- Selección de la clave primaria
- Optimizador basado en costos mysql
- Un breve análisis del principio de funcionamiento de MySQL unirse
- Replicación mysql: replicación asincrónica y paralela
- Mysql gtid y replicación semisíncrona
Postgresql
- Tablas agregadas y tablas de montón de índice
- Estructura de almacenamiento PostgreSQL
- MVCC en PostgreSQL
- Contexto de memoria en PostgreSQL (mmeoryContext)
- Estructura del árbol de consultas de PostgreSQL (consulta)
- RBO - Promoción de la subconexión (concepto básico)
- RBO - Subconexión de elevación (proceso específico)
- Syscache en PostgreSQL
Grano verde
- Descripción general de la arquitectura Greenplum
- ¿Por qué se necesita movimiento?
Otros
- Estructura de datos Redis
- Principio de replicación de Redis Master-Slave
- Política de actualización de caché
- Descripción general del clúster Redis
- Descripción general de ETCD
- Implementación de bloqueos distribuidos
Sistema distribuido
Protocolos y algoritmos distribuidos

- 2 piezas
- Teoría de la tapa
- Problema general bizantino (consenso)
- Paxos básicos
- Raft: elección de liderazgo y replicación de registro
- Gossip - Gossip logra la consistencia final
- Quórum NWR - Consistencia personalizada
⚗️ Middleware
- Mensaje confiable middleware-rabbitmq
Programación de Network Linux
- Señal
- SET SEÑAL Y MASK SEÑALES
- Creación de un proceso
- Introducción a la comunicación entre procesos
- DEMONIO
- Protocolo de transmisión de datos confiable-TCP
- Control de congestión TCP
- Una lista de problemas de programación de socket (01)
- Una lista de problemas de programación de socket (02)
- Análisis del principio de Epoll
- epoll_event
- Proceso de apretón de manos https
- Modelo de proceso básico nginx y estructura de datos del núcleo
⚡ Sistema operativo
- Procesos de Linux, hilos y programación
- Memoria virtual de Linux
- Notas de memoria de Linux (01)
? Golang
- Diseño y uso del canal
- Diseño de mapa y tiempo de expansión
- Modelo GMP
- GC de tres colores claras
? Kubernetes
- ¿Por qué necesitas una cápsula?
- ¿Cómo se implementa una API declarativa?
? C ++
común
Programación orientada a objetos
HACER
Copiar control
- Copiar construcción y tarea de copia
- LV vs RV
- Estructura móvil y asignación móvil
- Tres/cinco reglas
Plantilla y programación genérica
- Uso básico de plantilla
- Problemas de referencia universal e inferencia de tipo
- Perfecto delantero
Tipo relacionado
- Casos Tipo de conversión
- Inferencia de tipo automático (auto)
- decltype
Programación de funciones
- expresión de lambda
- Objeto llamable - std :: function
Puntero inteligente
- Heap, Stack y RAII: cómo administrar los recursos en C ++
- RAII y Smart Pointer
- shared_ptr
Programación concurrente
- Procesos de Linux, hilos y programación
- Creación y ejecución de hilos
- std :: async vs. std :: futuro
- Mutex y std :: lock_guard, std :: unique_lock
- Cambios de estado de notificación: variable de condición de posez
- Cambios de estado de notificación: variable de condición C ++
- POSIX SEMAFORE
Compilación y enlace