首頁 資料庫 mysql教程 Managing HBase releases

Managing HBase releases

Jun 07, 2016 pm 04:29 PM
hbase releases y

Last year I (perhaps foolishly?) signed up to be the release manager for the 0.94 branch of HBase. I released 0.94.0 in Mai 2012. Since then I have learned a lot of the open source release process (which, in the end, is not that different

Last year I (perhaps foolishly?) signed up to be the release manager for the 0.94 branch of HBase. I released 0.94.0 in Mai 2012. Since then I have learned a lot of the open source release process (which, in the end, is not that different from release proprietary software).

There are no defined responsibilities per se for such a role other than actually doing the release.

When I started HBase had relatively infrequent releases and there used to be many discussions and delays to a release to get some more "essential" features in.
The partial cure for this is two fold:
  1. Frequent releases on a somewhat strict schedule. If a feature or fix does not get in, it'll be in the next release a few weeks later.
    This reduces the pressure to push a feature into the next point release.
    The only discussions now are typically around serious bugs that have been discovered during the round of release candidates.
    This is the "release train" model. The train stops every few weeks, changes that are ready get on board, the other changes wait for the next train.
  2. A passing, comprehensive test suite, so that we can do the frequent releases with confidence. Problems are identified early (if the tests fail regularly nobody will check out new test failures, or these failures just drown in the noise of failing tests).
We're now on HBase 0.94.5 (released today actually!), and the pattern that emerged after some initial adjustment is one point release (0.94.0, 0.94.1, ...) about every four to six weeks (depending on how many rounds of release candidates were needed), with a relatively constant rate of change of two fixes and improvements per day (hence a point release ends up having 60-80 changes).

As you can see HBase is pretty actively maintained!

So to me being the release manager includes all of the following:
  • Help decide what features or fixes should be included in the release.
  • Help channel the discussion about whether a feature in (unstable) trunk is important enough to be backported to 0.94.
  • Try to review all the changes that go into 0.94. Due to the rate of change I cannot have a detailed look at every fix (I have other responsibilities in my day time job too), but I try to at least skim the changes to see if anything risky or incorrect sticks out.
  • Make sure the test suite passes reliably. This is a pet-peeve of mine and has been especially challenging, but we're now at pass rate of about 70% (up from 20-30% a few months back, but still needs to be improved).
    (Note that many of the failures are due to timing issues in the virtual build machines, and not due to a bug in the HBase code base. A single failing test out of over 1800 tests will make the test suite fail. So 70% is not as bad as it sounds.)
  • Keep timely releases. This my pet-peeve number two.
    Releases should be frequent, on a semi strict schedule, and backward compatible.
    That allows users to get features and fixes sooner and does not require cumbersome serial upgrades (where you need to upgrade from version 0.94.0 to 0.94.1 first in order to then upgrade from 0.94.1 to 0.94.2, and so on). Intermediary releases can be skipped (it is possible to upgrade from 0.94.0 to 0.94.5 directly).
    At the same time - as mentioned above - it allows developers to finish a feature or fix correctly rather than rushing it to "get it in", just because the next release will be 6 months from now.
  • (Sometimes) coordinate with vendors (such as Cloudera and Hortonworks) to time a release or a fix with their releases. This is on a best effort basis, the Apache release is independent of any vendor; but let's be honest, a significant fraction of our users run a release from these vendors.
  • Doing the actual release:
    • Tagging the release in SVN
    • Creating the release artifacts (currently we use the ones generated by the jenkins build for this).
    • Go through a round of one or more RCs and get other committers to test and vote for this RC. Here we need to improve with more automated integration test.
    • Uploading the release to the official Apache mirrors.
    • Pushing the release to the Maven repository (which involves a lot of black voodoo).
0.94 is the current stable release branch of HBase. As long as the next version (0.96) does not have a stable release we will keep backporting new features to 0.94 and keep the frequent releases going.

So far this has been fun (with the occasional frustration about the flaky test suite in the past).

The HBase community is very friendly and invites outside patches and improvements. So download HBase 0.94.5, and start contributing :)

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1248
24
在Beego中使用Hadoop和HBase進行大數據儲存和查詢 在Beego中使用Hadoop和HBase進行大數據儲存和查詢 Jun 22, 2023 am 10:21 AM

隨著大數據時代的到來,資料處理和儲存變得越來越重要,如何有效率地管理和分析大量的資料也成為企業面臨的挑戰。 Hadoop和HBase作為Apache基金會的兩個項目,為大數據儲存和分析提供了一個解決方案。本文將介紹如何在Beego中使用Hadoop和HBase進行大數據儲存和查詢。一、Hadoop和HBase簡介Hadoop是一個開源的分散式儲存和運算系統,它可

價格曝光!新款拯救者Y700預計超過2000元起售! 價格曝光!新款拯救者Y700預計超過2000元起售! Jul 20, 2023 pm 07:46 PM

7月17日消息,近日有關聯想拯救者Y700平板電腦的新發布消息引起了廣泛關注。根據最新曝光的第三方渲染圖,新款拯救者Y700的設計出現了一些明顯的變化。與舊款產品相比,新款拯救者Y700的後置相機模組明顯增大,相機的數量由一顆升級為兩顆。此外,值得注意的是,在機身背面的金屬銘牌LOGO上,似乎取消了舊款拯救者Y700上的"LEGION"標識。然而,在機器的正面,外觀設計似乎沒有太多變化。整體來看,新款拯救者Y700似乎在外觀上失去了一些遊戲平板的元素,更偏向日常使

怎麼在springboot整合hbase 怎麼在springboot整合hbase May 30, 2023 pm 04:31 PM

依賴:org.springframework.dataspring-data-hadoop-hbase2.5.0.RELEASEorg.apache.hbasehbase-client1.1.2org.springframework.dataspring-data-hadoop2.5.0.RELEASE增加配置官方提供的方式是透過xml方式,簡單改寫後如下:@ConfigurationpublicclassHBaseConfiguration{@Value("${hbase.zooke

如何使用Java開發一個基於HBase的NoSQL資料庫應用 如何使用Java開發一個基於HBase的NoSQL資料庫應用 Sep 20, 2023 am 08:39 AM

如何使用Java開發一個基於HBase的NoSQL資料庫應用引言:隨著大數據時代的到來,NoSQL資料庫成為處理大量資料的重要工具之一。 HBase作為一種開源的分散式NoSQL資料庫系統,在大數據領域有廣泛的應用。本文將介紹如何使用Java來開發基於HBase的NoSQL資料庫應用,並提供具體的程式碼範例。一、HBase介紹:HBase是基於Hadoop的分

在Go語言中使用HBase實現高效率的NoSQL資料庫應用 在Go語言中使用HBase實現高效率的NoSQL資料庫應用 Jun 15, 2023 pm 08:56 PM

隨著大數據時代的到來,海量資料的儲存和處理顯得格外重要。在NoSQL資料庫方面,HBase是目前廣泛應用的解決方案。 Go語言作為靜態強類型程式語言,由於其語法簡單、效能優秀,越來越多地應用於雲端運算、網站開發和資料科學等領域。本文將介紹如何在Go語言中使用HBase來實現高效率的NoSQL資料庫應用。 HBase介紹HBase是高可擴展、高可靠性、基

PHP與Apache HBase整合實作NoSQL資料庫與分散式存儲 PHP與Apache HBase整合實作NoSQL資料庫與分散式存儲 Jun 25, 2023 pm 06:01 PM

随着互联网应用和数据量的不断增长,传统的关系型数据库已经不能满足存储和处理海量数据的需求。而NoSQL(NotOnlySQL)作为一种新型的数据库管理系统,其能够在海量数据存储和处理方面具有显著的优势,得到越来越多的关注和应用。在NoSQL数据库中,ApacheHBase是一个非常流行的开源分布式数据库,它基于Google的BigTable思想设计,具

如何在Workerman中使用HBase進行資料儲存與查詢 如何在Workerman中使用HBase進行資料儲存與查詢 Nov 07, 2023 am 08:30 AM

Workerman是高效能的PHPsocket框架,它的特點是可以承載大量的並發連接。與傳統的PHP框架不同的是,Workerman不依賴Apache或Nginx等Web伺服器,而是透過開啟一個PHP進程,獨自運行整個應用程式。 Workerman具有極高的運作效率和更好的負載能力。同時,HBase是一個分散式的NoSQL資料庫系統,廣泛應用於大數

xAI 在 𝕏 上發布了 Grok-2 和 Grok-2 mini beta AI LLM企業 API 將於本月稍後推出 xAI 在 𝕏 上發布了 Grok-2 和 Grok-2 mini beta AI LLM企業 API 將於本月稍後推出 Aug 16, 2024 pm 06:42 PM

xAI 已在 X 上發布了 Grok-2 和 Grok-2 mini beta 人工智慧大語言模型 (LLM),企業 API 將於本月稍後發布。透過整合 Black Fore 的 FLUX.1 AI,Grok-2 的生成影像功能也得到了擴展

See all articles