Hi,

Once the MVStore is ready for production, I will create a 1.3 branch, and
remove the PageStore from the master. The 1.3 branch would then just get
bugfixes and no new features.

When using 1.4, PageStore databases could be migrated automatically; this
could be done with a migration jar file, similar to the migration to 1.2.
Or, PageStore databases could throw an exception saying that this database
format is no longer supported and need to be migrated manually (this is
much easier to implement).

So, yes, the question is, when is the MVStore ready for production? The
biggest issue is probably disk space usage, which is higher with the
MVStore. Is that acceptable already? Improving it is possible, but it would
be more complex (for example using a log-structured merge tree per table,
or something similar). Probably the MVStore is still a bit slower then the
PageStore, but I guess it's not that bad; it will get better over time.

Regards,
Thomas





On Fri, Apr 17, 2015 at 12:52 PM, Sergi Vladykin <[email protected]
<javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:

> This is also an interesting question, when you are going to drop
> PageStore? As I wrote we want to contribute `query over snapshot`
>  optimization but it does not make sense for non-snapshotable datastores.
>
> I assume your answer will be related to MVStore maturity, right?
>
> Sergi
>
> 2015-04-16 21:20 GMT+03:00 Thomas Mueller <[email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>>:
>
>> Hi,
>>
>> Thanks a lot for your help! I have merged the pull requests.
>>
>> I agree the bit field should not be needed. It is currently needed mainly
>> for the PageStore storage mechanism; I think this can be removed once we
>> only need to support the MVStore.
>>
>> Regards,
>> Thomas
>>
>>
>> On Wed, Apr 15, 2015 at 11:38 AM, Sergi Vladykin <
>> [email protected]
>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote:
>>
>>> Thanks, Noel!
>>>
>>> But here you are trying to workaround BitField growth while it should
>>> not grow infinitely at first. Nevertheless your optimization can be helpful.
>>> I've found out that it was really id leak: in CreateTable.update() we
>>> allocate object id but since this is a session local object it is not
>>> getting stored into meta table, then in DropTable we call
>>> Database.removeMeta, can't find meta entry to drop and don't clear id bit.
>>> I fixed it and submitted pull request on Github.
>>>
>>> Sergi
>>>
>>>
>>> 2015-04-14 17:39 GMT+03:00 Noel Grandin <[email protected]
>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>>:
>>>
>>>>
>>>>
>>>> On 2015-04-14 03:04 PM, Sergi Vladykin wrote:
>>>>
>>>>> Guys,
>>>>>
>>>>> There is an important performance issue with
>>>>> Database.allocateObjectId(). Over time it becomes slower and slower.
>>>>>
>>>>>
>>>> Does this patch help?
>>>>
>>>> Index: src/main/org/h2/engine/Database.java
>>>> ===================================================================
>>>> --- src/main/org/h2/engine/Database.java        (revision 6118)
>>>> +++ src/main/org/h2/engine/Database.java        (working copy)
>>>> @@ -920,6 +920,7 @@
>>>>                      session.log(meta, UndoLogRecord.DELETE, found);
>>>>                  }
>>>>                  objectIds.clear(id);
>>>> +                objectIdsLastClearBit = Math.min(objectIdsLastClearBit,
>>>> id);
>>>>                  if (SysProperties.CHECK) {
>>>>                      checkMetaFree(session, id);
>>>>                  }
>>>> @@ -1421,14 +1422,17 @@
>>>>          }
>>>>      }
>>>>
>>>> +    private int objectIdsLastClearBit = 0;
>>>> +
>>>>      /**
>>>>       * Allocate a new object id.
>>>>       *
>>>>       * @return the id
>>>>       */
>>>>      public synchronized int allocateObjectId() {
>>>> -        int i = objectIds.nextClearBit(0);
>>>> +        int i = objectIds.nextClearBit(objectIdsLastClearBit);
>>>>          objectIds.set(i);
>>>> +        objectIdsLastClearBit = i;
>>>>          return i;
>>>>
>>>>      }
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "H2 Database" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected]
>>>> <javascript:_e(%7B%7D,'cvml','h2-database%[email protected]');>
>>>> .
>>>> To post to this group, send email to [email protected]
>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>.
>>>> Visit this group at http://groups.google.com/group/h2-database.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>  --
>>> You received this message because you are subscribed to the Google
>>> Groups "H2 Database" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected]
>>> <javascript:_e(%7B%7D,'cvml','h2-database%[email protected]');>
>>> .
>>> To post to this group, send email to [email protected]
>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>.
>>> Visit this group at http://groups.google.com/group/h2-database.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "H2 Database" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected]
>> <javascript:_e(%7B%7D,'cvml','h2-database%[email protected]');>
>> .
>> To post to this group, send email to [email protected]
>> <javascript:_e(%7B%7D,'cvml','[email protected]');>.
>> Visit this group at http://groups.google.com/group/h2-database.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "H2 Database" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected]
> <javascript:_e(%7B%7D,'cvml','h2-database%[email protected]');>
> .
> To post to this group, send email to [email protected]
> <javascript:_e(%7B%7D,'cvml','[email protected]');>.
> Visit this group at http://groups.google.com/group/h2-database.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" 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 http://groups.google.com/group/h2-database.
For more options, visit https://groups.google.com/d/optout.

Reply via email to