Hi Rong,

Greetings from another Sergey, MariaDB Foundation.

Just to set the roles, do I understand correctly that you (ByteDance?) are will
be the primary driver of this effort and you need assistance from our side. Not
vice versa. Correct?

In either way, here is what I'd do if I were to implement it myself:
1. Pick the primary target branch. I'd use main if you're expecting many changes to
  MariaDB codebase, otherwise 10.11 should be alright.
2. I'd consider MySQL and MariaDB as different products from APIs point of view.
  E.g. Spider in MariaDB 10.3 was attempting to keep code compatible with all
  supported MySQL and MariaDB versions and it got overbloated with version check
  ifdefs such that code was almost unreadable.
3. Same for different MariaDB versions: I'd keep the code in separate branches for
  each supported version and merge from the lowest one to the highest.
4. Then we have 3 source code entities:
  - MariaDB source code itself
  - storage/videx - storage engine implementation
  - storage/videx/videx - videx server and other common stuff

  storage/videx can be either a submodule or go under MariaDB git history. Currently all
  storage engines use the latter approach. Directory contents:
    CMakeLists.txt
    ha_videx.cc
    videx/
    mysql-test/

  storage/videx/videx should probably be a submodule in your case.
5. I'd move all common code out of current ha_videx.cc.
6. Create MariaDB storage/videx implementation, make it compile.
7. Start populating storage/videx/mysql-test with various use cases, fix bugs.
  I'm unsure about MySQL and MariaDB regression testing systems compatibility,
  but some common tests can live in storage/videx/videx and imported during
  compilation.
8. Once things are in a decent state we should be able to make videx part of MariaDB.

Speaking of communication channels: in this thread you have emails of most
relevant MariaDB engineers that you may want to deal with. I can help you deal
with general questions and coordinate this project on MariaDB side. Sergey
Petrunia should definitely step in at point 6-7, once we start dealing with optimizer
differences. You should be able to use @svoj in your github issues/pull requests to
ping me. MDEV-36737 and this mailing list are also alright.

Regards,
Sergey

On Mon, May 26, 2025 at 7:36 PM Rong Kang via discuss <discuss@lists.mariadb.org> wrote:
Hi Sergei and Adam,

I'm excited to share that VIDEX has been accepted into OSPP-2025 (Open Source Promotion Plan), a program where students apply to contribute to open source projects. We now have enthusiastic students ready to work on the MariaDB adaptation of VIDEX.

Given your effective research and code investigation so far, I'd like to inquire about the progress and discuss potential collaboration arrangements. Your expertise would be invaluable in scheduling and coordinating this work to avoid duplicate efforts.

The VIDEX students can contribute to either the optimizer/plugin side or the statistics server modifications - we're flexible and would appreciate your guidance on where their contributions would be most beneficial.

The OSPP program runs from June 25 to September 30. Within this timeframe, we hope to achieve meaningful milestones that could serve as a foundation for potentially including VIDEX in the official MariaDB plugin list in the future.

I look forward to hearing your thoughts on the best way to coordinate this effort.

For reference, here's the OSPP-2025 project page (available in English):
https://summer-ospp.ac.cn/org/prodetail/25a990328?list=org&navpage=org

Best regards,
Rong
ByteBrain Team, ByteDance
_______________________________________________
discuss mailing list -- discuss@lists.mariadb.org
To unsubscribe send an email to discuss-leave@lists.mariadb.org