mtravis

Joined 13 years ago

Karma
55
Submissions
42
Member since
Nov 13
Ripple Performance Engineer

Founder of InfiniSQL http://www.infinisql.org

View on Hacker News

Recent submissions

Comment · 12 years ago
On balance, it will probably be better for you in the long run. I am a high school and college dropout, and nearly as old as dirt. I am entirely self-taught with computers, with no academic credentials. I didn't even take CS courses while in college. I am not a failure career-wise, but I believe that a CS, EE, or similar degree, in hind-sight, would have helped me.

There's 3 main reasons for this:

1) there is a lot of conceptual and algorithm stuff that is drummed into people at school that, while possible to learn on one's own, requires time and effort. If I had time to study Knuth in depth, I would love to do so. This subject matter is very often useful--in hindsight, this is my biggest regret for not having studied CS, because there are gaps in my knowledge that would have been easy to fill had I been studying these things long ago.

2) while employers generally do not require a CS degree, it is very often that their employment screening steps will filter you out if you cannot regurgitate much of the stuff described in step 1: algorithms and coding styles taught in college, the way that colleges teach them. No matter how much PR a company claims for itself in looking for intelligence, creativity, and experience, if you haven't internalized the textbook stuff, then you'll frequently get filtered out of interview process quite early. You'll still be able to get jobs, but just not likely the ones with the biggest marquee names with the highest candidate:opening ratio.

3. If you want to do a startup, you'll want to be in the vicinity of people who also want to do a startup. That's much easier when you're in college, and you get looked upon favorably if you come from a prestigious institution. Seed and angel investors like throwing cash at pairs of kids from good schools who can make something that seems useful and is in a hot space.

So, yes, go to college. Study CS, math and also some business stuff like econ. Avoid humanities like plague.

Comment · 12 years ago
I am having trouble locating any reports to reproducible benchmarks that back up their performance claims.
Comment · 13 years ago
Cool. The wire protocol is PostgreSQL's, so they provide the clients (BSD).
Comment · 13 years ago
This you? http://favstar.fm/users/hipsterhacker

Also, the main application is in C++. A python script launches the C++ daemons. Perl scripts are quick and dirty tests and deployment scripts. The main hacking I'm looking for is with C++, and I don't care so much if the other stuff gets re-implemented in some other language.

Comment · 13 years ago
Thank you, Phil. I'm conflicted about this--I was convinced recently to move away from AGPL having to do with what I was previously unaware of as seemingly legitimate acceptance issues. I feel good about using GPL instead of AGPL.

But I'm conflicted about GPL vs Apache (or BSDish) in the sense that I'm getting the message that I have to bend over backwards just a little bit further before somebody, somewhere might be willing to use my software, maybe. Free isn't enough. I also have to let them fork it, keep it proprietary, wrap their own brand around it, before maybe they might consider using it.

That said, I really want people to use it, and of course help me hack on it. But I'm conflicted.

Comment · 13 years ago
Good thinking, but I think that shifts the issue--namely, that each inter-thread message uses atomic compare and swap to create the message. I assume there'd be a similar bottleneck on the actor that generates the transactionid limited by the number of messages it can send & receive.

Instead, a friend and I have been thinking about how to perhaps modify MVCC to work with distinct transactionid's per partition. Namely, I'm already generating what I call "subtransactionid"'s for each partition involved in a transaction. And those must be ordered for synchronous replication, so I think the way to implement a variation on MVCC may already be mostly there.

I know I still owe you an architectural doc...fixin' ta, ya know.

Comment · 13 years ago
For durability, check out http://www.infinisql.org/docs/overview/#idp37053600

I've thought about having an actor library, or minimally, to have the actor basis of InfiniSQL independent of specific workload, but haven't thought it through entirely. I'd be supportive of any efforts to that effect if you want to work on it!

Comment · 13 years ago
Congratulations!

Do you have benchmark reports?

Comment · 13 years ago
I think you mean 2PL.

It does really scale, check out the benchmark report on the blog. http://www.infinisql.org/blog/2013/1112/benchmarking-infinis...

For deadlock-prone workloads, it will likely not be as good, admittedly.

I'm considering a variation on MVCC that gets around the single transactionid bottleneck, but the currently implementation is based on 2PL. http://www.infinisql.org/docs/overview/#ftn.idp37098256

For concurrency management algorithms, there are no good ones. Only those that are less bad than others in some cases.

Comment · 13 years ago
1) persistence: battery-backed UPS and synchronous replication. No WAL anywhere. I'm thinking about ways to do disk-based storage without synchronous IO, to provide decent performance with higher storage capacity

2) no joins supported yet. However, the benchmark that I performed (on the blog) involves 3 updates across random nodes. I designed InfiniSQL specifically to perform multi-node transactions very well, because that's the Achilles' heel of every other distributed OLTP system. I plan to implement joins, but expect them to perform decently for the workload you describe.

Comment · 13 years ago
Thanks, edited.
Comment · 13 years ago
Vertica's a data warehouse. InfiniSQL is geared for OLTP. --------- Thanks, jacob019. Please fork/follow on github, twitter if you're into that, etc.
Comment · 13 years ago
Comment · 13 years ago
I assume these shops have Linux in their environments, including the GNU toolchain. There must be some contradiction somewhere that I'm not aware of.

Based on FSF feedback, I'm going to modify the license to include a Classpath-like exception. The intention is to allow people to write stored procedures that link against infinisql without triggering the copyleft. Only if the source to infinisql itself is modified (and distributed) will the copyleft apply.

I'm curious to know the rationale against the GPL in general (not just the AGPL), and how those shops allow Linux & gnu toolchains in spite of their rule against the GPL.

Comment · 13 years ago

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton