Recent submissions

Comment · 4 years ago
The teams are approaches are different, but I need to say that internal clients are the same. Yandex is doing great things and it needs great tools.
Comment · 4 years ago
They are totally different systems. Just they have a first letter 'Y'.
Comment · 4 years ago
Foreign keys come at a cost, especially in distributed database. It's just a fact. If you can avoid them, it's great.
Comment · 4 years ago
The table is a bit outdated, we are going to fix it. To be honest, YQL is a very popular language in our company, it is successfully used for more than 7 years, but I agree that outside people want to see more standard SQL dialect.
Comment · 4 years ago
We have benchmarks in our roadmap, we understand there are required.
Comment · 4 years ago
The core tx ordering mechanism is inspired by Calvin deterministic transactions mechanism. We have some differences, like we have a distributed tx coordinator that allow us to scale number of transactions in flight.
Comment · 4 years ago
Comment · 4 years ago
Thanks for pointing this out. I think it's possible, most of the code is cross platform, we used to build YDB on Windows, so it should not be a problem. I suppose we need to improve a layer that works with storage devices to make it effective, for now it should be very naive implementation.
Comment · 4 years ago
Yes, you can think this way. But I need to add, that YDB is also a platform for developing distributed systems that store data. YDB provides a scalable and replicated storage with low latency, a conception of a tablet (that is also used in many systems) that implements distributed consensus. These building blocks are used for persistent queue implementation, block store, KV-tablets. These blocks are hard to develop and they are very good when you need to build something new or optimal for a specific problem. OLTP is an example of such a problem. But yes, we were building YDB to support OLTP workload initially.
Comment · 4 years ago
While you have a good point, I need to say that traditional databases and distributed databases differ in some points. For instance in YDB you can connect to any node of a database, it means that you need some kind of balancing (server side or client side). I'm not talking about SQL dialect right now, but rather how you connect to database and how you handle connection losses or node overloads. YDB SDKs have client side balancing feature to distribute load evenly across database nodes.
Comment · 4 years ago
Postgres support is in progress actually.
Comment · 4 years ago
YDB doesn't use Zookeeper. The system is built of tablets, every tablet implements distributed consensus algorithm. There are different types of tablets in the system, say SchemeShard is tablet that stores metadata, table schema for instance. DataShard stores table partition data.
Comment · 4 years ago
Each tablet gather a quorum of answers from members of so called BlobStorage group. BlobStorage group is a number of so called VDisks (virtual disk), all VDisks run on different nodes (even on different fail domain like racks, AZs). VDisk stores its data on physical device, i.e. PDisk.
Comment · 4 years ago
YDB is developed from ground up. We think about postgres compatibility layer, that's why you see 'postgres' in source code.
Comment · 4 years ago
That's right, wire protocol is grpc. SQL dialect is called YQL. YDB doesn't have MySQL or Postgres compatibility, but we think about it.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton