1
头图

✏️ Editor's note:

In March 2022, Ji Bin officially joined the ranks of Milvus committers after the unanimous vote of the community.

In the past 3 months, in addition to submitting 40 PRs for the community, he is also active in the Milvus user group, helping answer technical questions from many users.

In the next article, Bin Ji will share with us how he grew from an "open source tracker" to a committer for the Milvus open source project.

Who is Ji Bin

First of all, let me briefly introduce myself. I am Ji Bin, a system engineer at Unisight Huazhi. Currently, I am in charge of software pre-research work related to Unisinsight cloud native and artificial intelligence. Previously, I worked on 5G and cloud-related software development at Nokia, and was keen to track participation in open source. In addition to writing code, I will also summarize some of what I have learned in my public account "Code Memo", and friends who are interested can go and have a look. Usually I like to study coffee, drink tea and cook.

Getting to Know the Milvus Community

At first, our company hoped to do an internal project to improve the quality of the code, we needed to use some pattern features to compare the historical code, and some vector comparison techniques would be used, so we went to find it at that time. There are some open source solutions. Although this project was not completed in the end, this opportunity made us understand the existence of the vector database Milvus. Later, we gradually tried to use Milvus in our external products, and now we actually use Milvus 1.1.

my open source path

I first participated in open source contributions in 2014, and the project I contributed to was Facebook-thrift, when the code was still submitted via email. At that time, I just thought that if the project is upgraded in the future, I can seamlessly upgrade the new version of thrift, so I tried to submit jira and patch to the community, but I didn't expect it to be merged into the mainline very soon. It is a pity that I did not continue to contribute to the community at that time.

The last time I came into contact with the open source collaboration model was when I was working at Nokia, and the entire Nokia workflow was based on GitHub's open source model, so when I first joined Milvus to contribute, it was quite quick to get started. I became a contributor to open source projects because I feel that using a technology as a programmer, whether open source or commercial, is largely an investment. When you choose a technology stack, you need to invest a lot of resources and even give up some other opportunities. Therefore, as an investment behavior itself, I don't want this to be a "white prostitution" thing, and I hope to give back to the upstream community. A person's power may be very limited, but if there are many people, the community will become more and more active, and then the product will maintain a vitality. Over time, the likelihood and probability of a return on investment will increase.

In addition, I think it is very important to provide some answers or discussions to users in the community, which can help me and my team maintain technical sensitivity. Because open source technology is often technologically advanced, the ideas and thoughts of the users it attracts are worthy of our reference. In the field of database software, the benefits of participating in the open source community can be seen when selecting technologies and participating in technologies. Because, after participating in open source, you will have a better understanding of the software implementation mechanism, advantages and disadvantages, and know how to make use of strengths and avoid weaknesses in production in the future, which is a very meaningful thing. Because the particularity of the database is that as you use it and as your data volume grows, some of its properties will change. In most usage scenarios, my business may not be able to achieve a large-scale data volume in a short period of time, and it may only reach the peak data volume in the next two or three years. At this time, it is necessary to track and monitor the performance of the database for a long time.

My experience with the Milvus community

What impressed me more was the good interaction in the community. We started using Milvus 0.10.0. At the beginning of use, many small partners encountered problems in API calls because of their first contact with the vector database, and did not understand the internal implementation mechanism. When we encounter difficulties, we will receive assistance from the WeChat community and engineers. It is very important that we have been able to use Milvus 0.10 in the company's products; another thing that impresses me is that when I am working on a project where Milvus 2.0 supports Windows compilation, I A local private repository is used for temporary development, and many commits trigger issue status updates. At this time, Xiaofan took the initiative to come to me and asked me if I needed some assistance. I think this is a very good interaction and positive feedback, which enhances our confidence in using the Milvus database in our products for a long time in the future.

Contribution to the Milvus community

My main contributions in the community are these repos: milvus-io/milvus-sdk-cpp, milvus-io/milvus and milvus-io/knowhere.

Here are some of the more interesting projects I've done, including but not limited to:

running Milvus 2.0 on Windows
Milvus version 1.0 supports deployment of S3
Milvus 1.0 supports OSS object storage
Milvus Knowhere

Some of my tips

Why should participate in open source: programmers generally have a lot of work pressure, many times we have to "996" or "roll up", and are always full of anxiety about the future. It is also because of this that many people do not understand the meaning of contributing to open source. Why should I sacrifice my time and energy to work for free for people I don't know?

The original intention of my participation in open source was to break the game and seek more efficient learning methods. Because you have to jump out of your original level or your original knowledge circle, and look at something from a larger scope, it is possible to have a revolutionary change in what you are doing now, and your efforts at this time will be a result. an efficient effort.

Upstream first: If you use open source software, you must have a belief: upstream first. This is very important, your changes must be merged upstream, because upstream updates will definitely be faster than you. In order to enjoy the benefits of upstream in the future, and at the same time you don’t want to lose this part of your modification, the simplest thing is actually upstream first.

Do a good job of time management: In addition to work, I also need to take care of my family, so I usually get up earlier, and spend a little time in the morning to see the update of the PR or issue of the Milvus C++ SDK project I am concerned about. When the work needs are urgent, I will use my working time to do Milvus-related things, but for some less urgent needs, I will use my spare time to maintain Milvus and submit slowly. In addition, in my actual pre-research work, when I encounter the need to modify or update Milvus, I will immediately tell the community about this idea in the form of PR or issue, because the efficiency is the highest at this time. of. If the whole thing is done, it can be very painful to go back and do PR.

How to get involved in the community

First, you need to read how to contribute document to understand some norms of the community. Then, you can try to start with small documentation contributions to get familiar with the contributing process.

When you are familiar with this system, I believe you will have a lot of ideas, maybe you want to know more technical details and the direction this community wants to develop. In addition to participating in discussions in GitHub and WeChat groups, you can also participate in the regular meeting held by the community - Milvus Technical Meeting to understand the progress of the community and make your own suggestions.

Finally, I wish you all a wonderful open source journey, and welcome to join the ranks of Milvus contributors!


Zilliz
154 声望829 粉丝

Vector database for Enterprise-grade AI