質問

できないかなぁ、とおもってこの数日間は、今がその場で発音を確認することがソリューションにつられましたが、いずれも非常にシンプル"または軽量化を達成しています。問題は、基本的にはこの:してクラスターの10機、それぞれが同じソフトウェアは、下記からダウンロードできまESBます。し、並行処理で問題とスレッドが同じマシン上で非常に容易で並行処理を同じデータを異なる機?

基本的には、ソフトウェア請求を受ける飼料はお客様のデータから事業別のwebサービスしかし、お客様が存在していないかもしれないが、他のシステム。ない場合は、作成したwebサービス。でのテストとセットは、セマフォかのロックのその他の機器からレースが条件です。った状況を前に、リモート顧客を作成した回一つの地域は、お客様のようになっていることが望ましい。

ソんtoyedとの概念的には:

  1. 当社の誤り耐性の共有ファイルシステムを"ロック"のファイルを確認するための各機械によってお客様

  2. 専用テーブルデータベース、ロック全体を表すためには、"試験およびセット"をロックします。

  3. テラコッタを使用し、オープンソースサーバーソフトウェアをスケーリングによっては、ハブのポーモデルです。

  4. 使用EHCache同期複製のメモリー中の"ロックを解除します。"

想像できないことを私は一人の人とは一味違っていたこのような問題です。んですか?ただ料理も社内または好きな第3者による製品?

役に立ちましたか?

解決

も考えておいた方がよいでしょうを使用 Hazelcast 配布ロックを解除します。スーパーライトです。

java.util.concurrent.locks.Lock lock = Hazelcast.getLock ("mymonitor");
lock.lock ();
try {
// do your stuff
}finally {
   lock.unlock();
}

Hazelcast分散キュー、マップ、セットリストロック

他のヒント

テラコッタを使用していま思議です。

って以下のHazelcastという別の有望な技術が投票出来ませんので、私は使用しないでいることから使用P2Pに基づくシステムで聞いて、私はそんな信頼できる大型スケーリングです。

でも承っておりますの飼育係で、出てきたのは、ヤフーや移動の下で、Hadoopが含まれています。だ冒険しい新しい技術これは本当に多くのお約束でも無駄のないだけに注目。私のビジョンとの約束でも緑ます。

テラコッタは、"段階"モデル-すべてのクライアントアプリケーションの話、テラコッタサーバの配列(ますます重要なのはスケーさんと話した。のテラコッタサーバの配列ができる集積のための規模や性(ミラーは、可用性、ストライプ、スケール)です。●

合していなかったので、いったん英語表記に切り替えまた、柔軟性と使い勝手を重視する表現の並行処理のクラスターと同じ方法で行うことな単一のJVMによPOJO同期/wait/通知または利用のjava.util.同時プリミティブなどのReentrantReadWriteLock,CyclicBarrier、AtomicLong、FutureTaskいます。

多くの簡単なレシピを示すことで、これらのプリミティブの テラコッタCookbook.

一例として、今後のReentrantReadWriteLock例(りがございますので予めご了承がない"テラコッタ"バージョンのロック-あなただけの使用通常のJava ReentrantReadWriteLock)

import java.util.concurrent.locks.*;

public class Main
{
    public static final Main instance = new Main();
    private int counter = 0;
    private ReentrantReadWriteLock rwl = new ReentrantReadWriteLock(true);

    public void read()
    {
        while (true) {
            rwl.readLock().lock();
                try {
                System.out.println("Counter is " + counter);
            } finally {
                rwl.readLock().unlock();
            }
            try { Thread.currentThread().sleep(1000); } catch (InterruptedException ie) {  }
        }
    }

    public void write()
    {
        while (true) {
            rwl.writeLock().lock();
            try {
               counter++;
               System.out.println("Incrementing counter.  Counter is " + counter);
            } finally {
                 rwl.writeLock().unlock();
            }
            try { Thread.currentThread().sleep(3000); } catch (InterruptedException ie) {  }
        }
    }

    public static void main(String[] args)
    {
        if (args.length > 0)  {
            // args --> Writer
            instance.write();
        } else {
            // no args --> Reader
            instance.read();
        }
    }
}

私はお勧めします。 Redisson.を行っているにも30以上の分散データ構造およびサービスを含む java.util.Lock.使用例:

Config config = new Config();
config.addAddress("some.server.com:8291");
Redisson redisson = Redisson.create(config);

Lock lock = redisson.getLock("anyLock");
lock.lock();
try {
    ...
} finally {
   lock.unlock();
}

redisson.shutdown();

たちのアドバイスを瞬として非常に高速分散RAM蓄をグどうもEHCacheは同様のプロジェクトがjavaを中心と.

いずれかがそれをどう扱うかといつでも使用原子更新(瞬時に対応していEHCache).この拡張性のあるソリューション.

として関連datapoint、Googleを使って送り、高速RAMに基づく分散ロック保存の複数のシステム、そのBigTable.

そして、多くのコヒーレンスは、いくつかは複数の手法の実施のための分散型ロックになっています。のナイーブアプローチを求めるロックと同じ論理オブジェクトはすべての参加ノード。にコヒーレンス面したこのロックキーに複製します。このアプローチな規模での交通ネットワークリニアに増加して追加ノード。賢くために使用分散型キャッシュ、それぞれのノードのクラスターは当然の責任の一部にキースペースでロックをキーなどキャッシュを常に関わる通信と同時に一つ以上のノードです。きロール独自のアプローチはこうした考えに基づき、より良いものを得る。になっているので、拡張性のツールキットです。

また他の半分にも、複数のノードをネットワークに基づくロック機構において合理的に洗練された行動を正しくイベントのネットワークの故障です。

だがわかれば、全体の文脈でいて1単一のデータベースバックです。なぜないのデータベースのロック:の場合のお客様は単一の挿入後は、この文だとロックからのデータベースを拒否する第二の挿入をすることは一つの制約などそのお客様の氏名など)を行います。

場合、"挿入しお客様の操作ではない原子やバッチ式の諸表という紹介を使用)、初期の挿入を作る簡単な基本的な記録をお客様の必要性制約)とその他全ての挿入/更新の取引はない。再度のデータベースの整合性や他の同時修正また、っていないもの.

私は簡単なRMIサービスする方法ロックリリースになります。両方法ともにkey(データモデルを用いUuidとしてpkのようにしたもののロックを尊重できる方が希望です。

RMIがソリューションのためここでの中央集権.できないことEJBs(specialiallyナノクラスターを構成している機械話します。また、簡単です。

たところ、うまくいったのです。

できれば設定した負荷分散のよう要求は単一のお客様は常にマップされた同じサーバでその処理することができますこの地に同期します。たとえば、お客様のID mod10を見る10のノードを利用します。

なくてもいいの場合にはノードがプロキシは互いにこの特定の型申し上げます。

仮にユーザーの均一な(またトンの際に必要となります。が見つからないホットスポットをポップアップが一つのノードが過負荷、まだ規模ですね。

すものと考え Cacheonix 分散型ロックを解除します。ない"であることが明らかにされた。Cacheonix支援ReadWriteロックロックの激化から読み込み書きが必要となる

ReadWriteLock rwLock = Cacheonix.getInstance().getCluster().getReadWriteLock();
Lock lock = rwLock.getWriteLock();
try {
  ...
} finally {
  lock.unlock();
}

開:私はCacheonix ートします。

しておりますので、既に接続するデータベースに追加する前に他のインフラの作品これらを実現するために、 JdbcSemaphore, シンプルに使用

JdbcSemaphore semaphore = new JdbcSemaphore(ds, semName, maxReservations);
boolean acq = semaphore.acquire(acquire, 1, TimeUnit.MINUTES);
if (acq) {
 // do stuff
 semaphore.release();
} else {
  throw new TimeoutException();
}

の一部である、 spf4j 図書館があります。

の日に利用されています。特定の"ロックサーバー"ネットワークを扱います。Bleh.

データベースサーバが資源具体的にはこのようなものです。MS-SQLサーバ用ロックを使用可能に sp_getapplock/sp_releaseapplock 手続き

を開発しているオープンソース分布の同期の枠組みでは、現在DistributedReentrantLockとDistributedReentrantReadWriteロックを実装については、試験およびリファクタリングます。当社のロック建築の鍵を抽出できるバケツや各ノードはresonsible定数のバケットでその効果を上げるためにロックの結果の要求があり、ネットワーク。またAbstractQueuedSynchronizerクラスとして地元ロック状態ではない失敗したロック要求を取り扱う、この大幅な削減ネットワークの混雑.しJGroups(http://jgroups.org)のためのグループコミュニケーションおよびヘ直列化します。

詳細はチェックアウトをお願いい http://code.google.com/p/vitrit/.

教えて下さいな。

Kamran

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top