IP Library Granted Patent US 12,587,578
Granted Patent B2
US 12,587,578 · App. 17/504,228 · Granted Mar 24, 2026

Systems and methods for providing real-time streaming data processing at edge servers

Inventors: Peter Wilczynski (San Francisco, CA); Daniel Zangri (San Francisco, CO); Jeffrey Martin (New York, NY); Robert Imig (Austin, TX); Wenshuai Hou (Arlington, VA)
Assignee: Palantir Technologies Inc.
H04L65/765H04L65/61H04L67/289H04W4/021H04W4/029
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,587,578
App. No.
17/504,228
Granted
Mar 24, 2026
Kind
B2
Abstract

Systems and methods provide synchronizing edge server code among a plurality of edge servers. Systems and methods provision, to a plurality of edge servers, an updated version of transform code adapted to perform real-time processing on real-time streaming data that are received by the plurality of edge servers, receive real-time transformed data from at least one of the plurality of edge servers, detect that the received real-time transformed data from the at least one of the plurality of edge servers was generated using a previous version of transform code and perform one or more transform operations corresponding to the updated version of transform code on the received real-time transformed data, until the received transformed data is in a form consistent with the updated version of provisioned transform code.

Claims (89)

1 . A method for providing real-time streaming data, carried out by an edge server of a network, comprising:

receiving, by the edge server, real-time streaming data from at least a first client device;

processing, by the edge server and within a first time duration that is in real-time, the received real-time streaming data to produce first edge processed data;

transmitting, by the edge server and to a central server, the first edge processed data, thereby storing the first edge processed data at the central server in addition to the edge server;

receiving, by the edge server and from a second client device, a first request for real-time streaming data;

providing, in real-time from the edge server instead of from the central server, the first edge processed data to the second client device;

receiving, by the edge server and from a third client device, a second request for real-time streaming data;

obtaining, by the edge server and from the central server, second edge processed data that is responsive to the second request, the second edge processed data being different from the first edge processed data, the second processed data being related to the first edge processed data; and

providing, by the edge server in response to the second request, the second edge processed data obtained from the central server;

wherein the method is performed using one or more processors of the edge server.

2 . The method of claim 1 , further comprising processing, within a second time duration, the received real-time streaming data to produce third edge processed data, the second time duration being longer than the first time duration.

3 . The method of claim 2 , wherein the received real-time streaming data further includes second real-time streaming data received from the second client device, the method further comprising:

processing, within the first time duration that is in real-time, the received real-time streaming data including the second real-time streaming data to produce the first edge processed data; and

broadcasting the first edge processed data to at least the first client device and the second client device in real-time.

4 . The method of claim 3 , wherein the processing, within a first time duration that is in real-time, the received real-time streaming data to produce first edge processed data comprises transforming the received real-time streaming data and caching the transformed real-time streaming data; and

the method further comprises processing, within a second time duration, the received real-time streaming data to produce third edge processed data using the transformed real-time streaming data as input to a windowed compute operation to produce the third edge processed data.

5 . The method of claim 4 further comprising providing the third edge processed data from the edge server to the second client device.

6 . The method of claim 1 wherein the received real-time streaming data is in a format different from a format requested by the second client device,

wherein the processing, within a first time duration that is in real-time, the received real-time streaming data comprises normalizing the received real-time streaming data to the format requested by the second client device in real-time,

wherein the providing, in real-time, the first edge processed data from the edge server to the second client device comprises broadcasting the normalized real-time streaming data to the second client device.

7 . The method of claim 1 , wherein the processing, within a first time duration that is in real-time, the received real-time streaming data comprises performing at least one selecting from a group consisting of:

generating alerts for geo-fencing operations associated with the first client service and the second client device;

a format conversion of location information received from the first client service and the second client device;

a data compression on the received real-time streaming data;

a pattern filtering on the received real-time streaming data;

a geo registration based on the received real-time streaming data; and

computing one or more mapping tiles for the first client service and the second client device.

8 . A system for providing real-time streaming data, the system comprising:

an edge server; and

a storage;

wherein the edge server is configured to:

receive real-time streaming data from at least a first client device;

process, within a first time duration that is in real-time, the received real-time streaming data to produce first edge processed data;

store the first edge processed data in the storage;

transmit, to a central server, the first edge processed data, thereby storing the first edge processed data at the central server in addition to the storage;

receive, from a second client device, a first request for real-time streaming data;

provide, in real-time from the edge server instead of from a central server, the first edge processed data to the second client device;

receive, from a third client device, a second request for real-time streaming data;

obtain, from the central server, second edge processed data responsive to the second request, the second edge processed data being different from the first edge processed data, the second processed data being related to the first edge processed data; and

provide, in response to the second request, the second edge processed data.

9 . The system of claim 8 , wherein the edge server is further configured to process, within a second time duration, the received real-time streaming data to produce third edge processed data, the second time duration being longer than the first time duration.

10 . The system of claim 9 , wherein the received real-time streaming data further includes second real-time streaming data received from the second client device, wherein the edge server is further configured to:

process, within the first time duration that is in real-time, the received real-time streaming data including the second real-time streaming data to produce the first edge processed data; and

broadcast the first edge processed data to at least the first client device and the second client device in real-time.

11 . The system of claim 10 wherein the edge server is further configured to:

transform the received real-time streaming data; and

process, within the second time duration, the received real-time streaming data by at least using the transformed real-time streaming data as input to a windowed compute operation to produce third edge processed data.

12 . The system of claim 8 wherein the received real-time streaming data is in a format different from a format requested by the second client device,

wherein the edge server is further configured to:

process the received real-time streaming data by normalizing the received real-time streaming data to the format requested by the second client device in real-time; and

provide, in real-time, the first edge processed data from the edge server to the second client device by at least broadcasting the normalized real-time streaming data to the second client device.

13 . The system of claim 8 , wherein the edge server is configured to process the received real-time streaming data by performing at least one selecting from a group consisting of:

generating alerts for geo-fencing operations associated with the first client service and the second client device;

a format conversion of location information received from the first client service and the second client device;

a data compression on the received real-time streaming data;

a pattern filtering on the received real-time streaming data;

a geo registration based on the received real-time streaming data; and

computing one or more mapping tiles for the first client service and the second client device.

14 . A non-transitory machine readable storage medium storing executable instructions thereon that, when executed by an edge server comprising one or more processors, cause the edge server to perform operations comprising:

receiving, by the edge server, real-time streaming data from a plurality of client devices;

processing, by the edge server and within a first time duration that is in real-time, the received real-time streaming data to produce first edge processed data;

transmitting, by the edge server and to a central server, the first edge processed data;

receiving, by the edge server and from at least two of the plurality of client devices, requests for real-time streaming data;

obtaining, by the edge server and from the central server, second edge processed data that is responsive to the requests, the second edge processed data being different from the first edge processed data, the second processed data being related to the first edge processed data; and

broadcasting, in real-time by the edge server, the second edge processed data to the at least two of the plurality of client devices.

15 . The non-transitory machine readable storage medium of claim 14 , wherein the operations further comprise:

receiving a second request from at least one of the plurality of client devices for non-real-time processing of the received real-time streaming data;

obtaining non-real-time processed data from a server; and

sending the non-real-time processed data to the at least one of the plurality of client devices.

16 . The non-transitory machine readable storage medium of claim 14 , wherein the operations further comprise:

processing, within a second time duration, the received real-time streaming data to produce third edge processed data, the second time duration being longer than the first time duration.

17 . The non-transitory machine readable storage medium of claim 16 , wherein the operations further comprise:

processing, within the first time duration that is in real-time, the received real-time streaming data by transforming the received real-time streaming data and caching the transformed real-time streaming data; and

processing, within the second time duration, the received real-time streaming data by using the transformed real-time streaming data as input to a windowed compute operation to produce the third edge processed data.

18 . The non-transitory machine readable storage medium of claim 14 , wherein the operations further comprise performing at least one selecting from a group consisting of:

generating alerts for geo-fencing operations associated with the first client service and the second client device;

a format conversion of location information received from the first client service and the second client device;

a data compression on the received real-time streaming data;

a pattern filtering on the received real-time streaming data;

a geo registration based on the received real-time streaming data; and

computing one or more mapping tiles for the first client service and the second client device.

19 . The non-transitory machine readable storage medium of claim 14 , wherein the operations further comprise:

receiving, by the edge server from a first client device, a second request for real-time streaming data; and

providing, in real-time from the edge server instead of by the central server, the first edge processed data to the first client device.

20 . The non-transitory machine readable storage medium of claim 19 , wherein:

the real-time streaming data received from the plurality of client devices is in a format different from a format needed by the first client device; and

the operations further comprise:

processing the received real-time streaming data by normalizing the data in real-time to the format requested by the first client device; and

providing the normalized real-time streaming data to the first client device.

Assignments (2)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2021
From: WILCZYNSKI, PETER; ZANGRI, DANIEL; MARTIN, JEFFREY; IMIG, ROBERT; HOU, WENSHUAI
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057824/0572 →
Continuity (4)
Continuation 17019561 · Sep 14, 2020
Continuation 16573434 · Sep 17, 2019
Provisional Application 62888629 · Aug 19, 2019
Related Publication 20220053045A1 · Feb 17, 2022
References Cited (92)
US 8577392B1 · Pai · 2013 [cited by examiner]
US 8655073B2 · Sample · 2014 [cited by applicant]
US 8971930B2 · Li et al. · 2015 [cited by applicant]
US 9009610B2 · Florance et al. · 2015 [cited by applicant]
US 9686357B1 · Waldrep · 2017 [cited by applicant]
US 9865034B1 · Wilczynski · 2018 [cited by applicant]
US 10068002B1 · Wilczynski · 2018 [cited by applicant]
US 10146960B1 · Wilczynski · 2018 [cited by applicant]
US 10380196B2 · Skiff · 2019 [cited by applicant]
US 10394859B1 · Wilczynski · 2019 [cited by applicant]
US 10528764B2 · Wilczynski · 2020 [cited by applicant]
US 10805374B1 · Wilczynski et al. · 2020 [cited by applicant]
US 20020042817A1 · Lahr · 2002 [cited by applicant]
US 20020069420A1 · Russell · 2002 [cited by examiner]
US 20050289145A1 · Voegel · 2005 [cited by examiner]
US 20060112176A1 · Liu · 2006 [cited by examiner]
US 20070229524A1 · Hendrey · 2007 [cited by applicant]
US 20080010273A1 · Frank · 2008 [cited by applicant]
US 20080051994A1 · Fisher et al. · 2008 [cited by applicant]
US 20090183083A1 · Hedges · 2009 [cited by applicant]
US 20090303251A1 · Balogh et al. · 2009 [cited by applicant]
US 20100064337A1 · Dvir · 2010 [cited by examiner]
US 20100179973A1 · Carruzzo · 2010 [cited by examiner]
US 20100305851A1 · Meyer et al. · 2010 [cited by applicant]
US 20110207446A1 · Twuchukwu · 2011 [cited by applicant]
US 20110217021A1 · Dubin · 2011 [cited by examiner]
US 20120178473A1 · Wiren et al. · 2012 [cited by applicant]
US 20130208308A1 · Edgar · 2013 [cited by applicant]
US 20140011522A1 · Lin et al. · 2014 [cited by applicant]
US 20140108419A1 · Udeshi et al. · 2014 [cited by applicant]
US 20140258281A1 · Chen · 2014 [cited by applicant]
US 20150012661A1 · Elmore · 2015 [cited by examiner]
US 20150095355A1 · Patton · 2015 [cited by applicant]
US 20150109338A1 · McKinnon · 2015 [cited by applicant]
US 20150121772A1 · Berken · 2015 [cited by applicant]
US 20150161150A1 · Goering · 2015 [cited by applicant]
US 20150356088A1 · Berkhin et al. · 2015 [cited by applicant]
US 20160014480A1 · Maze · 2016 [cited by applicant]
US 20160049014A1 · Wells et al. · 2016 [cited by applicant]
US 20160061617A1 · Duggan · 2016 [cited by applicant]
US 20160180060A1 · Nelson · 2016 [cited by applicant]
US 20160253327A1 · Zhu · 2016 [cited by applicant]
US 20160300375A1 · Beckett · 2016 [cited by applicant]
US 20170154116A1 · Zhou · 2017 [cited by applicant]
US 20170161863A1 · Baral · 2017 [cited by applicant]
US 20180032915A1 · Nagaraju et al. · 2018 [cited by applicant]
US 20180167434A1 · Sathyanarayana · 2018 [cited by examiner]
US 20180276880A1 · VanderLugt · 2018 [cited by applicant]
US 20180348961A1 · Wilczynski · 2018 [cited by applicant]
US 20180348991A1 · Wilczynski · 2018 [cited by applicant]
US 20190012359A1 · Wilczynski · 2019 [cited by applicant]
US 20190043201A1 · Strong · 2019 [cited by applicant]
US 20190311010A1 · Skiff · 2019 [cited by applicant]
US 20190339840A1 · Park et al. · 2019 [cited by applicant]
US 20200007226A1 · Takagi · 2020 [cited by examiner]
US 20200027033A1 · Garg et al. · 2020 [cited by applicant]
US 20200244723A1 · Khalid · 2020 [cited by applicant]
US 20200259878A1 · Yang · 2020 [cited by examiner]
US 20200287775A1 · Khasis · 2020 [cited by examiner]
US 20200344297A1 · Agarwal et al. · 2020 [cited by applicant]
US 20210058440A1 · Wilczynski et al. · 2021 [cited by applicant]
US 20210117859A1 · Rogers et al. · 2021 [cited by applicant]
EP 3522497A1 · 2019 [cited by applicant]
EP 3783864A1 · 2021 [cited by applicant]
EP 4564782 · 2025 [cited by applicant]
WO 2008128133A1 · 2008 [cited by applicant]
Kubler, Sylvain, Kary Framling, and Andrea Buda. “A standardized approach to deal with firewall and mobility policies in the IoT.” Pervasive and Mobile Computing 20: 100-114. (Year: 2015). [cited by examiner]
Marjanović, Martina, Aleksandar Antonić, and Ivana Podnar Žarko. “Edge computing architecture for mobile crowdsensing.” Ieee access 6: 10662-10674. Numbered pp. 1-13. (Year: 2018). [cited by examiner]
Perera, Charith, et al. “Ca4iot: Context awareness for internet of things.” 2012 IEEE International Conference on Green Computing and Communications. IEEE. (Year: 2012). [cited by examiner]
P. A. Abdalla and A. Varol, “Advantages to Disadvantages of Cloud Computing for Small-Sized Business,” 2019 7th International Symposium on Digital Forensics and Security (ISDFS), Barcelos, Portugal, Jun. 10-12, pp. 1-6.… [cited by examiner]
Cao et al. Translation of CN-207242577-A1. (Year: 2017). [cited by examiner]
Tan. Translation of CN-109981523-A. (Year: 2019). [cited by examiner]
Kumar, Dhruv, et al. “A ttl-based approach for data aggregation in geo-distributed streaming analytics.” Proceedings of the ACM on Measurement and Analysis of Computing Systems 3.2: 1-27. (Year: 2019). [cited by examiner]
Moustafa, Nour, et al. “Outlier dirichlet mixture mechanism: Adversarial statistical learning for anomaly detection in the fog.” IEEE Transactions on Information Forensics and Security 14.8: 1975-1987. (Year: 2019). [cited by examiner]
Rahimi, Hamed, Ali Zibaeenejad, and Ali Akbar Safavi. “A novel IoT architecture based on 5G-IoT and next generation technologies.” 2018 IEEE 9th annual information technology, electronics and mobile communication confer… [cited by examiner]
Yoshikane, Noboru. “Applications of SDN-enabled optical transport network and cloud/edge computing technology.” 2019 Optical Fiber Communications Conference and Exhibition (OFC). IEEE. (Year: 2019). [cited by examiner]
Xu, Jianliang, Xueyan Tang, and Wang-Chien Lee. “Time-critical on-demand data broadcast: Algorithms, analysis, and performance evaluation.” IEEE Transactions on parallel and distributed systems 17.1: 3-14. (Year: 2005). [cited by examiner]
Marcu, Ovidiu-Cristian, et al. “Storage and Ingestion Systems in Support of Stream Processing: A Survey.”: 1-33. (Year: 2018). [cited by examiner]
Theodorou, V., and Nikos D. “GLT: Edge gateway ELT for data-driven intelligence placement.” 2019 IEEE/ACM Joint 4th International Workshop on Rapid Continuous Software Engineering and 1st International Workshop on Data-… [cited by examiner]
Qiu, T. et al.; Edge Computing in Industrial Internet of Things: Architecture, Advances and Challenges; IEEE Communications Surveys & Tutorials; vol. 22, No. 4; pp. 2462-2488; 2020. [cited by applicant]
Hassan, N. et al.; The Role of Edge Computing in Internet of Things; IEEE Communications Magazine; vol. 56, No. 11; pp. 110-115; 2018. [cited by applicant]
Dasgupta, S. et al.; Ingesting High-Velocity Streaming Graphs from Social Media Sources; arXiv:1905.08337; pp. 1-11; 2019. [cited by applicant]
Ai, Y. et al.; Edge computing technologies for Internet of Things: a primer, Digital Communications and Networks 4; pp. 77-86; 2017. [cited by applicant]
Tran et al.; Collaborative Multi-bitrate Video Caching and Processing in Mobile-Edge Computing Networks; IEEE/IFIP Conference on Wireless On-demand Network Systems and Services (WONS); pp. 1-8; 2017. [cited by applicant]
Dogga et al.; Edge-based Transcoding for Adaptive Live Video Streaming; UCLA, I IT, Kharagpur, and Adobe; pp. 1-7; Apr. 2019. [cited by applicant]
Dutta, S. et al.; On-the-Fly QoE-Aware Transcoding in the Mobile Edge; 2016 IEEE Global Communications Conference (Globecom); pp. 1-6; 2016. [cited by applicant]
Chang, H. et al.; Bringing the cloud to the edge; 2014 IEEE Conference on Computer Communications Workshops (Infocom Wkshps); pp. 346-351; 2014. [cited by applicant]
United States Patent and Trademark Office, Official Communication for U.S. Appl. No. 15/666,368, dated Feb. 27, 2018. [cited by applicant]
United States Patent and Trademark Office, Official Communication for U.S. Appl. No. 15/666,368, dated Nov. 16, 2017. [cited by applicant]
United States Patent and Trademark Office, Official Communication for U.S. Appl. No. 15/788,043, dated Mar. 7, 2019. [cited by applicant]
United States Patent and Trademark Office, Official Communication for U.S. Appl. No. 15/788,043, dated Aug. 24, 2018. [cited by applicant]
United States Patent and Trademark Office, Official Communication for U.S. Appl. No. 15/788,043, dated Jan. 12, 2018. [cited by applicant]