Earlier quoted context omitted.
Have you considered using direct IO for the log?
Yes. So far performance was worse in experiments, and the durability improvements are questionable because it is extremely difficult to get a clear understanding of the durability semantics of direct IO. If you can find a pointer to clear documentation of what those semantics are I'd be extremely interested in reading it.
Pebble: A RocksDB Inspired Key-Value Store Written in Go
61–70 of 84 posts
Re: Pebble: A RocksDB Inspired Key-Value Store Written in Go
#62Re: Pebble: A RocksDB Inspired Key-Value Store Written in Go
#63Maybe less aggressive rollout strategy?
Re: Pebble: A RocksDB Inspired Key-Value Store Written in Go
#64Earlier quoted context omitted.
I have an Amazfit Bip, but the UI isn't as good as Pebble sadly. There is some work in making a similar OS called RebbleOS[1] currently ongoing. [1]: https://github.com/pebble-dev/RebbleOS Hopefully it will be portable to other low-end smartwatches.
3 years later and it looks like they are just at the trying to get hardware features accessible. At this rate all pebble devices will have died / been discarded before its able to show a notification on your wrist.
Re: Pebble: A RocksDB Inspired Key-Value Store Written in Go
#65I’ve run into serious house burning down problems with myrocks too. Simple recipe to crash MySQL in a way that is unrecoverable: do ALTER TABLE on a big table and it runs out of RAM, crashes, and refuses to restart, ever. Googling and people have been reporting the error on restarting several times on lists and things. What help is it to report to Maria dB or something? But do FB notice? Seems not. Here’s hoping some…
Likely your db configuration is very different from what FB uses in production, so they have no incentive to investigate or fix.
The problem is that the program runs out of RAM. The challenge is to write the data and metadata in such a way that a program crashing at any point for any reason is recoverable.
This is the basic promise of the Durability in ACID, and people using MyRocks expect it.
Rather than actually making sure that MyRocks is durable, they simply slap on a 'max transaction rows' to make it unlikely you run out of RAM. Instead, you simply get an error, and can't do stuff like ALTER TABLE or UPDATE on large tables.
Of course its easy to run out of RAM despite these thresholds, and its easy to find advice when you google the error messages you get that lead you to up the thresholds and to even set a 'bulk load' flag that disables various checks you probably haven't investigated.
The whole approach is wrongheaded!
A database that crashes should not be corrupt!!! Isn't this reliability 101? Why doesn't myrocks have chaos monkey stress testing etc etc?
Re: Pebble: A RocksDB Inspired Key-Value Store Written in Go
#66Earlier quoted context omitted.
Likely your db configuration is very different from what FB uses in production, so they have no incentive to investigate or fix.
Its that the 'fix' is so unprofessional. The problem is that the program runs out of RAM. The challenge is to write the data and metadata in such a way that a program crashing at any point for any reason is recoverable. This is the basic promise of the Durability in ACID, and people using MyRocks expect it. Rather than actually making sure that MyRocks is durable, they simply slap on a 'max transaction rows' to make…
Because Facebook has little incentive to ensure that RocksDB works well in your use case. MyRocks was built for Facebook and anything that Facebook doesn’t do probably isn’t particularly hardened. They aren’t going to invest time doing chaos monkey stress testing on codepaths they don’t use. Things like durability might not be super important to them because they will make it up in redundancy.
I remember being burned by something similar during the early days of Cassandra. I’m sure Cockroach has hit the same bugs.
Re: Pebble: A RocksDB Inspired Key-Value Store Written in Go
#67- what is the plan to tackle Go's GC?
It seems to me that above a certain scale people run into GC problems with Go.[1]
- have they considered WickedDB?[2]
It appears to be a good candidate for their need.
https://github.com/Fullstop000/wickdb
https://blog.discord.com/why-discord-is-switching-from-go-to...
Re: Pebble: A RocksDB Inspired Key-Value Store Written in Go
#68Earlier quoted context omitted.
There's some notes on that here: https://github.com/cockroachdb/pebble/blob/c39589c8cb36d95df...
The TLDR is that the GC did cause problems so we had to avoid it for the block cache. Luckily we were able to do so without exposing the complexity in the API. Not for the faint of heart. Don't try this at home kids.
Re: Pebble: A RocksDB Inspired Key-Value Store Written in Go
#69Re: Pebble: A RocksDB Inspired Key-Value Store Written in Go
#70Was anyone else deeply saddened about three words into the headline, on realizing this wasn't a watch? (RIP)
I definitely was. I still use one now, more than 3 years after their business failure. I really wish someone would make something like the Pebble Time 2.
Thinking of switching to Apple watch because I have iPhone and I also want to use Apple Pay without the phone. If they had better battery life, I probably would have done it already.