Hot Java Stuff
A note to future me: Have a closer look at the technologies and developments listed below. Why? Read Hildeberto Mendonça’s article Leaving JavaEE Behind.
Unsorted
Cloud
NoSQL Databases
Nice picture: Visual Guide to NoSQL Systems.
Very nice comparison of lots of products: http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis
- Apache HBase HBase and Cassandra store data in a map-type structure. Data is queried using their own language. HBase uses the Hadoop File System as its basis.
- Cassandra HBase and Cassandra store data in a map-type structure. Data is queried using their own language.
- MongoDB
- CouchDB
- ObjectDB Fast object database. ObjectDB is a commercial product. It can be downloaded and used at no cost (including commercially) with the restriction of maximum 10 entity classes and one million entity objects per database file.
- Aerospike A flash-optimized in-memory open source NoSQL database.
- redis Open source in-memory data structure store, used as database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs and geospatial indexes with radius queries. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
Oldschool Relational Databases
I’m just listing these to separate them from NoSQL databases.
- H2 Lightweight Java database. Supports in-memory tables. Successor of HSQLDB.
Storage Layers
- Apache Phoenix Apache Phoenix is a relational database layer over HBase supporting full ACID transactions and delivered as a client-embedded JDBC driver that targets low latency queries over HBase data. Apache Phoenix takes your SQL query, compiles it into a series of HBase scans, and orchestrates the running of those scans to produce regular JDBC result sets. The table metadata is stored in an HBase table and versioned, such that snapshot queries over prior versions will automatically use the correct schema. Direct use of the HBase API, along with coprocessors and custom filters, results in performance on the order of milliseconds for small queries, or seconds for tens of millions of rows.
- Apache Hive The Apache Hive data warehouse software facilitates querying and managing large data sets residing in distributed storage. Hive provides a mechanism to project structure onto this data and query the data using a SQL-like language called HiveQL. At the same time this language also allows traditional map/reduce programmers to plug in their custom mappers and reducers when it is inconvenient or inefficient to express this logic in HiveQL.
- Cloudera Impala A query engine that runs on Apache Hadoop. Impala brings scalable parallel database technology to Hadoop, enabling users to issue low-latency SQL queries to data stored in HDFS and Apache HBase without requiring data movement or transformation.
- DataNucleus A fully compliant implementation of the JDO 3.1 and JPA 2.1 specifications, providing transparent persistence of Java objects. Supports persistence to the widest range of datastores of any Java persistence software, supporting all of the main object-relational mapping (ORM) patterns, allows querying using either JDOQL, JPQL or SQL. Allows persistence to relational datastores (RDBMS), object-based datastores (db4o, NeoDatis ODB), document-based storage (XML, Excel, OpenDocument spreadsheets), web-based storage (JSON, Google Storage, Amazon Simple Storage Service), map-based datastores (HBase, Google’s BigTable, Apache Cassandra) as well as other types of datastores.
Search
- Lucene
- Solr Based on Lucene.
- ElasticSearch Based on Lucene.