`
bofang
  • 浏览: 126514 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论
文章列表
      page是数据库在disk层面的最小存储单元。记录被组织在page中,数据库对磁盘的读取,也是以page为单位。因此,研究page的结构是研究数据库实现的基础。我们可以看一下derbydb的page结构。   Derby的page由StoredPage封装。该类维护了page的字节数组(rawDataIn/rawDataOut),并提供了基于DataInput/DataOutput的接口用于访问磁盘。   page结构:       +-----------+-------------+----------+-------------------+-------- ...
  原理   Bloom filter是一种hash算法,可以认为该算法的目的是高效地判断某个元素是否在一个特定集合中。   该算法涉及到三种数据类型:       -- 数据集合S     -- 一个数组,该数组的元素类型是bit,记为A     -- k个hash函数,每个Hash函数记为Hk   初始情况下,bit数组所有元素为0。   插入一个元素时,将每个hash函数Hk应用到到该元素,产生k个值。可以用取模的方法将这k个值映射到数组A的k个位置,并将这k个位置上的值置为1。   例如,我们有三个hash函数,数组的长度是10。插入一个元素时,数组的状 ...
    问题的现象   之前写了一个SharedSocketStream的组件,该组件的目的是用同一个socket负责处理消息发送,防止过多的socket打开和关闭。SharedSocketStream内部会持有一个zmqstream.ZMQStream实例,所有的消息都由ZMQStream发送。   测试发现,当有大量的消息发送时,会出现消息突然发送不出去的现象。对于该问题,排查了数日,昨天算是找到了最根本的原因。总结地说是多线程并发引起数据不一致。   问题的原因   ZMQStream内部会持有一个ZMQSocket,IOLoop会监听该ZMQSocket的事件(re ...
    最近的一次工作中,需要向excel中插入图片。我们的要求是图片填满固定的区域,虽然图片有可能会拉伸或变形,但是,这么做在目前看来也是工作最好的了。下面是插入图片的代码:   File image = null; byte[] bytes = IOUtils.toByteArray(new FileInputStream(image)); int pictureIdx = template.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG); ...
Function RDB_Create_PDF(Myvar As Object, FixedFilePathName As String, _ OverwriteIfFileExist As Boolean, OpenPDFAfterPublish As Boolean) As String Dim FileFormatstr As String Dim Fname As Variant 'Test to see if the Microsoft Create/Send add-in is installed. ...
      什么是异常 =========================   个人认为异常是语言发明者提供给开发者的一种表达工具。开发者 在设计接口时,可以使用异常与外界(接口的调用方)进行交流。     为什么是异常 =========================   在早期,语言没有提供异常机制时,方法内部的“异常”情况通常 会用特殊返回值的方式来告知方法的调用者。对于这种特殊的返回 值,调用方需要写额外的代码来处理,这在一定程度上保证了程序 的健壮性,因为我们将最坏的情况都考虑并且处理掉了(是否优雅 地处理还要因人而异),但是也很容易使代码看起来臃肿 ...
  在一次分享中提到了Redis的长短链接的问题,引发了对redis-py的连接池机制的讨论。     通过源码发现,每创建一个Redis实例都会构造出一个ConnectionPool,每一次访问redis都会从这个连接池得到一个连接,访问完成之后,会把该连接放回连接池,下面是发送命令访问redis的execute_command方法实现:     352 #### COMMAND EXECUTION AND PROTOCOL PARSING #### 353 def execute_command(self, *args, **options): ...
      项目中需要在linux环境中使用python连接sqlserver.一开始会报错:   pymssql.OperationalError: DB-Lib error message 20017, severity 9: Unexpected EOF from the server Net-Lib error during Operation now in progress Error 115 - Operation now in progressDB-Lib error message 20002, severity 9: Adaptive Server connec ...
      在《High Performence Server Architecture》(http://pl.atyp.us/content/tech/servers.html)中,作者提出了自己的观点关于如何编写高性能的服务器程序。作者感兴趣的地方不在于使用多线程之类的并行技术,作者认为处理请求的基础设施决 ...
完整的规范文档在这里:http://google-styleguide.googlecode.com/svn/trunk/pyguide.html。 这里总结那些个人认为比较重要或者对避免采坑注意事项。 Imports 仅仅使用import导入包和模块。 import x,导入包和模块 from x import y,导入 ...
Python在2.6引入了多进程的机制,并提供了丰富的组件及api以方便编写并发应用。multiprocessing包的组件Process, Queue, Pipe, Lock等组件提供了与多线程类似的功能。使用这些组件,可以方便地编写多进程并发程序。 Process Process ...
      线程的动机是充分利用多核,方便地实现并行编程。然而,早期的硬件厂商纷纷实现自己的一套线程标准,这样,程序员无法开发可移植的软件。为了结束这个局面,对UNIX系统,IEEE制定了一个C语言线程编程接口标准(I ...
Voldemort的client维护了与各个节点通信的链接。节点的状态是不断变化的,随时都有可能某个或某些节点访问不同或是崩溃的情况,而这些情况的出现都会对客户端的get, put, delete操作产生影响。所以,节点状态的监控,并及时地通知相关组件是客户端的一个重要组成部分。FailureDetector接口是这个组件的核心。   主要类及其关系:       完整的文档在:http://iword.aliapp.com/Voldemort_FailureDetector.txt      
      论文 The Log-Structure Merge-Tree(LSM-tree)(http://www.google.com.my/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&cad=rja&ved=0CDoQFjAD&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.44.2782%26rep%3Drep1%26type%3Dpdf&ei=6OlPUJuZFsaYiA ...
    PerformParallelRequests是PipelineRoutedStore中用来执行get操作的action。该action并行向各个节点发送get请求。底层的通信采用非阻塞的nio方式,但是PerformParallelRequests对外界是一种阻塞模式,CountDownLatch被用来实现这种阻塞。   PerformParallelRequests在构造方法中必须指定下面一些参数:   BasicPipelineData pipelineData: 在整个pipeline执行过程的上下文环境数据集合 Event completeEvent: 该acti ...
Global site tag (gtag.js) - Google Analytics