See the engineering behind real-time personalization at Tripadvisor’s massive (and rapidly growing) scale ඔබ කුමන ආකාරයේ සංචාරකයෙක්ද?Tripadvisor ඔබ වෙබ් අඩවියට සම්බන්ධ වන විට මෙය අගය කිරීමට උත්සාහ කරයි, එවිට සෑම ක්ලික් කිරීමකටම ඔබට වඩාත් වැදගත් තොරතුරු ලබා දෙයි - මිලිසැප්ටරයක් ඇතුළත.මේ පෞද්ගලිකත්වය AWS හි ක්රියාත්මක වන ScyllaDB මත ගබඩා වන දත්ත මත ක්රියාත්මක වන උසස් ML ආකෘති විසින් බලපායි. මෙම ලිපියේ දී, ඩේන් Poulin (Tripadvisor දත්ත ඉංජිනේරු නායකයා AI සේවා සහ නිෂ්පාදන කණ්ඩායම) මෙම පෞද්ගලිකත්වයට බලපාන්නේ කෙසේදැයි බලන්න. එය AWS re:Invent talk මත පදනම් වේ: Pre-Trip මාර්ගෝපදේශය ඩින්ගේ වචන වලට අනුව... 2000 දී ආරම්භ කරන ලද Tripadvisor, සංචාරක සහ ආචාරශීලී ගනුදෙනුවල ගෝලීය නායකයා බවට පත් වී ඇති අතර, සංචාරක මිලියන ගණනක් ඔවුන්ගේ පරිපූර්ණ ගමන සැලසුම් කිරීමට උදව් කර ඇත. Tripadvisor ආදායම් බිලියන 1.8 කට වඩා වැඩි වන අතර, NASDAQ වෙළෙඳපොළේ පොදු වෙළෙඳ සමාගමක් වේ. ඕනෑම දිනක දී, අපගේ පද්ධතිය 25 සිට 50 මිලියන පරිශීලකයින්ගෙන් මිලියන 2 කට වඩා වැඩි ඉල්ලීම් ප්රතිකාර කරයි. Tripadvisor හි සෑම ක්ලික් කිරීමක්ම සැබෑ කාලය තුළ ක්රියාත්මක වේ. එයින් පසු, අපි පෞද්ගලික උපදෙස් ලබා දීම සඳහා යන්ත්ර ඉගෙනුම් ආකෘති භාවිතා කරමු - ඔබට ඒ පරිපූර්ණ ගමනට ළඟා කරමු. මෙම පෞද්ගලිකත්ව යන්ත්රයේ හදවත ScyllaDB AWS මත ක්රියාත්මක වේ. . 425K operations per second on ScyllaDB with P99 latencies for reads and writes around 1-3 milliseconds මම Tripadvisor සෑම පරිශීලකයා සඳහා පෞද්ගලික නිර්දේශ ලබා දීම සඳහා ScyllaDB, AWS, සහ සැබෑ කාලීන යන්ත්ර ඉගෙනීමේ ශක්තිය භාවිතා කරන්නේ කෙසේද යන්න අපි සංචාරකයින්ට ඔවුන්ගේ පරිපූර්ණ ගමන සැලසුම් කිරීම සඳහා අවශ්ය සියලු දේ සොයා ගැනීමට උදව් කරන ආකාරය පරීක්ෂා කරමු: එය සැඟවුණු තෑගි සොයාගැනීම, නොසැලකිලිමත් අත්දැකීම්, නොසැලකිලිමත් අත්දැකීම් හෝ නවාතැන් කිරීමට හොඳම ස්ථාන. පෞද්ගලික Trip Planning ඔබ Tripadvisor මුල් පිටුව මත පැමිණෙන විට, Tripadvisor දැනටමත් ඔබ කෑම, විනෝදාංශයක් හෝ වෙරළට ආදරය කරන බව දන්නා අතර, ඔබ ඔබේම උනන්දුවන්ට පෞද්ගලිකව සකස් කරන ලද නිර්දේශ දකිනවා. ඔබ Tripadvisor වටේ පාවිච්චි කරන විට, අපි ඔබ දකින දේ පෞද්ගලිකව පෞද්ගලිකව පාවිච්චි කිරීමට පටන් ගනිමු යන්ත්ර ඉගෙනුම් ආකෘති මගින් ඔබගේ වර්තමානයේ සහ පෙර පාවිච්චි කරන ක්රියාකාරකම් මත පදනම්ව ලකුණු ගණනය කරන්න. අපි ඔබට උනන්දුවක් දක්වන හෝටල් සහ අත්දැකීම් නිර්දේශ කරමු. අපි ඔබගේ පෞද්ගලික කැමැත්ත අනුව හෝටල් සංසන්දනය කරමු. Tripadvisor සේවය කරන ආකෘතිය Tripadvisor යනු Kubernetes on-prem සහ Amazon EKS හි සිය ගණනක් ස්වාධීනව පුළුල් කළ හැකි microservices මත ක්රියා කරයි. මෙම ගුවන්තොටුපල සේවාව පාරිභෝගික සේවා වලින් 100 කට වඩා වැඩි ML ආකෘති ඉවත් කරයි – එය අපගේ අත්හදා බැලීම් පද්ධතිය භාවිතා කිරීමෙන් හොඳම ආකෘති සොයා ගැනීමට A / B පරීක්ෂණ ක්රියාත්මක කිරීමට අපට ඉඩ සලසයි. ML ආකෘති ප්රධාන වශයෙන් අපගේ දත්ත විද්යාඥයන් සහ යන්ත්ර ඉගෙනුම් ඉංජිනේරුවන් විසින් Kubeflow හි Jupyter Notebooks භාවිතා කර ඇත. ඔවුන් ML Flow භාවිතා කිරීමෙන් කළමනාකරණය හා පුහුණු කර ඇත, අපි Kubernetes හි Seldon Core මත ඔවුන් ස්ථාපනය කරමු. Custom Feature වෙළඳසැල විශේෂාංග වෙළඳසැල ප්රධාන වශයෙන් පරිශීලක විශේෂාංග සහ ස්ටීක් විශේෂාංග සේවය කරයි. ස්ටීක් විශේෂාංග රඳවාගෙන යන්නේ Redis හි, මොකද ඒවා බොහෝ විට වෙනස් නොවේ.අපි දිනපතා දත්ත pipelines ක්රියාත්මක කර අපගේ ඔන්ලයින් දත්ත ගබඩා අපගේ විශේෂාංග වෙළඳසැලට ස්ටීක් විශේෂාංග ලෙස දත්ත උඩුගත කිරීමට. පරිශීලක විශේෂාංග සැබෑ කාලය තුළ Visitor Platform ලෙස හැඳින්වෙන වේදිකාවක් හරහා සපයනු ලැබේ.We execute dynamic CQL queries against ScyllaDB, and . we do not need a caching layer because ScyllaDB is so fast අපගේ Feature Store තත්පරයට මිලියන 5 ක් සහ තත්පරයට මිලියන භාගයක් පරිශීලක විශේෂාංග සපයයි. ML Feature යනු කුමක්ද? Features are input variables to the ML Models that are used to make a prediction.There are Static Features and User Features. Static Features උදාහරණයක් ලෙස, අවන්හලට ලැබුණු තෑග්ගක් හෝ හෝටලයක ලබා දෙන පහසුකම් (උදාහරණයක් ලෙස නොමිලේ Wi-Fi, සුරතල් සතුන් මිත් රත්වය හෝ ශරීර මධ්යස්ථානය) වේ. පරිශීලක විශේෂාංග සැබෑ කාලය තුළ රැස් කරනු ලබන්නේ පරිශීලකයින් වෙබ් අඩවියේ පාවිච්චි කරන විට.අපි ඒවා ScyllaDB තුළ රඳවාගෙන ඇත, එබැවින් අපි ඉක්මන් ප්රශ්න ලබා ගත හැකිය.විශේෂ පරිශීලක විශේෂාංග සමහර උදාහරණ පසුගිය 30 මිනිත්තු තුළ බැලූ හෝටල්, පසුගිය 24 පැය තුළ බැලූ අවන්හල, හෝ පසුගිය 30 දින තුළ ඉදිරිපත් කරන ලද සමාලෝචන. The Technologies Powering Visitor Platform වෙත පිවිසීමේ හැකියාව ScyllaDB යනු Visitor Platform හි මූලස්ථානයකි. අපි Java මත පදනම් වන Spring Boot microservices භාවිතා කරන්නේ අපගේ ගනුදෙනුකරුවන්ට වේදිකාව ප්රදර්ශනය කිරීම සඳහා. මෙය AWS ECS Fargate මත ස්ථාපනය කර ඇත. අපි දිනපතා දත්ත රඳවා ගැනීම සඳහා Kubernetes මත Apache Spark ක්රියාත්මක කරමු, අපගේ ඔන්ලයින් කාර්යයන් සමඟ අමුත්තන් කාර්යයන් සඳහා. එවිට අපි අපගේ ඔන්ලයින් දත්ත ගබඩාව සිට ScyllaDB වෙත දත්ත උඩුගත කිරීමට මෙම කාර්යයන් භාවිතා කරමු. සංචාරක වේදිකාව Data Flow පහත ග්රැෆික් දර්ශනයෙන් දත්ත අපේ වේදිකාව හරහා ක්රියාත්මක කරන ආකාරය පෙන්නුම් කරයි: නිෂ්පාදනය කිරීම, අනුභව කිරීම, සංවිධානය කිරීම සහ ක්රියාත්මක කිරීම. දත්ත අපගේ වෙබ් අඩවිය සහ අපගේ ජංගම යෙදුම් විසින් නිෂ්පාදනය කරනු ලැබේ. ඒ දත්ත සමහරක් ඇතුළත් වේ අපගේ Cross-Device User Identity Graph, Behavior Tracking events (like page views and clicks) and streaming events that go through Kinesis. Also, audience segmentation is loaded into our platform. Visitor Platform හි microservices මෙම දත්ත එකතු කිරීම හා සංවිධානය කිරීම සඳහා භාවිතා වේ. Visitor Identity Graph ඇතුළත් වන Visitor Core KeySpace Visitor Metric keyspace, Facts and Metrics (ඔවුන් වෙබ් අඩවියට පිවිසෙන විට ජනතාව කරන දේවල්) අපි දත්ත නිෂ්පාදන නිෂ්පාදනය, සෑම දිනකම, අපගේ ඔන්ලයින් දත්ත ගබඩාව තුළ - එහිදී ඔවුන් භාවිතා කළ හැකි අනෙකුත් සම්පාදන සහ අනෙකුත් දත්ත pipelines සඳහා භාවිතා කළ හැකිය. මෙන්න සංචාරක වේදිකාව සංඛ් යාව අනුව: ඇයි දත්ත දෙකක්? අපගේ ඔන්ලයින් බැංකුව සැබෑ කාලීන, සජීවී වෙබ් අඩවියේ ප් රවාහන මත අවධානය යොමු කරයි. ScyllaDB ඉතා අඩු පැතිරීම සහ ඉහළ ප්රවාහන ප්රමාණයක් ලබා දීමෙන් මෙම කාර්යභාරය ඉටු කරයි. අප අන්තර්ජාල බැංකුවෙහි දත්ත සීමිතව වර්ධනය නොකිරීමට කෙටි කාලීන TTLs භාවිතා කරයි, අපගේ දත්ත රඳවා ගැනීමේ කාර්යයන් අපි සැබෑ පරිශීලකයන් සඳහා පමණක් පරිශීලක ක්රියාකාරීත්වය දත්ත රඳවා තබා ගැනීමට සහතික කරයි. Tripadvisor.com බොහෝ බෝට් ට්රැප්ට් ලබා ගනී. අපගේ ඔන්ලයින් දත්ත ගබඩාව වාර්තා කිරීම, වෙනත් දත්ත නිෂ්පාදන නිර්මාණය කිරීම සහ අපගේ ML ආකෘති පුහුණු කිරීම සඳහා භාවිතා කරන ඓතිහාසික දත්ත ගබඩා කරයි.අපි අපේ සජීවී වෙබ් අඩවියේ ක්රියාකාරිත්වයට බලපාන විශාල ඔන්ලයින් දත්ත ක්රියාවලි අවශ් ය නැත. Microservices මයික්රෝ සේවා අපි Visitor Platform සඳහා 5 microservices භාවිතා කරනවා: Visitor Core කුකීස් සහ උපාංගය ID මත පදනම්ව පරිශීලකයාගේ පරිශීලක හැඳුනුම්පත ග්රැෆික් කළමනාකරණය කරයි. Visitor Metric යනු අපගේ ප්රශ්න යන්ත්රය වන අතර එය නිශ්චිත සංචාරකයින් සඳහා සත් යයන් සහ ප්රමාණයන් ඔප්පු කිරීමට අපට හැකියාව සපයයි.We use a domain specific language called visitor query language, or VQL.This example VQL lets you see the latest trade click facts over the last three hours. Visitor Publisher සහ Visitor Saver පරිපාලනය කරන්නේ ලිවීමේ මාර්ගය, පද්ධතියට දත්ත ලිවීමයි.ScyllaDB හි දත්ත රඳවා ගැනීම හැර, අපි දත්ත ඔන්ලයින් දත්ත ගබඩා වෙත දර්ශනය කරමු.එය Amazon Kinesis සමඟ සිදු වේ. Visitor Composite සංචාරකයන් හඳුනා ගැනීම සඳහා Visitor Saver සහ Visitor Core ආකර්ෂණය කිරීම සහ එක් එක් API ඇමතුමක් තුළ සත් යයන් සහ ප්රමාණයන් ප්රකාශ කිරීමයි. Roundtrip Microservice Latency පිළිබඳ තොරතුරු මෙම ග්රැෆික් අපගේ මයික්රොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොසොස ප්රමාණවත් වේලාව පමණක් 2.5 මිලිසැප්ටරයක්, සහ අපගේ P999 මිලිසැප්ටර 12.5 කට අඩු වේ. අපගේ මයික්රොසෙස් සේවා පාරිභෝගිකයන් දැඩි ප්රමාණයේ ප්රමාණයේ අවශ්යතා ඇත. 95% ඇමතුම් 12 මිලිසංඩි හෝ අඩු කාලයක් තුළ සම්පූර්ණ කළ යුතුය. ScyllaDB පරමාර්ථය මෙන්න ScyllaDB හි දින තුනක ප් රතිඵලයක්. ඉහළ මට්ටමකදී, ScyllaDB තත්පරයේදී 340,000 ක්රියාකාරකම් කළමනාකරණය කරයි (විශේෂයෙන් ලිවීම, කියවීම සහ විවෘත කිරීම ඇතුළත් කර ඇත) සහ CPU ක්රියාකාරකම් 21% ක් පමණ වේ. ScyllaDB අපට microsecond ලිවීම සහ millisecond කියවීම ලබා දෙයි. ScyllaDB වෙත දත්ත බෙදා හැරීම මෙම ඡායාරූපය ScyllaDB වෙත දත්ත බෙදාහැරීමේ ආකාරය පෙන්වයි. Visitor Metric Keyspace හි මේස දෙකක් ඇත: Fact සහ Raw Metrics. Fact Table හි ප්රධාන යතුර Visitor GUID, Fact Type, and Created At Date වේ. Composite Partition key is the Visitor GUID and Fact Type. Clustering key is Created At Date, which allows us to sort data in partitions by date. Attributes column contains a JSON object representing the event that occurred there. Some example Facts are Search Terms, Page Views, and Bookings. අපි ScyllaDB හි Leveled Compaction Strategy භාවිතා කරන්නේ: ප්රමාණය ප්රශ්න සඳහා පරිශීලක High cardinality ඉතා හොඳින් කටයුතු කරයි. එය කියවීමේ බර වැඩපිළිවෙළ සඳහා වඩා හොඳයි, අපි ලිවීමට වඩා 2-3x වැඩි කියවීමක් ඇත. ඇයි ScyllaDB? අපගේ විසඳුම ආරම්භයේ දී Cassandra on-prem භාවිතා කරමින් ඉදිකිරී තිබුණා. නමුත් ප්රමාණය වර්ධනය වන විට මෙහෙයුම් ප්රමාණය එසේ විය. අපි දත්ත පද්ධති යාවත්කාලීන කිරීම්, backups, ආදිය කළමනාකරණය කිරීම සඳහා විශේෂිත මෙහෙයුම් සහාය අවශ්ය වේ.එසේම, අපගේ විසඳුම ප්රධාන අමුද්රව්ය සඳහා ඉතා අඩු පැතිරීම අවශ්ය වේ. අපගේ පරිශීලක හැඳුනුම්පත කළමනාකරණය පද්ධතිය 30 මිලිසංඩි ඇතුළත පරිශීලකයා හඳුනා ගත යුතුය – සහ හොඳම පෞද්ගලිකත්වය සඳහා, අපගේ සිදුවීම් අනුගමනය පද්ධතිය 40 මිලිසංඩි ඇතුළත ප්රතිචාරය කිරීමට අවශ්ය වේ. අපි ScyllaDB සමඟ Proof of Concept ක්රියාත්මක කර ඇති අතර Cassandra ට වඩා හොඳ ප්රවාහන ප්රවාහන ප්රතිලාභයක් ඇති බව සොයා, මෙහෙයුම් බාධාව අවලංගු විය. අපි සම්පූර්ණයෙන්ම කළමනාකරණය කළ හැකි විකල්පයක් අවශ්ය නිසා, අපි කැසෑඩ්රා සිට ScyllaDB Cloud වෙත මාරු කර, ද්විත්ව ලිවීමේ උපායමාර්ගයක් අනුගමනය කරන ලදී.මේ නිසා අපි තත්පර 40,000 ක් හෝ ඉල්ලීම් ක්රියාත්මක කරන අතර කිසිදු නතර වේලාවකින් මාරු කිරීමට ඉඩ දුන්නා.පස්සෙ, අපි ScyllaDB Cloud වෙතින් ScyllaDB හි "ඔබගේ ගිණුම ගෙනියන්න" ආකෘතිය වෙත මාරු කරමු, එහිදී ඔබට ScyllaDB කණ්ඩායම ඔබේ AWS ගිණුමට ScyllaDB දත්ත පදනම ස්ථාපනය කළ හැකිය. මෙම දර්ශනය ScyllaDB හි BYOA ස්ථාපනය ආකාරය පෙන්වයි. පින්තූරයේ මධ් යස්ථානයේ, EC2 මත ක්රියාත්මක වන 6-නොඩ් ScyllaDB කූඩුව දැක ගත හැකිය. ScyllaDB Monitor අපට Grafana ආකෘති සහ Prometheus ප්රමාණයන් ලබා දෙයි. ScyllaDB කළමනාකරණය backup සහ ප්රතිලාභ ක්රියාත්මක කිරීම වැනි ආයුධ ස්වයංක්රියාත්මක කිරීම ගැන සැලකිලිමත් වේ. මෙම ස්ථාපනය කිරීමෙන්, ScyllaDB අපගේ මයික්රෝ සේවා අසල ඉතා සමීපව ස්ථාපනය කළ හැකි අතර එය අපට වඩාත් පහසු ප්රමාණයන් සහ වඩාත් උසස් ප්රමාණයන් සහ කාර්ය සාධක ලබා දෙයි. මුලින්ම, මම බලාපොරොත්තු වෙමි ඔබ දැන් අපගේ ආකෘතිය, වේදිකාව ශක්තිමත් කරන තාක්ෂණය, සහ ScyllaDB අප Tripadvisor අතිශයින් උසස් ප්රමාණයට කටයුතු කිරීමට ඉඩ සලසා ගැනීමට ක්රියා කරන ආකාරය ගැන හොඳින් තේරුම් ගැනීමට. Cynthia Dunlop ගැන Cynthia ScyllaDB හි අන්තර්ගත උපාය මාර්ගයේ උසස් අධ් යක්ෂවරයකු වන අතර ඇය වසර 20 කට වැඩි කාලයක් තිස්සේ මෘදුකාංග සංවර්ධනය හා ගුණාත්මක ඉංජිනේරු ගැන ලියනවා.