Managing HBase releases
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:
- 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. - 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).
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).
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 :)
原文地址:Managing HBase releases, 感谢原作者分享。

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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