[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-20 Thread Paul Joseph Davis (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul Joseph Davis updated COUCHDB-465:
--

Attachment: couch_uuids.patch

Refactored a bit.
couch_uuid_generator - couch_uuids
sequential - hybrid (this was mostly playing, thoughts?)
random is back to default and should stay that way
call to random:uniform() - crypto:rand_uniform() (someone forgot to call 
random:seed(), tsk tsk :)
[uuid_generator] - [uuids] in config
added short description of choices next to option
probably an unneccessary optimization to allow for couch_uuids:new(N) to return 
N ids.
added simple checks to the uuids.js Futon tests
Pulled in a contribution by Bob Dionne for etap tests.
All calls to couch_util:new_uuid() are replaced with couch_uuuids:random()

We should make the prefix length a configuration parameter I think.

We might also think about adding Brian's algorithm for more diversity as well.

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: couch_uuids.patch, uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-20 Thread Paul Joseph Davis (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul Joseph Davis updated COUCHDB-465:
--

Attachment: couch_uuids.patch

Added the utc_random algorithm.
Updated tests to use it.
hybrid - sequential
unoptimized the calling to return a list for code cleanliness.


 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: couch_uuids.patch, uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-20 Thread Paul Joseph Davis (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Paul Joseph Davis updated COUCHDB-465:
--

Attachment: (was: couch_uuids.patch)

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: couch_uuids.patch, uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-20 Thread Bob Dionne (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Bob Dionne updated COUCHDB-465:
---

Attachment: 041-uuid-gen.t
041-uuid-gen-utc.ini
041-uuid-gen-seq.ini

etaps to test the new couch_uuids work of rnewson and davisp. 

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: 041-uuid-gen-seq.ini, 041-uuid-gen-utc.ini, 
 041-uuid-gen.t, couch_uuids.patch, uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-18 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: uuid_generator.patch


Use couch_config:register and a refactoring of handle_call.


 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: sequence_id.patch, uuid_generator.patch, 
 uuid_generator.patch, uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-18 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: (was: uuid_generator.patch)

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: uuid_generator.patch, uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-18 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: (was: uuid_generator.patch)

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-18 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: uuid_generator.patch


Updated to switch the _uuids misc handler to the server-selected uuid 
generation algorithm.

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: uuid_generator.patch, uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-18 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: uuid_generator.patch


changed [uuid] config to [uuid_generation]
changed sequence to sequential
made sequential the default
fixed rollover to use all bits of counter suffix


 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: uuid_generator.patch, uuid_generator.patch, 
 uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-18 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: (was: uuid_generator.patch)

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-18 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: (was: uuid_generator.patch)

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-16 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: uuid_generator.patch


Updated to match latest trunk. Also increment between id's is a small random 
number (rather than always 1) to make identifiers less guessable.

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: sequence_id.patch, uuid_generator.patch, 
 uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-13 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: sequence_id.patch

 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: sequence_id.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.



[jira] Updated: (COUCHDB-465) Produce sequential, but unique, document id's

2009-08-13 Thread Robert Newson (JIRA)

 [ 
https://issues.apache.org/jira/browse/COUCHDB-465?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Robert Newson updated COUCHDB-465:
--

Attachment: uuid_generator.patch


I renamed couch_seq_generator to couch_uuid_generator. It supports two 
algorithms; the original random one and the new random+sequential. It defaults 
to random.

To configure you need a new ini block;

[uuid]
algorithm=(random|sequence)



 Produce sequential, but unique, document id's
 -

 Key: COUCHDB-465
 URL: https://issues.apache.org/jira/browse/COUCHDB-465
 Project: CouchDB
  Issue Type: Improvement
Reporter: Robert Newson
 Attachments: sequence_id.patch, uuid_generator.patch


 Currently, if the client does not specify an id (POST'ing a single document 
 or using _bulk_docs) a random 16 byte value is created. This kind of key is 
 particularly brutal on b+tree updates and the append-only nature of couchdb 
 files.
 Attached is a patch to change this to a two-part identifier. The first part 
 is a random 12 byte value and the remainder is a counter. The random prefix 
 is rerandomized when the counter reaches its maximum. The rollover in the 
 patch is at 16 million but can obviously be changed. The upshot is that the 
 b+tree is updated in a better fashion, which should lead to performance 
 benefits.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.