Rumah pangkalan data tutorial mysql 淘宝数据库负责人介绍淘宝数据库设计

淘宝数据库负责人介绍淘宝数据库设计

Jun 07, 2016 pm 03:56 PM
pangkalan data Taobao

江枫先给我们介绍一下自己,和你在这次淘宝“双十一”事件中所扮演的角色? 大家好,我是淘宝技术保障部的江枫。目前主要负责数据库的稳定性这一块。双十一这一天,我主要是负责协调整个数据库团队和保障整个数据库在“双十一”过程中的稳定性不受任何影响。

江枫先给我们介绍一下自己,和你在这次淘宝“双十一”事件中所扮演的角色? \大家好,我是淘宝技术保障部的江枫。目前主要负责数据库的稳定性这一块。双十一这一天,我主要是负责协调整个数据库团队和保障整个数据库在“双十一”过程中的稳定性不受任何影响

那给我们详细的谈一下淘宝网现在整个数据库整体的一个架构,包括它硬件的组成。 \
淘宝的数据库发展到今天,已经是一个非常复杂的系统。我大概算了一下,淘宝目前所有的数据库服务器加起来可能已经超过800台。那在这么一个规模底下,淘宝的数据库团队这么多年也是随着淘宝的业务发展一起成长起来的,但淘宝数据库目前核心的数据库还在小型机和高端的存储上面,还有很多的数据库现在是用的是MySQL,我们逐步在从Oracle到MySQL这个方向在转移,所以我们MySQL PC server硬件也是非常多的了。

我们也了解到,现在淘宝的整个的数据库团队在逐渐的把一些数据库从Oracle迁移到MySQL,然后呢,把一些服务器由小型机转到PC server,那你们整个转变的动机是什么?\
主要是因为业务压力给了我们最大的动力。07年我来到淘宝的时候,当时只有三个主要的数据库,全部在小型机和存储上面。以当时的压力来看,它跑起来是非常顺利的,而且大家也知道小型机它从Unix操作系统到硬件,稳定性都会比PC server其实要高很多,当时的情况下淘宝用小型机是一个非常自然的选择。
从07年开始淘宝的业务量保持每年自然翻一番的增长,数据库质量感觉到非常大的压力。那么前端业务量增长一倍,在数据库上有可能增长是好几倍,它有一个放大效应在里边。当时我们第一步能够想到很自然的架构,就是把三个数据库拆成更多的数据库,或每一个数据库支持一个比较单一的业务。比如用户、商品和交易,都会分成独立的数据库,然后放到独立的小型计算中去,这是我们08年做的很大的事情就是垂直拆分,然后08年的业务我们就顶住了。
当时我们就预估09年、10年会有更大的压力增长,这个时候我们应该怎么办?当时我们从业界能看到很多的经验分享,包括eBay、亚马逊这些国外的大公司,他们的经验分享里面,水平拆分是我们数据库涨到一定程度后的架构选择。我们从Oracle到MySQL转移,主要是用水平拆分,这是我们未来的一个弱点,那水平拆分后机器、数据库的数量都会多很多,那Oracle它本身的成本也是我们考虑的一个重要因素,所以当时从成本考虑的话,那个时候我们自然会选择用MySQL数据库。

给我们再简单总结一下这几年,淘宝整个数据库的演变过程? \
刚才说到08年我们做完垂直拆分以后,09年到今年我们主要做的工作其实就是水平拆分。今年在十月份之前我们全部完成了淘宝最核心的三个系统:交易数据库、商品数据库和用户数据库的水平拆分。所以到“双十一”之前,在我们内部采访中,我一直跟采访人员说,当时数据库情绪稳定。基本上我们没有做什么事情,只是在不停的看报表,看数据,然后很开心的看到交易曲线以超过45度的趋势往上涨。

那前期还是做了非常完善的准备。据我们了解在整个从小型机到PC server的迁移,包括从Oracle到MySQL数据库的迁移,你们在做这个事情的时候,都做过好几个月的压力测试。你讲讲这个背景和故事。\
是这样的,今年我们年初决定,我们商品库从小型机迁到PC server上面去,这是淘宝压力最大的一个数据库,当时是用四台小型机加两个高端存储来支撑的。要把这么大一个数据库进行迁移,我们心里面也是没有底的,因为不知道要多少台PC server能够支撑,需要什么样的配置来支撑这个压力?当时我们能够想到一个很直观的想法就是模拟线上完全一样的压力,甚至加上几倍的压力来测它的极限值。
我们和开发团队、我们的性能测试团队,加上DBA团队和ops团队,成立了一个非常大的项目组,然后做了接近两个月的性能测试,在整个测试过程中发现了非常多的问题,包括我们给Oracle、MySQL等厂商都提交了很多Bug,有些Bug也得到厂商回应,进行修复。

那整体的转变的过程到现在进行到了什么样的程度?包括你在整个转变的过程中遇到哪些问题? \
我们现在最核心的用户数据库今年已经彻底完成了从小型机、存储和Oracle切入到PC server加MySQL的架构。
我们内部有一个提法叫做去O、去I、去E,其实就是我们要从高端硬件Scale up模式到低端硬件的Scal out水平扩展的模式,这是淘宝内部最大最核心的系统,今年已经顺利完成了全部区的水平扩展。其他几个系统,比如说交易和商品已经完成了一部分,完成了水平拆分的一部分,但是没有达到我们希望的进度,这可能是明年我们需要做的事情。

在转型过程中主要遇到哪些问题? \
让我们觉得比较大的问题就是我们从可靠的小型机迁移到大规模,大数据量的PC server上来,从架构上就对我们就是一个非常大的挑战。大家都知道,每一个PC server的稳定性肯定和单台小型机会有一定的差距,再加上我们一个机群有可能是32台或者64台PC server。每一台PC server即使有四个9的可用性,但如果我们整个系统合在一起,可能它最后的两个9的可用性都达不到。这就需要我们从软件层、架构层要做非常多的改进,能够要让单点的一些失效对整体的系统不造成任何影响,因为我们和架构部门、开发部门一起做了很多事情,才能保证我们的集群稳定上线。

其实“双十一”这个时间应该说是对过去的技术转变的检验,现在回头来看,这个检验的结果怎么样? \
当时是有点提心吊胆的,之后又觉得相对来说今年我们做的很多事情还是非常成功的。但是现在再回头仔细想想还是有点后怕,“双十一”那天的凌晨零点不是有一次Ipad的秒杀吗,当天晚上我们都在线上观察数据,在零点的一瞬间,就看到所有数据库指标已经达到了以前正常时候最高峰的指标,有些甚至还超过了。
当天晚上睡觉的时候心里就有点在打鼓:才零点就这个样子了,明天下午明天晚上最高峰的时候我们应该怎么渡过?所以第二天早上八点多的时候我们一进到指挥部里面就看到所有的指标, 包括CDN的指标、各个业务线的指标、数据库的指标都是噌噌的往上涨,这时心里面其实是很忐忑不安的。
但是我们比较放心的是这三大核心系统,商品、用户和交易,在我们今年所有的水平扩展项目做完了以后,比如说商品功能做完了以后,从我们的机械压测里面它是有十倍的流量的,所以当天百分之一百,百分之两百的流量基本上对数据库没有造成太大的影响,所以当时还是很开心的看到这个指标快速的往上涨,希望交易能够通过10个亿、20个亿,我觉得都是能够承受的。

\那对于整个数据库架构的演进下一步有什么打算? \
下一步其实就是刚刚说的我们有几个核心系统还没有完全的做到这个水平扩展,加上“双十一”那天我们还是有一个小惊险:我们有一个数据库,跟交易核心有一点点联系的,但它还是放在小型机上面,当时已经提前为它准备了百分之一百的余量,就是说它可以承担平时最高压力的两倍。
但是那天已经达到平时最高压力的1.8倍左右的时候,把我们吓出了一身冷汗。如果当时淘宝的交易最高峰的流量再增长20%的话,有可能数据库就会到瓶颈了。所以我们明年是要把更多这种Scale up能够看到天花板的数据库全部要拆分成水平库存这种数据库。

那你刚才所提到的去Oracle,去小型机,去高端存储,这个“三去”的整体思路给淘宝网带来了哪些经济上的效应? \
当时我们知道小型机和存储的价格是非常昂贵的,还是拿我们刚才说压力最大的商品数据库举个例子,当初我们数据库是用了四台高端的小型机,两套高端的存储,成本加起来起码都是三千万以上。那目前我们用的是32台PC server来搭建的一个机群,价格也就是300万~500万的级别。相对来说我们做完这个事情以后,解决了两三千万的硬件成本。

这样来讲,整体的经济效益还是非常不错的。但是其实刚才我们在前期沟通的时候也提到,你要从Oracle转到MySQL,包括从小型机转到PC server,其实里面还是会遇到蛮多问题的,包括它的不稳定性等等,那对于这一方面你有没有什么经验可谈?\
在这一方面,我觉得有两个很重要的因素。第一个是我们需要和我们的开发前端应用架构部门能够紧密的合作,能够让我们的应用融入刚才说的整个机群的单点失效和容灾的问题。都需要我们和架构部门一起来考虑的;第二个比较大的经验就是目前我们在做的,深入研究MySQL的源代码。我们从研究和压力测试的过程中,发现MySQL它本身代码的一些缺陷,可能在高并发大压力下会有很多隐藏的Bug。
在我们最近的这次测试当中,我们还发现了Facebook发布的FlashCache二级缓存的软件,当时我们是测出它一个非常大的Bug:并发压力非常大的情况下,它会导致MySQL成为一个僵尸进程。我们发现了以后,很快反馈给Face book,然后Face book很快就修复了这个问题,这也是我们对使用开源软件带来更大的一个信心,就是开源能够在全球得到更多的支持,大家都能够从原代码层面来解决更深层次的一个问题。

我想这也可能是淘宝技术团队现在那么开放,那么注重开源的动力之一。那如果说想对MySQL的一些核心代码做编译,就需要对人才的储备,包括各方面资源整合的要求还是蛮大的,那你在这方面有没有什么感触?\
说到人才这个话题,08年的时候,淘宝当时准备大规模的往MySQL方向上转,我们内部也是有一些置疑的声音。他们说淘宝DDA团队以前都是在Oracle方面比较专精,在业界来说,淘宝的DDA团队在Oracle方面更加有名气一些。所以我们内部有置疑的声音。就是说你们有MySQL专家吗,MySQL出问题了以后能很快的解决吗?所以从08年到现在,我们慢慢的一路走过来,内部培养了很多的MySQL的人才,包括这几年我们的应届生的成长,再加上我们从外部招到一些专家,我们对MySQL的理解已经越来越深。
刚才说到,我们已经能够给MySQL打Patch,已经能够给MySQL report这些Bug。到现在为止,我觉得MySQL的成长已经达到了非常高的一个程度,我们对MySQL已经越来越有信心,但是未来淘宝的MySQL肯定是要做得越来越大的,淘宝还有很多小型机上面扩展不太容易的系统需要迁移到可扩展的机群上面来,但我们也希望业界能够有更多的MySQL伙伴加入我们,和我们一起来做这么一件非常有意义的事情。

我想能够加入到淘宝的技术团队,去经历那么多有大交易量的技术实践还是非常宝贵的。另外一个问题就是虽然说现在我们用的越来越多的是MySQL,但是现在大家也知道MySQL已经被Oracle收购了,那对像淘宝这样的团队有什么影响呢?\
大家都知道MySQL其实是基于GPL的协议来开源的软件,那淘宝在使用过程中,前期是已经考虑到一些风险。所以我们所有的MySQL都是自己来做编译做优化的,而且我想MySQL被Oracle收购了以后,现在看起来Oracle应该是给MySQL在开发这方面是提供了更大的帮助,像之前在Sun的时候,MySQL的版本相对来说是比较混乱的,包括我们现在在用的5.0和5.1的正式版本,最近还有包括开发方面就还有两个,一个6.0,一个5.4,这些特性会互相交织在一起,让我们选择的时候也有点不知道到底选哪个版本会更好一点。但现在Oracle收购MySQL以后,他把5.4跟6.0这些版本已经合成了一个比较规范的5.5的版本,并且为它制订了很好的一个milestone15:31,未来要怎么发展这个里程碑,M1、M2、M3、M4这种发展方向,而到现在为止这个5.5已经发展到5.6、5.7的版本,而且已经是IC版本了,很快就要GA了,那我想这对于MySQL来说应该是一个好消息。我们可以用到更多更稳定的新特性, 5.5版本里有几个新的特性是我们非常关注的,比如Google已经达到英文15:57这个pach,所以我们觉得对我们未来的这个MySQL这个系统非常有用的一个功能。那我们也等着Oracle的5.5这个版本能够尽快的GA出来。

更多相关教程请访问 MySQL视频教程

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk mendapatkan sampul merah percuma Taobao 2024 Bagaimana untuk mendapatkan sampul merah percuma Taobao 2024 May 09, 2024 pm 03:22 PM

Acara pesanan percuma Taobao 2024 akan diadakan tiga kali sehari Semua orang perlu membuat pesanan dan membayar jumlah barangan yang sepadan pada masa yang sama Jumlah pesanan percuma akan diedarkan dalam bentuk sampul merah dengan jumlah yang sama. Seterusnya, saya akan bawakan kepada anda cara menerima sampul merah tempahan percuma Taobao pada tahun 2024: dapatkannya Bagi pengguna yang percuma, kelayakan sampul merah akan dikeluarkan kepada kad dan pakej kupon, yang dalam keadaan pengaktifan; versi web Taobao pada masa ini tidak mempunyai kad dan pakej kupon, dan hanya memaparkan rekod kemenangan bagi acara pesanan percuma; Cara mendapatkan sampul merah percuma Taobao 20241. Bagi pengguna yang mendapatkan pesanan percuma, kelayakan sampul merah akan diedarkan kepada pakej kad dan kupon, yang sedang dalam keadaan menunggu pengaktifan 2. Versi web Taobao pada masa ini tidak mempunyai pakej kad dan kupon, dan hanya memaparkan rekod kemenangan bagi aktiviti pesanan percuma ;3.

Cara mematikan peringatan sampul merah di Taobao Cara mematikan peringatan sampul merah di Taobao Apr 01, 2024 pm 06:25 PM

Taobao ialah perisian membeli-belah dalam talian yang biasa digunakan untuk ramai rakan Anda biasanya membuat pesanan dan membeli banyak perkara daripada Taobao Ia menyediakan pengguna dengan fungsi peringatan sampul merah, jadi cepat dan semak bahasa Cina laman web. Senarai langkah untuk mematikan peringatan sampul merah pada Taobao 1. Buka pusat peribadi APP Taobao dan pilih butang [Tetapan] untuk memasuki halaman. 2. Cari pilihan [Pemberitahuan Mesej] Di sini anda boleh memilih suis tekan mesej Cari mesej sampul merah dan matikan suis. 3. Atau anda boleh mematikan kebenaran pemberitahuan APP Taobao melalui halaman tetapan telefon mudah alih anda, supaya semua mesej daripada Taobao tidak akan memasuki tekan dan hanya boleh dilihat selepas menghidupkannya. 4. Pengguna boleh menetapkan jenis mesej yang mereka ingin terima, yang menjadikannya lebih mudah untuk digunakan.

Adakah bayaran balik sampul merah percuma 'Taobao' akan dikembalikan? Adakah bayaran balik sampul merah percuma 'Taobao' akan dikembalikan? May 08, 2024 am 08:16 AM

Apabila membeli-belah di Taobao, kami sering menggunakan sampul merah percuma untuk menikmati diskaun. Tetapi jika kami memerlukan bayaran balik, adakah sampul merah percuma ini akan dikembalikan? Mari kita lihat jawapan kepada soalan ini. Adakah sampul merah percuma Taobao akan dikembalikan, bergantung pada situasi, apabila anda menerima sampul merah, sampul merah dalam keadaan pengaktifan belum selesai Sebelum menebus produk, sampul merah yang akan diaktifkan tidak diaktifkan dan tidak boleh digunakan buat sementara waktu. Anda akan menunggu sehingga penerimaan produk yang dibeli disahkan , sampul merah yang perlu diaktifkan boleh digunakan. Sekiranya terdapat masalah dengan produk selepas menggunakan sampul merah percuma dan ia perlu dipulangkan, maka pemulangan sampul merah tersebut perlu dinilai mengikut situasi sebenar: 1. Peraturan Bayaran Balik 11. Jika bayaran balik berlaku selepas sampul merah digunakan, sampul merah akan dikembalikan mengikut kadar. 2. Jika tidak tertunggak, tempoh penggunaan sampul merah yang dipulangkan adalah tempoh penggunaan asal Jika tertunggak, ia akan dikeluarkan dalam tempoh 7 hari.

Cara menggunakan 'Taobao' 510 sampul merah percuma Cara menggunakan 'Taobao' 510 sampul merah percuma May 08, 2024 pm 10:00 PM

Bagaimana untuk menggunakan sampul merah percuma Taobao 510? Taobao baru-baru ini melancarkan acara tempahan percuma untuk meraikan ulang tahunnya yang ke-510 Acara ini membolehkan anda mendapat pesanan sampul merah secara percuma, dan saya percaya ramai rakan yang ingin menyertai acara ini , tetapi mereka tidak Jika anda tahu penggunaan khusus, mari kita lihat pengenalan yang berkaitan hari ini. Arahan untuk menggunakan Paket Merah Tempahan Percuma Ulang Tahun ke-510 Taobao: Pek merah pesanan percuma boleh digunakan selepas semua pesanan yang dibuat untuk soalan tekaan disahkan dan diterima. 1. Pengguna boleh mengeluarkan dan mendapatkan semula sampul merah percuma melalui versi web Taobao Pada masa ini, tiada kad dan pakej kupon, tetapi ia boleh dilihat di [APP Taobao-Sampul Merah Taobao Saya-Hak Saya]. Bagi pengguna yang merebut pesanan percuma, kelayakan sampul merah akan diedarkan kepada kad dan pakej kupon, yang dalam keadaan pengaktifan kad dan pakej kupon sedang berjalan untuk memenangi hadiah.

Alat rundingan selepas jualan beta dalaman Taobao: meningkatkan kecekapan komunikasi dengan pengguna dan mengurangkan kadar bayaran balik dengan berkesan Alat rundingan selepas jualan beta dalaman Taobao: meningkatkan kecekapan komunikasi dengan pengguna dan mengurangkan kadar bayaran balik dengan berkesan Aug 07, 2024 pm 04:35 PM

Laman web ini melaporkan pada 2 Ogos bahawa sambil melonggarkan dasar "bayaran balik sahaja", Taobao juga akan melancarkan alat rundingan selepas jualan untuk semua pedagang Taobao dan Tmall bagi memenuhi keperluan rundingan bebas peniaga dan pengguna dalam senario selepas jualan. 1. Dalam keadaan biasa, apabila pembeli memulakan perkhidmatan selepas jualan, peniaga hanya boleh memilih untuk bersetuju atau menolak. Untuk permintaan selepas jualan pembeli bukan standard (seperti meminta bayaran balik penuh selepas menerima barangan, tidak dapat memberikan baucar yang sah untuk bayaran balik liabiliti pedagang, dsb.), peniaga hanya boleh menganggap penolakan sebagai saluran komunikasi dengan pembeli, membenarkan mereka untuk Untuk isu yang perlu diselesaikan melalui rundingan, penolakan biadap meningkatkan kadar mendapatkan bantuan platform dan risiko kadar liabiliti platform. Menurut laporan, alat ini sedang dalam ujian dalaman untuk sesetengah peniaga, dan secara automatik boleh menyediakan pelbagai penyelesaian untuk dipilih oleh pengguna mengikut keperluan berbeza pengguna dalam senario selepas jualan, seperti menghantar kata-kata keselesaan kepada pengguna.

Cara menggunakan 'Taobao' ulang tahun ke-510 sampul merah percuma Cara menggunakan 'Taobao' ulang tahun ke-510 sampul merah percuma May 08, 2024 am 08:28 AM

Bagaimana cara menggunakan sampul merah percuma Taobao? Sebagai platform beli-belah dalam talian terbesar di China, Taobao bukan sahaja menyediakan pilihan produk yang kaya, tetapi juga kerap melancarkan pelbagai aktiviti keutamaan, antaranya "sampul merah percuma" adalah yang popular. Jadi bagaimana untuk menggunakan sampul merah percuma Taobao? Seterusnya, mari kita ketahui bersama. Bagaimana untuk menggunakan soalan tekaan untuk Pakej Merah Tempahan Percuma Ulang Tahun ke-510 Taobao Selepas semua pesanan disahkan dan diterima, pek merah pesanan percuma boleh digunakan. 1. Pengeluaran dan pemulihan sampul merah percuma untuk pengguna yang telah mendapatkan pesanan percuma Kelayakan sampul merah akan diedarkan kepada pakej kad dan kupon, yang sedang menunggu untuk pengaktifan versi halaman Taobao pada masa ini tidak mempunyai kad dan pakej kupon, dan hanya memaparkan rekod kemenangan bagi aktiviti pesanan percuma; Apabila status transaksi pesanan pengguna disahkan resit (pembayaran sekali sahaja melibatkan

Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Jun 04, 2024 pm 01:42 PM

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Bagaimanakah Hibernate melaksanakan pemetaan polimorfik? Bagaimanakah Hibernate melaksanakan pemetaan polimorfik? Apr 17, 2024 pm 12:09 PM

Pemetaan polimorfik hibernate boleh memetakan kelas yang diwarisi ke pangkalan data dan menyediakan jenis pemetaan berikut: subkelas bercantum: Cipta jadual berasingan untuk subkelas, termasuk semua lajur kelas induk. table-per-class: Cipta jadual berasingan untuk subkelas, yang mengandungi hanya lajur khusus subkelas. union-subclass: serupa dengan joined-subclass, tetapi jadual kelas induk menggabungkan semua lajur subclass.

See all articles