You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Tak-Lon (Stephen) Wu (Jira)" <ji...@apache.org> on 2023/01/19 22:23:00 UTC

[jira] [Reopened] (HBASE-27539) Encapsulate and centralise access to ref count through StoreFileInfo

     [ https://issues.apache.org/jira/browse/HBASE-27539?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tak-Lon (Stephen) Wu reopened HBASE-27539:
------------------------------------------

hi [~comnetwork] , [~wchevreuil]  , we're preparing for the 2.5.3 release and I found a back-compatible issue that [#4939|https://github.com/apache/hbase/pull/4939] is breaking the API compatibility for the upcoming patch version, especially the public constructor of StoreFileReader is being used by phoenix (scope as IA.LimitedPrivate), and it cannot break the compatibility for patch release.

Do you guys have any concerns if I revert this change for 2.5.x ? 

> Encapsulate and centralise access to ref count through StoreFileInfo
> --------------------------------------------------------------------
>
>                 Key: HBASE-27539
>                 URL: https://issues.apache.org/jira/browse/HBASE-27539
>             Project: HBase
>          Issue Type: Improvement
>    Affects Versions: 3.0.0-alpha-3
>            Reporter: chenglei
>            Assignee: chenglei
>            Priority: Major
>             Fix For: 2.6.0, 3.0.0-alpha-4, 2.5.3
>
>
> Both {{StoreFileReader}} and {{StoreFileInfo}} have  a {{refCount}}, and the {{refCount}} is currently used in three main ways:
> * When a new {{StoreFileScanner}} is created or close, it increases  or decreases the {{StoreFileReader.refCount}}.
> * When {{CompactedHFilesDischarger}}  checks a {{HStoreFile}} whether it could be deleted, it check the {{StoreFileInfo.refCount}}.
> * When {{HStore.getScanners}} gets {{HStoreFile}} from {{StoreFileManager}}, it  increases  or decreases the {{StoreFileInfo.refCount}}.
> The problem here is  {{StoreFileReader.refCount}}  is copied from the {{StoreFileInfo.refCount}}  and the inconsistent usage of the {{refCount}} making the code somewhat hard to understand and causing trace the resource race problems such as HBASE-27484 and HBASE-27519 somewhat difficult. I suggest we should unify these two {{refCount}} and just use {{StoreFileInfo.refCount}}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)