최상위 10_Wiki/Topic_*였던 4개 카테고리 폴더를 10_Wiki/Topics/Topic_* 로 재배치.
콘텐츠 변경 없음(순수 폴더 이동) — Topics/ 하위 나머지 폴더는 이미 지난 커밋에서
전부 정리된 상태(잔존 항목은 에이전트 운영 상태 및 사용자가 보존을 요청한
업데이트0615/무제 3.canvas 뿐).
"매 distributed RAM 의 partitioned + replicated 의 통한 sub-ms key-value + compute 의 horizontal scale". 매 Oracle Coherence (2001) 의 commercial origin, 매 Hazelcast (2008) / Apache Ignite (2014) 의 OSS 의 popularization — 매 modern 의 Redis Cluster + Apache Ignite + Hazelcast 5.x 의 dominant.
매 핵심
매 IMDG vs Distributed Cache
Cache (Redis, Memcached): 매 read-through, eviction-driven, simple K/V.
HazelcastInstancehz=Hazelcast.newHazelcastInstance();IMap<String,Order>orders=hz.getMap("orders");orders.put("o-123",newOrder(...));Ordero=orders.get("o-123");// sub-ms// Pessimistic lock 의 partition-localorders.executeOnKey("o-123",entry->{Ordercur=entry.getValue();cur.markPaid();entry.setValue(cur);returnnull;});
Apache Ignite — SQL over Cache
IgniteConfigurationcfg=newIgniteConfiguration();Igniteignite=Ignition.start(cfg);CacheConfiguration<Long,Person>ccfg=newCacheConfiguration<>("Person");ccfg.setIndexedTypes(Long.class,Person.class);IgniteCache<Long,Person>cache=ignite.getOrCreateCache(ccfg);List<List<?>>rows=cache.query(newSqlFieldsQuery("SELECT name, salary FROM Person WHERE salary > ? ORDER BY salary DESC").setArgs(100_000)).getAll();
언제: IMDG 의 sizing 의 estimate, partition strategy 의 review, Hazelcast/Ignite config 의 generate.
언제 X: 매 production 의 capacity planning 의 final sign-off (real workload benchmark 필수).
❌ 안티패턴
Distributed monolith state: 매 service 의 IMDG 의 shared mutable state — 매 hidden coupling.
N+1 across grid: client-side loop 의 단일 키 fetch — 매 batch API 의 use.
No backup count: backup=0 → 매 node loss 의 data loss.
Serialization neglect: default Java serialization → 매 slow + bloated, 매 IdentifiedDataSerializable / Compact 의 use.
Treating IMDG as durable DB: 매 persistence 의 explicit config 없이 → restart 의 data loss.