I need to hash strings to a shorter checksum on a "BigData" heavy-throughput project. The common choice would be SHA, probably SHA1 for speed reasons or CRC32 as the checksums will be used internally only and don't need to be cryptographic secure. A StackExchange answer suggested MurmurHash3, but how does it play with Perl?
Suchergebnisse für „CPAN“
Go ist eine vergleichsweise junge Programmiersprache. Entwickelt wurde sie von Google mit dem Ziel, ein perfektes Werkzeug für skalierbare Anwendungen zu schaffen.
Manche Fehler passieren, obwohl man es eigentlich besser wissen müsste - nur einfach in dem Moment nicht daran denkt. So auch dieses Problem: 75 und 61 sind doch verschiedene Zahlen, wie können sie gleich sein? Sind sie nicht. Aber 075 und 61 sind gleich - und haben mich einige Zeit beschäftigt, bis ich das Rätsel gelöst hatte.
ElasticSearch is a search engine. It's made for extremly fast searching in big data volumes. But sometimes one needs to fetch some database documents with known IDs. I found five different ways to do the job. Let's see which one is the best.
Im ersten Anlauf schienen mir die Ergebnisse wenig aussagekräftig, also habe ich neue Testdaten generiert. Dieses Mal steht die dreifache Menge Datensätze zur Verfügung, die Suchkriterien bleiben die gleichen.
mySQL, ElasticSearch und MongoDB müssen sich einem echten Anwendungsfall stellen. Bei der Installation der Clients und Server war mySQL außen vor und das gleiche gilt für den Import der Testdaten: Diese liegen in einer mySQL-Datenbank mit einem praxistauglichen Normalisierungsgrad vor und müssen für einen echten Vergleich jetzt in beide NoSQL-Lösungen übernommen werden.
Ein kleiner Vergleichstest soll zeigen, wie sich mySQL, ElasticSearch oder MongoDB im Praxisumfeld einer echten Applikation bei komplexen Suchanfragen schlagen. Doch bevor alle drei abgefragt werden können, müssen sie erstmal installiert werden.
Software often needs to transform values from A to B. Such transformations (given they're static) might be done using a database table, if/elsif blocks or a mapping table. Such tables are easy to create, maintain and understand. A database is always the slowest solution for a limited number of items, because the overhead for the client, network and database server is very big compared to sourcecode processing. Sourcecode-based solutions are faster, but which one is the best.
Lars Dieckow (Daxim) and Curtis Poe (Ovid) both had talks at the German Perl Workshop 2014 in Hannover. Both topic have been very different, but it turned out that Ovid's talk on the last day also had some relation to a small discussion Daxim and I had after his talk. I didn't get it in time, but the connection between both came to my mind while planning this post.
TIMTOWDI: There is more than one way to do it ist das Perl-Credo. Some ways are better than others ergänzte Perl::Critic später und diesen Spruch möchte ich heute etwas abwandeln: Some ways are faster than others. Natürlich muss man sich die Frage stellen, wie wichtig Geschwindigkeit für eine Scriptsprache überhaupt ist. Sollten zeitkritische Aktionen nicht besser gleich in C oder einer ihrer Variationen geschrieben werden?