Assassin ⚡️ - 느린 웹페이지 제거
Assassin은 UI를 차단하는 데이터베이스 트랜잭션을 죽이는 작업을 수행합니다.
데이터베이스 작업은 느릴 수 있지만 기존 데이터베이스는 이 문제를 확실한 방법으로 해결하지 못합니다. 어려운 작업을 웹 작업자에게 아웃소싱하는 것입니다.
다음과 같은 데이터베이스를 만들고 싶었습니다.
- 오픈소스
- 반응형
- 탈중앙화
- 웹 작업자에게 최적화
- 비공개 브라우징을 위해 설계됨
그래서 저는 JavaScript로 나만의 데이터베이스를 만들었습니다.
특징 ?
? 경량 : 클라이언트 측 코드가 100줄 미만으로 제공됩니다.
⚖️ 분산형: 데이터베이스에는 단일 실패 지점이 없습니다. 서버가 다운되면 데이터를 쉽게 검색할 수 있습니다.
? 프라이빗 브라우징에서도 작동 : 저는 클라이언트측 스토리지로 IndexedDB를 사용하는 LevelDB, 파우치DB, Gun과 같은 데이터베이스를 조사했습니다. 저는 이러한 데이터베이스가 효과적이길 바랐지만 비공개 브라우징에서 IndexedDB가 비활성화되었기 때문에 부분적으로 이 데이터베이스를 만들게 되었습니다. 이는 이러한 데이터베이스 중 어느 것도 저에게 적합하지 않다는 것을 의미합니다.
방법:
-
killer.connect(url) - 서버에 연결합니다.
-
killer.create(key,value) - 데이터베이스에 항목을 추가합니다.
-
killer.update(key,new value) - 데이터베이스의 키 값을 업데이트합니다.
-
killer.delete(key) - 데이터베이스에서 항목을 삭제합니다.
-
데이터베이스 읽기 - 웹 워커나 메인 스레드 내에서 데이터베이스라는 변수를 통해 데이터베이스에 접근할 수 있습니다.
건축학:
-
데이터 모델: Assassin은 키를 해당 값에 매핑하는 것을 지원하는 키/값 저장소입니다.
-
시스템 아키텍처 : DAT 프로토콜은 여러 컴퓨터 간에 데이터를 배포하고 호스팅하므로 데이터가 저장되는 위치가 없습니다. Assassin은 데이터 지속성을 위해 DAT 프로토콜을 사용합니다. 키-값 쌍의 메타데이터는 분산 트리 구조로 저장됩니다.
-
격리 수준 : 격리 수준은 데이터베이스의 최종 사용자에 의해 결정됩니다. Assassin은 낮은 격리 수준을 갖도록 설계되었습니다.
-
스토리지 모델 : Assassin은 서버에 데이터를 전송하고 서버는 DAT 프로토콜을 기반으로 구축된 분산 파일 시스템 Hyperdrive에 메타데이터를 저장합니다. 데이터 자체는 여러 피어 간에 배포되고 호스팅됩니다.
-
고가용성 : Assassin은 가용성이 높고 일관성이 뛰어납니다. Assassin은 충돌이 발생할 때 항상 데이터베이스에 대한 마지막 편집 내용을 저장합니다. 이 CRDT는 나중에 변경될 수 있습니다.
왜 암살자라고 불리는가?
- 내 개인 웹사이트는 현재 Gun 데이터베이스를 사용하고 있습니다.
- Gun에는 내가 좋아하는 기능이 많이 있고 창립자가 꽤 친절합니다.
- 총이 작동을 멈췄어요.
- Gun의 스토리지 어댑터 RAD는 프라이빗 브라우징에서 비활성화되는 IndexedDB를 사용합니다.
- Gun은 WebRTC를 통해 데이터 P2P를 동기화하는데 웹 작업자에서는 작동하지 않습니다.
- Assassin은 Gun과 비슷하지만 웹 작업자를 위한 일종의(진짜, 아주 작은) 것입니다.
-
총잡이 = 암살자 ?
?
-
Hyperdrive - DAT 프로토콜 위에 추상화 계층을 구축해 주셔서 감사합니다!
- HTML - 웹 데모 생성용
- CSS - 웹 데모 스타일 지정
- JavaScript - 로직용
-
Node.js - 로직을 제공하기 위해
다음에 대한 의견을 공유하십시오.
- Assassin GitHub 저장소
- Gitter 서버
그리고 Assassin을 더 좋게 만드는 데 정말로 도움을 주고 싶다면 GitHub 저장소에 기여해 주세요!
Assassin은 오픈 소스이며 앞으로도 그럴 것입니다.
지원:
GitHub에서 저장소에 별표를 표시하고 트윗하고 친구, 팀, 연락처와 공유하세요!
위 내용은 Assassin ⚡️ - 느린 웹페이지를 종료하기 위한 오픈 소스 무료 데이터베이스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!