|
|
|
|
|
by wtfleming
4062 days ago
|
|
Maybe i'm misunderstanding, but wouldn't this mean that there would be no way to safely remove a relationship? I guess there are a number of cases where this would be ok. But people tend to make mistakes. When you discover that someone has added a link between Daniel Day-Lewis and Ernest Goes to Jail all you would need to do is delete a row in the movies_people table. But because of potential collisions in the bit arrays you can't safely remove a relationship? |
|
The other substantial issue with the proposed scheme is false positives. In this situation, you have no way to ensure that a given relation is not an accidental match. For that you would again need the relations table.
What's fun about this story is that the author has inadvertently re-discovered the bloom join[2] - he's just missing one of the important steps. Traditionally bloom filters are used for a fast, initial check which is then followed by a full check to remove false positives.
[1]: There are some modifications to bloom filters that support deletion but they're all more complex than bitstrings.
[2]: http://www.databasejournal.com/features/oracle/oracle-bloom-...