james anderson wrote:
> 
>> On 2020-12-03, at 19:17:46, Howard Chu <[email protected]> wrote:
>>
>> Gábor Melis wrote:
>>> On Wed, 2 Dec 2020 at 22:50, james anderson
>>> <[email protected]> wrote:
>>>>
>>>>
>>>>> On 2020-12-02, at 22:53:58, Howard Chu <[email protected]> wrote:
>>>>>
>>>>> James Anderson wrote:
>>>>>> the mdb_env_open documentation includes in its note about NOTLS, that
>>>>>>
>>>>>>  A read-only transaction may span threads if the user synchronizes its 
>>>>>> use.
>>>>>>
>>>>>> to which read-only operations would this constraint apply?
>>>>>
>>>>> It depends.
>>>>>
>>>>> The only safe approach is to ensure that a txn is not active 
>>>>> simultaneously
>>>>> in multiple threads.
>>>>
>>>> where “active” includes read-only cursors?
>>>>
>>>> does  mean, either one constrains the threads such that there can be no 
>>>> parallel access to the database, or each thread must establish its own 
>>>> transaction, in which case there is no guarantee that they operate om the 
>>>> same database state?
>>>
>>> Chiming in here, a cleaner api could be to allow starting a
>>> transaction with a given txn id. That way one would have separate
>>> transaction objects, but consistent state. The client code would need
>>> to synchronize threads a bit to guarantee that the txn id is still
>>> valid, but this would be more lightweight and easier to reason about.
>>
>> In an actively written database there is no legitimate use case for
>> opening a new transaction on anything but the newest version of the
>> data. Reading or depending on stale data would be an application bug.
> 
> without considering the relation between that notion and the management of 
> data in a bitemporal store, the question remains, how are two independent 
> threads to ensure that they are reading the same “newest” version when some 
> other, likewise independent, process may commit a write transaction in the 
> time interval between the instants of the respective read transaction begins?

How would you do this in any other database system?

-- 
  -- Howard Chu
  CTO, Symas Corp.           http://www.symas.com
  Director, Highland Sun     http://highlandsun.com/hyc/
  Chief Architect, OpenLDAP  http://www.openldap.org/project/

Reply via email to