HNHacker News
TopNewBestAskShowJobs

jinqueeny

1,732 karma · joined October 8, 2016

On my way to a be a hacker...
submissionscomments
jinqueeny··on Ask HN: Anyone Using CockroachDB in Production?
Disclaimer: I work for TiDB.

The incomplete list of TiDB adopters: https://pingcap.com/docs/v3.0/adopters/ and some of their adoption stories: https://pingcap.com/success-stories/

If you read mandarin, here are more: https://pingcap.com/cases-cn/

jinqueeny··on Distributed Systems Training in Go and Rust
Previously discussed here: https://news.ycombinator.com/item?id=20161214
jinqueeny··on Principles of Chaos Engineering (2018)
The following link shows how we do Chaos Engineering in TiDB, an open source distributed database:

https://www.pingcap.com/blog/chaos-practice-in-tidb/

Regarding the Fault Injection tools we are using:

- Kernel Fault Injection, the Fault Injection Framework included in Linux kernel, you can use to implement simple fault injections to test device drivers.

- SystemTap, a scripting language and tool diagnose of a performance or functional problem.

- Fail, gofail for go and fail-rs for Rust

- Namazu: a programmable fuzzy scheduler to test a distributed system.

We also built our own Automatic Chaos platform, Schrodinger, to automate all these tests to improve both efficiency and coverage

jinqueeny··on Jepsen: TiDB 2.1.7
See the companion blog from PingCAP: https://pingcap.com/blog/tidb-passes-jepsen-test-for-snapsho...
jinqueeny··on Jepsen: TiDB 2.1.7
Regarding FS/Disk faults, here is some information about what TiDB does:

tl;dr: Chaos Engineering

Some links: https://cdn2.hubspot.net/hubfs/4466002/Using%20Chaos%20Engin...

https://www.pingcap.com/blog/chaos-practice-in-tidb/

Regarding the Fault Injection tools we are using:

- Kernel Fault Injection, the Fault Injection Framework included in Linux kernel, you can use to implement simple fault injections to test device drivers.

- SystemTap, a scripting language and tool diagnose of a performance or functional problem.

- Fail, gofail for go and fail-rs for Rust

- Namazu: a programmable fuzzy scheduler to test a distributed system.

We also built our own Automatic Chaos platform, Schrodinger, to automate all these tests to improve both efficiency and coverage

jinqueeny··on How to Fix Two Linux Kernel Bugs While Testing TiDB Operator in K8s
Bug #1: Unstable kmem accounting

Keyword: SLUB: Unable to allocate memory on node -1

Bug #2: Network device reference count leak

Keyword: kernel:unregister_netdevice: waiting for eth0 to become free. Usage count = 1

jinqueeny··on TiDB open sources its MySQL/MariaDB compatible data migration tool
One more link: https://www.pingcap.com/blog/2017-07-24-tidbbestpractice/
jinqueeny··on TiDB open sources its MySQL/MariaDB compatible data migration tool
Disclaimer: I work for TiDB.

Here are some links that might be helpful:

- the typical use cases: https://pingcap.com/blog/architecture-and-use-cases-of-a-clo...

- the key differences between MySQL and TiDB

https://pingcap.com/blog/5-key-differences-between-mysql-and...

- the current case studies: https://pingcap.com/success-stories/

jinqueeny··on Geo-Distributed WordPress with Kubernetes and TiDB (with Repo, Terraform+Helm)
Demo repo: https://github.com/petergardfjall/geo-wordpress
jinqueeny··on Panorama: Capturing and Enhancing System Observability for Fault Detection
The repo is for the OSDI '18 paper: https://www.cs.jhu.edu/~huang/paper/panorama-osdi18.pdf
jinqueeny··on FoundationDB 6.0 released, featuring multi-region support
Any chance of writing up a case study in detail to share your experience and best practice, especially the comparison with other DBs?
jinqueeny··on Design Review: Key-Value Storage
Curious about how this compares to TiKV...
jinqueeny··on Porcupine, a fast linearizability checker for distributed systems in Go
It implements the algorithm in "Faster linearizability checking via P-compositionality": https://arxiv.org/pdf/1504.00204.pdf
jinqueeny··on Fletcher: A framework to integrate FPGA accelerators with Apache Arrow
A great project. Here is more info:

https://openpowerfoundation.org/wp-content/uploads/2018/04/J...

The conclusion is as follows:

- Serialization may cause significant bottlenecks in big data frameworks

- Prevents effective deployment of accelerators in some cases

- Apache Arrow can help to alleviate bottlenecks

- We created an FPGA interface generation framework for Arrow

- Fletcher works with SNAP

jinqueeny··on Water – a native Go library for TUN/TAP interfaces
It

- wraps almost only syscalls and uses only Go standard types;

- exposes standard interfaces; plays well with standard packages like io, bufio, etc.

- does not handle memory management (allocating/destructing slice). It's up to user to decide whether/how to reuse buffers.

jinqueeny··on Search Lookaside Buffer: Efficient Caching for Index Data Structures [pdf]
This seems to be the implementation: https://github.com/wuxb45/LMDB-SLB

Looks like it is effective for small data sizes and pure read-oriented workloads with heavy key distribution. Not sure whether this could work well for writes and uniform random distribution.

jinqueeny··on How to make MongoDB not suck for analytics
This is exactly how TiDB works like a charm. Internally, thanks to the Raft consensus algorithm (http://raft.github.io/), we could schedule and process the workloads separately: OLTP workloads to the leader replicas, OLAP to the follower replicas for the random or heavy analytics.

The past solution of the separate operational database and data warehouse poses great challenges for real-time analytics because it needs either data pipeline or the ETL process which could be the bottleneck of being "real-time", not to mention the waste of time, efforts and human resources maintaining multiple data warehouses. It was impossible for real-time analysis because, in the past, you would need a data pipeline, or message queue with the equivalent throughputs with your OLTP database, which I believe does not exist.

However, whether to adopt this hybrid solution depends on your specific usage scenario. For cases where users want to do real-time analysis in their data warehouse upon the same data table as in their OLTP database, TiDB is your choice.

jinqueeny··on How to make MongoDB not suck for analytics
If I understand it correctly, the "business intelligence stack" you are looking for is something that bridges the gap between the online transactional processing (OLTP) and online analytical processing (OLAP). If that's the case, then some new jargons might help you:

- hybrid transactional and analytical processing (HTAP), coined by Gartner, - hybrid operational and analytical workloads (HOAP), by 451 Research - Translytical, by Forrester

If that's the solution you want to explore, TiDB (https://github.com/pingcap/tidb), the open source distributed scalable HTAP database, might be able to help you. ETL is no longer necessary with TiDB’s hybrid OLTP/OLAP architecture.

Here is a use case about how it helps the largest B2C fresh produce online marketplace in China to acquire real-time intelligence:

https://www.datanami.com/2018/02/22/hybrid-database-capturin...

Here is a tutorial about how you can try TiDB/TiSpark on your own laptop using Docker Compose: https://www.pingcap.com/blog/how_to_spin_up_an_htap_database...

Disclaimer: I work for TiDB.

jinqueeny··on An embedded database written in Rust
What about TiKV (https://github.com/pingcap/tikv), a distributed transactional Key-Value store?
jinqueeny··on Apple open-sources FoundationDB
Congratulations! It’s very exciting to see FoudationDB back to the open source community!
jinqueeny··on CockroachDB 2.0 released
Congrats on a major achievement, CRDB! It’s been really hard-core and cool stuff! Super excited to see that one more use case is coming in, the one with the Blockchain! In case someone is interested, TiDB released a case study with Mobike (with a daily data growth at ~30TB) just one day before: https://www.pingcap.com/blog/Use-Case-TiDB-in-Mobike/
jinqueeny··on CockroachDB 2.0 Performance Makes Significant Strides
As a distributed database system, the highly-layered architecture of TiDB is not a disadvantage because it makes TiDB easier to debug and diagnose when issues occur. The complicity resulted from the separated modules can be easily tackled by automatic deployment tools and microservice framework. For example, TiDB can be easily deployed either using Ansible: https://pingcap.com/docs/op-guide/ansible-deployment/ or Docker Compose: https://pingcap.com/docs/op-guide/docker-compose/

TiDB has been widely adopted by many users (https://github.com/pingcap/docs/blob/master/adopters.md) in production because it support the best features of both RDBMS and NoSQL. It is quickly evolving and iterating based on users’ requirements which are prioritized and listed on the Roadmap.

jinqueeny··on Translytical has become synonymous with real-time
New Jargon never stops to appear. Anyone knows what's the difference between "translytical" and "HTAP"? https://en.wikipedia.org/wiki/Hybrid_transactional/analytica...
jinqueeny··on Hybrid Database (TiDB) Capturing Perishable Insights at Yiguo
In this use case, TiDB is used as a real-time data warehouse. This could eliminate the latency in analytics and simply the information management infrastructure.
jinqueeny··on Singapore's electric car-sharing program hits the road
There are similar electric car-sharing programs in Beijing and it is quite popular. But it is not as popular as the Bike-sharing programs. Gosh, Mobike (orange) or OFO (yellow) bikes everywhere! I believe this is a good thing if the price is fair and there are enough cars.
jinqueeny··on Google bets big on China AI
Yet Chinese people cannot use Google, at least not easily...
jinqueeny··on “Follow-The-Workload” Beats the Latency-Survivability Tradeoff in CockroachDB
Yep, thanks for your clarification!
jinqueeny··on “Follow-The-Workload” Beats the Latency-Survivability Tradeoff in CockroachDB
Another good candidate is TiDB (https://github.com/pingcap/tidb). It has elastic scalability, ACID compliances, high availability, etc.

At least, TiDB, CRDB, RethinkDB are open source :)

jinqueeny··on “Follow-The-Workload” Beats the Latency-Survivability Tradeoff in CockroachDB
Great post! Do you have benchmark to show how CRDB is compared with TiDB in terms of performance and latency? And how CRDB is compared with Amazon Aurora with PostgreSQL compatibility?
jinqueeny··on How Citus Executes Distributed Transactions on Postgres
TiDB and CockroachDB also support distributed transactions. The transaction model in TiDB (https://github.com/pingcap/tidb) is inspired by Google Percolator, It’s mainly a two-phase commit protocol with some optimizations. More info on the blog: https://github.com/pingcap/blog/blob/master/_posts/2016-10-1...
← PreviousPage 2 of 3Next →