Mis años en MySQL


Autor: Lai Zheng (Allen Lai), antes de que los miembros oficiales del equipo MySQL, centrado en el desarrollo del kernel de base de datos durante casi dos décadas, haya trabajado en un sueño, el equipo de Teradata, Founder y MySQL InnoDB Storage Engine está a la altura del kernel de la base de datos del sueño, Founder XML database Y el soporte GIS de MySQL InnoDB, el principal desarrollador de cifrado transparente. Actualmente es un ingeniero experto en el equipo de bases de datos del departamento de plataforma de arquitectura de nube de Tencent TEG, responsable del desarrollo del kernel de base de datos CDB de Tencent Cloud.




Entrevista

En la primavera de 2012, el sol brillaba y los pájaros cantaban y las flores estaban fragantes. Estaba luchando por tocar el teclado con mis amigos en un edificio naranja en Zhangjiang. Cuando sonó un teléfono suave, la pantalla del teléfono mostró a un extraño ¿Era otro número de teléfono acosador? No me importaba, así que seguí tocando en mi teclado. El teléfono temblaba todo el tiempo, como urgiéndome, lo descolgué, el teléfono estaba conectado y una voz femenina muy suave y profesional vino del otro extremo, "Hola, soy la consultora de reclutamiento de Oracle, Amy, ¿te conviene ahora? ? ... ". Desde entonces, mi carrera se ha cruzado con MySQL.

Amy me dijo que el equipo de MySQLInnoDB está interesado en contratar ingenieros de kernel de bases de datos adecuados en China y me preguntó si estaría interesado en unirme. Voy a MySQL, la base de datos de código abierto más popular del mundo, ¿me invitas a unirme? Le contesté sin siquiera pensarlo, claro que sí, y estoy muy interesado. Amy es una RRHH muy profesional que organizó las entrevistas después de mí de manera muy eficiente. Con un toque de ansiedad y emoción, comencé la entrevista para el equipo de MySQL.

La primera ronda de la entrevista: director del equipo InnoDB, Calvin. Calvin es un experto en el campo de las bases de datos, una de las grandes personas que se graduaron de la Universidad de Ciencia y Tecnología de China en los primeros años (presentaré específicamente a las grandes personas de MySQL).

Segunda ronda de la entrevista: Innam, experto en optimización del rendimiento de InnoDB, Innam es el autor de la optimización del rendimiento del grupo de búfer.

La tercera ronda de la entrevista: InnoDB Great God o. o Uno de los miembros del equipo fundador de InnoDB, un gran experto en tecnología de motores de almacenamiento

La cuarta ronda de entrevistas: el arquitecto de InnoDB Jimmy. Jimmy también es un experto completo en el kernel de la base de datos y anteriormente fue el jefe del equipo del kernel del sistema Sybase.

La entrevista de MySQL no tuvo tantas reglas y dificultad como imaginaba, las cuatro rondas fueron básicamente charlas, principalmente sobre las cosas hechas antes y la comprensión del kernel de la base de datos. Me impresionaron tres cosas. Una fue que el acento de Innam era demasiado fuerte. Además de llamar desde Canadá, no tenía un alto nivel de comprensión auditiva en inglés, por lo que no entendía muchas preguntas. Lote.

La otra es que hice una pregunta sobre cómo encontrar un punto muerto de transacción usando Google Talk, y la velocidad de escritura fue tan rápida que pensé que lo contrario era una máquina de escribir, hasta que lo vi, la gente real descubrió que es una máquina de programas sin emoción. (En realidad, o sigue siendo una persona muy interesante. La siguiente serie presentará algunas cosas interesantes sobre él). La entrevista de Jimmy se llevó a cabo en una cafetería en Nanjing West Road. Las dos personas parecían conocerse desde hacía mucho tiempo. Jimmy es una persona particularmente admirable, muy amigable. El proceso general de la entrevista se siente relativamente fácil, incluso sin una preparación deliberada, tal vez sea realmente afortunado.

equipo

En lo que respecta a las empresas de software tradicionales, la estructura del equipo de MySQL es relativamente plana, con pocos niveles. Los empleados básicos como yo están a solo cinco pisos del jefe de Oracle, Larry Ellison. La razón principal de esto es que durante mucho tiempo después de que Oracle adquirió MySQL, básicamente retuvo la estructura original y el personal del equipo de MySQL, pero hizo algunos accesos simples.

Todo MySQL se divide en varios equipos grandes, como el kernel de MySQL, la replicación de MySQL, MySQL NDB, etc. Estos equipos grandes se subdividen en varios equipos más pequeños, por ejemplo: el equipo del kernel de MySQL se divide en capas de optimizador y servidor. , InnoDB, QA, etc.

En ese momento, el equipo InnoDB en el que estaba tenía a Calvin, Kevin, Jimmy de los Estados Unidos, O de Finlandia, Sunny de Australia, Innam, Michael de Canadá, Mattias de Suecia, Satya de India, Vasil de Bulgaria, además de chinos. Yo, un total de once personas de ocho países diferentes, soy un equipo de I + D totalmente global. Todos en el equipo son programadores experimentados del kernel de bases de datos, como: o es el dios más experimentado que se unió a InnoDB en 2003, Sunny es el futuro administrador de InnoDB y Kevin también es un veterano que ha participado en el desarrollo del motor de almacenamiento Falcon. Jimmy una vez dirigió el equipo de I + D de Sybase y así sucesivamente. Es realmente una suerte poder trabajar con tantos tipos importantes.

Reunión del equipo 2013 en Shanghai

: 起 : Jimmy, Yasufumi, Allen, Kevin, o, Shaohua, Mattias, Satya, Sunny, Vasil, Aditya, ??, Annamalai, Bin, Michael, ??, Krunal

trabajos

Trabajar en InnoDB es algo muy feliz, porque puedo trabajar desde casa. Este es un beneficio muy poco común para un padre que necesita recoger y dejar a sus hijos todos los días. Además, le ahorra mucho tiempo de viaje. Debe saber que se necesitan más de dos horas para ir a la oficina de Oracle en Shanghai.

Dado que es un equipo global, y los miembros tienen más experiencia, todos trabajan de una manera muy especial. Básicamente, todos están enfocados en su propio trabajo, son relativamente independientes, y cuando necesitan cooperar, se comunican a través de palomas, correo electrónico o teléfono. Habrá una reunión semanal cada semana, y todos informarán sobre su propio progreso de trabajo y discutirán. Cada año se organiza una reunión de equipo, y todos se reúnen de todo el mundo para resumir el trabajo del año anterior, planificar las metas para el próximo año, hablar de ideales y hablar de la vida.

En MySQL, el proceso de desarrollo está muy estandarizado. Tome una corrección de errores como ejemplo, siguiendo aproximadamente los siguientes pasos.

Primero, necesita analizar y reproducir el error basado en el informe de error, y luego encontrar un método de reparación. Después de discutir con el nivel 5, determinar el plan de reparación y crear una nueva rama de código a través de bzr.

Una vez completada la codificación, debe crear el caso de prueba de MTR correspondiente y colocarlo en el tablero de revisión junto con el código de reparación. Revíselo. El proceso de revisión puede durar varias rondas, porque un gran dios como o revisa muy rigurosamente y no dejará de lado ningún detalle problemático.

Una vez completada la revisión, el código que se enviará debe colocarse en el grupo de prueba para su prueba. Este sistema de prueba automatizado es muy poderoso, compilará versiones de depuración y lanzamiento en múltiples plataformas al mismo tiempo, y luego probará en paralelo.

Una vez completada la prueba, el código finalmente se puede fusionar en el tronco después de confirmar que no hay problemas.

Mi primera presentación

Lo anterior es solo un proceso simple de corrección de errores, y para el desarrollo de características más complejas, los pasos también incluirán el registro de trabajo de la tarea de creación previa y completarán HLD (Diseño de alto nivel), LLD (Diseño de bajo nivel) y otros diseños en el registro de trabajo en consecuencia. Contenido, desarrollo de prototipos, etc.

El registro de trabajo de funciones del índice de espacio de verificación que hice

En los seis años de trabajo con InnoDB, hice un total de 461 presentaciones. Las principales características que hice incluyen el soporte de InnoDB para indexación espacial, cifrado transparente, diccionario de datos nuevo, etc. La siguiente es una lista de algunos de los registros de trabajo:

WL\#6968 InnoDB GIS: R-tree index support
WL\#6455 InnoDB: GEOMETRY datatypes support
WL\#6745 InnoDB GIS: support DML operation for InnoDB R-tree Index
WL\#7740 InnoDB GIS: Enhance Check Table for InnoDB Spatial index
WL\#8548 InnoDB: Transparent data encryption
WL\#9290 InnoDB: Support Transparent Data Encryption for Redo Log
WL\#9289 InnoDB: Support Transparent Data Encryption for Undo Tablespaces
WL\#9531 InnoDB_New_DD: Enable table encryption and transparent compression
WL\#9535. InnoDB_New_DD: Remove InnoDB system table and modify the view of their
I_S counterparts
WL\#9537 InnoDB_New_DD: Support InnoDB table import/export for new DD

En los últimos seis años, siento que he ganado mucho. He experimentado todo el proceso de cómo se desarrolla un producto de software de base de datos de código abierto como MySQL. También aprendí cómo funcionan un sistema de I + D maduro y un equipo internacional. Trabajar con dioses extranjeros no solo aprendió conocimientos y habilidades, sino que también descubrió otra forma de trabajar, de vivir y de pensar que es completamente diferente a la nuestra.

vete

Con el auge explosivo de las empresas de Internet y el rápido desarrollo del ecosistema MySQL, muchos miembros del equipo MySQL han obtenido mejores oportunidades de desarrollo y se van gradualmente. Y también comencé a tener un vínculo indisoluble con TXSQL, el núcleo CDB de Tencent Cloud Database. Casualmente, menos de un año después de que dejé MySQL, Oracle anunció el cierre del centro de I + D chino. Para Oracle, frente al fuerte impacto de Amazon, Ali, Tencent y la ola de ir a O, experimentará un período de transición difícil. Para MySQL, seguirá siendo la base de datos de código abierto más popular del mundo en el futuro previsible. Como ex persona de MySQL, continuaré ayudando al desarrollo de MySQL en Tencent y contribuiré al ecosistema MySQL a través del núcleo TXSQL de CDB. el poder de.

PD: En la serie de artículos de seguimiento, compartiré algunas cosas interesantes con ustedes una tras otra para informarles más sobre MySQL y su versión TXSQL de Tencent, espero que les guste.

Se ha abierto el intercambio oficial de tecnología Tencent WeChat Group

Únase al grupo y agregue WeChat: journeylife1900

(Observaciones: Tencent Technology)

Supongo que te gusta

Origin blog.csdn.net/Tencent_TEG/article/details/109505116
Recomendado
Clasificación