Hacker News new | past | comments | ask | show | jobs | submit login

> I'm not concerned If someone happens to know some esoteric trick that they could Google search (Unless of course you're applying for a position at a company that manufactures very low level devices like microcontrollers or embedded systems and questions like this are _actually relevant_).

Erasure correction is a very useful trick for data-engineers. I don't think this is a microcontroller trick, as much as a data-resliliency trick.

The XOR-trick is how you implement RAID5 most efficiently. A proper discussion / interview would probably describe the XOR trick, and then see if the engineer is smart enough to understand the difference between erasure and errors.

--------------

With a blog post describing the XOR trick ahead of us: now I ask you (the audience): what is the difference between an erasure and an error? Why can this XOR-trick protect against an erasure, but NOT an error? And how does this relate to RAID5's known failure cases?

But at that point, I'm interviewing for someone who has passed a data communications class.




I think in erasure coding you typically know the locations of the erasures: If a disk fails, you know which one failed.

However, I don't see how you would know the locations in this problem?

Maybe you can elaborate on how this problem relates to erasure coding?


Bingo, you're correct.

> However, I don't see how you would know the locations in this problem?

Well, that's just from the blogpost itself:

> Application 2: Finding the Missing Number

> You are given an array A of n - 1 integers which are in the range between 1 and n. All numbers appear exactly once, except one number, which is missing. Find this missing number.

We can "find the missing number", but we don't know where to "put" the missing number. If you want to put the "missing number" back into the sequence, you still need to know the location to put it into from some other mechanism. (Ex: hard drive #5 failed, so you know to put the number into slot#5).

----------------

Application 4 starts to get into "partitioning", which is getting dangerously close to sparse parity-check matrix and LDPC graphs.


Ah, do you mean that solving the problem described in the blog-post helps actually using erasure coding, since it requires knowing which parts are missing?


If I'm reading your post correctly... yes. I think you've got it.


I guess I will fail your interview as well.


Lol. Well, that's why I ended with:

> But at that point, I'm interviewing for someone who has passed a data communications class.

This is basic data-communications stuff. But there's a reason why data-communications isn't exactly a commonly taught subject: its niche and not really generally applicable IMO.

My main point is that the XOR-trick is a decent data-communications question. But I don't know how generally applicable it is to other programming fields.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: