|
|
Line 1: |
Line 1: |
| {{Use dmy dates|date=January 2012}}
| | CMS provides the best platform to create websites that fulfill all the specifications of SEO. It is very easy to customize plugins according to the needs of a particular business. These templates are professionally designed and are also Adsense ready. s ultimately easy to implement and virtually maintenance free. In the event you adored this informative article in addition to you would want to receive guidance relating to [http://cabkit.in/wordpressbackup709481 wordpress dropbox backup] i implore you to pay a visit to our own web site. All this is very simple, and the best thing is that it is totally free, and you don't need a domain name or web hosting. <br><br> |
| '''MurmurHash''' is a non-[[Cryptographic hash function|cryptographic]] [[hash function]] suitable for general hash-based lookup.<ref name="Hadoop">{{cite web|url=http://hbase.apache.org/docs/current/api/org/apache/hadoop/hbase/util/MurmurHash.html |title=Hadoop in Java |publisher=Hbase.apache.org |date=24 July 2011 |accessdate=13 January 2012}}</ref><ref>[http://laboratorios.fi.uba.ar/lsi/chouza-tesisingenieriainformatica.pdf Chouza et al].</ref><ref>{{cite web|url=http://www.inesc-id.pt/ficheiros/publicacoes/5453.pdf |title=Couceiro et al. |format=PDF |language={{pt icon}} |accessdate=13 January 2012}}</ref> It was created by Austin Appleby in 2008,<ref>{{cite web|url=http://murmurhash.googlepages.com/ |title=MurmurHash on GooglePages |publisher=Murmurhash.googlepages.com |accessdate=13 January 2012}}</ref><ref>{{cite web|author=Tanjent (tanjent) wrote,3 March 2008 13:31:00 |url=http://tanjent.livejournal.com/756623.html |title=MurmurHash first announcement |publisher=Tanjent.livejournal.com |accessdate=13 January 2012}}</ref> and exists in a number of variants,<ref name="Murmur160">{{cite web|url=http://simonhf.wordpress.com/2010/09/25/murmurhash160/ |title=MurmurHash2-160 |publisher=Simonhf.wordpress.com |date=25 September 2010 |accessdate=13 January 2012}}</ref> all of which have been released into the public domain. When compared to other popular hash functions, MurmurHash performed well in a random distribution of regular keys.<ref name="StackExchange">{{cite web|url=http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed |publisher=stackexchange.com |title=Which hashing algorithm is best for uniqueness and speed}}</ref>
| |
|
| |
|
| ==Variants==
| | The Internet is a vast open market where businesses and consumers congregate. You will have to invest some money into tuning up your own blog but, if done wisely, your investment will pay off in the long run. This is the reason for the increased risk of Down Syndrome babies in women over age 35. t need to use the back button or the URL to get to your home page. Akismet is really a sophisticated junk e-mail blocker and it's also very useful thinking about I recieve many junk e-mail comments day-to-day across my various web-sites. <br><br>Your Word - Press blog or site will also require a domain name which many hosting companies can also provide. When a business benefits from its own domain name and a tailor-made blog, the odds of ranking higher in the search engines and being visible to a greater number of people is more likely. Are you considering getting your website redesigned. Nonetheless, with stylish Facebook themes obtainable on the Globe Broad Internet, half of your enterprise is done previously. Websites using this content based strategy are always given top scores by Google. <br><br>Word - Press installation is very easy and hassle free. php file in the Word - Press root folder and look for this line (line 73 in our example):. Next you'll go by way of to your simple Word - Press site. So, we have to add our social media sharing buttons in website. The popularity of Word - Press has increased the demand for Word - Press themes and these themes sells like hot cake on the internet. <br><br>Many developers design websites and give them to the clients, but still the client faces problems to handle the website. If you operate a website that's been built on HTML then you might have to witness traffic losses because such a site isn't competent enough in grabbing the attention of potential consumers. However, there are a few other Wordpress plugins also for its development which requires adding files in your Wordpress setup. You should stay away from plugins that are full of flaws and bugs. 95, and they also supply studio press discount code for their clients, coming from 10% off to 25% off upon all theme deals. |
| | |
| The current version is MurmurHash3,<ref>{{cite web|title=MurmurHash3 on smhasher|url=http://code.google.com/p/smhasher/wiki/MurmurHash3}}</ref><ref name="Horvath">{{cite web | first = Adam | last = Horvath | url = http://blog.teamleadnet.com/2012/08/murmurhash3-ultra-fast-hash-algorithm.html | title = MurMurHash3, an ultra fast hash algorithm for C# / .NET | date = Aug 10, 2012 }}</ref> which yields a 32-bit or 128-bit hash value. | |
| | |
| The older MurmurHash2<ref>{{cite web|title=MurmurHash2 on smhasher|url=http://code.google.com/p/smhasher/wiki/MurmurHash2}}</ref> yields a 32-bit or 64-bit value. Slower versions of MurmurHash2 are available for big-endian and aligned-only machines. The MurmurHash2A variant adds the [[Merkle–Damgård construction]] so that it can be called incrementally. There are two variants which generate 64-bit values; MurmurHash64A, which is optimized for 64-bit processors, and MurmurHash64B, for 32-bit ones. MurmurHash2-160 generates the 160-bit hash, and MurmurHash1 is obsolete.
| |
| | |
| ==Implementations==
| |
| | |
| The canonical implementation is in [[C++]], but there are efficient ports for a variety of popular languages, including [[Python (programming language)|Python]],<ref>{{cite web|url=http://code.google.com/p/pyfasthash/ |title=pyfasthash in Python |publisher=Google |accessdate=13 January 2012}}</ref> [[C (programming language)|C]],<ref>{{cite web|url=http://www.qdecoder.org/qlibc/ |title=C implementation in qLibc by Seungyoung Kim}}</ref> [[C Sharp (programming language)|C#]],<ref name="Horvath"/><ref>{{cite web|last=Landman |first=Davy |url=http://landman-code.blogspot.com/2009/02/c-superfasthash-and-murmurhash2.html |title=Davy Landman in C# |publisher=Landman-code.blogspot.com |accessdate=13 January 2012}}</ref> [[Perl]],<ref>{{cite web|url=http://metacpan.org/module/Digest::MurmurHash |title=Toru Maesaka in Perl |publisher=metacpan.org |accessdate=13 January 2012}}</ref> [[Ruby (programming language)|Ruby]],<ref>{{cite web|author=Bruce Williams <http://codefluency.com>, for Ruby Central <http://rubycentral.org> |url=http://rubyforge.org/projects/murmurhash |title=Ruby |publisher=Rubyforge.org |date=3 May 2009 |accessdate=13 January 2012}}</ref> [[PHP]],<ref>{{cite web|url=http://murmur.vaizard.org/en/ |title=Murmurhash3 PHP extension |publisher=Murmur.vaizard.org |accessdate=13 January 2012}}</ref> [[Haskell (programming language)|Haskell]],<ref>{{cite web|url=http://hackage.haskell.org/package/murmur-hash |title=Haskell |publisher=Hackage.haskell.org |accessdate=13 January 2012}}</ref> [[Scala (programming language)|Scala]],<ref>{{cite web|url=https://github.com/scala/scala/blob/master/src/library/scala/util/hashing/MurmurHash3.scala|title=Scala standard library implementation|date=14 December 2012}}</ref> [[Java (programming language)|Java]],<ref>[http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/hash/Hashing.html MurmurHash3 in Java], part of Guava</ref><ref>[http://dmy999.com/article/50/murmurhash-2-java-port Derek Young in Java], public domain</ref> [[Erlang (programming language)|Erlang]],<ref>[https://github.com/bipthelin/murmerl3 MurmurHash3 in Erlang]</ref> and [[JavaScript]].<ref>{{cite web|author=raycmorgan (owner) |url=http://gist.github.com/588423 |title=Javascript implementation by Ray Morgan |publisher=Gist.github.com |accessdate=13 January 2012}}</ref><ref>{{cite web|author=garycourt |url=http://github.com/garycourt/murmurhash-js |title=MurmurHash.js by Gary Court |publisher=Github.com |accessdate=13 January 2012}}</ref>
| |
| | |
| It has been adopted into a number of open-source projects, most notably libstdc++ (ver 4.6), Perl,<ref>{{cite web|url=http://search.cpan.org/~drolsky/perl-5.17.7/pod/perl5176delta.pod#New_hash_function_Murmurhash-32_%28v3%29 |title=perl5176delta |accessdate=31 December 2012}}</ref> nginx (ver 1.0.1),<ref>{{cite web|url=http://nginx.org/en/CHANGES |title=nginx |accessdate=13 January 2012}}</ref> [[Rubinius]],<ref>{{cite web|url=https://github.com/rubinius/rubinius/commit/1d69526c484cc9435a7198e41b8995db6c3acf1a |title=Rubinius |accessdate=29 February 2012}}</ref> libmemcached (the [[C (programming language)|C]] driver for [[Memcached]]),<ref>[http://libmemcached.org/libMemcached.html libmemcached]</ref> maatkit,<ref>{{cite web|url=http://code.google.com/p/maatkit/source/detail?r=3273 |title=maatkit |publisher=Google |date=24 March 2009 |accessdate=13 January 2012}}</ref> [[Hadoop]],<ref name="Hadoop"/> Kyoto Cabinet,<ref>{{cite web|url=http://fallabs.com/kyotocabinet/spex.html |title=Kyoto Cabinet specification |publisher=Fallabs.com |date=4 March 2011 |accessdate=13 January 2012}}</ref> [[RaptorDB]],<ref>{{cite web|last=Gholam |first=Mehdi |url=http://www.codeproject.com/KB/database/RaptorDB.aspx |title=RaptorDB CodeProject page |publisher=Codeproject.com |date=13 November 2011 |accessdate=13 January 2012}}</ref> [[OlegDB]],<ref>{{cite web|url=https://olegdb.org/documentation.html |title=OlegDB Documentation |accessdate=24 January 2013}}</ref> and [[Apache Cassandra|Cassandra]].<ref>{{cite web|url=http://wiki.apache.org/cassandra/Partitioners|title=Partitioners|publisher=apache.org |date=2013-11-15|accessdate=2013-12-19}}</ref>
| |
| | |
| ==Algorithm==
| |
| | |
| Murmur3_32(''key'', ''len'', ''seed'')
| |
| // Note: In this version, all integer arithmetic is performed with unsigned 32 bit integers.
| |
| // In the case of overflow, the result is constrained by the application of modulo <math>2^{32}</math> arithmetic.
| |
|
| |
| ''c1'' <math>\gets</math> 0xcc9e2d51
| |
| ''c2'' <math>\gets</math> 0x1b873593
| |
| ''r1'' <math>\gets</math> 15
| |
| ''r2'' <math>\gets</math> 13
| |
| ''m'' <math>\gets</math> 5
| |
| ''n'' <math>\gets</math> 0xe6546b64
| |
|
| |
| ''hash'' <math>\gets</math> seed
| |
|
| |
| for each fourByteChunk of key
| |
| k <math>\gets</math> fourByteChunk
| |
|
| |
| k <math>\gets</math> k * c1
| |
| k <math>\gets</math> (k << r1) '''OR''' (k >> (32-r1))
| |
| k <math>\gets</math> k * c2
| |
|
| |
| hash <math>\gets</math> hash '''XOR''' k
| |
| hash <math>\gets</math> (hash << r2) '''OR''' (hash >> (32-r2))
| |
| hash <math>\gets</math> hash * m + n
| |
|
| |
| with any remainingBytesInKey
| |
| remainingBytes <math>\gets</math> SwapEndianOrderOf(remainingBytesInKey)
| |
| // Note: Endian swapping is only necessary on big-endian machines.
| |
| // The purpose is to place the meaningful digits towards the low end of the value,
| |
| // so that these digits have the greatest potential to affect the low range digits
| |
| // in the subsequent multiplication. Consider that locating the meaningful digits
| |
| // in the high range would produce a greater effect upon the high digits of the
| |
| // multiplication, and notably, that such high digits are likely to be discarded
| |
| // by the modulo arithmetic under overflow. We don't want that.
| |
|
| |
| remainingBytes <math>\gets</math> remainingBytes * c1
| |
| remainingBytes <math>\gets</math> (remainingBytes << r1) '''OR''' (remainingBytes >> (32 - r1))
| |
| remainingBytes <math>\gets</math> remainingBytes * c2
| |
|
| |
| hash <math>\gets</math> hash '''XOR''' remainingBytes
| |
|
| |
| hash <math>\gets</math> hash '''XOR''' len
| |
|
| |
| hash <math>\gets</math> hash '''XOR''' (hash >> 16)
| |
| hash <math>\gets</math> hash * 0x85ebca6b
| |
| hash <math>\gets</math> hash '''XOR''' (hash >> 13)
| |
| hash <math>\gets</math> hash * 0xc2b2ae35
| |
| hash <math>\gets</math> hash '''XOR''' (hash >> 16)
| |
| | |
| ==References==
| |
| {{reflist|colwidth=30em}}
| |
| | |
| ==See also==
| |
| *[[Fowler–Noll–Vo hash function]]
| |
| *[[Jenkins hash function]]
| |
| *[[CityHash]]
| |
| | |
| {{DEFAULTSORT:Murmurhash}}
| |
| [[Category:Hash functions]]
| |
CMS provides the best platform to create websites that fulfill all the specifications of SEO. It is very easy to customize plugins according to the needs of a particular business. These templates are professionally designed and are also Adsense ready. s ultimately easy to implement and virtually maintenance free. In the event you adored this informative article in addition to you would want to receive guidance relating to wordpress dropbox backup i implore you to pay a visit to our own web site. All this is very simple, and the best thing is that it is totally free, and you don't need a domain name or web hosting.
The Internet is a vast open market where businesses and consumers congregate. You will have to invest some money into tuning up your own blog but, if done wisely, your investment will pay off in the long run. This is the reason for the increased risk of Down Syndrome babies in women over age 35. t need to use the back button or the URL to get to your home page. Akismet is really a sophisticated junk e-mail blocker and it's also very useful thinking about I recieve many junk e-mail comments day-to-day across my various web-sites.
Your Word - Press blog or site will also require a domain name which many hosting companies can also provide. When a business benefits from its own domain name and a tailor-made blog, the odds of ranking higher in the search engines and being visible to a greater number of people is more likely. Are you considering getting your website redesigned. Nonetheless, with stylish Facebook themes obtainable on the Globe Broad Internet, half of your enterprise is done previously. Websites using this content based strategy are always given top scores by Google.
Word - Press installation is very easy and hassle free. php file in the Word - Press root folder and look for this line (line 73 in our example):. Next you'll go by way of to your simple Word - Press site. So, we have to add our social media sharing buttons in website. The popularity of Word - Press has increased the demand for Word - Press themes and these themes sells like hot cake on the internet.
Many developers design websites and give them to the clients, but still the client faces problems to handle the website. If you operate a website that's been built on HTML then you might have to witness traffic losses because such a site isn't competent enough in grabbing the attention of potential consumers. However, there are a few other Wordpress plugins also for its development which requires adding files in your Wordpress setup. You should stay away from plugins that are full of flaws and bugs. 95, and they also supply studio press discount code for their clients, coming from 10% off to 25% off upon all theme deals.