12 2013 档案

摘要:一致性环Hash算法有一个大用处就是解决Memcache服务器down机问题的。目的是增加或者移除Memcache服务器后,最大限度的减少所受影响。理论方面的就不介绍了,网上有太多资料了,请大家自己搜索搜索。在此写了一个ConsistencyRing类来实现算法,具体代码在此下载。测试类如下:public static void Test() { { ConsistencyRing cr = new ConsistencyRing(); Console.WriteLine("============... 阅读全文
posted @ 2013-12-17 23:57 McKay 阅读(2681) 评论(6) 推荐(4) 编辑
摘要:考虑到sql server以及c#,最多只能用decimal类型,也就是29位的数字,做了下面这个数字型id生成器:class Program { static void Main(string[] args) { int i = 100000; Timing t = new Timing(); t.Start(); while(i-->0) UniqueIdGenerator.Next(); t.Stop(); ... 阅读全文
posted @ 2013-12-06 17:05 McKay 阅读(2255) 评论(2) 推荐(0) 编辑
摘要:A2D Framework增加了EF支持,加上原先支持ADO.NET:支持EF方式支持ADO.NET方式这次来讲如何让Entity Framework变成nb的读写分离1. 先设计EF模型, 可以图形方式设计,也可以数据库优先方式设计,总之设计完后,再转换成Code方式使用(用)2. 在DbContext类中,删除EF自动添加的报错代码,如下:protected override void OnModelCreating(DbModelBuilder modelBuilder){ throw new UnintentionalCodeFirstException();//... 阅读全文
posted @ 2013-12-06 15:45 McKay 阅读(4013) 评论(2) 推荐(2) 编辑
摘要:我们来比较下散列的3种冲突解决方式,建立3个类,分别代表3种不同的冲突解决方式:MyHash_MAD_多槽位MyHash_MAD_独立链MyHash_MAD_线性探测法然后在主程序中分别插入10000条记录,比较各自所需要的时间。先介绍下:MAD:multiply-add-divide method,乘法 - 加法 - 除法(取模),如下这个公式是散列核心公式(a*collisionIndex+b)%M, M要求是素数,a, b的取值要合理冲突解决方式:多槽位当计算出的Index位置处已经被占用后,还是会在这个index的地方增加一个元素主数组的每个元素是个列表(比如每个元素都能放5个子元素) 阅读全文
posted @ 2013-12-05 15:43 McKay 阅读(2400) 评论(2) 推荐(1) 编辑
摘要:A2D中一项功能是关于Cache的,能够将判断、获取、删除cache的代码缩减到最少量,如下是Order业务逻辑的demo示范:interface IOrder{ [Cachable("Order.GetMessage", "Default", ExpireType = CacheExpireType.Absolutely, Increment = 5)] string GetMessage(); [CacheEvict("Order.GetMessage", "Default")] void UpdateMess 阅读全文
posted @ 2013-12-05 00:44 McKay 阅读(2318) 评论(2) 推荐(2) 编辑
摘要:有想过hash["A1"] = DateTime.Now;这句是怎么实现的吗?我们来重温下学校时代就学过的哈希算法吧。我们要写个class,实现如下主程序调用:static void Main(string[] args) { MyHash hash = new MyHash(); hash["A1"] = DateTime.Now; hash["A2"] = 1; Console.WriteLine(Convert.ToString(hash["A1"])); Cons... 阅读全文
posted @ 2013-12-04 09:31 McKay 阅读(5235) 评论(6) 推荐(3) 编辑
摘要:注明:此处所说的日志是指程序错误的日志。一般B/S程序记录日志的方式最多的方式是获取到exception后直接append到一个文本文件,当然也有记录到windows event log的。我们来讨论下当高并发量下的解决办法:有很多解决方式,如下:直接记录为txt/xml文件Windows Event Log当前进程的本地队列MSMQ独立进程中的WCF服务(进程间管道)独立进程中的WCF服务(异步调用方式)数据库Sql server的Service BrokerMongoDB(或者类似的NoSQL数据库)其实大多数情况下使用文本文件或者eventlog就可以了,不过这不在本次讨论范围,去掉。数 阅读全文
posted @ 2013-12-03 21:43 McKay 阅读(5073) 评论(4) 推荐(5) 编辑

点击右上角即可分享
微信分享提示