데이터베이스에서 데이터를 직렬화 및 역 직렬화하는 가장 빠르고 / 가장 좋은 방법

user2791904

몇 달 안에 학사 논문을 쓰기 시작할 것입니다. 제 논문의 주제를 매우 대략적으로 만 논의했지만 주요 문제는 다음과 같습니다.

C ++로 작성된 프로그램 (약간 HTTP- 서버이지만 여기서는 중요하지 않음)을 실행하여 작업을 수행해야합니다. 동시에 실행되는이 프로그램의 여러 인스턴스가 있으며로드 밸런서는 모든 인스턴스간에 http- 요청을 균등하게 분배합니다. 프로그램의 코드를 개선하거나 버그를 제거하기 위해 변경 될 때마다 모든 인스턴스를 다시 시작해야합니다. 한 인스턴스에 대해 최대 40 분이 걸릴 수 있습니다. 실행중인 인스턴스가 10 개 이상이므로 다시 시작 프로세스에 최대 하루가 걸릴 수 있습니다. 이것은 속도를 늦추는 방법입니다.

예상되는 병목 현상은 시작 중에 필요한 모든 데이터를로드하기 위해 데이터베이스에 액세스하는 것입니다 (mysql-database가 될 것으로 예상). 시작 프로세스에 필요한 시간을 줄이려는 팀 리더의 아이디어는 데이터베이스의 내용을 파일로 직렬화하고 데이터베이스에서 읽는 대신이 파일에서 읽는 것입니다. 그게 내 임무입니다. 물론 문제는 데이터베이스에 파일에없는 새 데이터가 있는지 확인하는 것입니다. 쓰기 프로세스는 직렬화 된 파일이 아닌 데이터베이스에 여전히 적용되는 것 같습니다. 내 첫 번째 아이디어는 직렬화 및 역 직렬화에 아파치 절약을 사용하는 것입니다. 이미 작업을 수행했으며 내가 아는 한 빠릅니다 (아마도 이것을 처리하기 위해 작은 파이썬 프로그램을 작성했을 것입니다). 그러나이 문제에 대한 몇 가지 기본적인 질문이 있습니다.

  • 데이터베이스에서 읽는 대신 파일에서 읽는 것이 좋은 솔루션입니까? 이것이 시간을 절약 할 가능성이 있습니까?
  • 절약이이 시나리오에서 잘 작동합니까 아니면 직렬화 / 역 직렬화를위한 더 빠른 방법이 있습니까?
  • 글을 쓰지 않고 읽기만하기 때문에 일관성을 신경 쓸 필요가 없죠?
  • 이 주제에 관해 읽을 가치가있는 책이나 온라인 문헌을 추천 해 주시겠습니까?

정보가 없으면 물어보십시오. 미리 감사드립니다. 논문을 시작하기 전에 잘 알고 준비하고 싶을뿐입니다. 이것이 제가 묻는 이유입니다.

종류 안부

남자 이름

JensG

캐시가 왕

일반적인 권장 사항 : 캐시가 왕이지만 파일을 사용하지 마십시오.

은닉처? 무슨 캐시?

제가 말하는 캐시는 물론 외부 캐시입니다. 사용 가능한 많은 시스템이 있으며, 많은 시스템이 여러 시스템의 RAM에 분산 된 캐시 된 항목으로 캐시 클러스터를 형성 할 수 있습니다. 현명하게 수행한다면, 메모리로 직렬화 / 역 직렬화하는 비용은 데이터베이스를 연마하는 비용에 비해 알고리즘을 빛나게 할 것입니다. 또한 캐시 된 데이터에 대한 TTL, 비즈니스 로직이 충돌하더라도 지속되는 캐시 등과 같은 멋진 기능을 얻을 수 있습니다.

일관성은 어떻습니까?

글을 쓰지 않고 읽기만하기 때문에 일관성을 신경 쓸 필요가 없죠?

잘못된. 문제는 누가 데이터베이스에 쓰는가 가 아닙니다 . 그것은 관한 여부 누군가 이런 일이 발생하는 빈도를 데이터베이스에 쓰기, 얼마나 최신의 데이터가 있어야합니다.

질문에서 계획 한대로 데이터를 파일에 캐시하더라도 원래 데이터 원본과 연결이 끊어진 중복 데이터 중복이 생성된다는 점을 알고 있어야합니다. 그래서 당신이 대답해야 할 진짜 질문은 (나는 당신을 위해 이것을 할 수 없습니다) 최적의 업데이트 빈도가 무엇이어야 하는가입니다. 가까운 시간에 즉각적인 업데이트가 필요합니까? 특정 시간 지연이 허용됩니까?

이것이 바로 캐시 된 데이터에 넣을 수있는 TTL (Time to Live) 값의 목적입니다. 더 자주 업데이트해야하는 경우 짧은 TTL을 설정하십시오. 느린 빈도로 업데이트해도 괜찮다면 그에 따라 TTL을 설정하거나 업데이트를 수행하는 예약 된 작업 / 스레드 / 프로세스를 실행하십시오.

알겠습니다. 이제 뭐?

Redis 또는 "oldtimer"Memcached를 확인하십시오 . 플랫폼에 대해 많이 언급하지는 않았지만 두 가지 모두에 사용할 수있는 Linux 및 Windows 버전이 있습니다 (특히 Windows에서는 Redis를 사용하면 훨씬 더 재미있을 것입니다).

추신 : 네, Thrift 직렬화는 직렬화 부분에 사용할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

직렬화와 역 직렬화 사이에 직렬화 관련 정보를 저장하는 가장 좋은 방법

분류에서Dev

영역-Azure에서 데이터를 동기화하는 가장 좋은 방법

분류에서Dev

개체를 관리하고 직렬화하는 가장 좋은 방법

분류에서Dev

회사 및 직원 데이터를 저장하는 가장 좋은 방법

분류에서Dev

루프 내에서 직렬화 된 카운터 변수를 병렬화하는 가장 좋은 방법

분류에서Dev

JSON 역 직렬화 및 MySQL 데이터베이스에 개체 저장

분류에서Dev

Pandas에서 데이터를 그룹화하고 정렬하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

dart에서 중첩 된 Tuple2 배열을 직렬화 / 역 직렬화하는 가장 좋은 방법은 무엇입니까 (List <List <Tuple2 >>)

분류에서Dev

C #에서 부울 변수에 대한 직렬화 역 직렬화를 수행하는 가장 간단한 방법은 무엇입니까?

분류에서Dev

Java에서 OpenCV YAML 교정 데이터를 우아하게 직렬화하고 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

mysql 데이터베이스를 시각화하는 가장 좋은 방법

분류에서Dev

데이터베이스 업데이트 (ASP.NET 및 JQuery) 직후 UI를 업데이트하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

ArrayList를 다른 동작을 갖는 목록에 JSON 개체를 역 직렬화하는 가장 좋은 방법은 무엇입니까

분류에서Dev

파일에서 개체를 역 직렬화 및 재 직렬화하는 데 문제가있는 C # JSON.net

분류에서Dev

중복 자식 엔터티가있는 데이터베이스에 역 직렬화 된 JSON 개체 저장

분류에서Dev

MVC에서 JSON 데이터를 역 직렬화하는 방법

분류에서Dev

위도 / 경도를 가져 오기 위해 MySQL에서 다각형 데이터를 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

2D 매트릭스를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

RenderedImage를 텍스트 문자열로 직렬화 및 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

Dynamodb 덤프 파일 데이터를 역 직렬화하는 방법 / 라이브러리가 있습니까?

분류에서Dev

유형 직렬화 / 직렬화 해제를 위해이 확장 방법을 가장 잘 표현하는 방법

분류에서Dev

actix 웹 양식 데이터를 역 직렬화하고 CSV 파일로 직렬화하는 방법은 무엇입니까?

분류에서Dev

Postgres 용 C #에서 테이블 필드의 데이터베이스 데이터 유형을 얻는 가장 빠르고 빠른 방법은 무엇입니까?

분류에서Dev

이미지를 데이터베이스에 저장하고 검색하는 가장 좋은 방법

분류에서Dev

std :: vector <bool>을 가장 효율적으로 직렬화 / 역 직렬화하는 방법은 무엇입니까?

분류에서Dev

룸 데이터베이스에서 제공하는 LiveData를 "새로 고침"하는 가장 좋은 방법

분류에서Dev

데이터를 저장하고 동시에 목록을 정렬하는 가장 좋은 방법

분류에서Dev

데이터베이스 테이블에서 ADMIN 및 USERS 항목을 분리하는 가장 좋은 방법

Related 관련 기사

  1. 1

    직렬화와 역 직렬화 사이에 직렬화 관련 정보를 저장하는 가장 좋은 방법

  2. 2

    영역-Azure에서 데이터를 동기화하는 가장 좋은 방법

  3. 3

    개체를 관리하고 직렬화하는 가장 좋은 방법

  4. 4

    회사 및 직원 데이터를 저장하는 가장 좋은 방법

  5. 5

    루프 내에서 직렬화 된 카운터 변수를 병렬화하는 가장 좋은 방법

  6. 6

    JSON 역 직렬화 및 MySQL 데이터베이스에 개체 저장

  7. 7

    Pandas에서 데이터를 그룹화하고 정렬하는 가장 좋은 방법은 무엇입니까?

  8. 8

    C #을 사용하여 XML 파일에서 데이터를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

  9. 9

    dart에서 중첩 된 Tuple2 배열을 직렬화 / 역 직렬화하는 가장 좋은 방법은 무엇입니까 (List <List <Tuple2 >>)

  10. 10

    C #에서 부울 변수에 대한 직렬화 역 직렬화를 수행하는 가장 간단한 방법은 무엇입니까?

  11. 11

    Java에서 OpenCV YAML 교정 데이터를 우아하게 직렬화하고 역 직렬화하는 방법은 무엇입니까?

  12. 12

    mysql 데이터베이스를 시각화하는 가장 좋은 방법

  13. 13

    데이터베이스 업데이트 (ASP.NET 및 JQuery) 직후 UI를 업데이트하는 가장 좋은 방법은 무엇입니까?

  14. 14

    ArrayList를 다른 동작을 갖는 목록에 JSON 개체를 역 직렬화하는 가장 좋은 방법은 무엇입니까

  15. 15

    파일에서 개체를 역 직렬화 및 재 직렬화하는 데 문제가있는 C # JSON.net

  16. 16

    중복 자식 엔터티가있는 데이터베이스에 역 직렬화 된 JSON 개체 저장

  17. 17

    MVC에서 JSON 데이터를 역 직렬화하는 방법

  18. 18

    위도 / 경도를 가져 오기 위해 MySQL에서 다각형 데이터를 역 직렬화하는 방법은 무엇입니까?

  19. 19

    2D 매트릭스를 직렬화 및 역 직렬화하는 방법은 무엇입니까?

  20. 20

    RenderedImage를 텍스트 문자열로 직렬화 및 역 직렬화하는 방법은 무엇입니까?

  21. 21

    Dynamodb 덤프 파일 데이터를 역 직렬화하는 방법 / 라이브러리가 있습니까?

  22. 22

    유형 직렬화 / 직렬화 해제를 위해이 확장 방법을 가장 잘 표현하는 방법

  23. 23

    actix 웹 양식 데이터를 역 직렬화하고 CSV 파일로 직렬화하는 방법은 무엇입니까?

  24. 24

    Postgres 용 C #에서 테이블 필드의 데이터베이스 데이터 유형을 얻는 가장 빠르고 빠른 방법은 무엇입니까?

  25. 25

    이미지를 데이터베이스에 저장하고 검색하는 가장 좋은 방법

  26. 26

    std :: vector <bool>을 가장 효율적으로 직렬화 / 역 직렬화하는 방법은 무엇입니까?

  27. 27

    룸 데이터베이스에서 제공하는 LiveData를 "새로 고침"하는 가장 좋은 방법

  28. 28

    데이터를 저장하고 동시에 목록을 정렬하는 가장 좋은 방법

  29. 29

    데이터베이스 테이블에서 ADMIN 및 USERS 항목을 분리하는 가장 좋은 방법

뜨겁다태그

보관