前记几年前在读Google的BigTable论文的时候,当时并没有理解论文里面表达的思想,因而囫囵吞枣,并没有注意到SSTable的概念。再后来开始关注HBase的设计和源码后,开始对BigTable传递的思想慢慢的清晰起来,但是因为事情太多,没有安排出时间重读BigTable的论文。在项目里,我因为自己在学HBase,开始主推HBase,而另一个同事则因为对Cassandra比较感冒,因而他...
IntroductionThe growth of internet connected devices has led to a vast amount of easily accessible time series data. Increasingly, companies are interested in mining this data to derive useful insig...
为了确定哪个路径才是最有效的以及防止多条链的产生,以太坊使用了一个叫做“GHOST协议(GHOST protocol.)”的数学机制。GHOST = Greedy Heaviest Observed Subtree在比特币中的出块时间是10分钟,说明难度也大;以太坊中将出块时间提升到了15秒,差别很大,因此也会导致一个问题,就是在这15秒内,并不是所有的节点都收到了某一个区块是新区块的信息...
2014年4月8日起,美国微软公司停止了对Windows XP SP3操作系统提供服务支持,这引起了社会和广大用户的广泛关注和对信息安全的担忧。在这种背景下,国家出于计算机安全考虑,加大了针对操作系统开发力度,各软件企业纷纷开发自主操作系统。国产操作系统多以Linux为基础二次开发,今天我们为大家盘点一下二零一八年值得用户使用的国产Linux桌面操作系统。1.深度操作系统...
在adb shell中,添加android系统的环境变量方法:在adb shell进入到adb shell中用export可以查看到安卓中的环境变量,但是由于移植服务,需要系统中存在TMPDIR这一环境变量,所以网上搜索;sunfch@sunfc-BJ-FA-PC-1037:~/source/T8$ adb shellroot@scx35_sp7731gea_hdr:/ # cd sys...
介绍ncurses(new curses)是一套编程库,它提供了一系列的函数以便使用者调用它们去生成基于文本的用户界面。ncurses名字中的n意味着“new”,因为它是curses的自由软件版本。由于AT&T“臭名昭著”的版权政策,人们不得不在后来用ncurses去代替它。ncurses是GNU计划的一部分,但它却是少数几个不使用GNU GPL或LGPL授权的GNU软件之一。...
区分基础概念:JNI 与 NDKJNI(Java Native Interface)是一种 Java 语言特性用于 Java 程序与 C、C++ 库间的互相调用。NDK(Native Development Kit)是 Google 提供的使用 C/C++ 编写 Android 程序的开发工具包它使用 JNI 实现 Java 程序调用 C/C++ 本地代码,允许 C/C++ 本地代码访...
Android APP embed v8的错误汇总Android APP embed v8的过程(请参见编译和嵌入v8至Android APP),非常艰难,会出现各种各样的错误,此文对此进行总结,便于问题的记录和后续查询和分析。遇到的问题大致分为2类:在Ubuntu 16.04系统下,编译v8的时候,环境的配置、各种参数的设置问题,这最终会影响到生成的库(分static library和s...
背景最近公司的移动引擎(自研,用于公司的游戏APP开发,引擎核心采用C++开发,而游戏的UI和业务逻辑采用Lua语言开发)需要支持Javascript和Lua互相调用(支持Android和IOS两大平台)。刚开始的时候,没有什么头绪。由于之前实现过Lua和Android/IOS原生语言(API)即Java/Object-C的互调,其中Android平台交互原理大致如下图(本文主要基于Andro...
zk-SNARK概述zk-SNARK,就是一个为了将实际的零知识证明类问题转为计算机程序问题的理论。全称“zero knowledge Succinct Non-interactive ARgument of Knowledge” 可以拆分为下面几点去理解:zero knowledge,零知识,即不透露任何有用的信息。 succinct,简洁的,主要是指计算机程序在验证的过程不涉及大量...
安卓支持三类处理器(CPU):ARM、Intel和MIPS。ARM无疑被使用得最为广泛。Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小。MIPS在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前Android的采用率在三者中最低。总之,ARM现在是赢家而Intel是ARM的最强对手。那么ARM处理器和Intel处理器到底有何区别?为什么ARM如此受欢...
二叉查找树(英语:Binary Search Tree),也称为二叉搜索树、有序二叉树(ordered binary tree)或排序二叉树(sorted binary tree),是指一棵空树或者具有下列性质的二叉树:若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 任意节点的左、右子树也分别为二叉...
题目:如何测试一辆自行车参考答案:开放性问题,如果联系到测试角度上看的话,可以这么作答:骑车试一试,看有没有问题,对应测试能不能跑通 看看车的核心部件,例如车闸,车把等,对应软件的核心功能 看看车是否安全,配锁质量如何,对应软件是否有安全问题...
题目:请评估一下程序的执行结果?public class SynchronousQueueQuiz { public static void main(String[] args) throws Exception { BlockingQueue<Integer> queue = new SynchronousQueue<>()...
题目:假如给你一个新产品,你将从哪些方面来保障它的质量?参考答案:可以从代码开发、测试保障、线上质量三个方面来保障。在代码开发阶段,有单元测试、代码Review、静态代码扫描等;测试保障阶段,有功能测试、性能测试、高可用测试、稳定性测试、兼容性测试等;在线上质量方面,有灰度发布、紧急回滚、故障演练、线上监控和巡检等。...
题目:给定一个整数数组和一个整数,返回两个数组的索引,这两个索引指向的数字的加和等于指定的整数。需要最优的算法,分析算法的空间和时间复杂度参考答案:public int[] twoSum(int[] nums, int target) { if(nums==null || nums.length<2) return new int[]{0,0}; ...
题目:如果让你来设计一个支持数据库、NOSQL 和大数据之间数据实时流动的数据流及处理的系统,你会考虑哪些问题?如何设计?参考答案:开放性问题,无标准答案。...
题目:如果让你设计一个通用的、支持各种数据库秒级备份和恢复的系统,你会如何设计?参考答案:开放性问题,无标准答案。
题目:给定一个链表,删除链表的倒数第 N 个节点,并且返回链表的头结点。◼ 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 要求: 只允许对链表进行一次遍历。参考答案:我们可以使用两个指针而不是一个指针。第一个指针从列表的开头...
题目:最大频率栈。实现 FreqStack,模拟类似栈的数据结构的操作的一个类。FreqStack 有两个函数: push(int x),将整数 x 推入栈中。pop(),它移除并返回栈中出现最频繁的元素。如果最频繁的元素不只一个,则移除并返回最接近栈顶的元素。 ◼ 示例: push [5,7,5,7,4,5] pop() -> 返回 5,因为 5 是出现频率最高的。 栈变成 [5,7,...