couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Anderson (JIRA)" <j...@apache.org>
Subject [jira] Commented: (COUCHDB-812) implement randomization in views resultset
Date Mon, 28 Jun 2010 15:13:56 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-812?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12883180#action_12883180
] 

Chris Anderson commented on COUCHDB-812:
----------------------------------------

I agree. This isn't done by CouchDB, because it will incur roughly the same big-O cost to
do random on the server, as it would on the client.

To solve this, use a view with random keys, and paginate through it. You'll have static view,
so you can only use it once, but it will be in random order.

With smaller datasets this would be an OK place to use a temp view.

> implement randomization in views resultset
> ------------------------------------------
>
>                 Key: COUCHDB-812
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-812
>             Project: CouchDB
>          Issue Type: Wish
>          Components: Database Core
>    Affects Versions: 0.11
>         Environment: CouchDB
>            Reporter: Mickael Bailly
>            Priority: Minor
>
> This is a proposal for a new feature in CouchDB : allow a randomization of rows in a
view response. We can for example add a randomize query parameter...
> This request would probably not return the same results for the same request.
> As an example :
> GET /db/_design/doc/_view/example :
> {
>   ..
>   rows: [
>     {key: 1 ...},
>     {key: 2 ...},
>     {key: 3 ...}
>   ]
> }
> GET /db/_design/doc/_view/example?randomize=true :
> {
>   ..
>   rows: [
>     {key: 2 ...},
>     {key: 3 ...},
>     {key: 1 ...}
>   ]
> }
> GET /db/_design/doc/_view/example?randomize=true :
> {
>   ..
>   rows: [
>     {key: 1 ...},
>     {key: 3 ...},
>     {key: 2 ...}
>   ]
> }
> This is a feature hard to implement client-side (but by reading all doc ids and use client-side
random function). It's implemented by the RDBMS from ages, probably for the very same reasons
: if we should read all the rows client-side to random-select some of them, performances are
awful.

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


Mime
View raw message