GSoC 2020 Devlog. Week 1
A few words of thanks
First, I'd like to thank MariaDB Foundation and my mentors, Marko Mäkelä and Thirunarayanan Balathandayuthapani, for giving me a chance to work on the project (which I'll describe below) and learn a lot about open-source development. Also, I want to thank Nikita Malyavin for offering to take a participation in GSoC 2020 and Eugene Kosov for helping me with warming up. It's such an excitement to be accepted as a participant of Google Summer of Code (and getting paid by Google for open-source development 😃)
The project I'm working on is MDEV-515 (tl;dr bulk insert in InnoDB.) The thing is, developers want the storage engine to support bulk inserting a huge amount of data as fast as possible. You can find more info in my proposal.
Week 0
Before this week, I was warming up. In 10.2 branch, InnoDB has their own vector type, ib_vector_t. Being a legacy from late 90's, it was suggested to replace it with std::vector. I couldn't say it was removed, but trying to do so really helped me to get familiar with InnoDB codebase. Also, I had found an unused field in fts_update_t in full text search module. As a result, I have first merged pull request: PR#1537. Not great, not terrible. About FTS – it's terrible by design, what was said in 2011 (!). Actually, it needs to be fully rewritten.
Week 1
While Thiru was preparing the patch to start the work, I was suggested to move trx->duplicates to row_prebuilt_t as a part of MDEV-17814 and MDEV-20605. I've examined a backport of the similar changes from MySQL, and came to conslusion that Oracle sometimes does unneeded changes. PR#1576 as a result in this week, but it will be merged after MDEV-20605 is done.