1 |
On Mon, Aug 1, 2016 at 12:49 PM, J. Roeleveld <joost@××××××××.org> wrote: |
2 |
> On Monday, August 01, 2016 08:43:49 AM james wrote: |
3 |
> |
4 |
>> Sure this part is only related to |
5 |
>> transaction processing as there was much more to the "five 9s" legacy, |
6 |
>> but imho, that is the heart of what was the precursor to ACID property's |
7 |
>> now so greatly espoused in SQL codes that Douglas refers to. |
8 |
>> |
9 |
>> Do folks concur or disagree at this point? |
10 |
> |
11 |
> ACID is about data integrity. The "best 2 out of 3" voting was, in my opinion, |
12 |
> a work-around for unreliable hardware. It is based on a clever idea, but when |
13 |
> 2 computers having the same data and logic come up with 2 different answers, I |
14 |
> wouldn't trust either of them. |
15 |
|
16 |
I agree, this was a solution for hardware issues. However, hardware |
17 |
issues can STILL happen today, so there is an argument for it. There |
18 |
are really two ways to get to robustness: clever hardware, and clever |
19 |
software. The old way was to do it in hardware, the newer way is to |
20 |
do it in software (see Google with their racks of cheap motherboards). |
21 |
I suspect software will always be the better way, but you can't just |
22 |
write a check to get better software the way you can with hardware. |
23 |
Doing it right with software means hiring really good people, which is |
24 |
something a LOT of companies don't want to do (well, they think |
25 |
they're doing it, but they're not). |
26 |
|
27 |
Basically I believe the concept with the mainframe was that you could |
28 |
probably open the thing up, break one random board with a hammer, and |
29 |
the application would still keep running just fine. IBM would then |
30 |
magically show up the next day and replace the board without anybody |
31 |
doing anything. All the hardware had redundancy, so you can run your |
32 |
application for a decade or two without fear of a hardware failure. |
33 |
|
34 |
However, you pay a small fortune for all of this. The other trend as |
35 |
I understand it in mainframes is renting your own hardware to you. |
36 |
That is, you buy a box, and you can just pay to turn on extra |
37 |
CPUs/etc. You can imagine what the margins are like for that to be |
38 |
practical, but for non-trendy businesses that don't want to offer free |
39 |
ice cream and pay Silicon Valley wages I guess it is an alternative to |
40 |
building good software. |
41 |
|
42 |
> |
43 |
> You have seen how "democracies" work, right? :) |
44 |
> The more voters involved, the longer it takes for all the votes to be counted. |
45 |
> With a small number, it might actually still scale, but when you pass a magic |
46 |
> number (no clue what this would be), the counting time starts to exceed any |
47 |
> time you might have gained by adding more voters. |
48 |
> |
49 |
> Also, this, to me, seems to counteract the whole reason for using clusters: |
50 |
> Have different nodes handle a different part of the problem. |
51 |
|
52 |
I agree. The old mainframe way of doing things isn't going to make |
53 |
anything faster. I don't think it will necessarily make things much |
54 |
slower as long as all the hardware is in the same box. However, if |
55 |
you want to start doing this at a cluster scale with offsite replicas |
56 |
I imagine the latencies would kill just about anything. That was one |
57 |
of the arguments against the Postgres vacuum approach where replicas |
58 |
could end up having in-use records deleted. The solutions are to |
59 |
delay the replicas (not great), or synchronize back to the master |
60 |
(also not great). The MySQL approach apparently lets all the replicas |
61 |
do their own vacuuming, which does neatly solve that particular |
62 |
problem (presumably at the cost of more work for the replicas, and of |
63 |
course they're no longer binary replicas). |
64 |
|
65 |
> |
66 |
> The way Uber created the cluster is useful when having 1 node handle all the |
67 |
> updates and multiple nodes providing read-only access while also providing |
68 |
> failover functionality. |
69 |
|
70 |
I agree. I do remember listening to a Postgres talk by one of the |
71 |
devs and while everybody's holy grail is the magical replica where you |
72 |
just have a bunch of replicas and you do any operation on any replica |
73 |
and everything is up to date, in reality that is almost impossible to |
74 |
achieve with any solution. |
75 |
|
76 |
-- |
77 |
Rich |