`
isiqi
  • 浏览: 16078707 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

YunTable开发日记(1)- 计划

阅读更多

因为书的初稿已经写好,所以现在这个阶段主要以研发产品原型为主,而且将关注点主要集中于下一代云计算系统。可惜的是,我之前主要使用的开发语言是Java,而对常用于构建云计算系统中的C语言不是很熟悉,同时由于C的灵活性和其牵涉到很多底层技术,使得这个坎非常不好过,但是既然已经走到了这步,不论是再艰难的东西,也要坚持下去。那么什么方式能最有效地提升编程能力呢?对于有一定编程的经验的人而言,答案非常简单,那就是“做项目”,所以为了提升我的C语言能力,所以我决定在七个开发日的时间内完成一个最简单的BigTable的原型,名为“YunTable”,接下来是这个项目的简要介绍和开发计划。

YunTable

简单而言,YunTable的第一步计划是成为开源版的BigTable,虽然Clone它整个功能需要消耗大量的资源,但是如果要实现它最简单的功能集合,还是可行的,那么在深入YunTable的架构之前,先稍微总结一下BigTable。

BigTable

就像我在《探索Google App Engine背后的奥秘》系列中所说的那样,BigTable其实没有我们想象的那么复杂,其实就是在Array(数组)的基础上加上Sorted,Multi-Dimensional和Sharded等特性,所以在开始的时候,我们也可以先开发一个Array系统,之后在这个系统的基础上不断地添加特性。

YunTable的架构

由于我对分布式数据库这块并不是特别熟悉,如果在项目开始对YunTable的架构着墨过多的话,只会导致误入歧途的后果,所以我只画了最简单的Blueprint。

Yun Table Arch 图1. YunTable v0.01的架构图

首先是横向的四层,主要负责对请求的处理和对数据的存储:

    1. 接口层:用于接受关于YunTable的网络请求。
    2. 编译层:主要编译上层接收到的请求,并将其转译为相应的动作。
    3. 数据模型层:用于在内存中维护YunTable的数据模型,并执行那么在上层被转译的动作。
    4. 数据存储层:主要对上层的数据进行持久化,而且是基于列式来存储。

接着是纵向的两层,主要是为横向的四层服务的:

    1. 管理层:主要用于YunTable进程的起停和配置。
    2. 分布式层:主要用于协调多个YunTable节点之间的管理和同步工作,而且由于此层牵涉的东西过多,所以在这一轮开发过程中,不会涉及。

开发计划

关于开发计划,其原则是“循序渐进,先难后易”,循序渐进是为了在开发工作中能稳定和不断地向目标逼近,而先难后易则为了先锤炼一下自己的C语言功底。接下来是之后七个开发日的开发计划:

    1. 6-6周日:主要完成接口层,编译层和研究BigTable的数据模型。
    2. 6-7周一:主要完成管理层和研究HBase的实现。
    3. 6-8周二和6-9周三:实现数据模型层。
    4. 6-12周六和6-13周日:完成数据存储层。
    5. 6-14周一:测试并上传v0.1版代码至Google Code上。

由于6-10周四和6-11周五将去北京参加2010 IBM云计算高峰论坛,所以那两天的工作主要会以报道大会为主。

最后,希望大家能给我提一些建议,我在这里先谢谢了,还有,今后几天我会依据项目的进度来写项目的开发日记,希望大家能喜欢,并多多关注。

参考资料:

    1. BigTable@wikipedia
分享到:
评论

相关推荐

    云计算机YunTable 0.9 Source Code

    云计算机YunTable 0.9源代码,云计算机YunTable 0.9 Source Code

    云计算核心技术剖析

    《云计算核心技术剖析》,本书首先介绍了云计算理论方面的知识,接着剖析了多个顶尖...并以 YunTable这个云时代的BigTable为例,来给大家演示如何手动编写和设计一个分布式数据库,最后对云计算的未来发展做了展望。

    云计算核心技术剖析完整清晰版.PDF

    第三部分为实践篇,将选择云的核心模块之一——分布式数据库作为实践的方向,并以YunTable这个云时代的BigTable为例,给大家演示如何手动编写和设计一个分布式数据库;最后一部分为展望篇,预测了云计算和整个科技...

    大数据处理的三大流程以及大数据的价值.doc

    使用的产品:InfoBright,Hadoop(Pig和Hive),YunTable, SAP Hana和OracleExadata,除Hadoop以做离线分析为主之外,其他产品可做实时分析。 挖掘数据 定义:基于前面的查询数据进行数据挖掘,来满足高级别 的...

    基于springboot开发的前后端分离的简易进销存后台管理系统.zip

    基于springboot的java毕业&课程设计

    基于springboot-mqtt的温度、湿度、六氟化硫浓度实时监控系统.zip

    基于springboot的java毕业&课程设计

    会计信息化对华强公司内部审计的影响研究.docx

    会计信息化对华强公司内部审计的影响研究.docx

    修改谷歌提供的样例量子卷积神经网络模型,基于KDD99数据集进行训练,实现了网络攻击分类检测。.zip

    卷积神经网络(Convolutional Neural Networks, CNNs 或 ConvNets)是一类深度神经网络,特别擅长处理图像相关的机器学习和深度学习任务。它们的名称来源于网络中使用了一种叫做卷积的数学运算。以下是卷积神经网络的一些关键组件和特性: 卷积层(Convolutional Layer): 卷积层是CNN的核心组件。它们通过一组可学习的滤波器(或称为卷积核、卷积器)在输入图像(或上一层的输出特征图)上滑动来工作。 滤波器和图像之间的卷积操作生成输出特征图,该特征图反映了滤波器所捕捉的局部图像特性(如边缘、角点等)。 通过使用多个滤波器,卷积层可以提取输入图像中的多种特征。 激活函数(Activation Function): 在卷积操作之后,通常会应用一个激活函数(如ReLU、Sigmoid或tanh)来增加网络的非线性。 池化层(Pooling Layer): 池化层通常位于卷积层之后,用于降低特征图的维度(空间尺寸),减少计算量和参数数量,同时保持特征的空间层次结构。 常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。 全连接层(Fully Connected Layer): 在CNN的末端,通常会有几层全连接层(也称为密集层或线性层)。这些层中的每个神经元都与前一层的所有神经元连接。 全连接层通常用于对提取的特征进行分类或回归。 训练过程: CNN的训练过程与其他深度学习模型类似,通过反向传播算法和梯度下降(或其变种)来优化网络参数(如滤波器权重和偏置)。 训练数据通常被分为多个批次(mini-batches),并在每个批次上迭代更新网络参数。 应用: CNN在计算机视觉领域有着广泛的应用,包括图像分类、目标检测、图像分割、人脸识别等。 它们也已被扩展到处理其他类型的数据,如文本(通过卷积一维序列)和音频(通过卷积时间序列)。 随着深度学习技术的发展,卷积神经网络的结构和设计也在不断演变,出现了许多新的变体和改进,如残差网络(ResNet)、深度卷积生成对抗网络(DCGAN)等。

    用泽尼克多项式拟合表面的功能matlab代码.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    毕业设计基于java+Springboot+协同过滤的新闻推荐系统源码+全部资料(高分项目).zip

    毕业设计基于java+Springboot+协同过滤的新闻推荐系统源码+全部资料(高分项目本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。毕业设计基于java+Springboot+协同过滤的新闻推荐系统源码+全部资料(高分项目毕业设计基于java+Springboot+协同过滤的新闻推荐系统源码+全部资料(高分项目毕业设计基于java+Springboot+协同过滤的新闻推荐系统源码+全部资

    基于vue可视化前段开发的拖拽编辑,页面生成工具.zip

    基于vue可视化前段开发的拖拽编辑,页面生成工具.zip

    HLC直播视频流播放器

    HLC直播视频播放器示例代码,代码2021年的时候因工作需要实现,参考网上资源采用了jquery等框架。

    基于卷积循环神经网络的数字识别.zip

    基于卷积循环神经网络的数字识别

    课设毕设基于SpringBoot+Vue的家具销售电商平台 LW+PPT+源码可运行.zip

    课设毕设基于SpringBoot+Vue的家具销售电商平台 LW+PPT+源码可运行.zip

    2007开关稳压电源(E题).doc

    包含作品的设计论文doc文档,可直接修改,适合于电赛备赛、课程设计、毕设参考等。 摘 要 该电源以单端反激式DC-DC变换器为核心。市电通过自耦式调压器,隔离变压器,整流滤波后产生直流电压,经DC-DC变换得到题目所需输出电压,实现了开关稳压电源的设计。DC-DC变换器采用脉宽调制器(PWM)UC3842,通过调节占空因数使得输出电压UO在30V~36V范围内可调;微控制器与键盘显示构成了控制显示模块,能对输出电压进行键盘设定和步进调整,并显示输出电压、电流的测量和数字显示功能,形成了良好的人机界面。 关键词:DC-DC变换器,脉宽调制器(PWM)

    520节日画图代码.zip

    520是每年的5月20日,因数字“520”与“我爱你”发音相似而被许多年轻人用作表达爱意的节日。这个节日起源于中国互联网文化,逐渐传递到其他国家和地区。在这一天,情侣们通常会互送礼物、发表情、或者举行浪漫的活动来庆祝爱情。快来领取专属于程序员的浪漫吧!表白的套路很多,但都少不了送花送礼物,作为一个程序员,搞不懂现在流行的泡泡机、小猪、重力感应车等玩具,也不想去让朋友们去送钱炫耀,毕竟真情才重要,钱就物质了。我能给各位单身粉丝们做的可能就只有分享几个表白代码了,在电脑上敲上几行代码,让她在郁闷的周一得到一个大大的惊喜,很简单,一看就会,如果现在用不到也不要紧,先收藏起来,反正这样的节日很多,以后用的时候能找到。

    带你学AI基于PP-OCR和ErnieBot的字幕提取和智能视频问答

    本次分享将带领大家从 0 到 1 完成一个基于 OCR 和 LLM 的视频字幕提取和智能视频问答项目,通过 OCR 实现视频字幕提取,采用 ErnieBot 完成对视频字幕内容的理解,并回答相关问题,最后采用 Gradio 搭建应用。本项目旨在帮助初学者快速搭建入门级 AI 应用,并分享开发过程中遇到的一些坑,希望对感兴趣的同学提供一点帮助。 参考https://blog.csdn.net/u010522887/article/details/139025542,跟随笔者共同走完一个完整的视频问答项目,从基础的动手跑通 CRNN 文本识别任务,再到应用开发和部署,旨在帮助初学者快速入门 OCR 相关技术并搭建一个简单的应用。 资源包包括前端文档中提到的源码和示例视频。 本系列的后续文章将沿袭这一思路,继续分享更多采用 Paddle 深度学习框架服务更多产业应用的案例。如果对你有帮助,欢迎 **关注 收藏** 支持

    毕设设计-学生宿舍管理系统 基于SpringBoot实现,界面简洁,功能完善

    毕设设计-学生宿舍管理系统 基于SpringBoot实现,界面简洁,功能完善 主要功能 ● 定位打卡、宿舍智能分配、学生信息管理、资讯管理(权限设计)等 使用 ● mysql、git、springboot ● 数据库初始化sql存储在doc文件夹下面 设计一个基于Spring Boot的学生宿舍管理系统,你需要确保系统既满足实用性,又保证界面简洁、功能完善。以下是一个基本的设计方案,包括系统的功能模块、技术栈选择和界面设计要点。 ### 功能模块 1. **用户认证模块**: - 登录/登出功能。 - 用户权限管理(如学生、宿舍管理员、系统管理员)。 2. **学生信息管理**: - 学生基本信息录入、查询、修改和删除。 - 宿舍分配与调换。 3. **宿舍楼管理**: - 宿舍楼信息维护。 - 宿舍房间信息管理。 4. **维修报修管理**: - 学生报修申请。 - 维修状态跟踪。 5. **来访登记管理**: - 来访人员登记。 - 访问记录查询。 6. **公告与通知发布**: - 发布宿舍相关公告和通知。

    一个前后端分离的仿知乎问答论坛.zip

    基于springboot的java毕业&课程设计

Global site tag (gtag.js) - Google Analytics