Let me (handsome boy) tell you what SIGs are

Here is Digital China! This is Digital China that will guide you to TiDB~

This time, I (handsome boy) will guide all the precious children who are interested in TiDB to SIGs. And now, follow me~

SIGs began to appear in TiDB

As we all know, internationally, SIG (special interest group) is an association of any individual or organization, usually a formal organization, trying to influence the association conducive to its public policy according to one or more common interests (such as IT, medical treatment, aerospace, etc.). Perhaps, smart you, from this definition alone, can deduce the reason why the community established multiple SIGs!

The community is the soul of an open source project. TiDB is an open source project independently designed and developed by PingCAP. In order to gather the strength of all parties, TiDB’s community framework is constantly reformed and innovated. Thus, when SIGs were vigorously developing, it was not so much a fashion as a general trend. The TiDB community also plans to gradually establish more special interest groups (SIGs) to attract more community forces to improve and perfect the TiDB project together. SIGs will carry out development and maintenance around specific modules and be responsible for the quality of the module code.

Welcome to the family

It’s a great honour that Digital China became an honoured member of a SIG. Our small community will carry out development, research and maintenance around “TiDB for PostgreSQL”, reconstruct TiDB source code to make it compatible with the PostgreSQL protocol that was not supported originally, so that systems based on PostgreSQL can successfully migrate to the distributed database.

In the coming month, I (handsome boy) will continue to gather interested partners to join the discussion and verification. I hope this can also become a part of TiDB in the future. Friends who want to be beautiful with me can contact us ~ Welcome to follow: Digital China Cloud Base.

What does the work include?

  • PostgreSQL protocol development
  1. PostgreSQL protocol is relatively complex. At present, only one basic communication protocol, such as general query and extended query, has been completed. More PostgreSQL protocols can be added to some of the currently completed PostgreSQL protocols.
  2. Since the PostgreSQL protocol is developed on TiDB, some protocols are converted from MySQL format to PostgreSQL format for communication. This part can be optimized to eliminate MySQL code and directly generate the PostgreSQL protocol. For example, data types, error messages, etc.
  • Syntax compatibility
  1. The syntax structures of MySQL and PostgreSQL are quite different. You can transform the basic DML sentence and change the MySQL syntax to PostgreSQL syntax.
  2. PostgreSQL contains a series of keywords and syntax that MySQL does not support. You can implement the keywords and syntax of PostgreSQL on the basis of (1) according to your needs and difficulty.
  • Improve testing
  1. In order to improve unit test coverage and ensure sound functions, more unit tests can be added to the project.
  2. Since TiDB itself has a series of unit tests, when the protocol is modified to PostgreSQL, some unit tests will fail, and the failed unit tests can be repaired.
  3. Add unit tests for each function you develop.
  • Review related project code

How to work together

  • Visit our project GitHub repo and find any issues you are interested in: https://github.com/DigitalChinaOpenSource/TiDB-for-PostgreSQL/
  • In order to ensure the efficiency of collaborative work, the development specification of TiDB for PostgreSQL is the same as TiDB. Please refer to community/README.md at master · pingcap/community (github.com)
  • Task assignment and management:
    • Join the SIG group chat. The team leader will regularly maintain the task list and the person in charge of the project in the group.
    • When each new member joins, they can choose the tasks or modules they are interested in, learn from the person in charge, and then take over the relevant tasks.
    • The person who takes over the task needs to update the task status regularly and participate in the design and discussion of the module.
  • Progress synchronization and regular meetings
    • The project will hold a task synchronization meeting every month to determine the work content for that month and the work plan for the next period, select excellent members for reward, and remove members who haven’t participated in the work or haven’t been active for a long time from the SIG.
    • The people in charge of different modules can hold relevant meetings or regular meetings according to the specific progress of the development of the module.
    • All meetings have a meeting record, which will be uploaded to the designated location within one day after the meeting is completed for everyone to review.

Summary

The journey of open source projects is very difficult, but with the continuous establishment, improvement and reformation of the community, it has established an extremely strong exchange foundation for us pioneers, and created a “TiDB for PostgreSQL” community, which can work together and achieve the same goal despite being scattered all over the world. Sincerely looking forward to finding you with similar aspirations!

A Little Easter Egg

-----------------Self-introduction from handsome boy, a new community moderator----------------
image
Hello, I’m He Ao from Digital China Wuhan Cloud Base. I was engaged in back-end development a few years ago. At present, I’m committed to the operation and maintenance and related R&D of the distributed database, TiDB. I hope to bring this excellent domestic database to more people in need. Out of my love for open source and TiDB, and I have gained a lot of help in TiDB community for a long time, I hope to give back some of my experience to the community, point out the direction for more partners who are new to TiDB, and build confidence in products. Therefore, I am lucky to become a member of AskTUG community moderator and establish a thriving community with the majority of TiDB lovers.

Thanks for sharing your understanding about SIG @RogueJin !

You may avoid abusing “Announcement” which is almost “@all” in the context, if everyone uses “@all”, then it becomes meaningless.

Also, please be aware that TiDB Internals is a hub for discussing everything related to the implementation and design of the TiDB projects, not an English version AskTUG. So before bringing content, please think once more what you want to show to TiDB kernel developers.

It’s glad to see that you guys building a project about TiDB for PostgreSQL, looking forward to your followups. For example, as delivered as

After reading this article, I just knew there was such a thing but had no idea how to get involved.

(The article doesn’t even have the address of the project)

This community is for TiDB developers, is it possible to share more information about the internal plans, how contributors can get involved, how they can collaborate, the progress of the project, etc.?

Thanks, Tison for the explanation. I will keep that in mind next time.:grin:

Thanks for your comment. Actually we are breaking down our plans into detailed tasks and these tasks will be posted to the project repo by next week. https://github.com/DigitalChinaOpenSource/TiDB-for-PostgreSQL/