dovecot的全文搜索
试了一下这个基于 CLucene 的全文搜索,似乎还不错。这里记一下过程。
首先是给 dovecot 安装 Lucene 插件,用 FreeBSD port 来安装的话,只需 make config,选择 LUCENE 然后 portmaster dovecot 即可。
配置也还算容易,我之前已经做了索引与数据分开,因此并不需要单独的配置,只需在 dovecot.conf 中增加:
共 18 篇文章。
试了一下这个基于 CLucene 的全文搜索,似乎还不错。这里记一下过程。
首先是给 dovecot 安装 Lucene 插件,用 FreeBSD port 来安装的话,只需 make config,选择 LUCENE 然后 portmaster dovecot 即可。
配置也还算容易,我之前已经做了索引与数据分开,因此并不需要单独的配置,只需在 dovecot.conf 中增加:
我国在最晚不晚于宋代发明了水密隔舱。所谓水密隔舱,是指将船体分成若干个互不相通的舱区,这样当一个或几个舱区进水时,整个船体仍然可以有足够的浮力而不致沉没。这是一项相当重要的发明,类似的设计思路在其他领域也有应用。
📜 现时提倡的安装方式为 pkg,本文并未对此进行更新。
VirtualBox可以在远程运行,并把界面通过 ssh 的 X11 转发放到管理员的桌面。
关于Scalability这个词的中文译法,目前还没有一个非常确切的定论。一些文献中将其翻译为"可扩充性",而"扩充"指的主要是Scale up;而在一些实际的用法中,Scalability还包括Scale down,因此,“可伸缩性"也许是比较贴近原文意思的说法。
互联网应用的可扩充性体现在两个方面:其一,是能够对系统容量进行扩充,也就是说,这个系统各个组件能够提供的服务的量,能够在需要的时候予以扩充(特别是通过添加新的服务器等等)。其二,是这种扩充是有效率的扩充,即,增加硬件投入时,其投入与所产生的效果是接近甚至达到成比例增加的。通常说来,“可扩充"同时暗含的需求是用户的使用习惯尽可能保持不变。如果我们关注某一具体的计算节点,可扩充性还应体现于提高计算节点性能,例如增加其CPU数量或内存容量时,能够相应地改善系统的容量或响应时间,等等。
而另一方面,“可缩减性"主要指的则是说一套系统能够运行在尽可能少的软硬件环境之中。对于大型互联网公司而言,这一点可能并不重要,而对初创公司来说这一点则非常重要。
在设计互联网应用的时候,充分地考虑系统的可伸缩性,能够极大地减少日后的维护开销,并帮助决策者对于投资所能获得的回报进行更加精准的估计;另一方面,高可伸缩性的系统往往会具有更好的容灾能力,从而提供更好的用户体验。
与解决很多其他问题类似,改善可伸缩性最常用的方法就是分治法(Divide and Conquer)。分治属于大道理一类,在实践中,我们比较常用的分治策略包括:
和蛇头GG讨论了一个关于卖票的问题,简单地说是票很有限,需求量很大,如何能够尽可能高效地让票以尽可能公平的方式卖出去。
我设计了一个分布式的结构来解决这个问题,当然这个原型可以进一步改进,此处按下不表。记录一下我对这个结构公平性的描述的一个比喻:
Today I have some ideas about P2P application framework. Would check if there is any available ones and whether they can fulfil my ideas. Maybe I would start a project to implement these ideas in Python and/or C++.
由于某种原因需要一口气inject大约80万封信,结果中间就不成了。后来发现似乎3000-10000/queue为宜。什么原因呢?
So it happens.
As the website states, it works by:
- Sending your page requests through Google machines dedicated to handling Google Web Accelerator traffic.
- Storing copies of frequently looked at pages to make them quickly accessible.
Downloading only the updates if a web page has changed slightly since you last viewed it.- Prefetching certain pages onto your computer in advance.
- Managing your Internet connection to reduce delays.
- Compressing data before sending it to your computer.
Someone has disclosed that he is implementing iSCSI on FreeBSD, at scsi@. iSCSI is essential technology that is highly scalable and looks quite promising.
在火车上跟HD聊了聊关于GNS等等一系列项目的想法。所谓GNS是一个全局的目录服务,包括客户和服务器两部分,客户运行在提供各种不同服务的机器上(www, databases, etc)。
客户启动时,向服务器发出一个「WAKEUP」信号,服务器则向需要该服务的所有服务器发出同样信号;反之,当客户所在的机器准备下线时,也类似地发出信号。
www, databases等服务的consumer据此在自己的本地可用服务表中添加/删除目录项。