[openstack-dev] [glance] Why does Glance keep the deleted membership of image ?

Long Quan Sha shalq at cn.ibm.com
Fri Jul 10 15:07:41 UTC 2015

I can't understand how the impact on performance, image-members still have
an idx. Is there any other concern on the patch ?  How to get result from
"rally gate job" ?

Can you give me suggestion on how to move forward ?  Thanks .

Best regards,

From:	Nikhil Komawar <nik.komawar at gmail.com>
To:	"OpenStack Development Mailing List (not for usage questions)"
            <openstack-dev at lists.openstack.org>
Cc:	Long Quan Sha/China/IBM at IBMCN
Date:	2015/07/10 22:34
Subject:	Re: [openstack-dev] [glance] Why does Glance keep the deleted
            membership of image ?

Please find the response inline.

      Hi Glance experts,

      I'd like to send this mail again, hope I can get help and suggest
      from glance experts. The question is from a bug

      If an image-member is deleted, then create it again with the same
      parameters, glance searches db to see if there is already an existing
      one, but the result doesn't include the record which was marked as
      glance will try to create a new one with the same parameters, it
      works well on mysql. But it is failed on DB2 with SQL0803N error.

      The root cause is that DB2 constraint is more restricted than mysql.
      For db2, the columns under unique constrains should be "NOT NULL",
      currently the column "deleted_at" which is one of unique constrain of
      is nullable. A possible solution is to alter it to "not null" in
      migration. that means we have to insert a default timestamp value for
      the new created image-member, an active member with a no-blank
      timestamp for "deleted_at" seems very confusing.

Agree that this is confusing. And changing the behavior this way is NOT a
good idea. A record that's never been deleted should not have deleted(_at)
value. It will affect notifications and conflict with API guidelines.

      Another fix is: we may check all existing image-member records
      including the deleted image-member before create image-member, then
      update it if it exists, otherwise create a new one, that is proposed
      in https://review.openstack.org/#/c/190895/

      I'm wondering why can't we use only one record to maintain the
      member-ship between a pair of image and tenant. Maybe there is some
      other consideration, can you help give me some suggestion ? I'd like
      to know more. Thanks.

Concept wise this sounds like a good idea but it could have performance
degradation impact. Nonetheless, image-members have an idx that should be a
relief for that query image_member_find that you added in your proposal. My
hope is that the rally gate job will tell us more if there is a performance

      Best regards,


      OpenStack Development Mailing List (not for usage questions)
      OpenStack-dev-request at lists.openstack.org?subject:unsubscribe


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150710/6fc2c8cd/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: graycol.gif
Type: image/gif
Size: 105 bytes
Desc: not available
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150710/6fc2c8cd/attachment.gif>

More information about the OpenStack-dev mailing list