Mar 2, 2020 Fukuoka.go#15 でお話しした資料です。
Fukuoka.go#15 with Kagoshima GophersTomohisa Oda / Mar 2, 2020What isCockroachDB
View Slide
Fukuoka.go#15 with Kagoshima Gophers@linyowsblog: tomohisaoda.comaffiliation: GMO pepabo, inc.
Fukuoka.go#15 with Kagoshima GophersPrivate ProjectsΞϓϦέʔγϣϯ͕ࣗϦϙδτϦ͔Β࠷৽ͷίʔυΛݕͯࣗ͠ಈͰσϓϩΠͱσϦόϦʔΛߦ͏πʔϧMJOVYͷVTFS໊લղܾΛ(JU)VCͷ5FBNϝϯόʔϦϙδτϦͷΞΫηεݖݶऀ͔Βߦ͏πʔϧ
Fukuoka.go#15 with Kagoshima Gophers ͓ͼ"CockroachDBίʔυϦʔσΟϯά""CockroachDBͬͯԿ" ʹͳΓ·ͨ͠ɻ
Fukuoka.go#15 with Kagoshima GophersCockroachDBͱ
Fukuoka.go#15 with Kagoshima Gophers๏ ཧతࢄ42-σʔλϕʔε๏ 3%#ͱ/P42-ͷਐԽܥͰ͋Δ/FX42-๏ ࣗಈ'BJMPWFSͱࣗಈ3FQBJS๏ .VMUJ"DUJWFͳՄ༻ੑ๏ 1PTUHSF42-ޓͰطଘͷυϥΠό͕༻Ͱ͖ΔCockroachDB
Fukuoka.go#15 with Kagoshima Gophers
Fukuoka.go#15 with Kagoshima GophersDesignਫฏͷεέʔϥϏϦςΟ๏ ཧతʹແݶʹ૿ͤΔ๏ ΫΤϦࢄͰ୯ҰΫΤϦΛશମతεϧʔϓοτ্ߴ͍ੜଘੑ๏ ϚγϯࢄɺϥοΫࢄɺཧతࢄ๏ ࣗݾम෮ɺࣗݾෛՙόϥϯγϯάڧ͍Ұ؏ੑ๏ ߹ҙϕʔεͷϨϓϦέʔγϣϯ๏ "$*%ηϚϯςΟΫεΛຬͨ͢ࢄτϥϯβΫγϣϯ
Fukuoka.go#15 with Kagoshima Gophers๏ 42-*OUFSGBDF͕ͩதࢄ,74UPSF -FWFM%#ͷϑΥʔΫ3PDLT%#๏ ςʔϒϧΛ3BOHFͱ͍͏.#ҎͷαΠζʹͨ͠୯ҐͰׂ๏ 3BOHF͕ϨϓϦέʔγϣϯͷ୯ҐͰ/PEFؒͰ4IBSEJOH͢Δ๏ ϨϓϦέʔγϣϯ3BGUΞϧΰϦζϜͰߦ͍ɺ5SJQMJDBUFEʢ̏ॏʣߦ͑Δ๏ ϨϓϦΧͷ૯/'ͱ͢Δͱ࠷େ'ݸͷোʹ͑ΔArchitecture
Fukuoka.go#15 with Kagoshima GophersSQLTransactionalDistributionReplicationStorageClientFoo : ID = [1, 51] Foo : ID = [51, 103] …Table FooIndexFooIdxTable Bar …Node1 Node2 Node3 Node464MRangesRangeIndex64M
Fukuoka.go#15 with Kagoshima GophersCockroachDB͕ͬͯ͘ΕΔ͜ͱ
Fukuoka.go#15 with Kagoshima GophersReplicasͷϦόϥϯγϯάۉҰԽ$MVTUFSʹ/PEFΛ৽͘͠Ճ͢Δ $PDLSPBDI%#3BOHFΛஔ͢Δ $PDLSPBDI%#$MVTUFSΛۉʹ͢Δ
Fukuoka.go#15 with Kagoshima GophersReplicasͷϦόϥϯγϯάम෮ো͕ൃੜ͠/PEFΛফࣦ͢Δ$PDLSPBDI%#3FQMJDBͷܽམΛೝࣝͯ͠"DUJWF/PEF্ʹϨϓϦΧΛஔ͖͑Δো͕Ұ࣌తͰ/PEF͕෮ؼͨ͠Β-FBTIPMEFSͱݺΕΔ3BGU-FBEFS͕ϨϓϦΧΛΩϟονΞοϓ͢Δ
Fukuoka.go#15 with Kagoshima Gophers๏ 51$$ϕϯνϚʔΫʹ͓͍ͯ"NB[PO"VSPSBͱൺֱ͢Δͱഒͷεϧʔϓοτ͕͋Δ๏ ͜ͷεϧʔϓοτ51$$ϥϯΩϯάͰ൪ʹେ͖͍๏ ,7 SFBE XSJUFͰ/PEFͷ૿ՃʹΑͬͯτϥϯβΫγϣϯͷॲཧೳྗ͕ઢܗʹ্͍ͯ͘͜͠ͱ͕Θ͔͍ͬͯΔ๏ $PDLSPBDI%#ʹཧ্ͷεέʔϦϯά੍ݶͳ͍ͱͷ͜ͱPerformance
Fukuoka.go#15 with Kagoshima GophersCockroachDBͷ࣮
Fukuoka.go#15 with Kagoshima Gophers๏ (P Ҏ্ඇਪ๏ $DPNQJMFS͕ඞཁ 3PDLT%#$SZQUPɺ,FSCFSPTɺ4OBQQZͳͲʹґଘ๏ (PͷσΟϨΫτϦߏࢸͬͯී௨QLHʹ࣮͕͋Δ๏ ֎෦QLHఔͳͷͰنతʹґଘ͕গͳ͍Α͏ʹݟ͑Δhttps://github.com/cockroachdb/cockroach࣮ʹ͍ͭͯ$ tree pkg | grep .go | grep -v test.go | wc -l2405 // ͜ͷϑΝΠϧͰίʔυϦʔσΟϯά͢Δؾ͕ͳ͘ͳͬͨ$ grep 'name =' Gopkg.toml | grep -v golang | grep -v cockroach | wc -l20
Fukuoka.go#15 with Kagoshima GophersCockroachDBΛ͞ΘͬͯΈΔ
Fukuoka.go#15 with Kagoshima Gophers๏ IFMNͰ$PDLSPBDI%#ΫϥελΛ࡞ 4UBUFGVM4FUͷͭͷ1PE͕ىಈhelm install my-release --values my-values.yaml stable/cockroachdbkubectl get csr๏ $PDLSPBDI%#ϊʔυͷূ໌ॻʹॺ໊͢ΔͨΊͷ$43Λঝೝkubectl certificate approve default.node.my-release-cockroachdb-0kubectl certificate approve default.client.rootkubectl get pv๏ #VJMUJO$MJFOUͷ४උkubectl create -f client-secure.yamlkubectl exec -it cockroachdb-client-secure -- ./cockroach sql --certs-dir=/cockroach-certs —host=my-release-cockroachdb-publichttps://www.cockroachlabs.com/docs/stable/orchestrate-a-local-cluster-with-kubernetes.htmlKubernetesΛͬͯDemo: ४උ
Fukuoka.go#15 with Kagoshima Gophers๏ 42-ͷ࣮ߦCREATE DATABASE bank;CREATE TABLE bank.accounts (id INT PRIMARY KEY, balance DECIMAL);INSERT INTO bank.accounts VALUES (1, 1000.50);SELECT * FROM bank.accounts;CREATE USER roach WITH PASSWORD 'Q7gc8rEdS';INSERT INTO system.role_members (role, member, "isAdmin") VALUES ('admin', 'roach', true);๏ ίϯιʔϧϩάΠϯkubectl port-forward my-release-cockroachdb-0 8080๏ /PEF'BJMPWFSɺ/PEFͷՃɺআkubectl delete pod my-release-cockroachdb-2helm upgrade my-release stable/cockroachdb --set statefulset.replicas=4 —reuse-valueskubectl certificate approve default.node.my-release-cockroachdb-3kubectl exec -it cockroachdb-client-secure -- ./cockroach node status --certs-dir=/cockroach-certs —host=my-release-cockroachdb-publickubectl exec -it cockroachdb-client-secure -- ./cockroach node decommission 2 --certs-dir=/cockroach-certs —host=my-release-cockroachdb-publichelm upgrade my-release stable/cockroachdb --set statefulset.replicas=3 --reuse-valueshttps://www.cockroachlabs.com/docs/stable/orchestrate-a-local-cluster-with-kubernetes.htmlKubernetesΛͬͯDemo: ૢ࡞
Fukuoka.go#15 with Kagoshima Gophersadd node to clusterdelete a pod
Fukuoka.go#15 with Kagoshima Gophers๏ IUUQTHJUIVCDPNDPDLSPBDIECDPDLSPBDICMPCNBTUFSEPDTEFTJHONE๏ IUUQTXXXDPDLSPBDIMBCTDPNEPDTTUBCMFBSDIJUFDUVSFPWFSWJFXIUNM๏ IUUQTXXXDPDLSPBDIMBCTDPNEPDTTUBCMFDPDLSPBDIECJODPNQBSJTPOIUNM๏ IUUQTXXXDPDLSPBDIMBCTDPNEPDTTUBCMFNVMUJBDUJWFBWBJMBCJMJUZIUNM๏ IUUQTXXXDPDLSPBDIMBCTDPNCMPHMJNJUTPGUIFDBQUIFPSFN๏ IUUQTXXXJOGPRDPNQSFTFOUBUJPOTDPDLSPBDIECEJTUSJCVUFETRM๏ IUUQTXXXDPDLSPBDIMBCTDPNCMPHUQDDL๏ IUUQTXXXDPDLSPBDIMBCTDPNEPDTTUBCMFPSDIFTUSBUFBMPDBMDMVTUFSXJUILVCFSOFUFTIUNMReferences
Fukuoka.go#15 with Kagoshima GophersThank youaʕ⊙౪⚆ʔ