国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

天真貝葉斯學(xué)習(xí)機(jī) | TiDB Hackathon 優(yōu)秀項(xiàng)目分享

Anshiii / 3628人閱讀

摘要:我們非常希望本屆誕生的優(yōu)秀項(xiàng)目能夠在社區(qū)中延續(xù)下去,感興趣的小伙伴們可以加入進(jìn)來(lái)哦本文作者是來(lái)自團(tuán)隊(duì)的楊文同學(xué),他們的項(xiàng)目天真貝葉斯學(xué)習(xí)機(jī)在本屆中獲得了三等獎(jiǎng)最佳創(chuàng)意獎(jiǎng)。比賽前一日從廣州南站出發(fā),次日抵達(dá)北京西站。

Ti Hack 系列
TiDB Hackathon 2018 共評(píng)選出六組優(yōu)秀項(xiàng)目,本系列文章將由這六組項(xiàng)目的成員主筆,分享他們的參賽經(jīng)驗(yàn)和成果。我們非常希望本屆 Hackathon 誕生的優(yōu)秀項(xiàng)目能夠在社區(qū)中延續(xù)下去,感興趣的小伙伴們可以加入進(jìn)來(lái)哦~

本文作者是來(lái)自 DSG 團(tuán)隊(duì)的楊文同學(xué),他們的項(xiàng)目《天真貝葉斯學(xué)習(xí)機(jī)》在本屆 Hackathon 中獲得了三等獎(jiǎng)+最佳創(chuàng)意獎(jiǎng)。

“在 TiDB Hackathon 2018 學(xué)習(xí)到不少東西,希望明年再來(lái)”

簡(jiǎn)述

“pd ctl 天真學(xué)習(xí)機(jī)”

具體做法:用 naive bayes 模型來(lái)根據(jù)系統(tǒng)指標(biāo)和人的 pd ctl 調(diào)用,來(lái)得到一個(gè)模型去根據(jù)系統(tǒng)指標(biāo)去自動(dòng)提供 pd ctl 調(diào)用的命令。

1.貝葉斯算法舉例

貝葉斯模型可以用來(lái)干這種事:

比如一個(gè)媽媽根據(jù)天氣預(yù)報(bào)來(lái)跟兒子在出們的時(shí)候叮囑:

天氣預(yù)報(bào)[ 晴, 溫度: 28, 風(fēng)力: 中 ], 媽媽會(huì)說(shuō) [好好玩]
天氣預(yù)報(bào)[ 雨, 溫度: 15, 風(fēng)力: 低 ], 媽媽會(huì)說(shuō) [帶上傘]
天氣預(yù)報(bào)[ 陰, 溫度: 02, 風(fēng)力: 大 ], 媽媽會(huì)說(shuō) [多穿點(diǎn)]...

把這些輸入輸入到貝葉斯模型里以后, 模型可以根據(jù)天氣預(yù)報(bào)來(lái)輸出:

天氣預(yù)報(bào)[ 晴, 溫度: 00, 風(fēng)力中], 模型會(huì)說(shuō) [ 多穿點(diǎn):0.7, 好好玩0.2, 帶上傘0.1]
天氣預(yù)報(bào)[ 雨, 溫度: 10, 風(fēng)力大], 模型會(huì)說(shuō) [ 帶上傘:0.8, 多穿點(diǎn)0.1, 好好玩0.1]

這樣通過(guò)一個(gè)媽媽的叮囑就可以訓(xùn)練出一個(gè)也會(huì)根據(jù)天氣預(yù)報(bào)給出叮囑的模型。

2. 初步想法

我們可以把一個(gè)模型多帶帶的部署在一個(gè) pod 里, 暴露一個(gè) service ,然后集群上每次有人去調(diào)用 pd_ctl 的時(shí)候就在后臺(tái)用 rest call 到模型服務(wù)上記錄一下操作(叮囑)和當(dāng)前的系統(tǒng)指標(biāo)(好比天氣預(yù)報(bào)). 這樣慢慢用一段時(shí)間以后,積累的操作多了以后,就可以打開(kāi)某個(gè)自動(dòng)響應(yīng),或者打開(kāi)自動(dòng)建議應(yīng)該執(zhí)行的命令的功能。

這樣模型可以在某一組系統(tǒng)指標(biāo)出現(xiàn)之前類似學(xué)習(xí)過(guò)的狀態(tài)之后,給出相應(yīng)的建議,當(dāng)這些建議都很正確的時(shí)候直接讓 pd 直接采納,完全智能的自動(dòng)化運(yùn)作。

3. 實(shí)際 Hackathon 方案

在跟導(dǎo)師交流探討后發(fā)現(xiàn),目前 PD 已經(jīng)比較自動(dòng)化了,很少需要人為介入進(jìn)行操作,需要的時(shí)候也是比較復(fù)雜的場(chǎng)景,或者自動(dòng)化運(yùn)作比較慢的場(chǎng)景。

我們團(tuán)隊(duì)在跟多名導(dǎo)師的溝通交流下,將初步想法進(jìn)行了一些調(diào)整:

從熱點(diǎn)調(diào)度策略入手,用熱點(diǎn)調(diào)度策略的數(shù)值去用 naive bayes 模型去訓(xùn)練他們,然后再根據(jù)這些數(shù)值再去模型中去獲取建議值。

統(tǒng)計(jì)建議值和熱點(diǎn)調(diào)度策略進(jìn)行比較;(從開(kāi)始的測(cè)試結(jié)果來(lái)看,大概有 70% 匹配,但是我們實(shí)測(cè)發(fā)現(xiàn),使用我們模型的建議值去真正的調(diào)度,熱點(diǎn) region 還是非常均衡的)

三組對(duì)照試驗(yàn):不進(jìn)行調(diào)度,只打印調(diào)度數(shù)據(jù);正常使用原來(lái)的熱點(diǎn)調(diào)度策略;使用原來(lái)的熱點(diǎn)調(diào)度策略的數(shù)值,但是使用模型訓(xùn)練的建議值進(jìn)行實(shí)際調(diào)度;

Hackathon 回顧

首先,介紹一下我們團(tuán)隊(duì)(DSG),分別來(lái)自:丹麥、北京(山西)、廣州。

D 先生是在比賽前一天早上到達(dá)北京的,我是比賽前一天晚上從廣州出發(fā),于比賽當(dāng)日早上 6:38 才抵達(dá)北京的。

說(shuō)實(shí)話,時(shí)差和疲憊對(duì)于參賽還是有一點(diǎn)影響的。

廢話不多說(shuō),我就來(lái)回顧一下我的整個(gè)參賽過(guò)程。

比賽前一日 20:05 從廣州南站出發(fā),次日 6:38 抵達(dá)北京西站。

7:58 抵達(dá)地鐵西小口

8:06 經(jīng)過(guò)轉(zhuǎn)轉(zhuǎn)

8:12 抵達(dá)比賽所在地:東升科技園 C-1 樓

8:16 簽到,逛 PingCAP

8:40 跟 D 先生匯合,了解貝葉斯模型

9:20 DSG 團(tuán)隊(duì)成員全部集結(jié)完畢

10:00 比賽正式開(kāi)始

10:00 Hacking Time: Trello 構(gòu)建整個(gè)比賽分工、準(zhǔn)備工作、需求分析

搭建 TiDB 集群(2套)【熟悉 TiDB 集群,實(shí)操 PD-CTL】

12:17 午餐

13:00 Hacking Time: 熟悉 PD Command,貝葉斯模型,導(dǎo)師指導(dǎo),本地 TiDB 環(huán)境構(gòu)建(坑),分析 PD 熱點(diǎn)調(diào)度,剖析調(diào)度流程,模擬熱點(diǎn)數(shù)據(jù)

18:20 外出用餐(蘆月軒羊蝎子(西三旗店))【沾 D 先生的光,蹭吃蹭喝】

20:40 回到東升科技園

20:50 ~ 次日 1:10 Hacking Time: 模擬熱點(diǎn)數(shù)據(jù),實(shí)測(cè)調(diào)度上報(bào)和獲取模型返回結(jié)果,本地測(cè)通調(diào)度參數(shù)上報(bào)和得到模型返回值

次日 1:10 ~ 5:50 會(huì)議室休息(在此期間,我的隊(duì)友 D 先生,調(diào)好了模型,并將此模型通過(guò) Docker 構(gòu)建部署到 PD 機(jī)器上)

次日 5:50 Hacking Time: 部署修改過(guò)的 PD 服務(wù)到線上服務(wù)器,并打通 rust-nb-server,實(shí)時(shí)上報(bào)和實(shí)時(shí)獲取模型返回結(jié)果

次日 7:30 早餐

次日 8:00 正式調(diào)試

次日 9:00 抽簽確定 Demo 時(shí)間

次日 9:00 ~ 12:00 Hacking Time: 調(diào)優(yōu)

次日 12:00 ~ 12:30 午餐時(shí)間

次日 13:00 ~ 14:00 Hacking Time: PPT,調(diào)優(yōu)

次日 14:30 ~ 18:30 Demo Time(B 站直播)



次日 18:30 ~ 19:00 頒獎(jiǎng)(B 站直播)


Hackathon 實(shí)操 1. 搭建 TiDB 集群

完全參考文檔

測(cè)試 TiDB 集群,可能遇到的坑(MySQL 8 client On MacOSX):

mysql client connect : Unknown charset 255 (MySQL 8 Client 不支持字符集,需要指定默認(rèn)字符集為 UTF8)

mysql -hx.x.x.x --default-character-set utf8

2. 天真貝葉斯的服務(wù)接口

/model/service1?PUT 上報(bào)數(shù)據(jù):

{
  "updates": [
    [
      "transfer leader from store 7 to store 2",
      [
        {
          "feature_type": "Category",
          "name": "hotRegionsCount1",
          "value": "true"
        },
        {
          "feature_type": "Category",
          "name": "minRegionsCount1",
          "value": "true"
        },
        {
          "feature_type": "Category",
          "name": "hotRegionsCount2",
          "value": "true"
        },
        {
          "feature_type": "Category",
          "name": "minRegionsCount2",
          "value": "true"
        },
        {
          "feature_type": "Category",
          "name": "srcRegion",
          "value": "7"
        }
      ]
    ],
  ]}

/model/service1 POST 獲取模型結(jié)果:

輸入?yún)?shù):上報(bào)的參數(shù)

{
  "predictions": [
    {
      "transfer leader from store 1 to store 2": 0.27432775221072137,
      "transfer leader from store 1 to store 7": 0.6209064350448428,
      "transfer leader from store 2 to store 1": 0.024587894827775753,
      "transfer leader from store 2 to store 7": 0.01862719305134528,
      "transfer leader from store 7 to store 1": 0.02591609468013258,
      "transfer leader from store 7 to store 2": 0.03563463018518229
    }
  ]}
3. PD 集群部署

首先將 pd-server 替換到集群所在 ansible/resources/bin 目錄下,那如何讓集群上的 PD 更新生效呢?

更新:

$ ansible-playbook rolling_update.yml --tags=pd

在實(shí)操過(guò)程中, 如果你在更新到一半的時(shí)候就關(guān)門了,可能會(huì)導(dǎo)致整個(gè) PD 掛掉(非集群環(huán)境),可能是因?yàn)檫壿嫴粐?yán)謹(jǐn)所導(dǎo)致的問(wèn)題

直接停止了 ansible,導(dǎo)致 PD 集群機(jī)器節(jié)點(diǎn)有停止的情況,這個(gè)時(shí)候你可以通過(guò)以下命令啟動(dòng)它。

啟動(dòng):

$ ansible-playbook start.yml --tags=pd
4. PD 調(diào)度 4.1 取消熱點(diǎn)數(shù)據(jù)調(diào)度

大家都以為可以通過(guò)配置來(lái)解決:(調(diào)度開(kāi)關(guān)方法: 用 config set xxx 0 來(lái)關(guān)閉調(diào)度)

配置如下:(雖然找的地方錯(cuò)誤了,但是錯(cuò)打錯(cuò)著,我們來(lái)到了 Demo Time:

config set leader-schedule-limit 0
config set region-schedule-limit 0
scheduler add hot-region-scheduler
config show
config set leader-schedule-limit 4
config set region-schedule-limit 8

實(shí)測(cè)發(fā)現(xiàn),根本不生效,必須要改源代碼。

func (h *balanceHotRegionsScheduler) dispatch(typ BalanceType, cluster schedule.Cluster) []*schedule.Operator {
    h.Lock()
    defer h.Unlock()
    switch typ {
    case hotReadRegionBalance:
        h.stats.readStatAsLeader = h.calcScore(cluster.RegionReadStats(), cluster, core.LeaderKind)
        // return h.balanceHotReadRegions(cluster) // 將這一行注釋
    case hotWriteRegionBalance:
        h.stats.writeStatAsLeader = h.calcScore(cluster.RegionWriteStats(), cluster, core.LeaderKind)
        h.stats.writeStatAsPeer = h.calcScore(cluster.RegionWriteStats(), cluster, core.RegionKind)
        // return h.balanceHotWriteRegions(cluster) // 將這一行注釋
    }
    return nil
}

但是,我們要的不是不調(diào)度,而只是不給調(diào)度結(jié)果:

func (h *balanceHotRegionsScheduler) balanceHotReadRegions(cluster schedule.Cluster) []*schedule.Operator {
    // balance by leader
    srcRegion, newLeader := h.balanceByLeader(cluster, h.stats.readStatAsLeader)
    if srcRegion != nil {
        schedulerCounter.WithLabelValues(h.GetName(), "move_leader").Inc()
        // step := schedule.TransferLeader{FromStore: srcRegion.GetLeader().GetStoreId(), ToStore: newLeader.GetStoreId()} // 修改為不返回值或者返回 _
        _ = schedule.TransferLeader{FromStore: srcRegion.GetLeader().GetStoreId(), ToStore: newLeader.GetStoreId()}
        // return []*schedule.Operator{schedule.NewOperator("transferHotReadLeader", srcRegion.GetID(), srcRegion.GetRegionEpoch(), schedule.OpHotRegion|schedule.OpLeader, step)} // 注釋這一行,并 return nil
        return nil
    }

    // balance by peer
    srcRegion, srcPeer, destPeer := h.balanceByPeer(cluster, h.stats.readStatAsLeader)
    if srcRegion != nil {
        schedulerCounter.WithLabelValues(h.GetName(), "move_peer").Inc()
        return []*schedule.Operator{schedule.CreateMovePeerOperator("moveHotReadRegion", cluster, srcRegion, schedule.OpHotRegion, srcPeer.GetStoreId(), destPeer.GetStoreId(), destPeer.GetId())}
    }
    schedulerCounter.WithLabelValues(h.GetName(), "skip").Inc()
    return nil
}

......

func (h *balanceHotRegionsScheduler) balanceHotWriteRegions(cluster schedule.Cluster) []*schedule.Operator {
    for i := 0; i < balanceHotRetryLimit; i++ {
        switch h.r.Int() % 2 {
        case 0:
            // balance by peer
            srcRegion, srcPeer, destPeer := h.balanceByPeer(cluster, h.stats.writeStatAsPeer)
            if srcRegion != nil {
                schedulerCounter.WithLabelValues(h.GetName(), "move_peer").Inc()
                fmt.Println(srcRegion, srcPeer, destPeer)
                // return []*schedule.Operator{schedule.CreateMovePeerOperator("moveHotWriteRegion", cluster, srcRegion, schedule.OpHotRegion, srcPeer.GetStoreId(), destPeer.GetStoreId(), destPeer.GetId())} // 注釋這一行,并 return nil
                return nil
            }
        case 1:
            // balance by leader
            srcRegion, newLeader := h.balanceByLeader(cluster, h.stats.writeStatAsLeader)
            if srcRegion != nil {
                schedulerCounter.WithLabelValues(h.GetName(), "move_leader").Inc()
                // step := schedule.TransferLeader{FromStore: srcRegion.GetLeader().GetStoreId(), ToStore: newLeader.GetStoreId()} // 修改為不返回值或者返回 _
                _ = schedule.TransferLeader{FromStore: srcRegion.GetLeader().GetStoreId(), ToStore: newLeader.GetStoreId()}

                // return []*schedule.Operator{schedule.NewOperator("transferHotWriteLeader", srcRegion.GetID(), srcRegion.GetRegionEpoch(), schedule.OpHotRegion|schedule.OpLeader, step)} // 注釋這一行,并 return nil
                return nil
            }
        }
    }

    schedulerCounter.WithLabelValues(h.GetName(), "skip").Inc()
    return nil
}

當(dāng)修改了 PD 再重新編譯得到 pd-server,將其放到

tidb-ansible/resources/bin/pd-server 并替換原來(lái)的文件,然后執(zhí)行

ansible-playbook rolling_update.yml --tags=pd,即可重啟 pd-server 服務(wù)。

在調(diào)優(yōu)的過(guò)程中發(fā)現(xiàn),當(dāng)前 hot-region-scheduler 的調(diào)度時(shí)對(duì)于目標(biāo)機(jī)器的選擇并不是最優(yōu)的,代碼如下:

https://github.com/pingcap/pd/blob/master/server/schedulers/hot_region.go#L374

簡(jiǎn)述:循環(huán)遍歷 candidateStoreIDs 的時(shí)候,如果滿足條件有多臺(tái),那么最后一個(gè)總會(huì)覆蓋前面已經(jīng)存儲(chǔ)到 destStoreID 里面的數(shù)據(jù),最終我們拿到的 destStoreID 有可能不是最優(yōu)的。

// selectDestStore selects a target store to hold the region of the source region.
// We choose a target store based on the hot region number and flow bytes of this store.
func (h *balanceHotRegionsScheduler) selectDestStore(candidateStoreIDs []uint64, regionFlowBytes uint64, srcStoreID uint64, storesStat core.StoreHotRegionsStat) (destStoreID uint64) {
    sr := storesStat[srcStoreID]
    srcFlowBytes := sr.TotalFlowBytes
    srcHotRegionsCount := sr.RegionsStat.Len()

    var (
        minFlowBytes    uint64 = math.MaxUint64
        minRegionsCount        = int(math.MaxInt32)
    )
    for _, storeID := range candidateStoreIDs {
        if s, ok := storesStat[storeID]; ok {
            if srcHotRegionsCount-s.RegionsStat.Len() > 1 && minRegionsCount > s.RegionsStat.Len() {
                destStoreID = storeID
                minFlowBytes = s.TotalFlowBytes
                minRegionsCount = s.RegionsStat.Len()
                continue // 這里
            }
            if minRegionsCount == s.RegionsStat.Len() && minFlowBytes > s.TotalFlowBytes &&
                uint64(float64(srcFlowBytes)*hotRegionScheduleFactor) > s.TotalFlowBytes+2*regionFlowBytes {
                minFlowBytes = s.TotalFlowBytes
                destStoreID = storeID
            }
        } else {
            destStoreID = storeID
            return
        }
    }
    return
}
4.2 PD 重要監(jiān)控指標(biāo)詳解之 HotRegion:

Hot write Region’s leader distribution:每個(gè) TiKV 實(shí)例上是寫(xiě)入熱點(diǎn)的 leader 的數(shù)量

Hot write Region’s peer distribution:每個(gè) TiKV 實(shí)例上是寫(xiě)入熱點(diǎn)的 peer 的數(shù)量

Hot write Region’s leader written bytes:每個(gè) TiKV 實(shí)例上熱點(diǎn)的 leader 的寫(xiě)入大小

Hot write Region’s peer written bytes:每個(gè) TiKV 實(shí)例上熱點(diǎn)的 peer 的寫(xiě)入大小

Hot read Region’s leader distribution:每個(gè) TiKV 實(shí)例上是讀取熱點(diǎn)的 leader 的數(shù)量

Hot read Region’s peer distribution:每個(gè) TiKV 實(shí)例上是讀取熱點(diǎn)的 peer 的數(shù)量

Hot read Region’s leader read bytes:每個(gè) TiKV 實(shí)例上熱點(diǎn)的 leader 的讀取大小

Hot read Region’s peer read bytes:每個(gè) TiKV 實(shí)例上熱點(diǎn)的 peer 的讀取大小

本次我們只 hack 驗(yàn)證了 Write Region Leader 這部分,所以我們重點(diǎn)關(guān)注一下監(jiān)控和問(wèn)題:

Hot write Region"s leader distribution

監(jiān)控?cái)?shù)據(jù)有一定的延時(shí)(粗略估計(jì)1-2分鐘)
5. 模擬熱點(diǎn)數(shù)據(jù)

從本地往服務(wù)器 load 數(shù)據(jù):

修改 tidb-bench 的 Makefile#load 模塊對(duì)應(yīng)的主機(jī)地址,然后執(zhí)行 make tbl, make load 即可往服務(wù)器 load 數(shù)據(jù)了。

注意,這里你也需要進(jìn)行一些配置修改:--default-character-set utf8

犯的錯(cuò):受限于本地-服務(wù)器間網(wǎng)絡(luò)帶寬,導(dǎo)入數(shù)據(jù)很慢。

線上服務(wù)器上:

$ ./go-ycsb run mysql -p mysql.host=10.9.x.x -p mysql.port=4000 -p mysql.db=test1 -P workloads/workloada

注:go-ycsb 支持 insert,也支持 update,你可以根據(jù)你的需要進(jìn)行相對(duì)應(yīng)的調(diào)整 workloada#recordcountworkloada#operationcount 參數(shù)。

6.本地構(gòu)建 rust-nb-server

rust 一天速成……

Demo Time 的時(shí)候聽(tīng)好幾個(gè)團(tuán)隊(duì)都說(shuō)失敗了。我以前也嘗試過(guò),但是被編譯的速度以及耗能給擊敗了。

環(huán)境都可以把你 de 自信心擊潰。

rustup install nightly
cargo run
...

Mac 本地打包 Linux 失敗:缺少 std 庫(kù),通過(guò) Docker 臨時(shí)解決。

7. 導(dǎo)師指導(dǎo)

從比賽一開(kāi)始,導(dǎo)師團(tuán)就非常積極和主動(dòng),直接去每個(gè)項(xiàng)目組,給予直接指導(dǎo)和建議,我們遇到問(wèn)題去找導(dǎo)師時(shí),他們也非常的配合。

導(dǎo)師不僅幫我們解決問(wèn)題(特別是熱點(diǎn)數(shù)據(jù)構(gòu)建,包括對(duì)于代碼級(jí)別的指導(dǎo)),還跟我們一起探討課題方向和實(shí)際可操作性,以及可以達(dá)到的目標(biāo)。

非常感謝!!!

我們的準(zhǔn)備和主動(dòng)性真的不足,值得反思--也希望大家以后不要怕麻煩,有問(wèn)題就大膽的去問(wèn)。
Hackathon Demo

整個(gè) Demo show 進(jìn)行的非常順利,為每一個(gè)團(tuán)隊(duì)點(diǎn)贊!

很多團(tuán)隊(duì)的作品都讓人尖叫,可想而知他們的作品是多么的酷炫和牛逼,印象中只有一個(gè)團(tuán)隊(duì)在 Demo 環(huán)境出現(xiàn)了演示時(shí)程序崩潰的問(wèn)題(用Java Netty 基于 TiKV 做的 memcache(實(shí)現(xiàn)了大部分的協(xié)議))。

Hackathon 頒獎(jiǎng)

遺憾!!!

我們 DSG 團(tuán)隊(duì)榮獲三等獎(jiǎng)+最佳創(chuàng)意兩項(xiàng)大獎(jiǎng),但是很遺憾我未能跟團(tuán)隊(duì)一起分享這一刻。

因?yàn)槲乙s著去火車站,所以在周日下午6點(diǎn)的時(shí)候,我跟隊(duì)友和一些朋友道別后,我就去火車站了,后面幾組的 Demo Show 也很非常遺憾未能參加。

得獎(jiǎng)感言:

謝謝 DSG 團(tuán)隊(duì),謝謝導(dǎo)師,謝謝評(píng)委老師,謝謝 PingCAP 給大家籌備了這么好的一次黑客馬拉松比賽活動(dòng)。

TiDB Hackathon 2018 總結(jié)
本次比賽的各個(gè)方面都做的完美,除了網(wǎng)絡(luò)。

環(huán)境(一定要提前準(zhǔn)備)----這次被坑了不少時(shí)間和精力;

配置文檔中有一些注意事項(xiàng),一定要認(rèn)真閱讀:ext4 必須要每臺(tái)機(jī)器都更新;

可以在執(zhí)行的時(shí)候增加參數(shù)來(lái)避免

ansible-playbook bootstrap.yml --extra-vars "dev_mode=True"

如果磁盤掛載有問(wèn)題,可以重新清除數(shù)據(jù)后再重新啟動(dòng);

ansible-playbook unsafe_cleanup_data.yml

(https://github.com/pingcap/docs/blob/master/op-guide/ansible-operation.md)

參考資料

https://github.com/pingcap/pd

tidb-bench tpch

https://github.com/pingcap/go-ycsb

Ansible 部署

PD 重要監(jiān)控指標(biāo)詳解

使用 TiDB-Ansible 升級(jí) TiDB

在線代碼格式化

rust-nb-server

后續(xù)楊文同學(xué)會(huì)在 個(gè)人博客 中更新更多項(xiàng)目細(xì)節(jié)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/17834.html

相關(guān)文章

  • TiDB 社區(qū)成長(zhǎng)足跡與小紅花 | TiDB DevCon 2019

    摘要:在上,我司聯(lián)合創(chuàng)始人崔秋帶大家一起回顧了年社區(qū)成長(zhǎng)足跡,在社區(qū)榮譽(yù)時(shí)刻環(huán)節(jié),我們?yōu)樾聲x授予了證書(shū),并為年度最佳貢獻(xiàn)個(gè)人團(tuán)隊(duì)頒發(fā)了榮譽(yù)獎(jiǎng)杯。同時(shí),我們也為新晉授予了證書(shū),并為年最佳社區(qū)貢獻(xiàn)個(gè)人最佳社區(qū)貢獻(xiàn)團(tuán)隊(duì)頒發(fā)了榮譽(yù)獎(jiǎng)杯。 2018 年 TiDB 產(chǎn)品變得更加成熟和穩(wěn)定,同時(shí) TiDB 社區(qū)力量也在發(fā)展壯大。在 TiDB DevCon 2019 上,我司聯(lián)合創(chuàng)始人崔秋帶大家一起回顧了 ...

    hlcfan 評(píng)論0 收藏0
  • TiDB Lab 誕生記 | TiDB Hackathon 優(yōu)秀項(xiàng)目分享

    摘要:本文由紅鳳凰粉鳳凰粉紅鳳凰隊(duì)的成員主筆,他們的項(xiàng)目在本屆中獲得了二等獎(jiǎng)。用戶在平臺(tái)上進(jìn)行第一章部署的學(xué)習(xí),了解到可以通過(guò)進(jìn)行部署。收到事件后,更新。由于位置是由屬性給出的,因此為其加上,即可實(shí) 本文由紅鳳凰粉鳳凰粉紅鳳凰隊(duì)的成員主筆,他們的項(xiàng)目 TiDB Lab?在本屆 TiDB Hackathon 2018 中獲得了二等獎(jiǎng)。TiDB Lab 為 TiDB 培訓(xùn)體系增加了一個(gè)可以動(dòng)態(tài)觀...

    asoren 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<