HNHacker News
TopNewBestAskShowJobs

leif

2,312 karma · joined March 25, 2009

engineer at tokutek

http://leifwalsh.com

submissionscomments
leif··on TokuMX 1.0: MongoDB with transactions, compression, MVCC, clustering indexes
Wow sorry responding on my phone is hard. It's drop in if you're on 2.2. We do not have some 2.4 features (FTS, geo).
leif··on TokuMX 1.0: MongoDB with transactions, compression, MVCC, clustering indexes
We're working on that, and we are hoping to base it on feedback, so if there's something you want, definitely let us know.
leif··on TokuMX 1.0: MongoDB with transactions, compression, MVCC, clustering indexes
The simplest list is this: no full text search, geo indexes, or background indexing yet.
leif··on TokuMX 1.0: MongoDB with transactions, compression, MVCC, clustering indexes
3. We support 2.2 but we've back ported some things from 2.4 (like hash-based sharding) pretty easily, I think we'll be able to keep up 4. Nope, it just came out today.
leif··on TokuMX 1.0: MongoDB with transactions, compression, MVCC, clustering indexes
1. Yep 2. Dump and reload to get between mongodb and TokuMX. The storage systems and replication systems are incompatible
leif··on Sysbench Benchmark for MongoDB – Performance Update
Glad to help. I hear you, we'd love to put out more benchmarks, but honestly we just don't have enough peopletime to do as much benchmarking as the software deserves, and if you can only put out k benchmarks/month, you'd better be putting out your best k benchmarks.

Tim, our VP of Engineering, does most of our official benchmarking, in between project management, support, and testing (and a million other things). Just today (after we posted the TokuMX vs. MongoDB iibench blog), he said something about how he can't do many more of them, it just takes too long for MongoDB to finish the whole benchmark. That's time our servers can't spend testing the new software we're trying to ship.

My hope is that now that the code is open, more users will start pounding on it and publishing benchmarks. Justin Swanhart recently posted some great benchmark results where he showed us in a less-than-flattering light: http://shardquery.com/2013/05/25/tokudb-vs-percona-xtradb-us.... I haven't studied the workload he ran, but it looked like he may be pointing out some bad query planning behavior and slow cache warmup properties that we should probably address at some point. And that's good for the product and good for the ecosystem, so I am thrilled* that he posted it. I just hope we get 50 more just like it.

Anyway, I'm glad you've got a better understanding. Hope you can find a use case for it!

leif··on Sysbench Benchmark for MongoDB – Performance Update
Unfortunately not, the replication format is completely different. A tool to do this would not be difficult to write, though.
leif··on Sysbench Benchmark for MongoDB – Performance Update
The name is a marketing term, you're right. The structure is somewhere in the realm of buffer trees, LSM-trees, $B^\epsilon$ trees, and COLAs. It's hard to give it an academic name precisely because the implementation takes hints from many places, but we hope to publish more soon. B-trees are on the optimal tradeoff curve but there are many other points on that curve, and B-trees heavily favor reads so there's plenty of room to win on the write side. I have a couple of blogs about this actually: http://www.tokutek.com/2011/09/write-optimization-myths-comp... http://www.tokutek.com/2011/10/write-optimization-myths-comp...
leif··on Sysbench Benchmark for MongoDB – Performance Update
TokuMX offers multi-document transactional semantics without application changes (snapshot reads), as well as protocol support for multi-statement (read-modify-write style) transactions, within a single shard. We are still designing how we want to present transactions in a sharded cluster.
leif··on Sysbench Benchmark for MongoDB – Performance Update
I am an engineer at Tokutek. Just talking about TokuMX, I have only seen MongoDB beat us on single-threaded, read-only workloads on extremely small data sets (like under 8K, or one MongoDB B-tree bucket).

The statement is really pretty much true. The best B-tree indexes (InnoDB) beat Fractal Tree indexes a little bit on in-memory reads, but we're not done tuning our implementation. On out-of-memory reads though, we usually beat B-trees because we compress so much better that we simply need to read less off disk.

Benchmarking is a tricky business though. Workloads can be varied, and you can probably find some corner cases where InnoDB beats TokuDB. I think we have some outstanding issues where the MySQL optimizer doesn't plan our queries properly, and we're still working on that. I'm a little out of touch with the MySQL side these days though so that could be wrong. But algorithmically, there are no cases where a B-tree index has a significant advantage over a Fractal Tree index.

Generally though, the read performance advantage we see is that if your indexes are Fractal Tree indexes, you can afford to maintain a richer set of indexes than you could have on InnoDB or MongoDB, and these extra indexes make your queries orders of magnitude faster. I think this is the most important (non-obvious) point to understand. I gave a talk about it here: http://www.youtube.com/watch?v=q6BnG74FZMQ

leif··on Emacs is Dead (2010)
Regarding "no multi-threading support", I have often wished for a node.js-like abstraction for event-driven processing in elisp. Seems like it could take the pain out of writing modules that want to do interesting processing or network-heavy stuff (looking at you, CEDET over TRAMP).
leif··on MongoDB's New Query Matcher
(On phone, can't edit the other reply)

Though you are right, the architecture we tried earlier, when we were doing a proof of concept, would not have helped with compression. Back then we were trying to play nice with mongodb's data format and keep its legacy indexes around. It turned out that for many reasons (concurrency, recovery, and compression, and a few others), it was a lot better to replace all of the storage code, so that's what some of us have been doing the past couple months.

leif··on MongoDB's New Query Matcher
What we are doing now is replacing all of mongodb's storage. So all of the data and all the indexes are in fractal trees. This means we can compress everything (including the field names!) and keep everything nicely defragmented.
leif··on MongoDB's New Query Matcher
I'll just leave this here... http://www.tokutek.com/2013/02/mongodb-fractal-tree-indexes-...

Come talk to us if you're interested. We are stabilizing things and hope to open up evaluations more in a week or two.

leif··on Poll: HN Linux users, what desktop environmemt do you use?
dwm (almost everything in emacs anyway though)

you should probably add options for awesome/xmonad, those are fairly popular in some circles.

leif··on RethinkDB 1.5 released: secondary indexes, soft durability, perf improvements
Yep, we aren't doing sharded transactions yet. Still trying to nail down the basics.
leif··on RethinkDB 1.5 released: secondary indexes, soft durability, perf improvements
Our (Tokutek) build of MongoDB with Fractal Tree indexes has atomic multi-document updates: http://www.tokutek.com/2013/04/mongodb-transactions-yes/ Come talk to us if you want to give it a spin!

Don't mean to steal the thunder from RethinkDB, they're doing great work too.

leif··on GNU awk 4.1.0

    8. New arrays: SYMTAB, FUNCTAB, and PROCINFO["identifiers"]. SYMTAB allows 
       indirect access to any defined variable or array; it is possible to 
       "walk" the symbol table, if that should be necessary. 
Can't wait for the first "awk metaprogramming" tutorials....
leif··on TokuDB open sourced
Someone using the open source version can take backups just as they would with our versions prior to 7.0:

- snapshots (LVM, EBS, etc...)

- cold backups

- mysqldump (with MVCC, this is technically hot)

leif··on TokuDB open sourced
Dancing Trees are algorithmically the same as B+ trees, if I understand the wikipedia article correctly. With just a uniformly random workload with a large enough working set, one would behave pretty much exactly the same as a B+ tree.
leif··on TokuDB open sourced
IANAL, but the patents are owned by the universities where the founders work, not by the company. I don't know if this makes you feel any better though.
leif··on TokuDB open sourced
We have some more descriptions of Fractal Tree Indexes at http://tokutek.com/what-is-a-fractal-tree, and I'm always happy to answer questions about it.
leif··on TokuDB open sourced
Fractal Tree indexes are very different from Dancing Trees. See http://tokutek.com/what-is-a-fractal-tree for an overview, and I'd be happy to answer questions if you have them.
leif··on TokuDB open sourced
We're trying to contact the website folk but they're mighty busy announcing things right now. I'll let you all know what happened soon. In the meantime, here's a press release you can read: http://www.marketwire.com/press-release/tokutek-meets-big-da...

Also, we're on github: http://github.com/Tokutek and on IRC at #tokutek on irc.freenode.net, so come hang out!

leif··on MongoDB 2.4 Released: Text Search, Security, Hash-based Sharding
I'm glad this is out. I'm really going to enjoy plugging fractal trees in under FTS.
leif··on Why Use Make
http://xkcd.com/927
leif··on [dead]

    $ git add .ssh
    $ git commit
leif··on New school C
I have a strongly negative reaction to straw man arguments.

Maybe I can be more helpful:

Being a programmer is like being a novelist. You need to be able to construct a plot, but you also need a powerful vocabulary. I'm saying C helps develop your computer vocabulary, and you're saying the programming analog of "but it doesn't tell you how to invent interesting characters!" Totally different parts of a useful experience.

leif··on New school C
That's a bold and narrow claim to make. How do you know with what I'm concerned? It sounds like you consider the organization of your data a loftier thing to worry about than memory management. They don't sound that different to my ears, though your view of the world sounds fairly more rude. I hope you never need to be concerned with memory management, for your and your users' sakes.

If you want to play with straw men, go elsewhere. All you're doing here is wasting everyone's time, including your own.

leif··on New school C
Oh most definitely. Can't believe I forgot it.
← PreviousPage 5 of 31Next →