From: | Daniel Farina <daniel(at)heroku(dot)com> |
---|---|
To: | Peter Eisentraut <peter_e(at)gmx(dot)net> |
Cc: | Simon Riggs <simon(at)2ndquadrant(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Global Sequences |
Date: | 2012-10-16 16:45:27 |
Message-ID: | CAAZKuFbB6d3srY8U9Xy=hj5-GsB7iZXtVVfDA+pomYrJMgr1TQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Oct 16, 2012 at 5:54 AM, Peter Eisentraut <peter_e(at)gmx(dot)net> wrote:
> On 10/15/12 5:33 PM, Simon Riggs wrote:
>> There are a few options
>> 1) Manual separation of the value space, so that N1 has 50% of
>> possible values and N2 has 50%. That has problems when we reconfigure
>> the cluster, and requires complex manual reallocation of values. So it
>> starts good but ends badly.
>> 2) Automatic separation of the value space. This could mimic the
>> manual operation, so it does everything for you - but thats just
>> making a bad idea automatic
>> 3) Lazy allocation from the value space. When a node is close to
>> running out of values, it requests a new allocation and coordinates
>> with all nodes to confirm the new allocation is good.
>
> What would the allocation service look like? Is it another PostgreSQL
> server? What's the communication protocol? How would backups work?
> Crash recovery?
As a reasonable proxy to look at the first question, one may look at
how twitter uses their home-grown software snowflake.
https://github.com/twitter/snowflake
A colleague, Blake Mizerany, wrote a smaller version called "noeqd",
based on the same ideas, but he wanted something with fewer
dependencies. Unless you are very Java-library-and-toolchain adept
you might find this more fun to play with.
https://github.com/bmizerany/noeqd
--
fdr
From | Date | Subject | |
---|---|---|---|
Next Message | Simon Riggs | 2012-10-16 16:53:30 | Re: Global Sequences |
Previous Message | Bruce Momjian | 2012-10-16 16:38:11 | Re: Fix for log_line_prefix and session display |