2005-07-27

Hibernate HQL查询默认是支持多态的(polymorphism) 禁止多态 对于多态支持被禁止的类(),如果针对它们的超类进行查询,会把它们排除在外。

2005-07-19

JFileSync - Java File Synchronization

远程同步管理工具Capivara在近日发布的新版本0.6.2中,对其主要功能作出改进。 Capivara是一款用于通过远程计算机同步管理文件、目录的工具软件。新版本中中改进的地方包括:同步处理MD5与SHA-1的垃圾文件,相关Windows插件,异常的处理,以及新的更友好的图形用户界面。 下载地址:http://capivara.sourceforge.net/ JFileSync - Java File Synchronization http://jfilesync.sourceforge.net/features.shtml

2005-07-11

ANT中执行sql task 必须设置 参数 delimitertype="row" 才能执行正确的PL/sql 此时必须要求sql语名中分隔符单独为一行 如果以";"分隔的话,对于function等需要要end后多加一";"

2005-07-06

Java开源分布式缓存类库

Open Source Distributed Cache Solutions Written in Java

Posted by: ceperez Last Updated: 2004-10-24 08:45:42

Found Jason Carreira's blog entry about distributed caching. Anyway, a lot of interesting cache solutions were mentioned by readers. So, in the continuing tradition I bring you the review of open source distributed cache solutions written in Java.

  • Java Caching System (i.e. JCS) - The JCS goes beyond simply caching objects in memory. It provides several important features, necessary for any Enterprise level caching system, features include Memory management, disk overflow, element grouping, quick nested categorical removal, data expiration, extensible framework, fully configurable runtime parameters, remote synchronization, remote store recovery, non-blocking "zombie" pattern, optional lateral distribution of elements, remote server clustering and failover. These features provide a framework with no point of failure, allowing for full session failover including session data across up to 256 servers.
  • Swarmcache - SwarmCache is a simple but effective distributed cache. It uses IP multicast to efficiently communicate with any number of hosts on a LAN. It is specifically designed for use by clustered, database-driven web applications. Such applications typically have many more read operations than write operations, which allows SwarmCache to deliver the greatest performance gains. SwarmCache uses JavaGroups internally to manage the membership and communications of its distributed cache.
  • JGroups ReplicatedHashtable and DistributedHashtable - A DistributedHashtable is derived from java.util.Hashtable and allows to create several instances of hashtables in different processes. All of these instances have exactly the same state at all times. Modifications such as put(), clear() or remove() will be propagated in orderly fashion to all replicas. Read-only requests such as get() will only be sent to the local copy. ReplicatedHashtable provides exactly the same methods as as DistributedHashtable. However, it is implemented differently. Whereas the latter uses synchronous remote group method invocation (similar to RpcDispatcher), the former uses asynchronous communication to keep the replicas up-to-date.
  • OSCache - OSCache is a widely used, high performance J2EE caching solution. Features include fast in-memory caching, persistent on-disk caching, written with performance in mind, clustering support, flexible caching System, comprehensive API, exception handling, cache flushing, portable caching and i18n aware.
  • FreePastry - FreePastry is a modular, open source implementation of the Pastry p2p routing and location substrate. Pastry is a generic, scalable and efficient substrate for peer-to-peer applications. Pastry nodes form a decentralized, self-organizing and fault-tolerant overlay network within the Internet. Pastry provides efficient request routing, deterministic object location, and load balancing in an application-independent manner. Furthermore, Pastry provides mechanisms that support and facilitate application-specific object replication, caching, and fault recovery. The proponents of Pastry work for Microsoft, however they've made an excellent choice sticking with Java.
  • OceanStore - OceanStore is a global persistent data store designed to scale to billions of users. It provides a consistent, highly-available, and durable storage utility atop an infrastructure comprised of untrusted servers. OceanStore caches data promiscuously; any server may create a local replica of any data object. These local replicas provide faster access and robustness to network partitions. They also reduce network congestion by localizing access traffic. Pond, the OceanStore prototype, is currently available for download.
  • EHCache - A replacement for JCS. EHCache started out as some patches for JCS to correct threading and memory leak problems. EHCache is faster than JCS. Acts as a pluggable cache for Hibernate 2.1. Small foot print, both in terms of size and memory requirements. Implements JCACHE. Implemented by some guys at ThoughtWorks.
  • JXTA 2 Shared Resource Distributed Index (SRDI) - A loosely consistent, fault-resilient, distributed hash table. The JXTA 2 network acts as an always-available, network-wide, dynamic, distributed data structure: a virtual hash table containing the index of all the published advertisements in the entire JXTA group. An edge peer can query the hash table at any time by supplying a set of attributes -- the hash keys in the table. If you figure out how to use SRDI for your own generic cacheing needs, please let us know!
  • JBossCache - JBossCache consists of two modules: TreeCache (a replicated transactional tree-structured cache) and TreeCacheAop (a subclass of TreeCache using AOP to dynamically replicate Plain Old Java Objects [POJOs]).
  • Open Source Java Caching Service - Java Caching Service is an effort to make an Open Source version of JSR-107 JCache. Since the JSR-107 hasnt released any specs for years, This version still builds on the original Functional Specification. Features include ability to set an maximum size for the memory requirements; spools old objects to disk with max-size requirements; group elements with support for nested groups to create cache-trees; easily remove whole branches of the cache; automatic time-based expiration; fully user configurable; support for cache-loaders and upport for distribution.
  • Bamboo DHT - A distributed hash table, or DHT, is a building block for peer-to-peer applications. At the most basic level, it allows a group of distributed hosts to collectively manage a mapping from keys to data values, without any fixed hierarchy, and with very little human assistance. This building block can then be used to ease the implementation of a diverse variety of peer-to-peer applications such as file sharing services, DNS replacements, web caches, etc.

Like before, if you do know of any other project that's worth mentioning, please feel free to leave a comment.