数据库扩展立方在电子商务网站平台的实际应用
AllScale公司的数据架构师以为数据架构将在三个维度上受到限制,即生意业务量的增加、第23章所做的扩大运用的决议计划以及客户和产物的增加。是以,他们须要依附AKF数据库扩大立方的所有坐标轴。
架构师团队决议划分站点的功效,以便顺应运用庞杂度的增加。也许你还记得,像阅读、搜刮、产物目次上传、存货治理等无需知道客户特定的信息就能履行的动作,都可以成为站点上的一个功效分支, 具有本身的代码库。决议把这些功效放入泳道,每个泳道都须要具有它那部门功效所需的数据。架构师团队熟悉到,要如许做,就要修正数据架构的情势,有些数据元素要被复制到全部架构中。要确保对于任何数据元素都有且只有一个节点,用于寄存比来最新的数据副本。在幻想状态下,架构师团队把数据的更新放在一个泳道中,同时在客户生意业务之外,采取某种情势的异步更新办法,来更新架构中的其他部门中的数据。所有的客户信息都要被划分到N个豆荚中,个中N是个可设置装备摆设的参数。每个豆荚中会驻留年夜约1/N的客户。这是依据客户进行的Z轴划分。在每个Z轴划分中,架构师团队预备对代码和履行代码所需的数据进行Y轴划分。登录/登出是一个功效,付出是一个功效,账户状况和汇老是一个功效,支撑这些功效所需的数据也会随运用作出响应的划分。每个Y轴划分的泳道只需懂得1/N的客户,是以,须要缓存的数据(如登录信息)就年夜年夜削减了,缓存速度就更快了。
最后,架构师团队在所有划分中都运用了X轴划分,以便扩大这些划分中的生意业务量。
搜刮这个功效引起了AlScale的数据和软件架构师的担忧,所以最终他们决议对这个范畴赐与更多的存眷。他们盘算应用扩大立方的X轴、Y轴和Z轴来知足搜素的需求,让最终用户异常快地就能获得搜刮成果。把搜刮功效零丁划分出来,就是Y轴划分了,所以我们接下来要存眷的是X轴和Z轴划分。对于下面的评论辩论。
架构师团队决议采取聚合器来加快处置搜刮要求。这些聚合器要负责处置生意业务量的增加,每个聚合器都是其他聚合器的克隆品,这就创立了一个X轴实现。最终要求被发送给N个体系,每个体系中寄存了1/N的要发卖的产物,N是运用到产物目次上的模数。这种N项划分就是一种依据产物编号进行的Z轴划分。此外,每个Z轴划分中还有M个克隆的数据集,如许可以应对生意业务量的增加。
一个搜刮要求可以经由负 载平衡器被分派到任何一个聚合器上,然后这个聚合器会划分出N个零丁的要求,每一个对应于N个产物数据库层中的一个。这些产物数据库中的每一个都有1/N(产物编号对N取模)的数据。接下来,每个数据层中都有M个克隆品,它们是这1/N数据的副本,对这个数据层的要求会被负载平衡地分派到这M个副本中的一个上。跟着每个数据层返回一个成果,聚合器会把这些数据元素编纂成一个完全的列表,完成后就把这个分列好的列表发送给要求者。这N个Z轴划分返回成果都异常快,因为数据可以驻留在内存中,并且每个数据库只查找1/N的数据。因为有多个聚合器,并且N个Z轴划分中都有M个X轴副本,所以这个体系是完整冗余的。只要增长聚合器和网站制造数据的X轴副本,这个体系就能轻松地扩大生意业务量。假如需要,当聚合器一次须要同太多Z轴划分交互时,还可以增长聚合器的聚合器。