[Tarantool-patches] [PATCH 2/2] vinyl: skip invalid upserts during squash

Nikita Pettik korablev at tarantool.org
Tue May 19 22:10:06 MSK 2020


On 14 May 09:56, Konstantin Osipov wrote:
> * Nikita Pettik <korablev at tarantool.org> [20/05/14 09:50]:
> > On 14 Apr 01:12, Konstantin Osipov wrote:
> > > * Nikita Pettik <korablev at tarantool.org> [20/04/14 00:57]:
> 
> > > Finally, let's double check there are no issues with the used
> > > format - can it become obsolete by the time it's used, e.g. if
> > > there is an online/non-blocking schema change that happened in tx
> > > thread (compaction is running in the write thread)?
> > 
> > Upserts are supported only by primary index. Meanwhile vinyl does
> > not support altering primary index of non-empty space. Am I missing
> > something?
> 
> I mean the space format object itself. Squashing is happening in a
> different thread, the 
> > 

Seems like you've cut sentence. Could you please suggest exact
test scenario? We already have similar test in vinyl/errinj.test.lua:

...

errinj.set("ERRINJ_VY_SQUASH_TIMEOUT", 0.050)
s = box.schema.space.create('test', {engine='vinyl'})
_ = s:create_index('pk')
s:insert{0, 0}
box.snapshot()
for i=1,256 do s:upsert({0, 0}, {{'+', 2, 1}}) end
box.snapshot() -- in-memory tree is gone
fiber.sleep(0.05)
s:select()
 
> -- 
> Konstantin Osipov, Moscow, Russia


More information about the Tarantool-patches mailing list