hissteria
Senior Member
Tự build base trên các nền có sẵn của opensource thôi, sau bổ sung thêm các feature phù hợp cũng đâu nhất thiết phải cải thiện cả perfomance của n. 1 usecase cơ bản thế này nhé, rockdb hay leveldb n bản chất là 1 thư viện c++ và thực hiện việc storage trực tiếp lưu trữ tới io, tuy nhiên chúng ko có khả năng scale rộng lên, vì thế mình sẽ thêm 1 tính năng sharding và warp toàn bộ n trong 1 service hoàn toàn bằng c++ , đó cũng là 1 sự phát triển lên rồi. Không ai đi chế tạo lại cái bánh xe tuy nhiên cũng chả có ai ôm nguyên cái bánh xe của hãng khác lắp vảo của mình.
Có lẽ để chốt vấn đề này, quan điểm của tôi là:
1. "Tự build sản phẩm(thay vì dùng opensource) với mục đích kiểm soát mã nguồn từ thấp nhất đến cao nhất, hay kiểm soát tính năng, tốc độ thay đổi" (như ý bài post trang trước của thím và thím @trungpham90) là thừa hơi, thiếu khôn ngoan và vô duyên.
2. Phát triển sản phẩm trên nền open-source cho corner-case đặc thù chưa được hỗ trợ, việc này khuyến khích, và được làm rất nhiều chứ không ít. Các công ty product ở mức vừa trở lên hầu như đều đã làm. Tuy nhiên cần tìm hiểu kỹ các giải pháp open-source đã có chưa, vì gần như 95% nhu cầu đã được giải quyết.
3. Rocksdb, leveldb, sqilte thực chất là embeddable database engine, nên các sản phẩm dùng nó để build database engine là rất phổ biến. Bên mình cũng nhúng leveldb vào database system riêng tự phát triển in-house và thêm các add-in features cho nhu cầu riêng. Việc này cũng như mục 2 thôi.
Nói thêm: sau khi phát triển database riêng đó, xuất hiện một giải pháp open-source khác(khá có tiếng) out-perform trên một số phương diện nhất định, nên đang tính chuyển qua dùng giải pháp đó luôn.
Last edited: