FamilySearch选择了基于Apache Cassandra的DataStax Enterprise (DSE)来加速用户增长,并通过更快的反应时间、高可用性以及零数据库宕机来提供强大的线上用户体验。
 
自从采用了DSE,FamilySearch可以专注于构建和提高他们的应用程序,从而致力于联结不同代际的家庭成员的使命。

“在家族树(Family Tree)这个App火了之后,我们收到了来自顾客的巨大反响。不过,为了提供出色的客户体验,我们需要一个伸缩性更好的数据库来防止宕机的发生,并且这个数据库应该还能够让我们向我们的用户提供更多的特性和功能。”
——FamilySearch软件开发经理Michael Nelson
 
 
一分钟案例速读
 
行业
系谱学
 
机会
  • 难以负荷超过50万用户每小时产生的超过6000万次的事务
  • 未来三年网站使用量将有10-100倍的增长
解决方案
  • 基于Apache Cassandra的DataStax Enterprise
成果
  • 用户可以享受到更快的反应速度、高可用性以及零数据库宕机
  • 高峰使用期每小时例行处理1.25亿笔交易
  • 能够将像是资料提示(Record Hints)一类的新功能推向市场

 
01 关于FamilySearch
 
FamilySearch是世界上最大的系谱学组织。通过利用强大且用户友好的在线搜索功能访问历史资料,FamilySearch帮助人们揭示与自己及家族有关的新发现。
 
数百万人使用FamilySearch的资料、资源和服务来更多地了解自己的家族史。为了帮助人们实现这些,100多年来,FamilySearch及其前身一直在全球范围内积极收集并保存和共享家谱资料。
 
通过FamilySearch的网站和分布在129个国家的4,921个家族史中心(包括位于美国犹他州盐湖城的主家族史博物馆),顾客们可以免费获取FamilySearch的服务和资源。

 
02 家族树(Family Tree)使得揭示新发现变得前所未有的容易
 
家族树这个App让用户能够与他人合作编辑和删除错误的数据,从而为有共同祖先的其他人保留新的发现。家族树提供了直观而丰富的客户体验,包括了能让用户更容易地发现并将其他人的资料联结到自己的家族树中的功能。
 
FamilySearch还积极地代用户们寻找相关的资料,帮助他们揭示新的发现。这些相关的资料会通过一个叫资料提示(Record Hints)的功能展示给用户。
 
仰赖于FamilySearch在全球范围内为资料保存所做的努力,每周都会有海量的历史资料添加到网站上。当用户在这些资料中搜寻的时候,资料提示功能的提示会为用户提供更多的信息。

 
03 日益流行的App驱动了用户的大幅增长
 
家族树这个App非常之流行,超过50万用户产生了大量的需求。在过去一年间,FamilySearch因他们之前的数据库技术而感到纠结,因为该技术难以负荷他们的用户对于使用体验的预期。
 
随着家族树App越来越流行,FamilySearch意识到他们之前已经在成本效率允许的情况下尽可能地垂直扩展了他们的数据库,但是他们仍然最多只能负荷家族树App每小时产生6000万次事务——这一技术瓶颈阻碍了未来的用户增长。

 
04 DataStax Enterprise助力用户增长和出色的用户体验
 
FamilySearch预计在未来的三年中,网站使用量将会有10-100倍的增长。他们希望能够为这个快速增长做好准备。
 
FamilySearch曾经深入地且一对一地对比了几个不同的关系型和NoSQL数据库,其中包括了开源版本的Cassandra和DSE。为了支持日益增长的用户需求,FamilySearch最终因伸缩性和高性能选择了DataStax Enterprise (DSE)。
 
DSE的无主架构提供了让人100%满意的可用性和零宕机时间——即使是在流量激增或集群维护时依然如此。作为一个分布式的、响应式的智慧型数据库,FamilySearch的家庭树App选择将DSE作为它建构和运行的基础。
 
FamilySearch在每周日的流量通常是最大的,在他们的数据库迁移之前,他们的数据库每周都会接近其处理能力的极限。幸运的是FamilySearch及时地做出了改变。
 
在使用DSE不到两周的时候,他们的数据库流量达到了之前系统的处理能力的极限。但是这时他们已经能够无缝地持续提供他们的用户所需的客户体验。
 
现在,FamilySearch在高峰使用期每小时例行处理1.25亿笔交易,并且还有着大量的未来增长的空间。

 
05 主要成果
 
选择DataStax Enterprise,FamilySearch通往未来增长的道路变得坚实可靠——客户们会体验到更快地响应时间、高可用性以及零数据库宕机时间。
 
不仅如此,DSE还帮助FamilySearch向市场推出了一些新功能。比如像是可以帮用户揭示新发现的新应用——资料提示(Record Hints),FamilySearch之前的基础设施是不可能负荷的。
 
自从采用了DSE,FamilySearch可以专注于构建和提高他们的应用程序,从而致力于联结不同代际的家庭成员的使命。

“FamilySearch帮助我们的客户寻找他们的祖先,并为他们的家族历史做出贡献。DataStax Enterprise提供的可伸缩的数据平台,正是我们扩大产品范围和持续为客户提供出色的体验所需要的。”
——FamilySearch软件开发经理Michael Nelson
 
 

行业动态 | 利用Cassandra数据库揭开家族祖先的秘密的更多相关文章

  1. 什么是Cassandra数据库

    在本文中,我们将介绍Cassandra名字的含义.Cassandra的发展简史.Cassandra这项技术的特点及优势,以及对于这项技术的未来展望. 本文将用浅显易懂的方式,帮助您将对Cassandr ...

  2. Cassandra 数据库安装部署

    安装版本 cassandra-3.11.4 系统版本 more /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 准备工作 Cassan ...

  3. 在Apache Cassandra数据库软件中报告高严重性RCE安全漏洞

    研究人员披露了ApacheCassandra一个现已修补的高严重性安全漏洞的细节,如果这个漏洞得不到解决,可能会被滥用来获取受影响安装的远程代码执行(RCE). DevOps公司JFrog的安全研究员 ...

  4. 【原创】Capture CIS利用Access数据库建立封装库说明

    1.在服务器端建立新空间,方便封装库以及数据库的归档存放 服务器路径:\\192.168.1.234\Share\STG_LIB,文件夹内容如下,其中Datesheet存放物料数据手册,Pcb_Lib ...

  5. Android下利用SQLite数据库实现增删改查

    1: 首先介绍如何利用adb查看数据库 1: adb shell 2: cd /data/data/包名/databases 3:  sqlite3 数据库 4   接下来就可以进行数据库的sql语法 ...

  6. 安卓项目-利用Sqlite数据库,开发新闻发布系统

    本教程致力于程序员可以快速的学习安卓移动端手机开发. 适合于已经习得一种编程语言的同仁. 更多志同道合,想要学习更多编程技术的大神们. 小弟不才,麻烦关注一下我的今日头条号-做全栈攻城狮. 本文章是基 ...

  7. 【Loadrunner】LR参数化:利用mysql数据库里面的数据进行参数化

    很多同学都在自学loadrunner去做压力测试,但是如果要利用LR做压力测试,或者是其他工具,其中有一个环节是我们避开不了的,比如说:参数化 今天华华就给大家简要的介绍下,如果你要做的参数化的数据来 ...

  8. 利用circpedia 数据库探究circRNA的可变剪切

    circpedia 中收录了利用circexplorer 软件识别到的circRNA, 覆盖了人,小鼠,鸟类,昆虫多个物种的多种细胞系的数据 官网链接如下: http://www.picb.ac.cn ...

  9. Cassandra数据库Java訪问

    针对的时Cassandra 2.0 数据库 Java本地client訪问Cassandra,首先建立Javaproject,使用Maven进行管理. 引入依赖: <dependency> ...

随机推荐

  1. SP7022 CPATTERN - Cow Patterns

    本篇题解用于作者本人加深理解,也欢迎大家阅读. 这道题的正解是\(KMP\)加上树状数组,记录每一个位置前几个位置比其小的.相等的.大的数的数量,比较方式便是比较相应的数量,若相等,则匹配成功. 但是 ...

  2. 树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110940484长期持续带来更多项目与技术分享, ...

  3. MySQL技术内幕InnoDB存储引擎(七)——事务

    什么是数据库的事务? 事务是访问并更新数据库中各种数据的一个程序执行单元.事务也是数据库区别于文件系统的一个重要特性. 事务需要满足的特性 1.原子性 原子性就是指数据库中的一个完整的事务是不可分割的 ...

  4. STL—— 容器(vector)的各种功能方法

    1. 获取容器的元素个数 size() 使用 vectorName.size() 可以输出这个容器中类型的个数,如下代码: 1 #include <iostream> 2 #include ...

  5. 关于Switch Case的优化

    switch case虽然是代替if else而出现的,并不好维护,有时候使用switch还不如使用if else. 但没有别的东西能代替switch case了吗?答案当然是否定的,现在就有两种方式 ...

  6. bbed工具安装

    1.上传bbedus.msb  bbedus.msg  sbbdpt.o  ssbbded.o四个文件到数据库服务器 [oracle@edgzrip1-PROD1 bbed_10g_src_x32]$ ...

  7. 为了Java微信支付V3开发包,我找出了微信支付文档至少六个错误

    1. 前言 最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来.前几日分享了自己写的一个微信支付V3的开发包payment-spring-boot-starter,就忙里偷闲完善 ...

  8. AWT05-对话框

    1.Dialog Dialog组件是Window的子类,是容器类,是特殊组件. Dialog是可以独立存在的顶级窗口,使用上和普通窗口几乎没有区别,但应注意以下两点: 1.对话框通常依赖于其他窗口,也 ...

  9. 精尽Spring MVC源码分析 - HandlerMapping 组件(一)之 AbstractHandlerMapping

    该系列文档是本人在学习 Spring MVC 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释 Spring MVC 源码分析 GitHub 地址 进行阅读 Spring 版本:5.2. ...

  10. MySQL全面瓦解14:事务

    关于事务 我们在数据库中需要执行一个系列的操作的时候,要保证这个系列执行的连续性和完整性,要么整个系列的执行都成功,要么就全部失败(只要有一个步骤失败,其他均回滚到之前的状态), 保证不会存在一部分成 ...