小编sup*_*che的帖子

用于Java和Python程序的相同一致哈希算法实现

我们有一个应用程序,Python模块将数据写入redis分片,Java模块将从redis分片读取数据,因此我需要为Java和Python实现完全相同的一致哈希算法,以确保可以找到数据.

我搜索了几个实现,但发现Java和Python实现总是不同,不能用于收集.需要你的帮助.

编辑,在线实现我尝试过:
Java:http
://weblogs.java.net/blog/tomwhite/archive/2007/11/consistent_hash.html Python:http://techspot.zzzeek.org/2012/07/07/ - 绝对最简单 - 一致 - 散列 - 示例/
http://amix.dk/blog/post/19367

编辑,附加Java(使用Google Guava lib)和我编写的Python代码.代码基于上述文章.

import java.util.Collection;
import java.util.SortedMap;
import java.util.TreeMap;
import com.google.common.hash.HashFunction;

public class ConsistentHash<T> {
    private final HashFunction hashFunction;
    private final int numberOfReplicas;
    private final SortedMap<Long, T> circle = new TreeMap<Long, T>();

    public ConsistentHash(HashFunction hashFunction, int numberOfReplicas,
            Collection<T> nodes) {
        this.hashFunction = hashFunction;
        this.numberOfReplicas = numberOfReplicas;

        for (T node : nodes) {
            add(node);
        }
    }

    public void add(T node) { …
Run Code Online (Sandbox Code Playgroud)

python java consistent-hashing

10
推荐指数
1
解决办法
1万
查看次数

JDBC批处理查询的高性能

我想做批处理查询DB以获得高性能,例如sql根据不同的customer_id进行查询:

select order_id, 
       cost 
from customer c 
  join order o using(id) 
where c.id = ... 
order by
Run Code Online (Sandbox Code Playgroud)

我不知道如何使用JDBC语句来完成它.我知道我可以使用存储过程来实现这个目的,但是如果我可以在Java应用程序而不是SP中编写sql,那就更好了.
我正在使用DBCP作为我的Java客户端和MySQL DB.

java mysql sql jdbc batch-file

8
推荐指数
1
解决办法
2万
查看次数

面试问题 - 实施Biginteger Multiply

实施Biginteger Multiply

  1. 使用整数数组存储像297897654这样的大整数将存储为{2,9,7,8,9,7,6,5,4}
  2. 实现bigintegers的乘法函数
    Expamples:{2,9,8,8,9,8}*{3,6,3,4,5,8,9,1,2} = {1,0,8,6 ,3,7,1,4,1,8,7,8,9,7,6}

我没有实现这个课程,并认为它几个星期,无法得到答案.

任何人都可以帮我用C#/ Java实现它?非常感谢.

math

6
推荐指数
3
解决办法
1万
查看次数

大量使用Watin,IE保持开放的问题

我在C#控制台应用程序中使用Watin来抓取网站,同时运行五个控制台应用程序.我部分使用Watin作为爬虫的原因是因为一些网站使用javascript(或ajax)来设置页面内容.

以下是获取页面评论计数的示例代码:

        Settings.Instance.MakeNewIeInstanceVisible = false;
        using (var browser = new IE(commentLink, true))
        {
            browser.Link(Find.ByUrl(commentLink)).WaitUntilExists(20);

            Span commentSpan = browser.Span("COUNT_TOTAL");

            if (commentSpan.Exists)
            {
                int commentCount;
                if (Int32.TryParse(commentSpan.InnerHtml, out commentCount))
                {
                    return commentCount;
                }
            }
        }
Run Code Online (Sandbox Code Playgroud)

我的问题是运行这5个控制台应用程序一段时间后(90分钟),很多IE实例保持打开(因为超时或错误或IE忙),所以系统很慢,需要重新启动.

如何更改我的代码以防止此事发生并使我的应用程序保持有效?

c# asp.net watin

5
推荐指数
1
解决办法
2975
查看次数

面试问题 - 根据规则将文本拆分为子字符串

根据以下规则将文本拆分为子字符串:

  • a)每个子串的长度应小于或等于M.
  • b)如果子字符串包含任何数字字符,则子字符串的长度应小于或等于N(N <M)
  • c)子串的总数应尽可能小

我不知道如何解决这个问题,我猜它与"动态编程"有关.任何人都可以帮我用C#或Java实现它吗?非常感谢.

algorithm

5
推荐指数
1
解决办法
2538
查看次数

如何将一组值类型存储在.NET对象堆中?

在.NET中,诸如int之类的值类型对象存储在内存中.

引用类型对象需要为引用和对象单独分配内存,并且对象存储在.NET对象堆中.

并且在堆中创建了Array,那么如何将一个值类型数组(如int [])存储在堆中?是否意味着值类型对象可以存储在堆中而不需要装箱?

.net c# heap

4
推荐指数
2
解决办法
6934
查看次数

标签 统计

c# ×2

java ×2

.net ×1

algorithm ×1

asp.net ×1

batch-file ×1

consistent-hashing ×1

heap ×1

jdbc ×1

math ×1

mysql ×1

python ×1

sql ×1

watin ×1