goose
DISCONTINUED
tidb
Our great sponsors
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
goose
We haven't tracked posts mentioning goose yet.
Tracking mentions began in Dec 2020.
tidb
- Embed hard-coded SQL into binaries for a cleaner look!
-
Ask HN: Who is hiring? (January 2023)
PingCAP | https://www.pingcap.com | Database Engineer, Product Manager, Developer Advocate and more | Remote in California | Full-time
We work on a MySQL compatible distributed database called TiDB https://github.com/pingcap/tidb/ and key-value store called TiKV.
TiDB is written in Go and TiKV is written in Rust.
More roles and locations are available on https://www.pingcap.com/careers/
-
Banco de dados puramente com go
Pesquise por CockroachDB ou TiDB
- MySQL-mimic - Python implementation of the MySQL server wire protocol.
- Apache Pegasus – A a distributed key-value storage system
- Gitlab is splitting their main and ci Postgres databases
-
Open Source Databases in Go
tidb - TiDB is a distributed SQL database. Inspired by the design of Google F1.
-
Gitea – a painless self-hosted Git service
Gitea is very easy to use, but I find the Activity feature is a little slow.
I experienced the "Try Gitea" service and migrated our TiDB repo https://github.com/pingcap/tidb to it. When I clicked the Activity tab and selected "1 year" period, I found the page loading was so slow, nearly 90s. And I also found that this Activity doesn't have a Cache, I re-selected "1 year" again, and the page loading was nearly the same time.
I guess Gitea uses git command to traverse all the logs for the period every time. Maybe it can use a database to speed up, or like Github only provide at max "1 month" period.
-
Best language for database kernel development?
One of the founder of TiDB/TiKV here from [PingCAP](https://pingcap.com)
I have been thinking about this problem with my peers when I started to build [TiDB](https://github.com/pingcap/tidb) seven years ago. At that time, nearly all of us were familiar with Go language, so we decided to use Go to build the SQL layer of TiDB. Thanks to Go, we could develop TiDB very quickly and released the first MVP in half a year. I remembered clearly the sense when we ran TPC-C successfully, although the TPMC was just 1 at that time, this was a good start for us.
But Go had some problems, e.g. the GC was not good before, the fair scheduling might cause some latency problem, or data racing may happen sometimes. So when we decided to build a distributed storage (aha, [TiKV](https://githbu.com/tikv/tikv), we wanted use another language to guarantee safety. I really admire our courage - we chose Rust which was just released 1.0 and missed lots of libraries at that time. Now it seems that this is an awesome choice, TiKV has been graduated from CNCF, and been used as building block not only for TiDB, but also for other distributed systems. Thanks Rust.
When TiDB started being used in many companies, we found that our customer not only ran lots of online transactions in TiDB, but also they wanted to ran some realtime analytic queries directly because the data has been in TiDB already. So we decided to build a HTAP database, to introduce a column storage beside TiKV, this is [TiFlash](https://github.com/pingcap/tiflash). We build TiFlash based on Clickhouse, so of course, we use C++.
As you can see, to build only one integrated database - TiDB, we at least use three languages, every language has its own reason to be introduced. We can treat the distributed database as a service system, each service can be built with your favorite language and the services are linked by gRPC like TiDB does now. You may doubt that - “hey, guys, you are building a database, performance is very importance”. Yes, this is true, but we also build a complex distributed system, especially on the cloud. Scale-out, elastic, user experience must be important too. This is trade off for an engineer :-)
-
Insights for any repository on Github
As the database supporter for ossinsight.io, I also use this to get many insights for TiDB itself, see https://ossinsight.io/analyze/pingcap/tidb.
What are some alternatives?
migrate - Database migrations. CLI and Golang library.
vitess - Vitess is a database clustering system for horizontal scaling of MySQL.
cockroach - CockroachDB - the open source, cloud-native distributed SQL database.
sql-migrate - SQL schema migration tool for Go.
oceanbase - OceanBase is an enterprise distributed relational database with high availability, high performance, horizontal scalability, and compatibility with SQL standards.
InfluxDB - Scalable datastore for metrics, events, and real-time analytics
go-mysql-elasticsearch - Sync MySQL data into elasticsearch
go-mysql - a powerful mysql toolset with Go
go-cache - An in-memory key:value store/cache (similar to Memcached) library for Go, suitable for single-machine applications.
dgraph - The high-performance database for modern applications
kingshard - A high-performance MySQL proxy
jaeger - CNCF Jaeger, a Distributed Tracing Platform