小编var*_*tec的帖子

Python hash_ring不均匀分布,什么是一致的哈希替代方案?

我正在使用hash_ring在服务器之间分配对象.我假设分布是统一的,因为它基于MD5哈希.不幸的是情况并非如此.

我正在使用使用生成的随机密钥uuid.uuid4().我已经证实,MD5本身实际上确实提供了均匀分布.然而,当我使用时hash_ring.HashRing,大多数和最少人口的桶之间存在20-30%的差异.

  • hash_ring通过调整一些设置可以改善分布的均匀性吗?
  • 还有其他好的替代方法可以在Python中进行一致性散列吗?

我用来测试分布均匀性的代码:

ring = hash_ring.HashRing(range(8))
for _ in range(10):
     counters = [0]*8
     for _ in range(100000):
         counters[ring.get_node(str(uuid.uuid4()))] += 1
     print counters
Run Code Online (Sandbox Code Playgroud)

打印出来的:

[11115, 11853, 14033, 11505, 13640, 12292, 12851, 12711]
[11164, 11833, 14024, 11562, 13365, 12302, 13002, 12748]
[11354, 11756, 14017, 11583, 13201, 12231, 13135, 12723]
[11182, 11672, 13936, 11441, 13563, 12240, 13129, 12837]
[11069, 11866, 14045, 11541, 13443, 12249, 12894, 12893]
[11196, 11791, 14158, 11533, 13517, 12319, 13039, …
Run Code Online (Sandbox Code Playgroud)

python hashtable consistent-hashing

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

DB API 2.0 自动提交默认关闭的理由是什么?

PEP 249——Python 数据库 API 规范 v2.0在.commit()的描述中指出:

请注意,如果数据库支持自动提交功能,则必须首先关闭该功能。可以提供接口方法来将其重新打开。

鉴于大多数数据库默认为自动提交,其背后的理由是什么?

python transactions python-db-api

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

检查python中目录的权限

我想要一个给出目录的python程序,它将返回该目录中具有775(rwxrwxr-x)权限的所有目录

谢谢!

python chmod

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

DynamoDB散列键int vs string

我尝试在DynamoDB中使用UUID的整数表示作为整数哈希键,但是因为错误而失败了:

DynamoDBValidationError: DynamoDBValidationError: 400 Bad Request
{'message': 'Attempting to store more than 38 significant digits in a Number', 
 '__type': 'com.amazon.coral.validate#ValidationException'}
Run Code Online (Sandbox Code Playgroud)

这一方面有意义,因为UUID是128位,最多可以是39位十进制数字.另一方面它让我想知道......

DynamoDB是否存储整数散列键,因为它是十进制表示?使用整数散列键比字符串散列键有什么优势吗?

python boto amazon-dynamodb

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

Web框架性能比较

我正在寻找基于动态语言(Python,Ruby,Groovy和Lua)比较Web框架的真实基准.如果将它们与基于PHP,Java,ASP.NET的经典解决方案进行比较甚至更好,甚至可能是Perl.我特别感兴趣的是:

  • Django的
  • Ruby on Rails
  • Grails的
  • Zend框架
  • Struts2的

编辑:至于肖恩的回答:

  1. 这是一个更假设的问题,在现实生活中我必须选择基于更多约束然后只是原始速度.
  2. 速度不是唯一的,甚至不是最重要的参数.这些框架如何扩展实际上更有趣.
  3. 使用标准的,众所周知的框架具有优势,在大多数情况下(除非您在线执行EVE之类的操作)超出原始速度改进.

让我引用D. Brown,CM Davis和S. Stanlick的书"Struts2 in Action":

内部框架不太可能看到跟上行业步伐的优雅修订.实际上,随着时间的推移,内部框架似乎对建筑侵蚀感到怀疑,太多的扩展不如人们希望的那样优雅.

我完全同意.

php python java performance

0
推荐指数
1
解决办法
3810
查看次数

UTF8,ISO-8859-x或7位ASCII和实体

您对XHTML和XML中的重音和特殊字符的编码有何看法?

  • 您是否将每个非US-ASCII字符转换为命名实体?
  • 您使用ISO-8859-x或Win-125x并对其他实体进行编码?
  • 或者你是否直接用UTF-8编写所有内容,而不用担心实体?

请详细说明哪个以及为什么.

xml xhtml

0
推荐指数
2
解决办法
931
查看次数

即使代码中有拼写错误,Python也可以构建好吗?

(注意:我是Python的新手)

我在函数调用中输入了一个拼写错误,并且在使用拼写错误进行函数调用时,在运行时崩溃了.

这是正常的吗?!构建不应该失败吗?!我设置正确吗?!

我在Linux Centos上使用Eclipse.

Eclipse确实检测到其他错误(缩进,未定义的变量(即,如果foo:,foo之前从未声明过导致构建错误,等等)

这是我的东西看起来像:

def foo(self):
   pass

def bar(self):
   foe() 
Run Code Online (Sandbox Code Playgroud)

- > foe而不是foo- >不会生成编译错误,但(当然)在运行时崩溃

我可以理解Python在运行时有时不知道变量的类型,但是当我调用一个甚至不存在于类中的函数时,它无法检测到它!

我希望我的设置有问题,否则,我恐怕会错过Java,C和我所有其他静态类型的语言;))))

python eclipse

0
推荐指数
1
解决办法
566
查看次数

在python中将日期转换为时间戳时出错

我目前正在尝试将以下格式的日期YYYYmmddHHMMSS转换为unix时间戳,但是我收到错误(ValueError:year超出范围).

import datetime

def ts(date):
    return datetime.datetime.fromtimestamp(date).strftime('%Y%m%d%H%M%S')

if __name__ == "__main__":
    date = 20130814100000
    print ts(date)
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
2526
查看次数

PHP中的ASCII到DEC

将DEC转换为ASCII:

$ ASCII = CHR($吨);

我需要一个将ASCII转换为DEC的代码.

php

-1
推荐指数
1
解决办法
783
查看次数