much clear! thanks for your help!

在 2017年1月4日星期三 UTC+8下午1:44:43,Jeremy Evans写道:
>
> On Tuesday, January 3, 2017 at 8:12:44 PM UTC-8, melody wrote:
>>
>> Another question, since i wrapped my sql in a transaction, then it shoud 
>> guarantee the feature transaction implies. 
>>
>
> It does guarantee that the block given will be run in a transaction on the 
> server you specify via the :server option (or the default server).  It does 
> not effect which server is used for queries.  As I already mentioned, you 
> need to use the server_block extension if you want to do that.  It's fairly 
> simple to integrate the two to get the behavior you describe:
>
> def DB.transaction(opts={}, &block)
>   with_server(opts[:server]||:default, &block)
> end
>  
>
>> As mentioned above when didn't set default server, the select sql and 
>> sqls other then select sql go different shards, 
>>
>
> And as I mentioned in response, that's the expected default behavior.
>  
>
>> I use postgres with default isolation level, aka read commited:
>>
>>> When a transaction uses this isolation level, a SELECT query (without a 
>>> FOR UPDATE/SHARE clause) sees only data committed before the query began; 
>>> it never sees either uncommitted data or changes committed during query 
>>> execution by concurrent transactions. In effect, a SELECT query sees a 
>>> snapshot of the database as of the instant the query begins to run. 
>>> However, SELECT does see the effects of previous updates executed within 
>>> its own transaction, even though they are not yet committed.
>>
>> Dose sequel provides the above features  across shards? if not, why? 
>> thanks!
>>
>
> I answered this earlier, but let me rephrase in the hope that it is easier 
> to understand.  Sequel's behavior is fairly simple in regards to shard 
> choosing.  Unless you specify a shard, Sequel uses the read_only shard for 
> SELECT queries (anything that uses Dataset#fetch_rows), and the default 
> shard for all other queries.  If you want to override the default server 
> for a given block of code, use the server_block extension.
>
> Thanks,
> Jeremy
>

-- 
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.

Reply via email to