Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

db abilities #765

Closed
listaction opened this issue Jun 25, 2020 · 6 comments
Closed

db abilities #765

listaction opened this issue Jun 25, 2020 · 6 comments
Assignees
Labels
question Further information is requested

Comments

@listaction
Copy link

Hi team,
beyond relational, could you comment on the abilities of the database as it applies to :
snapshot isolation
read consistency
CP / AP abilities
any benchmarks for latency measures?

@oscarbatori oscarbatori self-assigned this Jun 25, 2020
@oscarbatori oscarbatori added the question Further information is requested label Jun 25, 2020
@oscarbatori
Copy link
Contributor

Thanks for your interest. Here is a document with some of the details that you are requesting.

Dolt is currently optimized for data-transfer and management, that is we have prioritized the semantics, interface, and storage format, above implementing some of the more OLTP focused capabilities you mention. The SQL engine is improving rapidly, but it's not yet an application backing store, and isn't likely to be so any time soon (within reason).

Would you be able to share more details about the use-case that you have in mind and maybe we can use that to give you better answers? We are the biggest users!

@zachmu
Copy link
Member

zachmu commented Jun 25, 2020

Like Oscar mentioned, Dolt isn't primarily an application server. You can use it as one, but it's not on the level of other DB products in terms of performance or features yet. The SQL interface is mostly about providing customers a no-friction way to get data into and out of the database.

Specific answers:

Snapshot isolation: each Dolt commit is effectively a snapshot, and is an immutable node in the commit graph. You can query the state of the DB at any given commit with the AS OF syntax.
Read consistency: reads are always consistent (no eventual consistency), but we don't currently support multiple simultaneous DB connections because of poor transaction isolation support. Work on transaction isolation and different levels of the same are underway.
CP / AP: Dolt DB is limited to a single machine for now. If we had to choose this would be CP, but really more like just C.
We publish benchmarks in this repo: https://www.dolthub.com/repositories/Liquidata/dolt-sql-performance. They're only really useful for our own performance regression testing, though. We are working a high level set of performance benchmarks.

@listaction
Copy link
Author

@zachmu / @oscarbatori : thank you for taking the time to address the question in detail! Responses make total sense.
I was trying to understand the use cases for using doltdb - it does sound like it can be useful in the areas of maintaining test data?

@timsehn
Copy link
Sponsor Contributor

timsehn commented Jun 26, 2020 via email

@listaction
Copy link
Author

was referring to this :
Reproducing Models or Analysis (pretty much maintaining some form of test data and use it for validation where things worked) . It does create more work to track these, but certainly better than anecdotal entropy.

I feel for it to serve in the datalake scenarios where data is typically large (PB), it needs to be closer to the datalake. Very interesting project!!

@timsehn
Copy link
Sponsor Contributor

timsehn commented Jun 26, 2020 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants