> 웹 프론트엔드 > JS 튜토리얼 > Assassin ⚡️ - 느린 웹페이지를 종료하기 위한 오픈 소스 무료 데이터베이스

Assassin ⚡️ - 느린 웹페이지를 종료하기 위한 오픈 소스 무료 데이터베이스

DDD
풀어 주다: 2025-01-06 03:24:48
원래의
764명이 탐색했습니다.

Assassin ⚡️ - 느린 웹페이지 제거

Assassin은 UI를 차단하는 데이터베이스 트랜잭션을 죽이는 작업을 수행합니다.

데이터베이스 작업은 느릴 수 있지만 기존 데이터베이스는 이 문제를 확실한 방법으로 해결하지 못합니다. 어려운 작업을 웹 작업자에게 아웃소싱하는 것입니다.

Assassin ⚡️ - An open source, free database for killing slow webpages

다음과 같은 데이터베이스를 만들고 싶었습니다.

  • 오픈소스
  • 반응형
  • 탈중앙화
  • 웹 작업자에게 최적화
  • 비공개 브라우징을 위해 설계됨

그래서 저는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿